Early in Bitcoin’s history, protocols were quickly developed to allow users to issue assets that piggybacked on Bitcoin’s accounting system in order to track multiple currencies concurrently. These protocols were not natively supported by the Bitcoin protocol, but implemented through clever hacks.
In the case of Bitcoin overlays such as Colored Coins and Mastercoin (now called Omni), light clients are forced to rely on trusted servers. Also transaction fees still have to be paid in bitcoins. These properties combined with the single pipeline for transaction approval make Bitcoin suboptimal for multi-asset accounting.
In the Ethereum case using the ERC20 standard, there is more feature richness. However, transaction fees still require ether. Furthermore, the Ethereum network is having difficulty scaling to the needs of all the issued ERC20 tokens.
A three-part fundamental problem
The fundamental problem can be broken into three parts: resources, incentives and concern. With respect to resources, adding an entirely new currency to the same ledger means one has two independent UTXO (unspent transaction inputs) sets sharing the bandwidth, mempool and block space. Consensus nodes responsible for embedding transactions of these currencies need an incentive for doing so. And not every user of a cryptocurrency will or should care about a particular entity’s currency.
Given these problems, the benefits are tremendous as the primary token of a multiasset ledger can effectively serve as a bridge currency allowing for decentralized market making. Special purpose assets could be issued to provide additional utility such as value stable assets like Tether or MakerDAO that are useful for lending and remittance applications.
Given the challenges, Cardano has adopted a pragmatic approach to multiasset accounting. Building in stages, the first challenge is designing the necessary infrastructure to support the demands of thousands of UIAs. Namely the following advancements are necessary:
- Special purpose authenticated data structures to permit the tracking of a very large UTXO state
- The ability to have a distributed mempool to hold a huge set of pending transactions
- Blockchain partitioning and checkpoints to permit a huge global blockchain
- An incentive scheme that rewards consensus nodes for including different sets of transactions
- A subscription mechanic that allows users to decide which currencies they want to track
- Strong security guarantees that UIAs enjoy similar security as the native asset
- Support for decentralized market making to improve liquidity between UIA and the primary token
Our preliminary efforts for finding the right authenticated data structure have resulted in a new type of AVL+ Tree jointly developed by Leo Reyzin, IOHK and Waves. More research is required, but it is a foundational advancement that will be included in a later version of Cardano.
A distributed mempool could be implemented using Stanford University’s RAMCloud protocol. Experiments will begin in Q3 of 2017 to study its integration into Cardano’s consensus layer.
The remaining topics are interconnected and covered by ongoing research. We expect — subject to research results — to include a protocol into Cardano for UIAs during the Basho of CSL release in 2018.