begin
This action initiates a sequence of step actions.
Parameters
- : A proof bundle validating all zactions within this EOSIO/Antelope transaction
- : A sequence of EOSIO/Antelope actions to be executed within this EOSIO/Antelope transaction
- : A sequence of encrypted UTXO ciphertexts to be added to the Transmitted UTXO Ciphertext List as part of the In-band secret distribution of UTXOs
Flow
The following steps specify the flow of 'begin'.
Step 0
The 'begin' action is called as part of an EOSIO/Antelope transaction.
Step 1
The currently executing EOSIO/Antelope transaction is scanned by looping through all actions contained in this transaction. The following checks are performed:
- There is only one 'begin' action within the entire EOSIO/Antelope transaction
- The number of 'step' actions within the transaction equals the number of actions contained in the sequence passed as parameter
- The sequence of 'step' actions is continuous and succeed the 'begin' action
Step 2
Loop through all actions within the sequence and perform the following steps:
- Is this action whitelisted by the ZEOS smart contract? If : cancel execution
- Does this action depend on a sequence of zactions? If :
- Loop through all zactions of this action and collect public inputs by adding them to the set of public inputs
Step 3
Verify the Halo2 proof bundle with the set of public inputs collected in the previous step. If proof verification fails, cancel execution.
Step 4
Check if the number of encrypted UTXO ciphertexts in matches the number of expected UTXO ciphertexts based on the zactions in this transaction. If so, add the sequence to the global set of Transmitted UTXO Ciphertext List.
Step 5
Add all UTXO commitments and contained in the set of public inputs which are not related to authenticator tokens to the Commitment Tree. Add the new root of the tree to the Commitment Tree Root Set.
Step 6
Copy the sequence of EOSIO/Antelope actions into the ZEOS smart contract's transaction buffer. This is a singleton which buffers the sequence of actions, \mathsf{tx}, for actual execution in the upcoming 'step' actions.