The Bank Indonesia is working on a three phase central bank digital currency (CBDC) project for a digital rupiah. Like other central banks, the emphasis has shifted towards wholesale CBDC (wCBDC). Last week it published a paper on a technical proof of concept (PoC) for the wCBDC, comparing R3’s Corda enterprise blockchain and Ethereum-based Hyperledger Besu. It did not make a definitive choice, but described plans for further work. R3 was the partner for the Corda work and Kaleido for Besu.
At a big picture level, the first stage of the digital Rupia project is to conduct the basic issuance, redemption and funds transfer using a wCBDC. It views this PoC as part of that work. The second step is to explore integration between the wCBDC and a digital securities ledger, hence technical interoperability was also investigated as part of this report. The final stage will also use the wCBDC for cross border payments, and potentially as the foundation of a retail CBDC.
For the current work, initially the central bank created a long list of possible technologies, before whittling it down to five: Corda, Besu, Hyperledger Fabric, Hyperledger Iroha and Quorum.
Corda v Besu and privacy
Corda was built for privacy, but Besu’s roots are in Ethereum, which was designed for transparency. As a result, privacy on Besu requires additional functionality.
In several DLT payments projects there is a desire to use Besu to be Ethereum compatible, but the privacy issues create challenges. For example, Brazil’s DREX CBDC project chose Besu but is taking extra time to resolve privacy. In recent Commercial Bank Money Token trials in Germany, three technologies were trialed. Corda was there because it provides privacy out of the box. The other two options were variants of Ethereum. The German team has an expectation that enough people are working on privacy that it’s likely to get solved in the next year or so.
Likewise, Bank Indonesia concluded that Corda “directly meets the privacy criteria set by Bank Indonesia.” One of those criteria is to avoid leaking the participants involved in a transaction, even if the transaction itself is encrypted. Besu fails that test.
Corda uses the unspent transaction output (UTXO) token model used by Bitcoin. This works like cash, where if you hand over $100 for a $10 item, you get $90 change. A $10 token goes to the recipient and you have a new $90 token. You can have various tokens in your wallet. By contrast, Besu uses the Ethereum account based model, with a single balance.
Despite Besu being account-based, one of the solutions in the experiments was confidential UTXO, which we believe is part of a Hyperledger Lab (now LFDT Lab). That sort of makes it equivalent to Corda. Bank Indonesia says confidential UTXO on both ledgers introduces a centralized role for the notary and hence a single point of failure.
To avoid the single point of failure, one of the solutions explored uses Zero Knowledge Proofs (ZKP).
Digital rupiah next steps
The central bank plans to continue exploring privacy solutions, including ZKP parallelism. Additionally, it wants to investigate liquidity savings mechanisms and multi validator deployments.
Stepping back, the central bank set three goals for the PoC. It confirmed that DLT can support a wCBDC. It demonstrated that smart contracts can help with flexibility and efficiency. Finally, connectivity with conventional systems is possible using ISO 20022.