#circuit #model #transaction #phoenix #notes #privacy-preserving #sender

phoenix-circuits

Circuit definitions for Phoenix, a privacy-preserving ZKP-based transaction model

12 releases (4 breaking)

new 0.5.0 Dec 18, 2024
0.4.0 Aug 14, 2024
0.3.0 Aug 14, 2024
0.2.1 Jul 3, 2024
0.1.0 May 22, 2024

#10 in #phoenix

Download history 29/week @ 2024-08-27 267/week @ 2024-09-03 205/week @ 2024-09-10 51/week @ 2024-09-17 182/week @ 2024-09-24 187/week @ 2024-10-01 203/week @ 2024-10-08 274/week @ 2024-10-15 168/week @ 2024-10-22 111/week @ 2024-10-29 116/week @ 2024-11-05 102/week @ 2024-11-12 103/week @ 2024-11-19 93/week @ 2024-11-26 61/week @ 2024-12-03 225/week @ 2024-12-10

505 downloads per month

MPL-2.0 license

79KB
1.5K SLoC

Phoenix Circuits

Phoenix is the transaction model used by Dusk, an open-source public blockchain with a UTXO-based architecture that allows for the execution of obfuscated transactions and confidential smart contracts.

This library contains the implementation of the Phoenix-circuits, to prove, in zero-knowledge, that the following conditions hold true:

  1. Membership: every note that is about to be spent is included in the Merkle tree of notes.
  2. Ownership: the sender holds the note secret key for every note that is about to be spent.
  3. Nullification: the nullifier is calculated correctly.
  4. Minting: the value commitment for the newly minted notes are computed correctly.
  5. Balance integrity: the sum of the values of all spent notes is equal to the sum of the values of all minted notes + the gas fee + a deposit, where a deposit refers to funds being transfered to a contract.

lib.rs:

Phoenix's circuits and gadgets.

Dependencies

~4–5.5MB
~106K SLoC