AztecProtocol / aztec-2.0

C++ elliptic curve library
134 stars 37 forks source link

added owner field into encrypted notes #24

Closed zac-williamson closed 4 years ago

zac-williamson commented 4 years ago

A 'note' is now a tuple of:

1:. a 32 bit value 2: a 250-bit secret key 3: an owner public key (grumkin curve)

A note encryption, is a single grumkin group element that is:

value . [1] + secret_key . [2] + compress(owner_pub_key)

Where 'compress' is our pedersen hash function, using generators that are not [1] or [2]. The output of the hash is the entire group element, not just the x-coordinate.

Each component of the note uses a different randomly generated base point. Because of the hiding/binding properties of the Pedersen commitment scheme, the result is a computationally binding and perfectly hiding commitment to both the note value and the note owner.