Anoma Resource Machine Explainer in Long Form

Yes, that’s right: the predicates of I_0 and I_1 would not allow multiple $A$s to be included in a single action, and commitments/nullifiers cannot be duplicated across actions (to duplicate them would make the transaction invalid).

Yes. This global check is “always present” (not controlled by resource logics).

This is similar to the lines I’m thinking along, but I think we may need to expose a somewhat more sophisticated interface, because it isn’t necessarily clear how to combine constraints: if a resource is used once with the flag set to “exclusive” and once with the flag set to “read-only”, should the transaction succeed or fail? Maybe what we want to prevent is multiple creations/consumptions with the “exclusive” flag. I think that it’s hard to make this decision without a clearer high-level semantics that we want to be able to use this low-level check to implement.

1 Like