项目作者: applied-crypto

项目描述 :
A Prototype for a Central Bank Digital Currency with Support for Cash-Like Privacy
高级语言: JavaScript
项目地址: git://github.com/applied-crypto/cbdc.git
创建时间: 2021-07-12T10:24:04Z
项目社区:https://github.com/applied-crypto/cbdc

开源协议:

下载


This repository is work in progress

A Prototype for a Central Bank Digital Currency with Support for Cash-Like Privacy

This prototype implements a subset of the features of the CBDC proposal by Matthias Babel, Alexander Bechtel, Jonas Gross, Benjamin Schellinger, and Johannes Sedlmeir.

So far, the prototype implements the Merkle-tree for storing the commitments, a list for the nullifiers, and the basics for
account and transaction management. In addition, it supports fully private transactions while respecting
account transaction limits, ensuring compliance by design.

This is achieved by implementing generic zero-knowledge proofs (zk-SNARKs) using the iden3 libraries circom and snarkjs.

For information on how zero-knowledge proofs work, https://github.com/matter-labs/awesome-zero-knowledge-proofs is an awesome source of material.

The academic paper is available here.

Roadmap

  • SSI-based onboarding with a digital ID
  • Semi-private transactions
  • Fully transparent transactions

Install

  • Install nodejs(@v16.0.0) and npm(@7.10.0) (for instructions, see, e.g., https://heynode.com/tutorial/install-nodejs-locally-nvm/)
  • Clone this repository including submodules: git clone https://github.com/applied-crypto/cbdc --recurse-submodules
  • Go to the cbdc directory: cd cbdc/cbdc
  • Install dependencies: npm install
  • Run an example transaction: node test.js