Project

OpenCBDC

Copyright

MIT DCI

MIT DCI

Research

Technical Paper | Executive Summary | GitHub

About

Introduction

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.

frequently asked questions

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.

Technical Specifications

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.

Core Features

  • 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.

Key Concepts

  • Decoupling transaction validation and execution
  • Secure and flexible transaction formats
  • Efficiency of transaction execution

Two Different Architectures: Atomizer and 2 Phase Commit

Copyright

https://static1.squarespace.com/static/59aae5e9a803bb10bedeb03e/t/61fc25f91a0df9037488eb7d/1643914745989/Hamilton.Whitepaper-2022-02-02-FINAL2.pdf

Copyright

https://static1.squarespace.com/static/59aae5e9a803bb10bedeb03e/t/61fc25f91a0df9037488eb7d/1643914745989/Hamilton.Whitepaper-2022-02-02-FINAL2.pdf

Copyright

MIT Digital Currency Initiative

Privacy and Flexibility

Our design can support myriad access models without mandating specific policy choices. For example, our system could support, among other designs, models in which:

  • Users fully self-custody their funds and receive payments without requiring an account with anyone (even the central transaction processor);
  • Users engage an intermediary only to obtain authorization for high-value payments, while low-value payments might not require detailed identity checks; 
  • Users engage an intermediary to back up their credentials and payment information to prevent data loss; or
  • Users seek help from intermediaries simply to back up their own keys.

Please note that this list is not at all exhaustive, and is merely intended to be illustrative of the types of designs our system could support. It is also not intended to be a commentary on the viability or likelihood of the eventual adoption of these choices.

Get Involved

opencbdc@mit.edu - For all general inquiries re: OpenCBDC or Project Hamilton

github - Github (we are seeking contributors!)

dci-press@mit.edu - Email this address for press inquiries and speaking requests