OpenCBDC is an open source project to engage in collaborative technical research to understand the space of designs for potential central bank digital currencies (CBDC). The first phase of Project Hamilton with the Federal Reserve Bank of Boston led to the release of OpenCBDC-tx, a research codebase under a larger open source project called OpenCBDC.
The goal of this global open source codebase is to help central bankers, policymakers, academics, and others make decisions on how this technology might be developed while promoting neutral, collaborative global research. Through OpenCBDC we also hope to engage a global community in research and development to learn how digital currency systems can be designed to best advance privacy, user agency, innovation, and financial equity.
Central Bank Collaborations
The DCI is engaged in collaborative research projects with central banks around the world to explore the technical feasibility of CBDC and to help policymakers understand the implications and tradeoffs of various design choices.
Learn more about our collaborators at the Federal Reserve Bank of Boston and about Project Hamilton, a multi-year, collaborative research project between the MIT Digital Currency Initiative and the Federal Reserve Bank of Boston. The goal of Project Hamilton is to investigate the technical feasibility of a general purpose CBDC that could support a payment economy at the scale of the United States, as well as to gain a hands-on understanding of a hypothetical CBDC’s technical challenges, opportunities, risks, and tradeoffs.
Learn more about our collaboration with the Bank of England, a twelve-month exploratory research project that supports and builds on DCI’s ongoing research into CBDC, while also contributing to the Bank of England’s wider research and exploration of central bank digital currencies.
Learn more about our collaboration with the Bank of Canada, a twelve-month research project that investigating and experimenting with potential CBDC technology designs and approaches, and evaluate key tradeoffs, opportunities, and risks.
Contributing to OpenCBDC
We’re actively seeking contributions to our open-source codebase, as well as new working group members.
OpenCBDC is an open source project and we welcome pull requests to the code and other contributions. Collaborations in OpenCBDC will be structured around open technical working groups. Each themed working group (e.g. Privacy, Architecture, Interoperability, User Experience, etc.) will advance research with technologists, user researchers, central bankers, private sector engineers, and academics (including students). We’re actively seeking contributions to the open-source codebase as well as new working group members.
To learn more or to get involved, please engage with the project on Github or Zulip, or reach out directly to our team by filling out our OpenCBDC interest form to receive monthly notifications from the OpenCBDC team.
OpenCBDC Working Groups
Central banks have traditionally played an integral role in supporting safe, low-cost, and accessible payment systems. With the rise of digital payments, cryptocurrency, and various payment innovations enabled by blockchain technology, the world is rethinking how money is (and should be) designed. Central banks are currently considering the potential utility of Central Bank Digital Currencies (CBDCs). Some central banks have already started issuing CBDCs, and many others have begun experiments. This project is an opportunity for programmers worldwide to help tackle the most pressing problems and answer the most difficult questions surrounding the development and implementation of CBDCs.
Working Group Meetings
We recently hosted a technical webinar geared towards developers to explain what we built. A recording and a Q&A can be found here. You can also find a relevant talk from our collaborator at the Federal Reserve Bank of Boston Jim Cunha here.
OpenCBDC-tx is a modular, extensible transaction processor for a hypothetical CBDC that implements two architectures. The first, the atomizer, can process 170,000 transactions per second. The second, using two-phase commit, can process up to 1.7M transactions per second.
- A central transaction processor run by a trusted operator (such as a Central Bank)
- Digital signatures to authorize payments using UTXOs (unspent funds are stored as cryptographic hashes)
- A modular design supporting experimentation with models where intermediaries could take on a variety of different roles and serve different purposes, including non-custodial or self-custody
- Currently, the design does not directly support intermediaries, fees, or identities outside of public keys, however, we are interested in exploring and benchmarking new features.
- Decoupling transaction validation and execution
- Secure and flexible transaction formats
- Efficiency of transaction execution
Two Different Architectures: Atomizer and 2 Phase Commit