Open
Description
This is for tracking the work to fully integrate the new Qurrency protocol (add link here once the paper is published) to Zeto with a new token implementation.
The name of the new token is zeto_anon_nullifier_qurrency
. It's based on zeto_anon_nullifier
, enhanced with a post-quantum encryption using the public key of the audit authority.
Remaining work items:
- work out the onboarding process of the audit authority, that may look like the following
- generate the Kyber key pair
- put the public key inside the circuit, hardcoded to avoid extra cost of using public input signals
- register the public key
- implement the AES-256 encryption portion of the ML-KEM scheme on the message, which is defined as having the following parts:
- input owner public key (x, y): 2
- input secrets (value, salt) for each input UTXOs: 2 * nInputs
- output owner public keys (x, y) for each output: 2 * nOutputs
- output secrets (value, salt) for each output UTXOs: 2 * nOutputs
- add test code to perform end to end transaction flows
- sender:
- generate a random AES encryption key and use the auditor's public key to generate its encapsulation
- encrypt the secrets in AES, and output ciphertext
ct-1
- feed the AES key to the circuit to generate the ciphertext
ct-2
- add
ct-1
andct-2
to the transaction payload
- auditor:
- get the
ct-2
from the transaction input, and use the Kyber secret key to decrypt to recover the AES key - get the
ct-1
from the transaction input, and decrypt using the recovered AES key
- get the
- sender:
- add Qurrency to the remaining token operations (mint, deposit, withdraw, transferLocked)
Metadata
Metadata
Assignees
Labels
No labels