CBDC - Project Garuda
CBDC - Project Garuda
CBDC - Project Garuda
BANK INDONESIA
Jalan M.H. Thamrin No.2
Jakarta - 10350
Indonesia
Design and Layout by Setyo Kuncoro, Bagas Aji Pratama, Kevin Eza Rizky,
Timothy Thamrin Andrew H. Sihombing, Sirria Panah Alam, Dewi Septina Br Pelawi,
Bijak Antusias Sufi, Faradilla Azranur, Dian Nofitri, Annisa Muzdalifa
Contents i
Figures iii
I Preface Governor of Bank Indonesia v
II Preface Deputy Governor of Bank Indonesia vi
III Preface Deputy Governor of Bank Indonesia vii
Executive Summary 1
1 Overview
1.1. Background
2
2
1.2. Objective 4
1.3. Business Model 5
2 PoC Methodology 6
2.1. PoC Stages 6
2.2. PoC Scenario 6
2.3. Scope and Assumptions 6
3 PoC Development
3.1 Use Case Layer
8
8
3.1.1 Money Supply Process 8
3.1.1.1 Issuance 8
3.1.1.2 Redemption 9
3.1.1.3 Fund Transfer 10
3.1.2 System Policy 11
3.1.2.1 Limit Feature 11
3.1.2.2 Administrative Features 11
3.1.3 Supervision 12
3.2. Digital Asset Layer
3.3. Execution Layer
12
12 Contents
3.3.1. Container 13
3.3.2. Smart Contract 13
3.3.3. Application Programming Interface (API) 13
3.3.4. Web Application (Web App) 13
3.3.5. Messaging 13
3.3.6. Integration, Interoperability, and
InterConnection (3i) 14
3.4. Data Layer 14
3.4.1. Storage in the Database 14
3.4.2. Structure of DLT 15
3.5. Consensus Layer 15
3.6. Network Layer 15
3.7. Security Aspects 16
4 PoC Testing & Result 17
4.1. Implementation of DLT in Money Supply Process of
Wholesale Rupiah Digital 17
4.2. Implementation of Smart Contract on Rupiah Digital
Wholesale Platform 18
4.3. Integration, Interoperability and Interconnection of
wRD with Other Financial Market Infrastructure 19
5 Finding and Next Step 20
5.1 Finding 20
5.2 Next Step 20
Abbreviations 21
Appendix A. Detail Evaluation of DLT 22
B. Implementation Details of the Use Case Layer 24
C. Implementation Details of the Execution Layer 26
D. Implementation Details of the Data Layer 31
E. Implementation Details of the Consensus Layer 33
F. Implementation Details of the Network Layer 35
G. Liquidity Management and Privacy Concepts for
Advanced Exploration 36
H. PoC Scenario Topics 38
I. Load Test 39
List of Authors 42
Contents
Figure 1. Three Goals of the Rupiah Digital 2
Figure 2. Project Garuda Stages 3
Figure 3. Project Garuda Activities 4
Figure 4. wRD Membership Registration 5
Figure 5. Money Supply Process at wRD 5
Figure 6. wRD PoC Configuration 7
Figure 7. wRD PoC Architecture 7
Figure 8. Issuance and Redemption wRD Platform Integrated
with BI-RTGS 8
Figure 9. (a) RTGS Triggered Issuance Process
(b) Platform Triggered Issuance Process 9
Figure 10. Redemption Flow Platform Triggered 10
Figure 11. Fund Transfer Process with Queue Mechanism 10
Figure 12. Observer Node Solution 12
Figure 13. Web App View on R3 Corda Solution 14
Figure 14. Web App View on Kaleido Hyperledger Besu Solution 14
Figure 15. Design of Data Layer on R3 Corda 15
Figure 16. The Process of Identifying New Members in
the Network
(a) In the Implementation of R3 Corda;
(b) In the Implementation of Kaleido Hyperledger Besu 16
Figure 17. Creation on R3 Corda UTXO 24
Figure 18. Creation on Kaleido Hyperledger Besu Account Based 24
Figure 19. Destruction on R3 Corda UTXO
Figure 20. Destruction on Kaleido Hyperledger Besu
24
24
Figures
Figure 21. Redemption Process RTGS Triggered 25
Figure 22. Bank Indonesia’s R3 Corda Cluster Configuration
on AWS Infrastructure 26
Figure 23. Participant’s R3 Corda Cluster Configuration
on AWS Infrastructure 26
Figure 24. Kaleido Hyperledger Besu Cluster Configuration
of Bank Indonesia’s and Participant’s Node
on AWS Infrastructure 27
Figure 25. CordApp Component 28
Figure 26. Rupiah Digital and Digital Securities Illustration at
Wholesale Wallets R3 Corda 28
Figure 27. Firefly Event Bus (Hyperledger Firefly, 2024) 29
Figure 28. R3 Corda Based PoC Solution Design:
BI-RTGS Integration 30
Figure 29. Database Design on R3 Corda 31
Figure 30.Database Design on Kaleido Hyperledger Besu 31
Figure 31. Directed Acyclic Graph on R3 Corda 31
Figure 32. Kaleido’s Asset Platform Digital Data Layer
(Kaleido, 2024) 31
Figure 33.Blockchain on Kaleido Hyperledger Besu 32
Figure 34. Consensus Mechanism in R3 Corda 33
Figure 35.Consensus Mechanism in Kaleido Hyperledger Besu 33
Figure 36.Illustration of the Use of CENM (Corda, 2024) 35
Figure 37. Queue Management Flow for Further Exploration 36
Figure 38. Kaleido’s Privacy Model Concept for Further Exploration 37
Figure 39. R3 Corda Infrastructure on AWS for Wholesale
Participant Clusters 39
Figure 40. Kaleido Hyperledger Besu Infrastructure on AWS for
Wholesale Participant Clusters 40
Figures
PREFACE
Governor of Bank Indonesia
Assalamu’alaikum Warahmatullahi Wabarakatuh,
Greetings to all of us, Shalom, Om swastiastu, Namo buddhaya, Greetings of virtue.
Currently, Bank Indonesia through the Project Garuda has completed the first phase of the Rupiah
Digital exploration journey, known as the Immediate State, which is marked by the completion of the
proof of concept wholesale cash ledger Rupiah Digital. This achievement is a manifestation of Bank
Indonesia’s commitment to the development of the Rupiah Digital in response to the rapid growth of
the digital financial economy and in its position as the sole authority in issuing legal currency in the
Republic of Indonesia.
The development of the Rupiah Digital is carried out by prioritizing the public interest while carrying
out the mandate of the effectiveness of the implementation of Bank Indonesia’s duties. This makes the
Rupiah Digital critical to complement the digitalization of the payment system, especially in supporting
the development of an increasingly decentralized digital financial economy in the future. The Rupiah
Digital is also directed to be integrated, interoperable, and interconnected with the current payment
system and financial market infrastructure, both domestically and cross-border.
The proof of concept stage of wholesale cash ledger Rupiah Digital is taken to ensure the use of the
right technology in meeting the design needs of the Rupiah Digital which has also considered various
views and public inputs. We see the proof of concept as an essential step to evaluate the feasibility
of the technology that will be the basis for the operationalization of the Rupiah Digital in the future,
including identifying potential risks. We hope that the proof of concept will not only serve as a means
of technical testing, but also as a tool to ensure the long term adoption and success of implementing
the Rupiah Digital in Indonesia.
The publication of this report is a manifestation of Bank Indonesia’s transparency in every stage of the
development of the Rupiah Digital. Bank Indonesia will continue to advance with the Project Garuda
initiative in responding to future payment system challenges. We hope that this project will have a
great impact and benefit the entire nation, especially in maintaining the sovereignty of the Rupiah in
the digital era.
1. Distributed ledger technology is a database distributed across multiple locations or institutions and is typically public. One well-known form of DLT implementation
is ‘Blockchain’.
2 Project Garuda: Proof of Concept Report | DECEMBER 2024
© Bank Indonesia 2024. All rights reserved.
Figure 2. Project Garuda Stages
coin forms used so far. This exploration aims to cross-border transactions. Each stage prioritizes the
preserve the Rupiah’s sovereignty in the digital era, sustainability of the money supply process, aligning
in accordance with Act No. 4 of 2023 concerning with Bank Indonesia’s policies.
Financial Sector Development and Strengthening
At each stage of the Rupiah Digital project,
(P2SK), specifically section six titled ‘Rupiah Digital’.
3 (three) series of activities were conducted,
Similar to how banknotes in different countries as illustrated in Figure 3. The first activity is the
feature distinct designs and security elements, publication of the Consultative Paper (CP), which
the Rupiah Digital’s design must be tailored to serves as a form of communication and public
the Indonesian payment ecosystem’s needs and consultation to gather input on the business model
characteristics. At the end of 2023, Bank Indonesia at each stage. The second activity involves issuing
began exploring the design, impact, and benefits of a Public Consultation Report, summarizing the
the Rupiah Digital for Indonesia. The findings from public input that will be tested. The third activity
these explorations were subsequently published in 3 is the implementation of a proof of concept (PoC)
(three) documents: the White Paper, the Consultative to evaluate the feasibility of technology solutions
Paper, and the Public Consultation Report. based on the business model outlined in the Public
Consultation Report. These activities ensured that
The White Paper published in November 2023
the Rupiah Digital was developed with an optimal
outlines the exploration of the Rupiah Digital in
design.
3 (three) stages, as depicted in Figure 2. The first
stage is the Immediate State that involves exploring This proof of concept (PoC) report continues
a cash ledger wholesale Rupiah Digital. The second the Rupiah Digital’s exploration of technological
stage is the Intermediate State, which expands the solutions for the Rupiah Digital wholesale cash
wholesale Rupiah Digital use case to include Digital ledger (wRD) business model. The high-level
Assets. The third stage is the End State, which design of wRD is outlined in the Project Garuda
examines interconnection with other DLTs, including White Paper, the Consultative Paper published
1
report is presented with the following structure:
How can DLT be leveraged to implement
1. Overview, this section includes the the wRD business model?
background, objectives, and business model of
wRD;
2
2. PoC Methodology, this section explains the What are the potential benefits and added
implementation of the PoC, including the value of implementing smart contracts on
stages, scenarios, scopes, and assumptions wRD?
used during the PoC;
3. PoC Development, this section describes the How can wRD connect to conventional
development of the wRD platform;
3
systems, Bank Indonesia’s internal
4. PoC Testing and Results, this section systems, cross-border systems, and
addresses the objectives of the PoC based on other DLTs, based on the principles
the test results; of integration, interoperability4 , and
interconnection (3i)?
5. Findings and Next Step, this section explains
the findings from the PoC results and outlines
future exploration plans.
2. A blockchain platform that shares transaction data only with the parties involved in the transaction. It is available in an open-source version and an enterprise
version called Corda Enterprise.
3. An open-source blockchain protocol and platform established by Linux Foundation. Hyperledger Besu is a Java-based Ethereum client. Hyperledger Besu adheres
to the specifications of the Enterprise Ethereum Alliance (EEA).
4. The ability of 2 (two) or more systems to exchange information or conduct transactions without middleware.
,,
The wRD PoC is structured into 3 (three)
divided into 3 (three) stages: Pre PoC, Main PoC, and
stages to clearly define the scope, focus on
the objectives of each stage, and mitigate the Post PoC.
risks associated with PoC implementation. The
implementation of the wRD PoC involves the Project
Garuda Workstream (WS) 9 . The details of the 3 2.3. SCOPE AND ASSUMPTIONS
(three) stages are as follows:
To optimize time and resources, the scope of
1
Pre PoC developing and executing test scenarios has
been determined. In this PoC, the model and
This stage explores and transforms 3 configuration utilized are illustrated in Figure 6.
(three) key questions in this PoC into test The wRD platform is designed as a permissioned
scenarios. These activities are conducted network, with Bank Indonesia regulating the access
through workshops and requirements and roles of participants.
gathering sessions with stakeholders.
The wRD platform encompasses various roles
During this stage, Bank Indonesia
and permissions, including:
shortlisted 2 (two) technology platforms
based on its needs and considerations. 1. Master Node (Bank Indonesia)
2
Main PoC a. KDR Node: responsible for the creation,
issuance, redemption, and destruction of the
This stage focuses on building and Rupiah Digital.
executing test scenarios on both
b. Regulator Node: determines the rules and
technology platforms. Both platforms are
policies for managing the Rupiah Digital and
developed and tested in parallel using agile
oversees smart contract management (see
and iterative approaches.
Subchapter 3.3.2).
3
Post PoC c. Observer Node: collects and supervises all
This stage involves a detailed analysis of the transaction activity data on wRD without active
test results from the Main PoC stage, which participation in the transactions.
are then documented in a comprehensive d. Administrator Node: manages participant
report. access on the wRD platform.
e. Provider Node: supplies multitenant
2.2. POC SCENARIO infrastructure for participants who lack
infrastructure within the wRD network.
The 3 (three) critical questions of the PoC will
be addressed through 55 test scenarios (see 2. Node Participants (Members)
Appendix H). Building and executing these test
a. Validating Node (Full Node): engages
scenarios provides a solid foundation for answering
in transaction activities of the wRD and
key questions and gaining insights for the future
possesses the right to validate transactions.
development of the Rupiah Digital. The test
scenarios are divided into 2 (two) aspects: b. Non-Validating Node (Light Node): engages in
transaction activities of the wRD but lacks the
1. Business aspect (functional): focusing on “what”
right to validate transactions.
the system/platform should do;
c. No-Node (Multitenancy): participates in
2. Technical aspect (non-functional): focusing on
transaction activities of the wRD but does not
“how” the system/platform should perform its
have infrastructure within the wRD network.
functions.
9. Project Garuda is continuously managed by 3 (three) Workstreams (WS), each with a specific focus: WS1 (business), WS2 (technology), WS3 (regulation).
Provider Node
Non-Validating
Multi-tenancy services
Node WSr B
for participants
WSr B Membership
,,
understanding, development, and maintenance. (wholesaler) of wRD platform will have different roles
In DLT, there are 6 (six) layers of abstraction and to support operational resilience of wRD platform.
1 (one) supporting aspect:
1. Use Case Layer: Describes the use cases of
applications built on top of the DLT platform; Figure 7. wRD PoC Architecture
3.1 USE CASE LAYER of the Rupiah Digital into BI-RTGS current
accounts. Through this conversion process, there
The use case layer is the uppermost layer of the is no addition/decrease in the amount of money
wRD platform, where users interact directly with in circulation so that in the PoC phase Immediate
the platform. The business process in wRD is built State there is no creation of new money value.
on the use case layer, which includes the money
supply process, system policy, and supervision. 3.1.1.1 ISSUANCE
Implementing the wRD business processes
involves smart contracts that allow various Issuance process can be initiated through the
business processes in the network to be carried out wRD platform (Platform Triggered) or BI-RTGS
automatically, minimizing human intervention. (RTGS Triggered). Both trigger types involve
the omnibus account10 on the BI-RTGS system
3.1.1 MONEY SUPPLY PROCESS to complete the settlement on the BI-RTGS side
and the KDR node on the wRD platform to make
The Rupiah Digital is designed with the settlements on the wRD side. Figure 9 illustrates
principle of no harm to monetary stability and the process of issuance carried out by Bank 1 using
financial system stability. The money supply both types of triggers.
process consists of issuance, redemption, and
transfer. As explained in Figure 8, issuance is carried On the BI-RTGS settlement, refer to
out through the conversion of current accounts in Figure 9 (a) RTGS triggered issuance; the
BI-RTGS into the Rupiah Digital while the process process begins with debiting the current
of redemption is carried out through the conversion account and crediting the omnibus account.
10. The account in BI-RTGS that holds all the participants’ funds converted into Rupiah Digital, therefore the giro balance in the omnibus account will be equal to the total Rupiah Digital in
circulation. In the omnibus account, all participants’ funds are pooled together.
Then, BI-RTGS sent MT202 along with MT910 to Settlement on the wRD side is also known
indicate that the settlement on the BI-RTGS side as the process of creating the Rupiah Digital
had been completed. Meanwhile, referring to Figure with the implementation according to each
9 (b) Platform triggered issuance, Bank 1 initiated technology (see Appendix B.2). On R3 Corda, the
the issuance of the Rupiah Digital through the wRD creation process will create a new Rupiah Digital
platform, which was carried out both when the token owned by participants. In contrast, in Kaleido
bank wanted to increase the stock of the Rupiah Hyperledger Besu, the creation process will add
Digital and when it occurred auto-issuance11. Next, a a balance of the Rupiah Digital to the accounts of
message is exchanged between the KDR node and participating banks through new token minting. R3
BI-RTGS using the MT202 standard format. Corda and Kaleido Hyperledger Besu validate the
creation of transactions through the consensus layer
(see Subchapter 3.5).
,, Issuance process can be initiated through the wRD
3.1.1.2 REDEMPTION
platform (Platform Triggered) or BI-RTGS (RTGS Redemption is done through the wRD platform
Triggered). Both trigger types involve the omnibus (platform triggered) 12 and initiated by the
participating banks to Bank Indonesia. The
,,
account on the BI-RTGS system to complete the
redemption process engages the omnibus account
settlement on the BI-RTGS side and the KDR node
BI-RTGS system to complete settlements on the BI-
on the wRD platform. RTGS side and the KDR node on the wRD platform
to make settlements on the wRD side. Figure 10
shows an example of the redemption process by
Bank 1.
11. Auto-issuance occurs when the balance at a participant’s bank falls below a threshold set by each bank.
12. Initiation of the redemption process from BI-RTGS was technically tested but could not be executed commercially due to regulations on the BI-RTGS side (see Appendix B.4).
The bank can initiate redemption when it needs 2. A queue mechanism, especially for high
to reduce the Rupiah Digital stock and during priority transactions.
the auto-redemption13 process. Both begin with
sending a request to the KDR node, as shown in The transaction processing feature in the wRD
the Figure 10 (number 1). Furthermore, in process platform will be completed in real-time and gross if
number 2, messages are exchanged between the the sender has sufficient funds/liquidity and queued
KDR node and BI-RTGS using the standard MT if liquidity is insufficient.
format. Transaction processing features and queue
When BI-RTGS receives MT202, the settlement mechanisms will be facilitated through smart
(number 3) occurs on the BI-RTGS side, then contracts, as shown in Figure 11. An additional
when the process is completed (number 4), MT900 component outside the smart contract for the
(success) or MT296 (failed) is sent to the KDR queue mechanism was developed for each
node. Furthermore, the KDR node initiates the participant’s application. In contrast to issuance and
settlement on the wRD side, also called destruction redemption, which require KDR node for current
process, with the implementation according to each account conversion validation, fund transfers can
technology (see Appendix B.2). be validated by any validating node. Distribution of
validation allows fund transfer to no longer depend
On the destruction process in the R3 Corda on a central authority, which is made possible by
platform, the KDR node makes a transaction using consensus (see Subchapter 3.5).
that destroys the Rupiah Digital token. In
contrast, in Kaleido Hyperledger Besu, the KDR A decentralized queue mechanism in which
node redeems the Rupiah Digital, thus reducing participants are responsible for managing their
the account balance by sending it to the burn respective queues is expected to distribute the
address14 . The validation process of the transaction queue processing load on each node, making the
involves the consensus layer, which is explained decentralized queue process more resilient than the
in more detail in Subchapter 3.5. If the KDR node conventional system.
receives a failed message in MT296 format, then Figure 11. Fund Transfer Process with Queue Mechanism
the KDR node does not follow up on the redemption
request belonging to the participating bank.
13. Auto-redemption occurs when the balance at a participant’s bank exceeds a threshold set by each bank.
14. Specific address used by Kaleido Hyperledger Besu to burn tokens is 0x000000000000000000000000000000000000.
Besides decentralized queue, there are model The participant limit aims to manage the
options for queue centrality, which can be liquidity of each participant according to their
further explored (see Appendix G). A centralized needs. If the limit set by the participant is exceeded,
queue will manage the queue from all participants an automated conversion process (auto-issuance
by an entity, making it easier to resolve gridlock and auto-redemption) will be triggered. 2 (two)
problems, which causes a transaction not to be limits have been developed for participants:
completed between participants.
1. Maximum balance, regulates the maximum
balance each participant can hold, which
3.1.2 SYSTEM POLICY cannot exceed the maximum participant
balance set by Bank Indonesia.
The wRD platform must implement transaction and
The auto-redemption process will be initiated
activity management features to support central
automatically if this limit is exceeded.
bank policies. The limit feature regulates the Rupiah
Digital transactions, while the administration feature 2. Minimum balance, regulates the minimum
oversees participant activities. balance each participant must hold, which
cannot be lower than the minimum participant
3.1.2.1 LIMIT FEATURE balance set by Bank Indonesia. If this limit is
exceeded, the auto-issuance process will be
The limit on wRD is divided into 2 (two) initiated automatically.
categories based on the regulating party. The
first category is the limit set by Bank Indonesia, ,,
,,
which applies to all wRD participants. The second
category is the limit that each participant can set for The limit feature is parameterized to allow
themselves. adjustments as needed...
Bank Indonesia’s limit aims to regulate the In its implementation, R3 Corda and Kaleido
amount of the Rupiah Digital in circulation and Hyperledger Besu have incorporated the limits
prevent the concentration of the Rupiah Digital set by Bank Indonesia into smart contracts/
ownership among a few participants. Bank CorDapps. This approach ensures that the
Indonesia sets these limits through regulator node. limits set by Bank Indonesia are distributed and
6 (six) limits have been developed: checked by each participant. Meanwhile, the
limits set by participants are implemented within
1. Total circulation limit, regulates the total each participant’s application using R3 Corda and
amount of the Rupiah Digital that can be Kaleido Hyperledger Besu.
circulated at any given time;
2. Limit per issuance per participant, sets the 3.1.2.2 ADMINISTRATIVE FEATURES
maximum conversion value from a current
account to the Rupiah Digital that a participant The permissioned DLT network wRD platform
can perform; requires an administrative feature to manage
participant memberships. As a result, 4 (four)
3. Limit per redemption per participant, sets administrative features were developed for this
the maximum conversion value of the Rupiah purpose:
Digital to a current account that a participant
can perform; 1. On-boarding, allows Bank Indonesia to add
new participants to the wRD platform;
Project Garuda: Proof of Concept Report | DECEMBER 2024 11
© Bank Indonesia 2024. All rights reserved.
2. Freeze, Bank Indonesia to stop funds from specific features for supervision. This specific
entering and exiting participant nodes; node is the observer node, which receives a copy
of the transaction between participants, as shown
3. Unfreeze, allows Bank Indonesia to revoke the
in Figure 12. The observer node can only be owned
frozen status of participants;
and operated by Bank Indonesia.
4. Off-boarding, allows Bank Indonesia to
remove participants from the wRD platform. In R3 Corda, supervision is implemented by utilizing
the broadcast feature to the observer node to
Bank Indonesia can manage these 4 (four) send transaction data upon settlement finality.
administrative features on the wRD platform Meanwhile, Kaleido Hyperledger Besu implements
using the administrator node. This ensures that observer nodes by utilizing the emit event feature on
Bank Indonesia has the final authority over who can smart contracts.
participate in the wRD. Figure 12. Observer Node Solution
R3 Corda utilized Business Network
Membership (BNM) tools to implement
membership feature. Kaleido Hyperledger Besu
managed membership features via Hierarchical-
Deterministic (HD) Wallets. The membership data
for both wRD platforms is accessible through smart
contracts.
3.1.3 SUPERVISION
For more effective and efficient policy making
and to protect participants and customers, Bank
Indonesia, as the regulator of the wRD platform, 3.2. DIGITAL ASSET LAYER
must be able to supervise transactions in
real-time. The distribution of transaction data on The digital asset layer represents the digital
the DLT platform does not inherently hinder Bank assets transacting on the wRD platform. In the
Indonesia’s supervisory process. However, it is wRD technology architecture, Bank Indonesia can
necessary to balance the need-to-know basis15 manage 2 (two) types of digital assets: the Rupiah
principle in wholesale transactions with the interest Digital and the digital securities. The existence
in supervision. of various digital assets on a single platform is
known as a unified ledger. The use of a unified
,, ...it is necessary to balance the need-to-know basis
ledger optimizes automation and customization of
asset (programmability), integration of one asset
,,
with another (composability), and simultaneous
principle in wholesale transactions with the interest settlement of multiple assets (atomic settlement).
in supervision.
The Immediate State phase PoC focuses on
developing the Rupiah Digital (cash ledger)
R3 Corda and Kaleido Hyperledger Besu have assets across all test scenarios. Digital securities
distinct characteristics when implementing assets are developed in a limited manner within
transaction recording. R3 Corda uses the concept the Delivery Versus Payment (DVP)16 scenario.
of shared facts, where no singular ledger contains Further exploration of digital securities assets will be
all transaction data. Transaction data on R3 Corda conducted at a later stage.
is shared with and stored only by the involved
participants. In contrast, on Kaleido Hyperledger
Besu, participants have identical data on the ledger,
,, In the wRD technology architecture, Bank
,,
but this data is stored in encrypted form. Only
Indonesia can manage 2 (two) types of digital
the parties involved can decrypt and access the
transaction data. Therefore, a monitoring solution assets: Rupiah Digital and digital securities.
that can be implemented on both platforms while
maintaining the confidentiality of participant
transactions is necessary. 3.3. EXECUTION LAYER
Monitoring solutions to maintain transaction The execution layer comprises components
confidentiality involve adding a node with that facilitate the execution of transactions and
computing processes on the wRD platform.
15. Need-to-know basis is a principle where only participants involved in a transaction can access the transaction data.
16. A securities settlement mechanism that links transfer of securities and transfer of funds in such a way that the delivery of securities occurs only if the
corresponding payment has been made.
17. A container is a virtualization method used to run and distribute applications consistently across various computing environments (portability), which is required by both DLT platforms to be
developed.
18. Kubernetes is a container orchestration tool used to automatically scale applications up and down based on demand.
19. JVM (Java Virtual Machine) is responsible for executing Java bytecode programs.
20. EVM (Ethereum Virtual Machine) is a program responsible for executing smart contracts on the Ethereum blockchain network.
21. API (Application Programming Interface) is a protocol that allows one software application to interact and communicate with other software applications.
22. Off-chain transactions are processes that occur within the wRD platform without involving DLT database, such as limit policies, user management, file transfers, etc.
23. Messaging queue is a mechanism for communication through messages using a queue. It works by placing a message generated by a producer into the queue, and then the message is
retrieved from the queue to be processed by a consumer.
In the PoC, BI-RTGS is integrated with the 3.4.1. STORAGE IN THE DATABASE
wRD platform for issuance and redemption. In
R3 Corda, this integration is achieved through file In the wRD PoC, both R3 Corda and Kaleido
exchange using AWS S3 Bucket, a cloud file storage Hyperledger Besu utilize the Relational
service. Conversely, Kaleido Hyperledger Besu Database Management System (RDBMS) 24 for
utilizes a web based interface to transmit BI-RTGS data storage. Participants with nodes (wholesalers
messages (see Appendix C). and non-wholesalers) are responsible for managing
their respective databases. For participants
3.4. DATA LAYER categorized as no-node, the database management
is handled by the provider node.
The data layer encompasses both data storage
methods and data structures. On the wRD Data storage in R3 Corda is categorized into
24. RDBMS technology used is PostgreSQL, provided through AWS Relational Database Service (RDS) (see Appendix D).
25. On-chain refers to the environment within the wRD platform that specifically uses DLT.
,,
that involves a notary... Kaleido Hyperledger
Besu employs proof of authority (PoA) consensus
mechanism.
3.4.2. STRUCTURE OF DLT
Despite the similarities in using RDBMS in R3
Corda and Kaleido Hyperledger Besu, the
3.6. NETWORK LAYER
2 (two) DLT platforms have significantly The most basic layer of the DLT Layer
different structures. The DLT structures used in Framework is the network layer30 , where data
PoCs are directed acyclic graph (DAG) for R3 Corda exchange communication within the network
and Blockchain for Kaleido Hyperledger Besu (see is determined based on network access. In the
Appendix D). PoC, according to the design of the Whitepaper and
In R3 Corda, the Rupiah Digital is stored as Consultative Paper, the chosen network access is
a token within a state on CorDapps, with permissioned network.
attributes such as nominal value, issuer (Bank There is a difference in network creation
Indonesia), and owner. Conversely, in Kaleido between R3 Corda and Kaleido Hyperledger
Hyperledger Besu, the Rupiah Digital is stored via Besu, as illustrated in the Figure 16 below.
a smart contract that contains the participant’s
account and balance.
26. Digital Asset Platform is a middleware service from Kaleido that provides services related to DLT platform.
27. A notary is an entity responsible for preventing double-spending (money being spent twice) by validating the input state of a transaction.
28. A notary that checks transactions to prevent double-spending (uniqueness validation) but does not verify the correctness of the transactions (transaction validation).
29. A consensus algorithm in which participants know and trust each other. A central authority designates participants who can perform transaction validation (delegates).
30. Network Layer is a set of interconnected nodes that adhere to a technology standard (protocol) and actively participate together in storing, exchanging data, and processing information within
an integrated communication channel.
R3 Corda relies on an additional component called must be unique to ensure that participants of
Corda Enterprise Network Manager (CENM)31, the wRD platform can be identified through the
which is responsible for identifying participants, as certificate.
well as adding them to the network map32.
In Kaleido Hyperledger Besu, adding a new node
Meanwhile, Kaleido Hyperledger Besu involves to the network involves utilizing the genesis
creating a network by using bootnode33 and file owned by the bootnode, as illustrated in
genesis files34 for new participants, subsequently Figure 16 (b). The bank initiates the creation of a
adding those participants to the configuration of new node based on the genesis file and modifies
each node. Both CENM and bootnode are under the the network configuration accordingly. Additionally,
authority of Bank Indonesia (see Appendix F). synchronizing the network configuration across all
nodes requires establishing a communication link
In R3 Corda, the node must have an identity
with the new node.
encapsulated in a digital certificate (which
contains public and private keys) issued by
CENM, as depicted in numbers 1 and 2 in 3.7. SECURITY ASPECTS
Figure 16 (a). The identity registered on CENM
The security aspects in the implementation of
,, The network layer is where data exchange
the wRD PoC have been tested and follow the
applicable security standards at Bank Indonesia.
communication within the network is determined
,,
based on network access. In the PoC, the chosen
network access is permissioned network.
31. R3’s commercial service, Corda Enterprise, allows for the operation of a Corda network with full control, including consensus management.
32. A network map is a component that stores information about all nodes connected to the network and functions like a directory.
33. Bootnode is node that initially creates the network.
34. Genesis file is a file that contains the network configuration.
KQ# 1:
4.1. Implementation of the burden of transaction
processing and validation
DLT in the Money Supply Process across multiple participants
of Wholesale Rupiah Digital in the DLT network, rather than
relying solely on the central bank.
The implementation of wRD on the DLT platform Kaleido Hyperledger Besu, using the Quorum
involves a series of processes related to money Byzantine Fault Tolerance (QBFT) consensus
supply. The issuance and redemption processes algorithm, decentralizes validation rights to DLT
adhere strictly to the principle of no-money creation participants predetermined by the central bank.
through conversion. This conversion process is Conversely, R3 Corda employs a unique consensus
executed by transferring the participant’s current method involving notary nodes and transaction
account balance to/from wRD in real-time, participants.
orchestrated by KDR node. Additionally, the DLT
Through smart contracts and consensus
platform supports the transfer of funds between
mechanisms, the DLT platform ensures the
participants within the network through the fund
confidentiality of transaction data. The Kaleido
transfer process. This process is designed to
Hyperledger Besu-based solution guarantees
enhance liquidity efficiency, particularly through the
confidentiality through encryption methods, while
transaction queue function.
R3 Corda applies the need-to-know principle for
The wRD incorporates features designed to every transaction.
support the implementation of monetary and
For Kaleido Hyperledger Besu, in addition to
macroprudential policies. These policies are
the encrypted privacy model, the confidential
enforced through system controls, such as setting
unspent transaction output (UTXO) model
limits on circulating wRD and utilizing administrative
with a notary is also implemented in the PoC.
features to manage participant eligibility. An
In further exploration, there is a possibility to apply
observer node is employed to monitor participant
Zero Knowledge Proof (ZKP) privacy model (see
activities, as well as track the position and changes
Appendix G).
of wRD on the DLT platform.
Access management plays a crucial role in
Money supply processes, policy settings, and
supporting privacy aspects and regulating
monitoring on the DLT network are regulated by
participant authorization on the DLT platform.
smart contracts. These smart contracts, with their
By leveraging smart contracts and consensus, the
automation capabilities, are a novel aspect of the
DLT platform has significantly increased the speed
system that streamlines transactions.
of money circulation, with each platform capable of
Besides the reliability of smart contracts, processing more than 30 transactions per second
the DLT finalizes wRD transactions through (see Appendix I).
a consensus mechanism that differs from
conventional systems. This mechanism distributes
,,
Meanwhile, Kaleido Hyperledger Besu provides a
predetermined rules, leveraging programmability,
Contract Management service accessed through
the Asset Platform to deploy new smart contracts composability, and tokenization advantages.
into the blockchain.
,,
Bank Indonesia Real Time Gross Settlement
Meanwhile, in Kaleido Hyperledger Besu, the
interconnection simulation with BI-RTGS is (BI-RTGS) system during issuance and redemption.
conducted through the RTGS Bridge (using API).
Data exchange in the form of files with BI-RTGS is
performed through a user interface in accordance
with ISO 150022.
3 2 1
Project Garuda: Proof of Concept Report | DECEMBER 2024 19
© Bank Indonesia 2024. All rights reserved.
CHAPTER 5
FINDING AND NEXT sTEp
In the Rupiah Digital PoC, findings and considerations for future steps have been
identified. Aspects not implemented in the PoC will be explored further, taking into
account feedback from the industry, the community, and the current PoC results.
1
Rupiah Digital (wRD) business model,
including the money supply process and Based on the PoC results, several exploration
governance of its implementation, can be topics can enhance the next phase of Project
effectively carried out on distributed ledger Garuda, specifically in liquidity management (e.g.:
technology (DLT) using smart contracts Liquidity Saving Mechanism (LSM)) and privacy
and consensus mechanisms; technology (e.g.: Parallelism of Zero Knowledge
Proof). This ensures that the implementation of
business models and technology will provide the
2
The added value of smart contracts in market with more efficient liquidity and information
DLT, compared to conventional systems, data privacy in accordance with Bank Indonesia’s
lies in their capabilities to support criteria.
programmability, composability, and
tokenization;
3
facilitates connectivity with Bank
Indonesia’s internal systems, domestic
financial market infrastructure, cross-border
initiatives, and other payment system
projects through API connections and the
ISO 20022 messaging standard.
2. Creation Detail
In R3 Corda, which utilizes the Unspent Transaction In Kaleido Hyperledger Besu, which utilizes
Output (UTXO) model, the creation process involves accounts, destruction is a transaction that reduces
a transaction that produces the Rupiah Digital an account’s balance through an update world state.
token. This transaction is executed by invoking the Transactions are made by calling the redemption
issuance flow on the Rupiah Digital CorDapps. The function in Rupiah Digital smart contract. The
illustration of the transaction creation process in R3 illustration of the destruction flow in Kaleido
Corda is depicted in Figure 17. Hyperledger Besu is depicted in Figure 20.
Figure 17. Creation on R3 Corda UTXO
Figure 20. Destruction on Kaleido Hyperledger Besu
Figure 24. Kaleido Hyperledger Besu Cluster Configuration of Bank Indonesia’s and Participant’s Node
on AWS Infrastructure
R3 Corda supports the issuance and management block within the DLT network. Kaleido Hyperledger
of digital tokens using the Token SDK, which Besu provides a contract management service that
facilitates tokenization, including the Rupiah Digital facilitates the deployment and customization of
and the digital securities tokens. Each token is open-source smart contract standards on EVMs,
governed by smart contracts that control its status such as ERC20, ERC721, and ERC1400. The ERC20
and data, and manage the MTO process from standard is used as the basis for the Rupiah Digital
issuance to settlement according to specified token, while ERC1400 is utilized for digital securities
business processes. tokens. Kaleido Hyperledger Besu stores all
transaction details (transaction ID, sender, recipient,
R3 Corda does not implement a global ledger.
timestamp, etc.) on-chain in encrypted form,
Instead, its architecture utilizes bilateral/point-to-
ensuring that only authorized parties can access the
point data sharing. In R3 Corda, only approved
transaction details.
parties can join the network, and only relevant
parties have access to transaction information,
Figure 26. Rupiah Digital and Digital Securities Illustration at Wholesale Wallets R3 Corda
implemented using Apache Artemis, a message The mapping of the current message format
broker built on top of the MQ protocol. R3 Corda to the ISO 20022 format was carried out in the
uses Artemis for communication across the DLT PoC and will serve as a reference point for future
network, such as when executing transactions developments. Bank Indonesia chose ISO 20022
between nodes. Similarly, Kaleido Hyperledger because it is a globally recognized communication
Besu utilizes the FireFly Event Bus, a messaging standard for financial transactions, including
system developed by Kaleido, enabling applications payments, remittances, and other transactions that
to receive events from all back-ends connected to support financial inclusion.
FireFly, as illustrated in Figure 27.
For R3 Corda solutions, a parser and file generator
Applications that subscribe to these events use were developed, compatible with the current
protocols such as websocket and webhook. standard format, as illustrated in
Additionally, plugins can connect to other transport Figure 28. The application, built using Java Spring
protocols, including NATS, Kafka, and Java Message Boot, processes BI-RTGS message files and triggers
Services (JMS) Server. an R3 Corda API in response. This application also
generates message files for the emulated BI-RTGS
systems, which are then uploaded into AWS S3.
This approach simulates the existing file messaging
exchanges in BI-RTGS.
The BI-RTGS Bridge was developed to connect websocket. Transaction triggers are executed by
the Kaleido Hyperledger Besu platform with the sending data in standard format through a form on
BI-RTGS system, handling business scenarios of the web app. Subsequently, this data becomes an
issuance and redemption. Data exchange with event sent through websocket to be executed as an
BI-RTGS, using the standard format, is conducted on-chain transaction on the DLT.
through a user interface (web app).
The BI-RTGS Bridge is developed using HTML
and JavaScript, connected to the Firefly service via
R3 Corda
R3 Corda utilized 10 (ten) instances of AWS RDS: 9
(nine) for different on-chain databases and 1 (one)
dedicated to managing 8 (eight) off-chain databases,
as illustrated in Figure 29.
Figure 29. Database Design on R3 Corda
Shared On-Chain
Execution
(DAG)
Shared Global State
Smart Contracts
APPENDIX
F. IMPLEMENTATION DETAILS of the
NETWORK LAYER
1. Illustration of the Use of CENM 3. Signing Service
The Signing Service is responsible for signing
Corda Enterprise Network Manager (CENM) several things: Identity Certificates, Revocation
manages and operates the R3 Corda DLT network. lists, Network Parameters, and Network Maps.
CENM provides a set of functions that can be used R3 recommends storing each key in Hardware
by operators to manage DLT networks, including Security Modules (HSMs) to keep that critical
node configuration, network map management, and security by adding a configuration to the
certificate authority services. Signing Service.
35. Plugins are software components that add specific features or functions to a computer program.
The R3 Corda solution processes queues using a 2. Privacy: Zero Knowledge Proof
First In, First Out (FIFO) approach, meaning that the
earliest transaction in the queue is processed first In the BI-RTGS system, only the transaction parties
once the participant’s balance is sufficient to cover have information about their own transaction
the transaction. On the other hand, the Kaleido data. There are several DLT solutions that can
Hyperledger Besu solution applies a First Available, accommodate this policy. R3 Corda, which is built
First Out (FAFO) method for queue processing, on a need-to-know principle using a directed acyclic
where transactions with sufficient balance are graph (DAG), directly meets the privacy criteria
processed first. set by Bank Indonesia. On the other hand, Kaleido
There are aspects of the queueing mechanism for Hyperledger Besu, which utilizes EVM blockchain
LSM that can be further explored, as illustrated technology, adopts Ethereum’s global state36
in the diagram below. In general, the queue model with a transparent and “trustless” ledger
management process remains consistent with the design. Due to its public blockchain foundation,
PoC implementation results. The criteria applied can EVM inherently provides transparency between
be tailored to the business process, ensuring that participants. Privacy concepts are added on top
transactions meeting these criteria are settled on a of the public blockchain layer of EVM with various
gross basis. The primary difference lies in the queue solutions depending on the specific requirements. In
management approach, which involves a centralized the proof of concept (PoC), in addition to on-chain
queue. transaction data, Confidential UTXO with Notary,
which fundamentally resembles the working method
Figure 37. Queue Management Flow for Further
of R3 Corda, was also explored. Confidential UTXO
comprises off-chain components and a UTXO
Exploration
pattern layered on top of EVM. Integrated privacy
solutions using Zero-Knowledge Proofs (ZKP) will
also be explored in further detail below.
The privacy criteria tested in the PoC are: 1) Only
the sender and receiver should be aware of the
transaction, and 2) Other parties should not be able
to detect the transaction being added to a block
from any particular party. To meet the first criterion,
Kaleido Hyperledger Besu leverages a combination
of Besu nodes processing encrypted data and a
private data manager that sends decrypted data on
a peer-to-peer basis. However, since the blockchain
36. Global state model is a model in which all system components have access to the same set of data.
generates an event for each transaction, the details Validators will validate transactions without knowing
of the encrypted transactions in the block can still the contents of those transactions. To ensure that
be seen through event subscriptions, thereby failing the tokens added comply with the rules, verification
to meet the first criterion in this model. is stored in smart contracts relying on the ZKP
principle.
The privacy model explored in the PoC is
Confidential UTXO utilizing a Notary, which In Figure 38, the fund transfer conducted by the
conceptually aligns with R3 Corda. However, this Bank relies on an additional component, the ZK
model requires an enterprise version of the EVM Prover, to generate components ‘a’ and ‘b’, which are
blockchain and additional processes to ensure the encryption of tokens 1 and 2 respectively, known
transactions occur. The difference between R3 only to the sender. The sender will create new
Corda and Kaleido Hyperledger Besu in this model components that are known only to the receiver and
lies in the connectivity between nodes, which is observer, allowing both parties to know the value of
point-to-point in R3 Corda and distributed in Kaleido the transaction that occurred.
Hyperledger Besu. Both have their respective
With this solution, Party B cannot determine the
strengths and weaknesses.
number of tokens and their respective values used
Confidential UTXO (whether in R3 Corda or Kaleido by Party A. Party B only knows the new tokens
Hyperledger Besu) uses a Notary to validate the received.
balance update of participants in a transaction.
According to experiments conducted by Kaleido,
However, the centralized role of the Notary
this process adds approximately 2 seconds to each
introduces a single point of failure, leading to the
transaction. Additionally, there are components that
proposal of an alternative solution, Zero-Knowledge
need to be added according to the variables that
Proof (ZKP), which has emerged within the EVM
require verification and the parties involved.
community. The ZKP privacy model can meet both
privacy criteria (points 1 and 2) while maintaining An essential component of this solution is the
the multi-validator concept within the blockchain zero-knowledge circuit, implemented through a
network. This model is relatively new and continues combination of mathematical operations. This
to evolve in industry practices. component generates an output in the form of a
hash of the data, which is then processed into a
The ZKP method under consideration still uses
block.
the UTXO structure to store participants’ tokens.
APPENDIX
I. load test
1. Scope and Results of Load Test node, non-validating notary node, and network map
node. Each wholesaler bank cluster consists of 1
The load test results were obtained using the (one) wholesaler node. Due to the non-validating
Locust Dashboard and AWS CloudWatch. Due to nature of the notary, it is not required to validate
the limitations and time constraints of the PoC, the transactions, resulting in improved performance.
load test primarily focused on meeting the threshold Similarly, the Kaleido Hyperledger Besu network
consistent with the typical traffic of wholesale consists of 1 (one) Bank Indonesia node cluster
payment systems, approximately 30 transactions and 3 (three) wholesaler bank clusters. However, in
per second (tps). Both technologies successfully the Kaleido Hyperledger Besu network, the Bank
met this threshold, with R3 Corda recording 37 Indonesia cluster does not include notary or network
tps and Kaleido Hyperledger Besu achieving 39 map nodes. Instead, the wholesaler bank clusters
tps. It is important to note that further exploration serve as validators. Kaleido Hyperledger Besu also
with additional time and resources is necessary employs a combination of off-chain and on-chain
to fully assess the maximum capabilities of both processing when executing logic on the network,
technologies. Additionally, the load test results are which can positively impact performance.
influenced by multiple factors, including the type of
distributed ledger technology (DLT) used, as well as For load testing, the minimum configured AWS
other elements such as middleware, infrastructure cloud infrastructure was utilized, as depicted in
capacity, and configuration settings. Figures 39 and 40. The on-premise configuration
was not explored in the PoC. In the future,
infrastructure configurations should be designed
2. R3 Corda and Kaleido Hyperledger according to specific performance requirements,
Besu Load Configuration when whether on-premise or cloud-based.
Performing Load Test
In the proof of concept (PoC), the R3 Corda network
comprises 1 (one) Bank Indonesia node cluster
and 3 (three) wholesaler bank clusters. The Bank
Indonesia cluster includes observer node, KDR
node, provider node, regulator node, administrator
Both platforms require further optimization to handle to refinement of consensus methods, application
the potential for increased transaction loads. This architectures, and potential scalability solutions
can be done in synergy across various components (such as channels, data sharding, and others).
ranging from network design and hardware specs
Contributor:
Rohadi Triatmono (Executive Director/DPID),
Ryan Rizaldy (Director/DKSP),
Yudi Muliawirawan Sugalih (Deputy Director/DPID)
Writer Team:
Setyo Kuncoro, Bagas Aji Pratama, Kevin Eza Rizky, Timothy Thamrin Andrew H. Sihombing,
Sirria Panah Alam, Dewi Septina Br Pelawi, Bijak Antusias Sufi, Faradilla Azranur, Dian Nofitri,
Annisa Muzdalifa
Technical Team:
Workstream 1 Project Garuda:
Novi Maryaningsih, Kusuma Ayu Kinanti, Nenden Endah Sari, Akhmad Ginulur Pangersa,
Moh. Nuryazidi, Yudha Wastu Prawira, Ivan Devara, Najibullah Ulul Albab, Abhirama Budiawan,
Adinda Diyah Ayu Permata Sari, Ridha Nur Huzaifah, Ruth A Cussoy Intama, Afaf Munawwarah,
Angga Puspa Hapsari, Yoga Aroyandi
BANK INDONESIA
Jalan M.H. Thamrin No.2, Jakarta – 10350, Indonesia