So, we dropped our plan for a two-way peg that minimizes trust using BitVM yesterday. The team behind BitVM has been brainstorming ways to build these two-way pegs, and we came up with a solid design.
Basically, it’s a transaction graph that helps manage peg-ins and peg-outs linked to the BitVM UTXO. We took a lot of inspiration from Ark's connector outputs for this.
If you wanna dive into the nitty-gritty details, check this out: Writeup. The code is still a work in progress and you can find it on Github.
The main point of BitVM here revolves around a ZKP (Groth16) verifier, which we actually made open-source just last week: Github.
We also have a light client proof for our ZK Rollup (named Citrea, it's using BTC as the native token, no extras). This proof is just a combined proof of several batch ZK proofs. We then verify this proof again in another circuit that checks withdrawal SPVs against the withdrawal merkle root from that proof. The BitVM ZK Verifier takes care of verifying this proof.
Setting up a two-way peg to another sidechain or L2 should be pretty straightforward since all you’d need to do is swap out the light client proof with a different one. Just keep in mind that security factors may vary between light clients.
By the way, the BitVM ZK Verifier and Clementine are still work in progress. They’ll need a full BitVM implementation to run completely on-chain.
Trust-Minimized Two-Way Peg Using BitVM
0 replies 178 views
Related topics
- Using Cold Electrum with Core in watch mode 11
- Bitcoin Core displaying coins (UTXOs) in a new tab 13
- Are you in favor of BIP-110? Let's get a Bitcoin poll going. 0
- Erlay seems to have some issues here’s a better proposal for a bitcoin protocol without invites 3
- New Optional Hourglass Implementation is Live 3
- Ways to earn some sats by contributing to bitcoin core development 5