Skip to content

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 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})\).