Resource¶
Resources are the atomic units of state in Anoma.
Data structure¶
Define a resource \(R\) as a seven-tuple \((F, F, F, F, F, F, 0 | 1)\) with fields named as follows:
-
\(R_{logic\_hash}\) of type \(F\)
-
\(R_{label\_hash}\) of type \(F\)
-
\(R_{quantity}\) of type \(F\)
-
\(R_{value\_hash}\) of type \(F\)
-
\(R_{nonce}\) of type \(F\)
-
\(R_{nc}\) of type \(F\) ("nullifier commitment")
-
\(R_{ephemerality}\) of type \({ 0_P | 1_P }\)
Resources are constant-size (\(6F + 1\)).
Computed fields¶
Resources with \(R_{ephemerality} = 0_P\) are known as ephemeral, while resources with \(R_{ephemerality} = 1_P\) are known as persistent.
Define the commitment of a resource \(R_{commitment}\) as \(hash(R)\).
Define the address of a resource \(R_{address}\) as \(R_{commitment}\).
Todo
Same as the commitment for now.
Define the nullifier of a resource \(R_{nullifier}\) as \(n\) such that \(hash(n) = R_{nc}\).
Define the kind of a resource \(R_{kind}\) as \(hash(R_{logic}, R_{label})\).
Define the delta of a resource \(R_{delta}\) as the two-tuple \((R_{kind}, R_{quantity})\).