The IOTA distributed ledger is reeling from a transaction hold-up that affected the entire network on Sunday, December 29th.
According to a report from IOTA published on Monday, the problem started on Sunday morning at 2:50 AM UTC and lasted through Monday morning at 2:50 AM UTC when the IOTA team reportedly fixed the problem. In this period, transactions on the IOTA network were being received but none was being confirmed.
In a notification update to the IOTA Discord channel, IOTA co-founder David Sønstebø described the incident as a minor issue, a description that may have rubbed off the community the wrong way. “Whatever the bug is, there is no reason to panic over such a minor issue pre-Coordicide,” Sønstebø wrote on Sunday. “This is precisely why Coordicide takes time, one can’t execute it until all possible kinks have been ironed out.”
According to the official report by IOTA on Monday, the “minor issue” resulted in “the halting of value transfer processing on the IOTA Mainnet.
“The incident was caused by an edge case in transaction structuring. An unusual set of transactions, which may have been constructed as an attack, disrupted ledger state calculation. When the nodes faced issues calculating a consistent ledger state, they reverted to rejecting milestones as a safety mechanism. Individual funds were never in danger during the incident due to measures such as this, and others implemented in the node software.”
The IOTA community and its critics alike have often bashed the network for its claimed centralization aspects.
Unlike the typical blockchain implementation, IOTA uses what is called a directed acyclic graph or DAG model in which the network avoids reliance in a Proof of Work or Proof of Stake and instead uses two prior transaction confirmations to validate a new transaction.
This system, obviously, presents certain advantages over the typical blockchain system – the main one being that it is faster to confirm transactions since only two prior transactions are used to confirm a new transaction but IOTA introduces a twist.
The prior transactions need to be validated as well to ensure that they are legitimate transactions and that oversight role has been assigned to the Coordinator – a central server controlled by the IOTA Foundation.
The importance of the Coordinator introduces the bottleneck or gives credence to the centralization claims, a problem that IOTA Foundation seeks to correct in an upcoming future event dubbed Coordicide slated to roll out in mainnet towards the end of 2020.
“The IOTA Reference Implementation (IRI) did not handle an edge case where transactions are shared between multiple distinct bundles,” IOTA explained the problem on Monday offering further clarification on the Sunday transaction hold-up. “Once IRI marked a transaction as “already accounted for” in one bundle, it was ignored in the next bundle. This led to a corrupt ledger state from which the node was unable to recover.”
IOTA has since updated the confirmation software and all nodes are advised to upgrade their software to the latest version 1.8.3 (available on the IOTA GitHub page).