To prevent the same proof from being submitted to more than one chain, we should include the chain id in the app circuit public inputs. So, when the user creates a ZKP for their tx, they just include the intended chain id as part of the public inputs. This value should then be validated by the kernel circuit.
TBD: Is it enough that the kernel circuit validates it? And we have a different kernel circuit for each chain, with the chain id hardcoded?
Raised by @LeilaWang in #656 (comment).
To prevent the same proof from being submitted to more than one chain, we should include the chain id in the app circuit public inputs. So, when the user creates a ZKP for their tx, they just include the intended chain id as part of the public inputs. This value should then be validated by the kernel circuit.
TBD: Is it enough that the kernel circuit validates it? And we have a different kernel circuit for each chain, with the chain id hardcoded?
Raised by @LeilaWang in #656 (comment).