Signing a Transaction
To prove an input account ownership
Last updated
To prove an input account ownership
Last updated
Transactions in zkBob are signed by the spending key . To verify a transaction signature the prover should use an intermediate key A.
A client application should sign a 'composite' transaction hash instead of full transaction data. The transaction hash is calculated from the input and output hashes:
where
is a Poseidon multi-hash (sponged) routine in the different modes
is an input account
is an input notes,
- is a transaction commitment hash (Merkle subtree root). It depends on transaction output account and notes.
Next, a client uses the account spending key to sign a transaction hash :
, where is the 256-bit hash function
, (moving and to the JubJub Elliptic curve field)
The output signature will be sent with a intermediate key
To verify a transaction signature a validator should perform the following computations: