In my previous post I wrote a broad overview of what the tangle is, and compared it with the blockchain. Well, this post took off, and I had many great discussions and received a lot of great feedback, as well as new information. Today I’ll be applying some of this feedback, as well as spreading some of this new information I’ve received over the course of my discussions.
Iota Address Hygiene
The section of the previous post that seemed to strike the largest nerve was in regard to criticisms I’d heard about the tangle protocol. One of which was given by Eric Hop: “The only drawback with iota is that it’s not safe to send multiple transactions to the same address.” and later Eric produced this forum link explaining the dangers of sending from the same wallet address multiple times. The reason sending an iota transaction from the same address twice is insecure is because iota has elected to use the quantum resistant Winternitz One-Time Signature Scheme. I’m not entirely certain of the details of the Winternitz encryption, however I do know the security degrades exponentially the more the encryption is used to sign the same transaction. This is why the encryption is called a “One-Time Signature Scheme”, it is intended to be used only once. If you click the above forum link and read through, you’ll see that the iota wallet automatically moves your balance to a new address any time you send any iota on the tangle because of this flaw in the encryption scheme.
While currently I don’t view this as a problem, it is something to be aware of if you’re developing software on the tangle that doesn’t use the wallet for transactions (see phx’s post in the first forum link for how the wallet handles this under the hood).
Another criticism mentioned in the previous post was the question of transaction lookup efficiency. One of the beautiful things about the block chain is that it is really easy to look up how much bitcoin an address is holding in it. Simply, follow the blocks back from the current one and keep track of all transactions leaving or entering that address. With the tangle it seems like this problem becomes insurmountable. Iota does this with yet another simple, yet novel, idea: toss the concept of order, or time, out the window. Essentially, it doesn’t care how you got the balance in your address, it simply cares that your balance is never negative. To do this, a node syncing on the tangle simply iterates all the transactions known to the tangle, and groups them by address, regardless of the order in which they occurred. This lack of order allows for frameworks like map reduce (something we’ve discussed previously) to be used on the tangle, since transactions can be grouped in parallel.
One thing that’s been annoying me lately about the iota community is the focus on IOT (internet of things). I know that is the direction the iota dev’s are pushing the software, and it’s obviously a great use case, however, I don’t feel the tangle should be considered an exclusively IOT protocol. It has many possible use cases, even simply as a micro payment currency, something other cryptocurrency’s are severely lacking. I don’t feel that iota should be hitching its wagon to a horse that may be dead in the future, as this dead horse could end up an albatross of the protocol.
This was a short post, but I wanted to have time to fully digest material in the links I was given last week before writing about them. I also felt that the topics for this post were better treated in isolation, rather than as additions to the tangle vs blockchain material.
I had intended to post about proof of stake next as it seems to be a hot topic lately, however, after doing some research into the tangle protocol, I might go through some of the tutorials, or even on a bug bounty! We’ll see where my curiosity takes me, but hopefully you’ll be along for the ride! until next time!
NOTE: here’s a paper on the Winternitz encryption if you’re interested in the details, given to me by the BlockchainNation Facebook group moderator Greg Dubela (@DoctorDoobs).