20

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.

If two conflicting transactions are incorporated relatively synchronously and portions of the network build on each of the transactions the tangle will lack consensus.

I'm curious about general consensus properties of the tangle in adversarial conditions, but the following closely-related questions follow from this scenario and are a solid starting point:

  • When a node gets word of a larger conflicting graph by what logic does it decide between the two?

  • Evaluating the conflicting region of the tangle seems like a computationally hard problem, can a node do this efficiently and trustlessly? How can we detect conflicts if no node sees the whole tangle?

  • What guarantees of convergence do we have? Is there a time frame in which we expect convergence?

  • 2
    I think it does not answer your question satisfactorily, but you might want to have a look at section 4.2 of the whitepaper that discusses a splitting attack. – lex82 Dec 8 '17 at 8:49
5

I can't answer how it will behave in case the coordinator is shut down and the network is actually decentralized as described in the whitepaper.

Right now, the branch that gets confirmed by the coordinator, a special central node run by the Iota Foundation, is the one that gets accepted as valid by every conforming full node.

3

It is not easy to explain this in a few words. Therefore, I recommend to go over this consensus presentation first:

https://github.com/noneymous/iota-consensus-presentation/blob/master/README.md

This is, how it is designed to work without any coordinator. The presentation talks about reattaching a transaction. In the meantime you can do a promote which is faster. So in a few words, the invalid part of the tangle will die similarly to what happens with orphaned chains in the blockchain and will not make it "deep" into the tangle. Transactions which relied on that part and are still valid will need to redo the pow and promote.

  • Promoting won't help if the transaction is an invalid part of the tangle. – ben75 Jan 10 '18 at 12:11
  • With blockchains, only the legit part of the chain is official and I can't even search through the dead portion, right? In the tangle, if I have to reattach to a new portion, isn't the old invalid portion still left in there, so if I search for a transaction it would show up twice? – Matt Feb 13 '18 at 18:19
0
  1. When a node gets word of a larger conflicting graph by what logic does it decide between the two?

This is not how the nodes work. The node just selects random tips from its stored tangle to use for an incoming transactions and checks the validity of the two tips.

  1. Evaluating the conflicting region of the tangle seems like a computationally hard problem, can a node do this efficiently and trustlessly? How can we detect conflicts if no node sees the whole tangle?

Eventual consensus is not down to any one node. It is arrived at through the actions of many incoming transactions on many nodes. For any node that sees both conflicting transactions it will choose the one with the highest weight. The other transaction will naturally be orphaned in time.

  1. What guarantees of convergence do we have? Is there a time frame in which we expect convergence?

This would depend hugely on the tips of the tangle at the time. Unless an attacker successfully works against the tangle to keep a split going we would have consensus in a negligible time.

Your Answer

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.