Transaction Tree
Atomic batched state updates. Roughly analogous to the blocks committed to a blockchain
Last updated
Atomic batched state updates. Roughly analogous to the blocks committed to a blockchain
Last updated
The Account/ State Tree section goes in depth on the operation of merkle trees; the concepts are the same here and will be presented in a more abridged format where appropriate. Further, the use of the transaction tree in withdrawals is detailed in depth in Layer 2 Withdrawals to Layer 1.
Transactions are the method of state update in RollupNC. Their application will be discussed in the later sections - for now, we care purely about their implementation within merkle trees.
Transaction trees are like blocks to the L2. Each state commitment that is not a deposit is committed on-chain. The ability to make a withdrawal or prove any action on the L2 is predicated on the inclusion of individual transactions in a transaction tree. Beyond this, there are no special tricks
The component is responsible for hashing transaction data into the leaf inserted into a transaction tree:
The sequencer is tasked with the ingestion of proposed transactions into a transaction tree whose state transition is proven to be valid. Here we can see a (poorly optimized for readability) example of the process of :
This relies on the method aforementioned in the Account/ State Tree section on account trees in Solidity.
In , each loop of verifies the inclusion of one transaction, then uses the parameters contained within that transaction to inform to computation of the next state root. This is shown more in Layer 2 Transacting.
is the exact component used to prove the inclusion of a transaction leaf within a transaction tree (abridged without eddsa):