Skip to main content

Nullifiers

The nullifier is a unique value calculated on the transaction input account. It is included in the public transaction portion. The nullifier depends on the input account and the intermediate key η\eta:

Nullifier(Accin)=Hashnullifier(Hashaccount(Accin),η)Nullifier(Acc^\text{in}) = Hash_{nullifier}(Hash_{account}(Acc^\text{in}), \eta)

where HashnullifierHash_{nullifier} and HashaccountHash_{account} is a PoseidonPoseidon hash functions

There is an archive on the contract side which holds nullifiers. In the case of account double-spending the nullifiers for the same accounts will equal one another. In this case the contract will reject a second transaction with the repeated nullifier value.