Open Simple Token

How can I access auxiliary's state root on origin?


Auxiliary’s state root is not part of a meta-block. You won’t even find a block hash of auxiliary in the meta-block’s transition object. So how is it possible to do a Merkle proof against auxiliary’s state root on origin?

When the validators commit a meta-block on origin, they do so by validating the vote messages that led to the finalization of the source block s of the votes \left\lt\tilde{T}, s, t, h_s, h_t\right\gt. Once a +\frac{2}{3} majority of the weight is validated, the meta-block is regarded as committed.

Since the validation happens on the origin chain, origin can store the blockhash s of the superlink that finalizes it. In order to do a Merkle proof of state, you can

  1. present the block header which contains the state root as pre-image to the blockhash and then
  2. do a Merkle proof of the storage root against the state root and then
  3. do a Merkle proof of a storage value against the storage root.

It is possible to do all steps off-chain or in a single transaction or cache intermediary results.