In traditional blockchains consensus is maintained by proof of work such that the valid chain containing the most cumulative work is agreed to be the consensus chain.

IOTA lacks blocks and transactions are appended to the tangle (approximately) individually.

How do nodes agree on which transactions are canonical if two conflicting transactions are appended relatively synchronously?

If an entity builds a graph which contains an invalid transaction before anchoring it to the main tangle is the entire graph invalid?

IOTA uses Proof-of-Work as an anti-Sybil measure. Every transaction has some PoW tied to it, the transactions reference other transactions which the transaction issuer treats as valid, so a transaction is like a vote for all the transactions it references directly or indirectly.

Among conflicting transactions the one with the highest number of votes is accepted as canonical. Because none of the nodes sees all the transactions, a merchant waits until a supermajority of the transactions vote for the transaction of interest. Every merchant decides themselves the supermajority threshold, that can be 90%, 99%, or even 99.9% (higher the threshold - longer the merchant will wait).

If an entity builds a graph including an invalid transaction then a part or the entire graph will become invalid and won't be referenced by entities following IOTA protocol.

From my point of view, since according to THIS ANSWER, solving a PoW in IOTA is very easier than Bitcoin PoW and it takes only around 22 seconds on average (And according to comment of user Austin Powers this time can be even shorter i.e. 675 ms on average at MWM 14). So, if an adversary tries to change the history of transactions, then if he has access to fast processors, he may be able to solve all proof-of-works again.

However, in case of Bitcoin, since difficulty of PoW is very higher, so it would be very difficult for an adversary to solve all proof-of-works again (because of both time and energy/electricity consumption). However, in case of IOTA this time/electricity consumption may be affordable since calculating an IOTA PoW takes only some seconds.

  • " around 22 seconds on average"? My PC completes a single POW in 675 ms on average at MWM 14. So I don't see where you get 22 seconds from. – Austin Powers Aug 10 at 11:38
  • @Austin Powers From here: iota.stackexchange.com/questions/1054/… And if you're right, it means IOTA is even more vulnerable again changing history of transactions. Thanks – sas Aug 10 at 11:41
  • IOTA is migrating to Network-bound PoW. – Casey Yeow Aug 10 at 12:20
  • @Casey Yeow Thank you, could you please give me a link/referenec about Network-bound PoW for more information about it? Thanks – sas Aug 10 at 12:25
  • 1
    The measures I took in the answer referenced were taken on quite a old computer and using the wallet. On modern PCs it is a lot faster, for smaller devices there are FPGAs now. – Werner der Champ Aug 12 at 10:56

Your Answer

 
discard

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.