Balance Commitment Format

Balance Commitment Format - Technical Specification

This document specifies the balance commitment format used for proving value conservation in Roru Protocol transactions.

Balance Proof Architecture

Purpose

Balance commitments prove that:

  • Input values equal output values

  • No value is created or destroyed

  • All values are within valid ranges

  • Transaction is balanced

Commitment Structure

Balance Commitment Format:

pub struct BalanceCommitment {
    pub input_commitment: Commitment,   // Sum of input commitments
    pub output_commitment: Commitment,  // Sum of output commitments
    pub public_value: Option<i64>,      // Public value (if any)
    pub proof: BalanceProof,            // Zero-knowledge proof
}

Commitment Calculation

Input Commitment

Input Commitment Formula:

Where each C_i is a Pedersen commitment to note i.

Implementation:

Output Commitment

Output Commitment Formula:

Implementation:

Balance Equation

Balance Verification:

Where:

  • C_in = sum of input commitments

  • C_out = sum of output commitments

  • C_fee = fee commitment (if applicable)

Zero-Knowledge Balance Proof

Proof Circuit

Balance Circuit:

  • Proves input sum = output sum

  • Hides individual values

  • Verifies range constraints

  • Ensures no overflow

Circuit Constraints:

Proof Generation

Generation Process:

  1. Construct witness

  2. Execute circuit

  3. Generate proof

  4. Verify proof

Generation Code:

Public Values

Public Value Support

Public Value Format:

Public Value Handling

Use Cases:

  • Public fees

  • Public refunds

  • Transparent operations

  • Compliance requirements

Balance with Public Values:

Range Constraints

Value Ranges

Valid Range:

  • Minimum: 0

  • Maximum: 2^64 - 1

  • No negative values (except public)

  • No overflow

Range Proof

Range Proof Circuit:

  • Proves value in range [0, 2^64)

  • Efficient proof size

  • Fast verification

Range Proof Implementation:

Fee Handling

Fee Commitment

Fee Format:

Fee Calculation

Fee Structure:

  • Base fee

  • Size-based fee

  • Priority fee (optional)

  • Total fee

Fee Commitment:

Batch Balance Verification

Batch Operations

Batch Format:

Batch Verification

Verification Process:

  1. Verify individual proofs

  2. Verify batch proof

  3. Check aggregate balance

  4. Validate all constraints

Batch Verification Code:

Homomorphic Properties

Additive Homomorphism

Property:

Application:

  • Efficient balance verification

  • Batch operations

  • Aggregate proofs

Implementation

Homomorphic Addition:

Performance

Efficiency

Operations:

  • Commitment calculation: O(n) where n is number of notes

  • Proof generation: O(1) circuit execution

  • Proof verification: O(1)

  • Batch verification: O(1) per transaction

Sizes:

  • Balance commitment: 64 bytes

  • Balance proof: ~1-2 KB

  • Batch proof: ~2-3 KB

Security

Security Properties

Binding:

  • Cannot change values without changing commitment

  • Cryptographically secure

  • Prevents fraud

Hiding:

  • Values hidden in commitments

  • Zero-knowledge proofs

  • No information leakage

Conclusion

Balance commitments provide:

  • Correctness: Proves value conservation

  • Privacy: Hides individual values

  • Efficiency: Fast verification

  • Flexibility: Supports various scenarios

  • Security: Cryptographic guarantees

Understanding balance commitments is essential for transaction validation.

Last updated