IOTA study
I like from time to time to understand more in depth a cryptocurrency. IOTA is very interesting technically.
Sources:
- https://blog.iota.org/a-primer-on-iota-with-presentation-e0a6eb2cc621
- White Paper: https://iota.org/IOTA_Whitepaper.pdf
- https://medium.com/@grnjrzefnj/the-story-of-iota-a30a209c60dc
- https://forum.iota.org/t/iota-double-spending-masterclass/1311
- https://forum.iota.org/t/iota-consensus-masterclass/1193
- http://cyrilgrunspan.fr/index.php/2016/08/27/__trashed/
- https://steemit.com/iota/@wolfofcrypto/iota-is-it-worth-one-iota
- https://steemit.com/technology/@kingscrown/iota-the-cryptocurrency-that-jumped-into-6th-position
Coin Distribution
First I will talk about the coin distribution:
- In BitCoin, the coin distribution is performed only by mining (except for the genesis block). Each block contains a set of transactions, miners performs the Proof of Work (PoW) and only one wins the reward of the block. It started from an important inflation rate until reaching the deflation rate.
- In Ethereum, there was an ICO where people paid for some coins. After, Ethereum was mined too through PoW until they switch to a Proof of Stake (PoS). Same story, it started from a large inflation rate until reaching the deflation rate.
- In IOTA, the ICO was distributing all the existing tokens. There is no mining in this cryptocurrency: deflation only.
I think this is a nice way to implement the coin distribution: "let start from the end: what we want to reach".
Directed Acyclic Graph as Ledger
IOTA is using a Directed Acyclic Graph (DAG) instead of a BlockChain as a Ledger. Each transaction is a "block" pointing to two ancestors. Both ancestors are chosen by an algorithm enforcing some key properties on the DAG.
Scalability through Dynamic Sharding
Any node of the network can create a new transaction (PoW is still used too) and attach it to the DAG. You do not have a competition between nodes of the network. If you consider the DAG, you can build for each node its depth level with respect to the root of the DAG. Each level corresponds to an "epoch". I do not know the details of the implementation at this level , but I think it is even possible to use selfed timed epoch with this system and not a "synchronous" epoch as found in BitCoin/Ethereum.
Consensus
The consensus algorithm is quiet elegant and funny.
"Color each white square with green color if the square is referenced (directly or indirectly) by all gray squares."
A picture is worth thousand words: you can say that green squares are confirmed transactions, red one not yet confirmed, and grey are the transactions you want to put.
If you want the details check out:
- https://forum.iota.org/t/iota-consensus-masterclass/1193
- White Paper: https://iota.org/IOTA_Whitepaper.pdf
Most of the interesting part for where to introduce the new transactions is covered deeply in the White Paper along with the description of few different attacks.
Some thoughts and more questions
Why still a Proof of Work ?
I understand the mechanism to protect against "spam" on the network, however most of IOT devices have limited computation/energy for this. The network will be very heterogeneous as computing power point of view. I think it is a problem from a long term and security perspective. I wonder if in the future it will move to something energy efficient: a proof of stake, a proof of transaction may be.
Network/Storage Heterogenous Actors
Following the previous point, the dynamic scalability induces some real challenges at the implementation level. You can just store limited part of the DAG on an IOT device (if even you want to store something), there is the need of gateways and also it is very challenging for "full-nodes": I am really interested to see more details on this part. Also at the P2P protocol, there are more challenges than a regular blockchain for the content distribution. I am really curious to have much more details, it is the TRUE challenge to handle multiple millions or billions of transactions a second.
This post has received a 5.00 % upvote from @nettybot thanks to: @boucaron.
Send 0.100 SBD to @nettybot with a post link in the memo field to bid on the next vote.
Oh, and be sure to vote for my owner, @netuoso, as Steem Witness
Have a great day!