How does IOTA store transactions

I have a simple question about IOTA. I understand that IOTA is not blockchain based but instead uses a Directed Acyclic Graph (feel so clever writing this) to handle transactions. But if there is no blockchain, how does IOTA keep a storage of previous transactions? Transactions in a blockchain can be verified by following all inputs to a transaction to their source. But how is this possible without a blockchain?

The difference it’s not actually in that aspect only, since ethereum also uses a directed acyclic graph in their system, while still utilizing a blockchain. The main technical differential IOTA has is the ‘tangle’, a structure that is fundamentally different from a blockchain.

While in a blockchain based network all nodes (full nodes at least) are expected to keep a copy of the entire blockchain(not discussing things like Sharding), in IOTA, since the focus is on IOT devices this would be infeasible.

Hence they developed the tangle, a new system where all nodes have a different version of the transaction history , but are still able to make and receive valid an secure transactions with no direct fees - the “fee” is that for every transaction a node makes it requires that you confirm another 2 random transactions in the network. This links every transaction with others,creating a ‘shared history’ of all the transactions in the network. If a node sees a new transaction, it can quickly verify if it is valid, without having to store all the data.

See their whitepaper or this wikipedia article if you want more in depth explanations.

Hope this was helpful!

1 Like

Thanky ou for the explanation, I will check out the whitepaper when I have some time. I just wonder if there is any place where the whole history of transactions is stored, or is this really just a shared memory. In this case, what ensures that the complete record of the history is preserved if parts of the network go down? Or is this of no concern in the philopsophy of IOTA? For a network that is used to transfer values I would say that is important to ensure a complete record of transaction history, but I understand that this is not the primary application of the IOTA network.

As far as I can see, Nodes only store a limited number of transactions, that is also clarified in the white paper (although not in so many words).

Since the Tangle network is asynchronous, nodes do not necessarily see all or even the same set of transactions. Nodes do validate transactions based on history (which I assume is the history they themselves know) and in case of conflicts in transactions, the nodes need to decide which transactions will become orphaned.

From the white paper: "
The main rule that the nodes use for deciding between two conflicting transactions isthe following: a node runs the tip selection algorithm many times, and sees which of the two transactions is more likely to be indirectly approved by the
selected tip. For example, if a transaction was selected 97 times during 100 runs of the tip selection algorithm, we say that it is confirmed with 97% confidence."

Just FYI the tip of a transaction is the last added transaction to the tangle and they backtrace the path to the current transaction.

Ensuring a complete record of history is another thing though, no single node approves a transaction, many nodes approve all transactions, transactions also have a specified place in the tangle, defined by their weight, height, depth, score and their individual weight.

If parts of the network goes down it is assumed that the remaining nodes have sufficient combined information and transaction history to have no impact.

Lastly, (and this is purely an assumption) the coordinator holds a great amount of data currently about all the transactions, since it is there to simulate nodes until they reach critical mass. This is one current point of vulnerability of the tangle.

I love the principle but it is a system that is absolutely built to operate with a massive number of participants for it to successfully run independently and decentralised. The coordinator(s) is actually temporary centralisation in what is meant to be a decentralised network but necessary to reach that critical mass. I don’t know if there is only one coordinator or multiple, for security reasons I would assume multiple.

Thank you, I appreciate your answer. I think I will have to dig myself deeper into this topic. It interesting though I still have my doubts about the whole approach.

sorry, but it wasn’t. you’ve explained very well how they validate transactions. but not what happens with it, then. for instance, there is blockchain explorer in bitcoin, or etherscan for ethereum, where the whole chain of transactions can be consulted (bitcoin) or the whole history of transactions from a specific account can be checked. so, the data that iota explorer plots. where are they stored? as the monkeyking mentioned, the nodes do that in bitcoin and ethereum. where is it stored here? that’s relevant for as you might need eventually to consult previous tx from long ago. so, any hint? i started thinking it’s nowhere to find, or it’s a centralized storage, at bosch, for instance.