This document provides a comprehensive technical overview of Pedersen commitments used in the Roru Protocol.
Overview
What Are Pedersen Commitments
Pedersen commitments are cryptographic commitments that allow committing to a value while keeping it hidden, with the ability to prove properties about the committed value.
Properties
Hiding: The commitment doesn't reveal the committed value.
Binding: Cannot change the committed value without changing the commitment.
Additive Homomorphism: Can add commitments to add values.
Mathematical Foundation
Commitment Formula
Basic Formula:
C = v*G + r*H
Where:
C = Commitment (point on curve)
v = Value (scalar)
r = Randomness (scalar)
G, H = Base points (on elliptic curve)
Curve
Curve Used: BLS12-381
Properties:
128-bit security
Efficient operations
Pairing-friendly
Implementation
Commitment Generation
Code:
Commitment Verification
Verification:
Verify point is on curve
Verify commitment format
Cannot verify value without opening
Security Properties
Hiding Property
Definition: Given commitment C, computationally infeasible to determine v.
Security: Based on discrete logarithm problem.
Binding Property
Definition: Cannot find two different (v, r) pairs producing same C.