IOTA is a cryptocurrency for the Internet of things.
Internet of things (IoT) is a network of devices connected via the Internet. These devices can be household appliances, like fridge or kettle, or measuring devices, like thermometer or barometer. They can run programs, gather and share data, and interact with each other in any possible way.
IOTA’s goal is to build a protocol for billions of devices. It should be fast, scalable, and cheap. Instead of using blockchain, IOTA uses tangle. Tangle is a graph of transactions.
All coins were generated in a genesis transaction. IOTA does not have mining fees, and it does not have mining at all. Instead, those who want to issue a transaction should approve two previous transactions.
Transactions that do not have approvals are called tips, and transactions with approvals are called sites. A weight of transaction is a number that represents the amount of work put to make this transaction. The cumulative weight of a transaction defined as the own weight of a particular transaction plus the sum of own weights of all transactions that directly or indirectly approve this transaction.
There aren’t any rules on whether to approve a transaction or not. Moreover, there aren’t any rules on which transactions to approve, as a user can pick any two previous transactions. Thus, users decide themselves what transactions to approve. It makes sense, though, to pick a sophisticated tip approval strategy. It makes tangle more secure and increases chances that your transaction will be approved by other users.
Some users want to quickly approve their transactions, without contributing to the network security, making lazy tips. Others want to spend their funds multiple times, conducting “large weight” or “parasite chain” attacks.
“Large weight” attack is done by making a transaction with a high weight. As it has so much weight, this part of tangle can outweigh the branch with a legitimate transaction, and that transaction will become orphaned. The defense is to limit maximum weight of transaction. In the current implementation of IOTA all transactions have the same weight, equals 1.
Lazy tips are tips that approve older transactions and thus do not contribute to the network security. Parasite chain is a chain of transactions made by an attacker who wants to double-spend his money. To defend from lazy tips and parasite chain, IOTA proposes the following algorithm. Start with a set of transactions that were issued during some period in past. Pick several transactions from this set. Now, repeatedly traverse from the transaction to the transaction that approved it. If the transaction was approved multiple times, pick the approving transaction randomly, giving priority to transactions with higher cumulative weight Eventually, you will end up in tips. Pick two of these tips.
Chain split can be made by attacker to spend money on both chains. To defend from chain splits, IOTA proposes a modification to the algorithm. The idea is to make hard for attacked to maintain balance on both chains. It can be achieved by making nodes switch to the biggest chain even if the difference in cumulative weight is small. That way, nodes will approve more transactions from the bigger chain, and eventually drop the smaller chain entirely.
To reduce the size of tangle, IOTA occasionally makes the snapshot of the full network. This snapshot contains balances of all wallets but does not contain transaction history. This snapshot is then used as a new “genesis” state.
As the network still has relatively low hashrate, an attacker controlling more than 33% of the computing power can double spend his funds. To protect from this kind of attack, IOTA uses Coordinator. Coordinator, run by IOTA Foundation, issues a transaction every minute. Each transaction, approved by Coordinator’s transaction, is considered confirmed. In future, when IOTA will have much more computing power, Coordinator won’t be necessary.
- October 21, 2015: Launched on Bitcointalk bitcointalk.org
- November 25, 2015—December 21, 2015: IOTA Crowdsale twitter.com
- July 20, 2016: First commit of wallet on Github github.com
- December 3, 2016: Release of GUI wallet blog.iota.org
- September 24, 2017: Release of Flash Channels — instant payment channels in IOTA blog.iota.org
- October 20, 2017—October 23, 2017: Shutdown of Coordinator due to the attack on the network. The IOTA had a major security bug. blog.iota.org
- November 3, 2017: Launch of the non-profit IOTA Foundation in Germany. The goal of the Foundation is to develop promising solutions and incentivize other people to increase IOTA’s infrastructure. blog.iota.org
- November 28, 2017: Release of IOTA data marketplace. Marketplace allows every user to buy and sell data from devices. blog.iota.org