Distributed Immutable Data Object (DIDO), v1.0 Discussion Paper
The term Distributed Immutable Data Objects (DIDO) refers to the underlying technologies supporting distributed data and computation across a distributed network of peers using consensus algorithms to maintain integrity and consistency across the network. After the publication of Satoshi Nakamoto's paper Bitcoin: A Peer-to-Peer Electronic Cash System and the exponential growth of other cryptocurrencies, there is a need to understand, in general terms, the underlying DIDO architectures and provide a framework to enable engineering due diligence of DIDOs. DIDOs are not limited to cryptocurrencies, the original blockchain, or distributed ledger technologies. DIDOs are applicable to other non-cryptocurrency domains such as supply chain, registries for birth, deaths etc., and lists of authentication and identification (IA) acceptable certificates including those that have been revoked. The DIDO concepts are captured within a Reference Architecture (RA), intended to represent any architectures relying on distributed networks of peers that store data and allow parallel computation. The DIDO RA is not intended as a physical “must-have” requirements list, but more as a conceptual catalog of what “can-be”.
In the figure, the DIDO RA is an idealized, general set of requirements and constraints. Each incarnation of the DIDO software (i.e., cryptocurrency, distributed ledger, etc.) uses the stakeholder requirements as a filter of the DIDO RA and tailors it to the unique needs and desires of its community of stakeholders. For example, the DIDO RA provides standards for logging, yet the logging requirements are driven by DIDO Software Stakeholders who may or may not opt to include it. There is a plethora of DIDO Software incarnations available starting with the original Blockchain Software that drives Bitcoin and moving onto IBM’s Distributed Ledger, Ethereum and Iota.
The DIDO Software incarnations are adopted or used by another community of stakeholders that wish to leverage the DIDO Software into a DIDO Network of Nodes to address requirements and needs of a specific domain. For example, one DIDO Network Community wants to provide a cryptocurrency and another public records. The DIDO Software selected by the DIDO Network Stakeholders might be different.
In the figure, the bi-directional arrows communicate the notion that the DIDO RA not only influences the DIDO Software and Networks, but also that evolution of DIDO software and networks feeds back into subsequent versions of the DIDO RA.