Overview of snarkvm-ledger
stagingsnarkvm-ledger crate provides the ledger implementation and the API required to interact with the Aleo blockchain. It is a core component of the snarkVM ecosystem designed for Aleo-specific blockchain operations.repository·staging·Indexed 22 days ago
https://github.com/provablehq/snarkvmA high-performance Rust library suite providing cryptographic primitives, arithmetic circuits, and ledger implementations optimized for the Aleo blockchain ecosystem. It includes support for pairing-friendly elliptic curves (Edwards BLS12 and BLS12-377), univariate polynomial commitment schemes, and the Varuna preprocessing zkSNARK for R1CS. The suite also provides ledger components for authority, block management, and a Narwhal-style memory pool implementation.
snarkvm-ledger crate provides the ledger implementation and the API required to interact with the Aleo blockchain. It is a core component of the snarkVM ecosystem designed for Aleo-specific blockchain operations.The snarkvm-curves crate provides a tailored set of pairing-friendly elliptic curves used by Aleo for efficient proof generation and verification. It currently supports two main curve types:
Use these curves when building zero-knowledge proofs that require specific field sizes or pairing properties optimized for the Aleo ecosystem.
snarkvm-ledger-test-helpers crate is designed to assist in testing ledger-related functionality by providing utilities to produce data structures derived from the ledger. It is intended for developers building or testing components that interact with the snarkVM ledger state.snarkvm-ledger-narwhal-transmission-id crate provides a mechanism for generating and handling transmission IDs specifically designed for a Narwhal-style memory pool within the snarkVM ledger ecosystem.The Aleo Mainnet Puzzle is a computational challenge designed to incentivize optimizations in zkSNARK synthesis (witness generation). Unlike previous puzzles that focused on MSM or NTT, this puzzle targets the synthesis phase, which is a significant bottleneck in generating proofs for Aleo programs.
snarkvm-ledger-narwhal-transmission crate provides a transmission layer specifically designed for a Narwhal-style memory pool. It is part of the snarkvm ecosystem and is used to handle the movement and propagation of data within a Narwhal-based ledger architecture.snarkvm-ledger-narwhal-batch-certificate crate provides functionality for generating and managing batch certificates specifically designed for a Narwhal-style memory pool. This is used within the context of the snarkVM ledger implementation to handle certificate-based verification for batches of data in the Narwhal mempool architecture.snarkVM is a collection of Rust crates designed for zero-knowledge proof operations and blockchain ledger implementations. Most crates support both std and wasm environments. Key packages include:
snarkvm: A meta-package containing all other crates.snarkvm-algorithms: Core algorithms.snarkvm-circuit: Arithmetic circuits for snarkVM.snarkvm-console: Console functionality.snarkvm-curves: Cryptographic curves.snarkvm-fields: Arithmetic fields.snarkvm-ledger: Ledger implementation for the Aleo blockchain.snarkvm-parameters: Parameter management.snarkvm-synthesizer: Program synthesizer.snarkvm-utilities: Helper functions.snarkvm-wasm: WASM bindings.The varuna module implements a preprocessing zkSNARK for R1CS (Rank-1 Constraint System) using a universal and updatable Structured Reference String (SRS).
Key characteristics:
The implementation combines an algebraic holographic proof with a polynomial commitment scheme to achieve these properties.
Aleo utilizes a specific set of pairing-friendly elliptic curves optimized for efficient zero-knowledge proof generation and verification. The two primary curve types used are Edwards BLS12 and BLS12-377.
Key characteristics include:
|
| | Edwards BLS12 | BLS12-377 |
|:------------------- |:---------------:|:------------------:|
| Curve Type | Twisted Edwards | Barreto-Lynn-Scott |
| Scalar Field Size | 251 bits | 253 bits |
| Base Field Size | 253 bits | 377 bits |
| G1 Compressed Size* | 32 bytes | 48 bytes |
| G2 Compressed Size* | N/A | 96 bytes |
* rounded to multiples of 8 bytes.snarkvm-ledger-narwhal-batch-header crate provides the implementation for batch headers used in a Narwhal-style memory pool. It is designed to support ledger operations within the snarkVM ecosystem.The snarkvm-algorithms/polycommit module implements univariate polynomial commitment schemes. These cryptographic primitives allow a party to commit to a univariate polynomial and subsequently reveal specific evaluations of that polynomial accompanied by proofs of correctness.
Key features of this library include:
The implementations aim to satisfy the properties of succinctness, extractability, and hiding.