How does a new user verify he's getting the correct tangle from others in the network? Unlike blockchain protocol in which the user can rely on the growing chain to be sure he is not been fed with fake transactions, I'm not seeing an obvious way to verify this in IOTA protocol.
In IOTA, we rely on something similar to length as well. But we can't say how "long" a DAG is because there can be multiple paths to any transaction. Instead we use weight to say how many transactions reference another one.
(Learn more about weight)
As you said, in a blockchain, the longest chain is the correct chain:
In the tangle, the transactions that have more weight are the correct transactions:
The IOTA network is very young. There are only about 1-2 transactions per second being made. It would be easy for an attacker to make a lot of transactions and make an incorrect tangle to a correct tangle.
This is one reason why the Coordinator exists. It issues transactions (called milestones) that only reference the correct tangle:
1I can't see how you can get rid the Coordinators (which make the network a central trust depended). A Sybil attack can always hurt the system by coping the Tangle and sending false transactions to one individual causing him to think he is following the real net but actually he is following a fake hidden side brunch. Feb 4, 2018 at 18:36
If someone sends false transactions to one individual node, they still have to do the POW in order to convince the individual node, that the transactions are correct. Meanwhile the individual node will get more correct transactions validating the correct tangle from its other neighbours. That's how it knows that the tangle with the few transactions is the incorrect one and the one with the many transactions is the correct one.– ZauzFeb 4, 2018 at 18:51
1on a Sybil attack you can't be sure your other neighbors are not part of the scam. But also if you do have good neighbors , the attackers can prepare the rest of the fake tangle long time in advance without too much effort (because the pow in IOTA is not too difficult) . Feb 4, 2018 at 19:03
If the IOTA PoW really isn't difficult enough, it will be adjusted. You can't prepare transactions because the PoW "contains" the referenced transactions. If you manage to isolate an IOTA full node from the rest of the network, you can isolate a blockchain full node too, which would pose the same problem.– ZauzFeb 4, 2018 at 19:27
1in blockchain the attacker will have to create new blocks every few minutes in order to keep fooling the victim, we assumed this is impossible. But I'm not sure I understand why I can't prepare transactions. If I don't need the receiver signature for sending transaction but only his address, I can make a fake transaction in advanced where the victim gets some IOTA's than I make many more transactions between the scammers, all of them allegedly verifying this transaction. Feb 4, 2018 at 20:28
With the coordinator, it's quiet simple : you must see the milestone transactions in your tangle. If you don't see them: your view of the tangle isn't synchronized. Milestone indexes are public, so you can check in real time from another source if your are sync.
Without the coordinator, things are more tricky. But, in the end, it's similar to the idea of the "longest chain win" in Bitcoin. Let's say that "the biggest branch of the tangle is the true one".
If you attach a transaction in the main branch: your transaction will quickly be confirmed by many other transactions (because the tip selection algorithm will "by design" increase the biggest branch faster - and note the dual formulation "due to tip selection algorithm: bad branches will die quickly" -).
If you attach a transaction to a "bad" branch : your transaction will never be confirmed and you need to re-attach it, hopefully on the main branch.
Bitcoin have similar "problem": if your transaction is included in a block that is not included in the longest blockchain, you have to wait for another block.