What I understand is when I purchase an IOTA the source which I make my purchase is one of the node in the network of nodes. This node uses the Monte Carlo algorithm to pick two previous transactions at random. This transaction can be anyone e.g. one which has been verified once or maybe 7 times verified but it is unconfirmed yet. Now there are two players here the snapshot and the milestone. The milestone is a transaction done by the coordinator. So if my transaction is verified by the milestone directly or indirectly then my transaction is confirmed. This is there until coordinator has a role.

Now, if we remove the coordinator, how does the snapshot come into play? Is it?

  • 1
    In addition to the answers here, I recommend reading this: forum.iota.org/t/iota-consensus-masterclass/1193
    – Matt
    Commented Feb 21, 2018 at 21:41
  • 2
    Too many questions here. Try to split in multiple questions, maybe starting by understanding what a snapshot is. It seems to me that you didn't catch the concept. recommended reading : blog.iota.org/… (4 parts)
    – ben75
    Commented Feb 24, 2018 at 10:14
  • Hello amitnair92, I removed the cluttered question list at the end of your question. Stack Exchange encourages a "one question per question" asking style. Please have a look around the site and use the search to find out about your questions before asking all of them separately. Many might already been asked—and answered.
    – Helmar
    Commented Mar 1, 2018 at 14:10

1 Answer 1


Purchase Iotas

The "source" of all Iotas is the genesis transaction. There will never be more than this amount of Iotas. When you want to purchase Iotas, you buy them from another IOTA user which will be an exchange in most cases.

Markov Chain Monte Carlo

The default tip selection algortihm is the Markov Chain Monte Carlo Algorithm. It is used to select two random tips to confirm. Tips are transactions that were never verified by any other transactions. The MCMC tip selection is not enforced and you can choose any two transaction to reference. An example of choosing a specific transaction (and not a random one) is promoting.


Milestones are not transactions by the community but by the Coordinator. Nobody except (some of) the founders know what the Coordinator is or where it is located. All we know is that it makes transactions, called milestones, every few minutes and signs them. All transactions that are directly or indirectly confirmed (= referenced) by milestones are confirmed.
To see why milestones are necessary take a look at this question.


At the moment it is very simple to determine if a transaction is confirmed or not. If it's referenced (directly or indirectly) by a milestone, it is confirmed otherwise it isn't. In the future a transaction will be confirmed when it is referenced (directly or indirectly) by all tips.

In the picture, all blue transactions are confirmed, all red transactions aren't (yet). The green transactions are milestones. The darker blue transactions were confirmed by the first milestone, the lighter blue transactions were confirmed by the second milestone. A milestone also has to (directly or indirectly) reference all previous milestones.


All full nodes store all transactions since the last snapshots. Snapshots are unrelated to tip selection. When we do a snapshot, we just remove all transactions from the tangle and add up all balances of all addresses. The new tangle is much smaller and the full nodes have to use less storage.

Take a look at this to learn more about tip selection and making transactions in IOTA.

  • I love your diagrams. I would just add a note that after the Coordinator is turned off confirmation is evaluated based on how many tips reference a transaction, it doesn't have to be all of them. >99% of new tips referencing your transaction would be very confident, but I'm not sure 100% is possible.
    – Matt
    Commented Feb 21, 2018 at 18:18
  • It is possible that a transaction is confirmed by all transactions your node sees. Truly 100% is not possible because you never know how many transactions are out there that you don't know about. It is possible that your transactions is confirmed by 100% of the transactions your node sees but your node only sees 0.1% of all transactions (e.g. in subtangles) .
    – Zauz
    Commented Feb 21, 2018 at 18:22
  • Without the Coo, don't you still have to use the main Tangle's tips as the source of truth for how many are referencing a transaction? Eventually everything propagates thru the Tangle so your node is aware of most other transactions. Just using subTangles to validate transactions does not make sense to me in the global sense
    – Matt
    Commented Feb 21, 2018 at 18:34
  • You never know if your node is connected to the "main Tangle". You can only assume that your node is or isn't aware of all/most other transactions.
    – Zauz
    Commented Feb 21, 2018 at 18:49
  • I still do not understand how that assumption gives me any confidence that the transaction won't become invalid sometime in the future because it was also used in another subtangle that this node knows nothing about
    – Matt
    Commented Feb 21, 2018 at 21:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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