You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There are currently some approaches to implement zkBridges among different chains. That's a trust-less manner to bring messages from one chain to another, using zkSnark Proofs.
The main idea is to create a Circuit able to verify the signatures of the validators over a batch of block headers, in order to proof the correctness of the State root hashes.
The validity proof together with the last or multiple state roots can be sent to any blockchain capable of verifying zkSnarks.
Once the state root is verified by the destination chain, any standard merkle-proof of the state tree (not zkSnark required) can be sent onchain in order to proof any data stored as a leaf of the state tree.
This mechanism might also be useful for light clients.
In order to facilitate this process, the Tendermint validators should be able to use a Snark friendly elliptic curve, such as bn254 (also available as precompiled within Ethreum).
The block header might also be modified in order to include a Snark friendly merkle root of a merkle tree containing the list of validators for the next block.
The circuit can be written using Gnark (a GoLang framework by Consensys), which supports bn254, Groth16 and Plonk.
The approach seems quite feasible to implement in short time since it does not require big changes on the tendermint protocol and the circuit is not very complex.
We at Vocdoni want to have this feature so we might push its implementation. But collaboration from Tendermint core would be very appreciated. Specially if you find it interesting and want to make it available for any Tendermint based blockchain.
I think this should be possible without breaking backwards compatibility. Thoughts?
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
There are currently some approaches to implement zkBridges among different chains. That's a trust-less manner to bring messages from one chain to another, using zkSnark Proofs.
This Berkeley group implemented a zkBridge between Cosmos and Ethereum: https://rdi.berkeley.edu/zkp/zkBridge/zkBridge.html
The main idea is to create a Circuit able to verify the signatures of the validators over a batch of block headers, in order to proof the correctness of the State root hashes.
The validity proof together with the last or multiple state roots can be sent to any blockchain capable of verifying zkSnarks.
Once the state root is verified by the destination chain, any standard merkle-proof of the state tree (not zkSnark required) can be sent onchain in order to proof any data stored as a leaf of the state tree.
This mechanism might also be useful for light clients.
In order to facilitate this process, the Tendermint validators should be able to use a Snark friendly elliptic curve, such as bn254 (also available as precompiled within Ethreum).
The block header might also be modified in order to include a Snark friendly merkle root of a merkle tree containing the list of validators for the next block.
The circuit can be written using Gnark (a GoLang framework by Consensys), which supports bn254, Groth16 and Plonk.
The approach seems quite feasible to implement in short time since it does not require big changes on the tendermint protocol and the circuit is not very complex.
We at Vocdoni want to have this feature so we might push its implementation. But collaboration from Tendermint core would be very appreciated. Specially if you find it interesting and want to make it available for any Tendermint based blockchain.
I think this should be possible without breaking backwards compatibility. Thoughts?
Thanks.
Beta Was this translation helpful? Give feedback.
All reactions