Pedersen Commitments - GeniusVentures/GeniusTokens GitHub Wiki

Pedersen Commitments Pairs for Blinding Factors and Values

This document provides an overview of an advanced cryptographic concept involving two types of Pedersen commitments that are paired: PCBF (Pedersen Commitment for Blinding Factors) and PCValue (Pedersen Commitment for Values). It explores the mathematical foundation and practical applications of these paired commitments in cryptographic systems, including the use of a zero-based blinding factor in the PCBF during operations on PCValue.

1. Pedersen Commitments

Pedersen commitments are a cryptographic tool used for committing to a chosen value while keeping it hidden, with the ability to reveal the committed value later. They are widely used in various cryptographic protocols to ensure data integrity and confidentiality.

1.1 PCBF (Pedersen Commitment for Blinding Factors)

The PCBF is a type of Pedersen commitment specifically designed to securely handle blinding factors. Blinding factors are random values used in cryptographic commitments to ensure that the actual value remains hidden.

The mathematical representation of a PCBF commitment is expressed as:

where:

  • and are the public generators of the group is the blinding factor is the value to be committed

1.2 PCValue (Pedersen Commitment for Values)

The PCValue commitment is used to securely commit to actual values such as account balances or transaction amounts. Like PCBF, it utilizes a blinding factor to maintain the confidentiality of the value.

The mathematical representation of a PCValue commitment is expressed as:

where:

  • and are the public generators of the group is the value to be committed is the blinding factor

2. Integration of PCBF and PCValue in Cryptographic Systems

In advanced cryptographic systems, PCBF and PCValue work together to enhance security. While PCValue commitments secure actual values, PCBF commitments manage the blinding factors, adding an additional layer of security.

2.1 Mathematical Foundation

The mathematical foundation of Pedersen commitments relies on the properties of cyclic groups and modular arithmetic. Both PCBF and PCValue leverage these principles to secure data.

2.2 Updating the PCValue Commitment

Updating the PCValue commitment involves modifying its value while maintaining the blinding factor associated with the original PCBF. This process differs from the simple addition of and .

2.2.1 Updating the Blinding Factor

To update the blinding factor, the following steps are performed:

  • Generate a random value: Choose a random value to act as the new blinding factor component.

  • Create a PCBF with zero blinding factor: Create a temporary PCBF commitment using as the blinding factor and zero as the value.

  • Update the PCBF containing : Use Pedersen's AddMod operation to add the temporary PCBF commitment to the original PCBF containing . This results in a modified PCBF with the updated blinding factor .

The diagram depicts the process of updating the blinding factor values that will be used in a PCValue commitment using a zero-based blinding factor. It involves generating a random value , creating a temporary PCBF with and zero as the blinding factor, adding the temporary PCBF to the original PCBF containing , and updating the PCBF value to , which is the new blinding factor for the updated PCValue commitment value , creating a temporary PCBF with and zero as the blinding factor, adding the temporary PCBF to the original PCBF containing , and updating the PCBF value to , which is the new blinding factor for the updated PCValue commitment value

2.2.2 Updating the Value

Once the blinding factor is updated, the PCValue commitment can be updated accordingly:

  • Calculate the new value: Determine the updated value by adding the original value to the new value .

  • Create the updated PCValue commitment: Use the blinding factor and the new value to create the updated PCValue commitment . is added to with the Pedersen addMod function.

2.3 Opening the Updated Commitment

To retrieve the stored value from the updated PCValue commitment, the original creator, who knows , can use it along with to validate the commitment and decode the value.

  • Decode the blinding factor: Use and to decode the updated blinding factor .

  • Calculate the value: Once is known, use it to calculate the stored value v from and .

Mathematical Equations

The mathematical equations for updating the PCValue commitment are summarized below:

  • Updating Blinding Factor:

  • Updating Value:

  • Opening Updated Commitment:

2.4 Enhanced Blinding Using Key Derivation Function and Ethereum Public Keys

To further augment the privacy and security aspects of the PCValue commitments, an advanced technique involving a Key Derivation Function (KDF) and dual encryption with Ethereum public keys has been introduced. This method provides an additional layer of security, particularly pertinent in the context of blockchain technology and cryptocurrency transactions.

2.4.1 Key Derivation Function (KDF)

A KDF is employed to create a set of sophisticated encryption keys from an initial secret value. This secret value, fundamental in the encryption process, yields robust keys crucial for maintaining transaction privacy and security.

2.4.2 Dual Encryption Process

Enhancing the blinding of PCValue commitments involves encrypting the user's Ethereum wallet address, concatenated with a secret value from the KDF. This concatenated string undergoes a two-step encryption process:

  • First Layer of Encryption: Utilizing the user's public Ethereum key, the first layer of encryption ensures that the data is intrinsically linked to the user's identity within the Ethereum network.

  • Second Layer of Encryption: To bolster security, the same string is also encrypted using a backend or host’s public Ethereum key. This dual-layer approach significantly enhances the commitment's resilience against unauthorized access and potential security threats.

2.4.3 Application in Initial Blinding Value

This encrypted value serves as the initial blinding value for the PCValue commitment. By starting with an account balance of zero, it not only secures the commitment but also preserves the confidentiality of the account balance from the outset.

2.4.4 Consistency with PCBF

In line with ensuring comprehensive security, the same initial blinding value is employed in the initial PCBF and its commitment value. This harmonization between PCValue and PCBF guarantees that both the blinding factors and the values they safeguard are enveloped within this enhanced privacy framework.

Conclusion

Pedersen commitments, specifically the paired use of PCBF (Pedersen Commitment for Blinding Factors) and PCValue (Pedersen Commitment for Values), stand as a powerful cryptographic tool in the realm of data security and confidentiality. These commitments allow for secure and verifiable commitment to values while ensuring that only authorized parties can reveal the committed values.

The integration of PCBF and PCValue in cryptographic systems has been further advanced with the introduction of enhanced blinding techniques. The use of a Key Derivation Function (KDF) combined with dual encryption employing Ethereum public keys significantly elevates the security and privacy of these commitments. This innovative approach ensures that both the values (such as account balances) and the blinding factors (which protect these values) are enveloped in a robust layer of privacy.

By encrypting the concatenated string of the user's Ethereum wallet address and a secret KDF value with both the user’s and a backend/host’s public keys, we achieve a dual-layered security mechanism. This not only protects the PCValue commitments from unauthorized access but also maintains the confidentiality of account balances from the onset. The consistency of this enhanced blinding technique across both PCValue and PCBF further strengthens the overall cryptographic system.

In conclusion, the use of paired PCBF and PCValue commitments, complemented with advanced blinding techniques involving KDF and Ethereum public keys, showcases a significant stride in cryptographic innovation. This approach not only fortifies the privacy and security of blockchain applications but also sets a new standard for confidentiality in various cryptographic protocols, including zero-knowledge proofs and anonymous credentials.