Author: darosior 2020-04-24 15:00:16
Published on: 2020-04-24T15:00:16+00:00
Antoine and Kevin have developed a new multiparty vault architecture called Revault which aims to secure the shared storage of coins without relying on a trusted third party and by disincentivizing theft attempts. The system uses N-of-N multisigs but does not protect against intentional locking of funds, so it assumes its users are able to solve intentional blockage outside the Bitcoin network through legal contracts. Revault relies on pre-signed and revocable (revaultable) transactions which users pre-sign as the only way to spend from a vault output. The architecture uses mainly six transaction types: the “vault” transaction which pays to an N-of-N, the “emergency” transaction, the “unvault” transaction, the “unvault emergency” transaction, the “cancel” transaction, and the “spend” transaction. Stakeholders would exchange the signatures of all the revaulting transactions after the reception of a new vault utxo, and then exchange the signatures of the unvaulting transaction. Before doing so, the coins are not available to be spent. In order to spend a vault, the subset of the stakeholders who manages the funds would make the cosigning server sign the spend transaction. They would then present it to the other watchers which would ACK the spend (if paying to an authorized address), and broadcast the "unvault" transaction. If a stakeholder's watcher detects an unvaulting transaction without knowing about its child “spend” transaction, it triggers an automatic “cancel” transaction. At any point, any of the stakeholders can trigger an emergency transaction if anything nasty is happening. Revaulting transactions signal for RBF to cover a feerate increase after the broadcast, and a significant breathing room can be added to the feerate as these transactions are not intended to be used under normal circumstances. The architecture was first designed by Kevin Loaec who was hired by NOIA to do so and was inspired by Bryan Bishop’s single-party vault architecture. A WIP 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 ~1 month for the emergency scripts. The transactions used are detailed in the doc/ directory of the same repo, and are coded in the revault/transactions/ module.
Updated on: 2023-05-20T23:16:15.462606+00:00