While I was trying to understand the theory behind tangle, I read the Anatomy of a transaction
. To my understanding tangle is using three transaction ids:
- hash; Id of the transaction
- branchTransaction; Id of first transaction being approved
- trunkTransaction; Id of the second transaction being approved
In the same document, a bundle
is defined to be an ordered list of transactions. The description suggests that a bundle is implemented as individual transactions linked by trunkTransaction
of transactions). An alternative implementation could have been an array of transactions as a single transaction (a block
of transactions). It is also said that "A typical transfer in IOTA is a bundle consisting of 4 transactions", and this causes a problem.
According to whitepaper, tip selection
is based on transactions having two degrees of freedom to approve previous transactions. But IOTA's implementation allows only the first transaction of a bundle to comply with this requirement. All other transactions of the bundle have only one degree of freedom, because trunkTransaction
is reserved for the linkage within the bundle. Therefore, either IOTA does not reflect tangles requirements for a typical
transfer, or tangle's theory is not applicable to a typical
transfer in IOTA. Of course another possibility is that the document does not match the reality.