- Notifications
You must be signed in to change notification settings - Fork4
applied-crypto/cbdc
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This repository is work in progress
This prototype implements a subset of the features of the CBDC proposal byMatthias Babel,Alexander Bechtel,Jonas Gross,Benjamin Schellinger, andJohannes Sedlmeir.
So far, the prototype implements the Merkle-tree for storing the commitments, a list for the nullifiers, and the basics foraccount and transaction management. In addition, it supports fully private transactions while respectingaccount transaction limits, ensuring compliance by design.
This is achieved by implementing generic zero-knowledge proofs (zk-SNARKs) using the iden3 librariescircom andsnarkjs.
For information on how zero-knowledge proofs work,https://github.com/matter-labs/awesome-zero-knowledge-proofs is anawesome source of material.
The academic paper is availablehere.
- SSI-based onboarding with a digital ID
- Semi-private transactions
- Fully transparent transactions
- 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