Skip to content

Commit 0b0674c

Browse files
committed
few fixups
1 parent 29345a1 commit 0b0674c

File tree

1 file changed

+12
-13
lines changed

1 file changed

+12
-13
lines changed

bip-0345.mediawiki

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,19 @@
1717

1818
== Introduction ==
1919

20-
This BIP proposes new tapscript opcodes, <code>OP_VAULT</code> and
21-
<code>OP_VAULT_RECOVER</code>, that add consensus support for a specialized
22-
covenant. These opcodes, in conjunction with
20+
This BIP proposes two new tapscript opcodes that add consensus support for a specialized
21+
covenant: <code>OP_VAULT</code> and <code>OP_VAULT_RECOVER</code>. These opcodes, in conjunction with
2322
<code>OP_CHECKTEMPLATEVERIFY</code>
2423
([https://github.com/bitcoin/bips/blob/master/bip-0119.mediawiki BIP-0119]),
2524
allow users to enforce a delay period before designated coins may be spent to
2625
an arbitrary destination, with the exception of a prespecified "recovery" path.
2726
At any time prior to final withdrawal, the coins can be spent to the
28-
prespecified path.
27+
recovery path.
2928

3029

3130
=== Motivation ===
3231

33-
The hazard of custodying Bitcoin is well known. Users of Bitcoin must go to
32+
The hazard of custodying Bitcoin is well-known. Users of Bitcoin must go to
3433
significant effort to secure their private keys, and hope that once provisioned
3534
their custody system does not yield to any number of evolving and
3635
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.
4544

4645
==== Example uses ====
4746

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
5049
risk associated with relying on a single manufacturer for key management as
5150
well as physical access to the hardware, so they generate a new key that is
5251
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
6665
basis works in the same way it did prior to vaulting - aside from the spend
6766
delay.
6867

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
7069
that live on different devices, a 3-of-5 with socially distributed keys, a
7170
Taproot construction that incorporates one of these methods along with a
7271
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.
7675

7776
===== Provable timelocks =====
7877

79-
This proposal provides a solution to the
78+
This proposal provides a mitigation to the
8079
[https://web.archive.org/web/20230210123933/https://xkcd.com/538/ "$5 wrench attack."] By
8180
setting the spend delay to, say, a week, and using as the recovery path a
8281
script that enforces a longer relative timelock, the owner of the vault can
@@ -148,7 +147,7 @@ The design goals of the proposal are:
148147
* '''dynamic fee management''' that, like dynamic targets, defers the specification of fee rates and source to unvault time rather than vault creation time.
149148
150149
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
152151
of outputs created as well as script sizes.
153152

154153
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
166165
withdrawal by allowing a spending transaction to replace the
167166
<code>OP_VAULT</code> tapleaf with a prespecified script template, allowing for
168167
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
170169
other spending conditions originally included in the vault. This is similar to
171170
the <code>TAPLEAF_UPDATE_VERIFY</code> design that was proposed
172171
[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
564563
coins matching the filter move, and the user would be responsible for ignoring
565564
false positives and handling recovery initiation.
566565

567-
=== Script descriptors ===
566+
=== Output descriptors ===
568567

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.
570569

571570
== Deployment ==
572571

0 commit comments

Comments
 (0)