diff --git a/docs/liquid/liquid-part1.md b/docs/liquid/liquid-part1.md index b9ab557..287b948 100644 --- a/docs/liquid/liquid-part1.md +++ b/docs/liquid/liquid-part1.md @@ -9,7 +9,7 @@ This is a multipart DeepDive that will focus on the [Liquid Sidechain](https://l Liquid is a federated BTC sidechain. The federation which controls the network are known as 'Functionaries'. Currently, there are 15 such Functionaries[^1] who are geographically dispered to help isolate the network from both physical and regulatory disruption. -Block signing happens in a round-robin style arrangement - consensus requires 11-of-15 to be available. +These Functionaries are who does the Block signing, which happens in a round-robin style arrangement - consensus requires 11-of-15 to be available. A unique aspect of this federation is that functioinary membership is dynamic - using a protocol known as *DynaFed* - this allows members to be rotated out/in depending on circumstance. The signing method the functionaries use is known as [ROAST](https://eprint.iacr.org/2022/550.pdf) (Robust Asynchronous Schnorr Threshold Signatures). As stated: @@ -22,7 +22,7 @@ A unique aspect of this federation is that functioinary membership is dynamic - responding at all), the 67 honest signers can successfully produce a signature within a few seconds." -The main benefit of ROAST is that signing becomes less problematic with a large number of federation members. Obviously this along with the inclusion of *DynaFed* (a recent addition to the network), seems to indicate that they plan to increase the total federation functionaries in the future. +The main benefit of ROAST is that signing becomes less problematic with a large number of federation members. Obviously this along with the inclusion of *DynaFed* (a recent addition to the network), seems to indicate that they plan to increase the total federation functionaries in the future[]. **Functionaries Sign, not Mine** @@ -105,6 +105,27 @@ Now let's peg-in some bitcoin in order to receive L-BTC within our Liquid wallet * Copy the BTC transaction ID and save to variable - `$ export B_TRANSID="bb1d0903XXXXXXXXXXXXXXXXXXXXXXXXXXX"` * Wait for the BTC transaction to confirm[^4] +* On your **BITCOIN** node, run the following command + - `$ sudo ./scripts/app compose bitcoin exec bitcoind bitcoin-cli getrawtransaction $B_TRANSID` + + 020000000173f50.... +* Save that output to bash variable + - `$ export B_RAWTRANS='020000000173f50....` +* On your **BITCOIN** node, get output proof + - `$ sudo ./scripts/app compose bitcoin exec bitcoind bitcoin-cli gettxoutproof '[""]'` + + 00406426ea774aff7437de482c73f2ac8...... +* Save output proof in bash variable + - `$ export B_OUTPROOF='00406426ea774aff7437de482c73f2ac8....'` +* Now back on the elements node, we can claim the L-BTC + - `$ elements/bin/elements-cli -rpcuser=$E_RPCUSER -rpcpassword=$E_RPCPASS claimpegin $B_RAWTRANS $B_OUTPROOF $E_CLAIMSCR` +* Issue a getwallet info on Elements and you should see an unconfirmed balance + - `$ elements/bin/elements-cli -rpcuser=$E_RPCUSER -rpcpassword=$E_RPCPASS getwalletinfo` + + "unconfirmed_balance": { + "bitcoin": 0.00149952 + }, + **Footnotes:**