The following paragraph complements finding ref↗ and describes the equation that implements one of the two ZK arguments involved in withdrawal transactions. This ZK argument asserts that the plaintext value of a given ciphertext (consisting of a Pedersen commitment and decryption handle) is the same as that of a different Pedersen commitment.
Prerequisite definitions:
is the point at infinity
is the Ristretto base point
is the auxiliary point used for construction of the Pedersen commitment scheme
public keys are represented as
legitimate public keys are derived from a secret as , so and
rogue public keys could have a nonzero term
encrypted values are represented as a tuple , where
is the plaintext
is an arbitrary (normally random) scalar
is the public key of the recipient of the ciphertext
The equality argument is constructed, referring to
the legitimate public key
this is the pubkey associated with the confidential account
might not be zero when leveraging issue ref↗
the rogue public key
this public key can differ from the legitimate public key when leveraging issue ref↗
the encrypted balance
the Pedersen commitment
The values provided must satisfy the following relationship:
The following additional values have been introduced:
witness variables and
the relationship must hold for any possible value of these variables
scalars , and
these scalars are completely free and can be set arbitrarily
points , for
these points cannot depend on the value of any witness variable
The relationship can be expanded by expressing all the points as a sum of their two components and :
We can set up the following system of equations from the two scalar components of the relationship:
The system can be manipulated to obtain the following,
which is satisfied if the following system of equations is satisfied: