You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
allow users to enforce a delay period before designated coins may be spent to
26
25
an arbitrary destination, with the exception of a prespecified "recovery" path.
27
26
At any time prior to final withdrawal, the coins can be spent to the
28
-
prespecified path.
27
+
recovery path.
29
28
30
29
31
30
=== Motivation ===
32
31
33
-
The hazard of custodying Bitcoin is wellknown. Users of Bitcoin must go to
32
+
The hazard of custodying Bitcoin is well-known. Users of Bitcoin must go to
34
33
significant effort to secure their private keys, and hope that once provisioned
35
34
their custody system does not yield to any number of evolving and
36
35
persistent threats. Users have little means to intervene once a compromise is
@@ -45,8 +44,8 @@ usable for custodians of any size with minimal complication.
45
44
46
45
==== Example uses ====
47
46
48
-
An individual custodying Bitcoin uses the common "single signature and
49
-
passphrase" configuration with a hardware wallet. They are concerned about the
47
+
A common configuration for an individual custodying Bitcoin is a "single signature and
48
+
passphrase" with a hardware wallet. They are concerned about the
50
49
risk associated with relying on a single manufacturer for key management as
51
50
well as physical access to the hardware, so they generate a new key that is
52
51
highly secure, but would be impractical for daily use. For example the key
@@ -66,7 +65,7 @@ them to the highly secure recovery path, but spending the coins on a daily
66
65
basis works in the same way it did prior to vaulting - aside from the spend
67
66
delay.
68
67
69
-
The recovery key could be any number of things: a 2-of-3 multisig with keys
68
+
The recovery key could be any Bitcoin script policy: a 2-of-3 multisig with keys
70
69
that live on different devices, a 3-of-5 with socially distributed keys, a
71
70
Taproot construction that incorporates one of these methods along with a
72
71
time-delayed fallback to an "easier" recovery method, in case the highly secure
@@ -76,7 +75,7 @@ Institutional custodians of Bitcoin would likely use vaults in similar fashion.
76
75
77
76
===== Provable timelocks =====
78
77
79
-
This proposal provides a solution to the
78
+
This proposal provides a mitigation to the
80
79
[https://web.archive.org/web/20230210123933/https://xkcd.com/538/ "$5 wrench attack."] By
81
80
setting the spend delay to, say, a week, and using as the recovery path a
82
81
script that enforces a longer relative timelock, the owner of the vault can
@@ -148,7 +147,7 @@ The design goals of the proposal are:
148
147
* '''dynamic fee management''' that, like dynamic targets, defers the specification of fee rates and source to unvault time rather than vault creation time.
149
148
150
149
These goals are accompanied by basic safety considerations (e.g. not being
151
-
vulnerable to pinning) and a desire for concision, both in terms of the number
150
+
vulnerable to mempool pinning) and a desire for concision, both in terms of the number
152
151
of outputs created as well as script sizes.
153
152
154
153
This proposal is designed to be compatible with any future sighash modes (e.g. <code>SIGHASH_GROUP</code>) or fee management strategies (e.g. [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-September/018168.html transaction sponsors]) that may be introduced. Use of these opcodes will benefit from, but do not strictly rely on, [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-September/020937.html v3 transaction relay] and [https://github.com/instagibbs/bips/blob/ephemeral_anchor/bip-ephemeralanchors.mediawiki ephemeral anchors].
@@ -166,7 +165,7 @@ The rules of <code>OP_VAULT</code> ensure the timelocked, interruptible
166
165
withdrawal by allowing a spending transaction to replace the
167
166
<code>OP_VAULT</code> tapleaf with a prespecified script template, allowing for
168
167
some parameters to be set at spend (trigger) time. All other leaves in the
169
-
taptree must be unchanged, which preserves the recovery path as well as any
168
+
taptree must be unchanged in the destination output, which preserves the recovery path as well as any
170
169
other spending conditions originally included in the vault. This is similar to
171
170
the <code>TAPLEAF_UPDATE_VERIFY</code> design that was proposed
172
171
[https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-September/019419.html in 2021].
@@ -564,9 +563,9 @@ coins they wish to monitor; the watchtower would then alert the user if any
564
563
coins matching the filter move, and the user would be responsible for ignoring
565
564
false positives and handling recovery initiation.
566
565
567
-
===Script descriptors ===
566
+
===Output descriptors ===
568
567
569
-
Script descriptors for vault-related outputs will be covered in a subsequent BIP.
568
+
Output descriptors for vault-related outputs will be covered in a subsequent BIP.
0 commit comments