Oddbean new post about | logout
 Confidential Liquid Peg-in

Elements Core v23.2.2 introduced a vsize discount for confidential transactions, making Liquid payments with blinded amounts as cheap or cheaper than explicit ones. However, blinding a single peg-in claim isn’t very private since the linked Bitcoin UTXO shows the explicit amount. To achieve true confidentiality, multiple claims should be mixed into one transaction, similar to CoinJoin.

PSWeb v1.7.0 implemented “ClaimJoin,” allowing nodes to join peg-in claims anonymously. Nodes send invitations to join, and communication is encrypted and relayed through other nodes. When all peg-ins mature, the initiator prepares a large PSET with inputs and outputs shuffled randomly, which participants blind and sign. Up to 10 claims can be joined, but the process can take up to 34 hours.

If any participant becomes unresponsive, they are kicked out, and if the initiator fails, participants revert to standard claims. As a last resort, peg-ins can be claimed manually with elements-cli. All sensitive operations happen locally on the node, ensuring privacy.

https://github.com/Impa10r/peerswap-web/tree/joinclaim?tab=readme-ov-file#confidential-liquid-peg-in