Published on: 2020-05-08T10:34:49+00:00
Antoine and Kevin have developed a new multiparty vault architecture called Revault, which aims to secure shared storage of coins without relying on a trusted third party and disincentivizing theft attempts. The system uses N-of-N multisigs and relies on pre-signed and revocable transactions. However, it does not protect against intentional locking of funds, so users are expected to solve blockage issues outside the Bitcoin network through legal contracts.Revault utilizes six transaction types: Vault Transaction, Emergency Transaction, Unvault Transaction, Unvault Emergency Transaction, Cancel Transaction, and Spend Transaction. Stakeholders exchange the signatures of all the revaulting transactions after receiving a new vault utxo and then exchange the signatures of the unvaulting transaction before proceeding. Until this process is complete, the coins are not available to be spent.To avoid weak security assumptions, stakeholders exchange SINGLE | ANYONECANPAY signatures for the revaulting transactions and append their own as SIGHASH_ALL before broadcasting. They also have the option to add an additional input (and potentially output) to increase fees. This protection leverages the fact that revaulting transactions only have one input and one output, with the change being part of the spend transaction.In order to cover a feerate increase after broadcast, revaulting transactions may signal for RBF. However, the fee bumping construction is potentially vulnerable to transaction pinning. To address this, ALL | ANYONECANPAY signatures are now exchanged for revaulting transactions, restricting the creation of a new output only spendable by one party.The fee bumping process is now done in two stages to avoid consuming an entire UTXO. If any issues arise, any stakeholder can trigger an emergency transaction at any point.The architecture was first designed by Kevin Loaec, who was hired by NOIA for this purpose. It was inspired by Bryan Bishop's single-party vault architecture. A work-in-progress draft/demo/PoC is available on Github, which uses 4 stakeholders, 2 or 3 traders, a CSV of 6 blocks for the unvault script, and a CSV of approximately 1 month for the emergency scripts. The detailed transactions used can be found in the doc/ directory of the same repository and are coded in the revault/transactions/ module.
Updated on: 2023-08-02T02:06:47.849604+00:00