From b30e37c8a26d6b18415406a5664aaef9929a8ac5 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Wed, 8 Feb 2023 16:11:18 -0500 Subject: [PATCH 01/31] Add OP_VAULT BIP --- bip-VAULT/batch-sweep.drawio.png | Bin 0 -> 62296 bytes bip-VAULT/opvault-flow.drawio.png | Bin 0 -> 47748 bytes bip-VAULT/vaults-Basic.png | Bin 0 -> 31544 bytes bip-VAULT/withdrawal-comparison.drawio.png | Bin 0 -> 19737 bytes bip-vaults.mediawiki | 750 +++++++++++++++++++++ 5 files changed, 750 insertions(+) create mode 100644 bip-VAULT/batch-sweep.drawio.png create mode 100644 bip-VAULT/opvault-flow.drawio.png create mode 100644 bip-VAULT/vaults-Basic.png create mode 100644 bip-VAULT/withdrawal-comparison.drawio.png create mode 100644 bip-vaults.mediawiki diff --git a/bip-VAULT/batch-sweep.drawio.png b/bip-VAULT/batch-sweep.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..8f142545793e10484148d50abffc7066a4510c2c GIT binary patch literal 62296 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%0Df84U&UeU(b*=co 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
}q2Cf7sc+g>-iR9ziC6tq28_xtBz|^ttE5Zs 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%0AB4oj> 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 qJrHo>(FHFMQ32LCVh*k0ZM literal 0 HcmV?d00001 diff --git a/bip-vaults.mediawiki b/bip-vaults.mediawiki new file mode 100644 index 000000000..f675737a9 --- /dev/null +++ b/bip-vaults.mediawiki @@ -0,0 +1,750 @@ +
+  BIP: xxxx
+  Layer: Consensus (soft fork)
+  Title: OP_VAULT
+  Author: James O'Beirne 
+  Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-xxxx
+  Status: Draft
+  Type: Standards Track
+  Created: 2020-02-03
+  License: BSD-3-Clause
+  Post-History: 2023-01-09: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-January/021318.html [bitcoin-dev] OP_VAULT announcment
+
+ + +== Introduction == + +This BIP proposes new tapscript opcodes, OP_VAULT and +OP_UNVAULT, that add consensus support for a specialized covenant. +These opcodes allow users to enforce a delay period before designated coins may +be spent to an arbitrary destination, with the exception of a prespecified +"recovery" path. At any time prior to final withdrawal, the coins can be spent to +the prespecified path. + + +=== Motivation === + +The hazard of custodying Bitcoin is well known. Users of Bitcoin must go to +significant effort to secure their private keys, and hope that once provisioned +their custody system does not yield to any number of evolving and +persistent threats. Users have little means to intervene once compromise is +detected. This proposal introduces a mechanism that significantly +mitigates the worst-case outcome of key compromise: coin loss. + +Introducing a way to intervene during unexpected spends allows users to +incorporate highly secure key storage methods or unusual fallback strategies +that are only exercised in the worst case, and which may otherwise be +operationally prohibitive. The goal of this proposal is to make this strategy +usable for custodians of any size with minimal complication. + +==== Example uses ==== + +An individual custodying Bitcoin uses the common "single signature and +passphrase" configuration with a hardware wallet. They are concerned about the +risk associated with relying on a single manufacturer for key management as +well as physical access to the hardware, so they generate a new key that is +highly secure, but would be impractical for daily use. For example the key +could be generated in some analog fashion, or on an old computer (with added +entropy) that is then destroyed, with the private key replicated only in paper +form. Or the key could be a 2-of-3 multisig using devices from different +manufacturers. Perhaps the key is geographically distributed. + +This individual can use OP_VAULT to make use of the highly secure +key as the unlikely recovery path, while using their existing signing procedure +as the withdrawal trigger key, with a configured spend delay of 1 day. They can +run software on their mobile device that monitors the blockchain for spends of +the vault outpoints. + +If the vaulted coins move in an unexpected way, the user can immediately sweep +them to the highly secure recovery path, but spending the coins on a daily +basis works in the same way it did prior to vaulting - aside from the spend +delay. + +The recovery key could be any number of things: a 2-of-3 multisig with keys +that live on different devices, a 3-of-5 with socially distributed keys, a +Taproot construction that incorporates one of these methods along with a +time-delayed fallback to an "easier" recovery method, in case the highly secure +key winds up being ''too'' highly secure. + +Institutional custodians of Bitcoin would likely use vaults in similar fashion. + +===== Avoiding the hostage situation ===== + +This proposal uniquely provides a solution to the "hostage situation;" by +setting the spend delay to, say, a week, and using as the recovery path a +script that enforces a longer relative timelock, the owner of the vault can +prove that he is unable to access its value immediately. To the author's +knowledge, this is the only way to configure this defense without rolling +timelocked coins for perpetuity or relying on a trusted third party. + +== Goals == + +[[File:bip-VAULT/vaults-Basic.png|frame|center]] + +Vaults in Bitcoin have been discussed formally since 2016 +([http://fc16.ifca.ai/bitcoin/papers/MES16.pdf MES16]) or earlier. The value of +having a configurable delay period with recovery capability in light of an +unexpected spend has been widely recognized. + +The only way to implement vaults given the existing consensus rules, aside from +[https://github.com/revault emulating vaults with large multisig +configurations], is to use presigned transactions created with a one-time-use +key. This approach was first demonstrated +[https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-April/017755.html +in 2020]. + +Unfortunately, this approach has a number of practical shortcomings: +* generating and securely delete ephemeral keys, which are used to emulate the vault covenant, is required, +* amounts and withdrawal patterns must be precommitted to, +* there is a necessity to precommit to an address that the funds must pass through on their way to the final withdrawal target, which is likely only known at unvault time, +* the particular fee management technique or wallet must be decided upon vault creation, +* coin loss follows if a vault address is reused, +* the transaction data that represents the "bearer asset" of the vault must be stored for perpetuity else value is lost, and +* the vault creation ceremony must be performed each time a new balance is to be deposited. + +The deployment of a "precomputed" covenant mechanism like +[https://github.com/bitcoin/bips/blob/master/bip-0119.mediawiki OP_CHECKTEMPLATEVERIFY] or +[https://github.com/bitcoin/bips/blob/master/bip-0118.mediawiki SIGHASH_ANYPREVOUT] +would both remove the necessity to use an ephemeral key, since the +covenant is enforced on-chain, and lessen the burden of sensitive data storage, +since the necessary transactions can be generated from a set of compact +parameters. This approach was demonstrated [https://github.com/jamesob/simple-ctv-vault in +2022]. + +However, the limitations of precomputation still apply: amounts, +destinations, and fee management are all fixed. Funds must flow through a fixed +intermediary to their final destination. Batch operations, which may be vital +for successful recovery during fee spikes or short spend delay, are not possible. + +[[File:bip-VAULT/withdrawal-comparison.drawio.png|frame|center]] + +Having a "general" covenant mechanism that can encode arbitrary transactional +state machines would allow us to solve these issues, but at the cost of complex +and large scripts that would probably be duplicated many times over in the +blockchain. The particular design and deployment timeline of such a general +framework is also uncertain. There are no sample vault implementations using +these means known to the author. + +This proposal intends to address the problems outlined above by +providing a delay period/recovery path use with minimal transactional and +operational overhead using a specialized covenant. + +The design goals of the proposal are: + +* '''efficient reuse of an existing vault configuration.''''''Why does this support address reuse?''' The proposal doesn't rely on or encourage address reuse, but certain uses are unsafe if address reuse cannot be handled - for example, if a custodian gives its users a vault address to deposit to, it cannot enforce that those users make a single deposit for each address. A single vault configuration, whether the same literal scriptPubKey or not, should be able to “receive” multiple deposits. + +* '''batched operations''' for recovery and withdrawal to allow managing multiple vault coins efficiently. + +* '''unbounded partial withdrawals''', which allows users to withdrawal partial vault balances without having to perform the setup ceremony for a new vault. + +* '''dynamic unvault targets''', which allow the proposed withdrawal target for a vault to be specified at withdrawal time rather than when the vault is first created. This would remove the need for a prespecified, intermediate wallet that only exists to route unvaulted funds to their desired destination. + +* '''dynamic fee management''' that, like dynamic targets, defers the specification of fee rates and source to unvault time rather than vault creation time. + +These goals are accompanied by basic safety considerations (e.g. not being +vulnerable to pinning) and a desire for concision, both in terms of the number +of outputs created as well as script sizes. + +This proposal is designed to be compatible with any future sighash modes (e.g. SIGHASH_GROUP) 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, future transaction versions (e.g. [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-September/020937.html v3]) and [https://github.com/instagibbs/bips/blob/ephemeral_anchor/bip-ephemeralanchors.mediawik ephemeral anchors]. + +== Design == + +=== State machine === + +[[File:bip-VAULT/opvault-flow.drawio.png|frame|center]] + +The vault has a number of stages, some of them optional: + +* '''vault transaction''': encumbers some coins with an OP_VAULT script invocation. + +* '''trigger transaction''': spends one or more OP_VAULT outputs into one compatible OP_UNVAULT output, which broadcasts the intent to withdrawal to some specific set of outputs. This transaction may have an additional output which allocates some of the vault balance into a partial revault, which simply encumbers the revaulted portion of the value into the same scriptPubKey of the originating OP_VAULT output(s). + +* '''withdrawal transaction''': spends OP_UNVAULT inputs into a compatible set of final withdrawal outputs per the target hash. The only authorization for this spend is the content hash of the withdrawal outputs. + +* '''recovery transaction''': spends one or more OP_VAULT or OP_UNVAULT inputs, which can be done at any time prior to withdrawal confirmation, to the prespecified recovery path. This transaction can optionally require a witness satisfying a specified ''recovery authorization'' script, an optional scriptPubKey gating the initiation of recovery. The use of recovery authorization has certain trade-offs discussed later. + + +=== Parameters === + + + +The recovery parameters dictate both where funds can be swept to during a +recovery, and what kind of authorization (if any) is needed to initiate a +recovery. It is specified in the form + + +[] + + +The first component commits to the destination that vault funds can be swept to +at any point prior to the finalization of a withdrawal. + +The recovery scriptPubKey would usually correspond to a spending script that is +inconvenient to exercise but highly secure. + +The second component, the recovery authorization scriptPubKey, is optional. It +is a raw scriptPubKey that, if specified, must be satisfied to allow the input +to be recovered. The benefit of using this parameter will be discussed later. +If this component is not given, the de facto "authorization" is the reveal of +the preimage. + +Vaults which share the same recovery path can always be swept in batch operations, +which is an important practical aspect of managing large numbers of vaults. + + + +The spend delay dictates the duration of blocks or time which must +elapse for the trigger OP_UNVAULT output to be claimable into the +withdrawal target outputs. Encoded as the least significant 23 bits of a +[https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki BIP-0068] style +relative locktime. + +'''Trigger key''' + +The trigger key, committed to with , is used to +authorize the ''trigger transaction'' - an on-chain declaration to attempt a +withdrawal to a certain set of target outputs. + +This functions as the "normal" spending key, but if an attacker obtains access +to this key, the outcome is not catastrophic: any withdrawal attempt can be +interrupted (within the spend delay) and swept to the recovery path. + +The trigger key can be an arbitrary scriptPubKey so long as it represents a +valid witness program. OP_VAULT outputs which have the same +recovery params and spend delay can be spent into the same +OP_UNVAULT output for a batched withdrawal process. + + + +An arbitrary set of target withdrawal outputs that is specified as a parameter to OP_UNVAULT as a 32 byte tagged hash. The preimage is a list of destination output scriptPubKeys and amounts. If the trigger remains uncontested -- if it isn't swept to recovery before the spend delay elapses -- the vaulted funds may be spent into a compatible set of target outputs. + + +=== Fee management === + +A primary consideration of this proposal is how fee management is handled. +Providing dynamic fee management is critical to the operation of a vault, since + +* precalculated fees are prone to making transactions unconfirmable by high fee environments, and +* a fee wallet that is prespecified might be compromised or lost before use. + +But dynamic fee management can introduce +[https://bitcoinops.org/en/topics/transaction-pinning/ pinning vectors]. Care +has been taken to avoid unnecessarily introducing these vectors when using the new +content-based spending policies that this proposal introduces. + +Originally, this proposal had a hard dependency on reformed transaction +nVersion=3 policies, including ephemeral anchors, but it has since been revised +to simply benefit from these changes in policy as well as other potential fee +management mechanisms. + + +== Specification == + +The tapscript opcodes OP_SUCCESS187 (0xbb) and +OP_SUCCESS188 (0xbc) are claimed to implement the +OP_VAULT and OP_UNVAULT rules, respectively. + +=== OP_VAULT evaluation === + +==== Witness program ==== + +When evaluating OP_VAULT (OP_SUCCESS187, +0xbb), the witness program is pushed onto the stack for the +following result (stack shown top to bottom): + + +OP_VAULT (*) being evaluated + + + + + +where + +* is a 32 byte tagged hash of the scriptPubKey used to authorize the spend of this output into an OP_UNVAULT trigger output +** tagged_hash("VaultTriggerSPK", spk), per BIP-0340. +** If this value is not 32 bytes, script execution when spending this output MUST fail and terminate immediately. +** Because this parameter's scriptPubKey is committed to using a hash, witness version upgradeability for the trigger key is preserved. + +* is a CScriptNum-encoded number (up to 4 bytes) +** It is interpreted as the least significant 23 bits of a [https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki BIP-0068] relative timelock. +** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. + +* is a variable length data push, consisting of two components: +*# a 32 byte tagged hash, the ''recovery sPK hash'', committing to the scriptPubKey which coins may be recovered to +*#* tagged_hash("VaultRecoverySPK", spk) from the [https://github.com/bitcoin/bips/blob/master/bip-0340/reference.py BIP-0340 reference code]. +*# 0 or more bytes that optionally specify a scriptPubKey that needs to be satisfied to authorize the recovery transaction. +*#* This optional parameter changes the allowable structure of recovery transactions. +** If is less than 32 bytes, script execution when spending this output MUST fail and terminate immediately. +** Because the recovery scriptPubKey is committed to with a hash, witness version upgradeability is preserved. + +==== Check for recovery ==== + +After the witness program is parsed, it must be determined whether this input +is being spent towards a recovery. If an output in the spending transaction is +found whose scriptPubKey hashes to the recovery sPK hash (the +first component of ), the interpreter will +evaluate for recovery. Otherwise, the interpreter will evaluate assuming a withdrawal +is being triggered. + +In pseudocode: + + +is_recovery = False +recovery_out: Optional[CTxOut] = None + +for out in spending_tx.vout: + if tagged_hash("VaultRecoverySPK", out.scriptPubKey) == recovery_sPK_hash: + is_recovery = True + recovery_out = out + +if is_recovery: + eval_for_recovery() +else: + eval_for_withdrawal_trigger() + + +==== OP_VAULT evaluation for recovery spend ==== + +* If the recovery output does not have an nValue greater than this input's amount, the script MUST fail and terminate immediately. +* (Deferred) if the recovery output does not have an nValue equal to the sum of all OP_VAULT/OP_UNVAULT inputs with a corresponding recovery sPK hash, the transaction validation MUST fail. +** Note that in the draft implementation, this is facilitated by a "deferred check" which is queued by the script interpreter, but executed after the script interpreter has finished, in other validation code.'''Why does this proposal require a "deferred checks" framework for correct script evaluation?''' The deferred checks framework is an augmentation to execution of the Bitcoin script interpreter. Currently, the validity of each input is checked in an order-indepdendent manner across all inputs in a transaction. Because this proposal allows batching the spend of multiple vault inputs into a single recovery or withdrawal output, we need a mechanism to ensure that all expected values per output can be summed and then checked. This necessitates the introduction of an "aggregating" set of checks which can only be executed after each input's script is evaluated. Note that similar functionality would be required for batch input validation or cross-input signature aggregation. +* The script must FAIL (by policy, not consensus) and terminate immediately if neither'''Why are recovery transactions required to be replaceable?''' In the case of unauthorized recoveries, an attacker may attempt to pin recovery transactions by broadcasting a "rebundled" version with a low fee rate. Vault owners must be able to overcome this with replacement. In the case of authorized recovery, if an attacker steals the recovery authorization key, the attacker may try to pin the recovery transaction during theft. Requiring replaceability ensures that the owner can always raise the fee rate of the recovery transaction, even if they are RBF rule #3 griefed in the process. +*# the input is marked as opt-in replaceable by having an nSequence number less than 0xffffffff - 1, per [https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki BIP-0125], nor +*# the version of the recovery transaction has an nVersion equal to 3. + +The stack may now have 0 or more elements. Any items on the stack will be used to verify the recovery authorization witness program, if any. + +* If the ''recovery authorization sPK'' is not null: +** If VerifyWitnessProgram(, , ...) fails, the script MUST fail and terminate immediately. +** (This validates that the recovery has been authorized.) +* else (if the recovery is allowed to be unauthorized): +** If the spending transaction has more than two outputs, the script MUST fail and terminate immediately. +** If the spending transaction has two outputs, and the output not the recovery output is not an ephemeral anchor, the script MUST fail and terminate immediately.'''Why can unauthorized recoveries only process a single recovery path?''' Because there is no signature required for unauthorized recoveries, if additional outputs were allowed, someone observing a recovery in the mempool would be able to rebundle and broadcast the recovery with a lower fee rate. + + +(Note: the above rules imply that if all inputs have a recovery authorization sPK specified, the structure of the recovery transaction is "free form," and the only requirement is that for each OP_VAULT/OP_UNVAULT input, there exists a compatible ''recovery output'' which preserves its full nValue.) + +If none of the conditions fail, a single true value (0x01) is left on the stack. + +==== OP_VAULT evaluation for withdrawal trigger ==== + +Else, if it has been determined that the spend is not within a recovery +transaction, it must be evaluated for eligibility as a withdrawal trigger +spend. + +===== Witness stack ===== + +There must be at least 4 items on the stack (shown top to bottom): + + + + + + [...] + + +If the witness stack consists of fewer than four items the script MUST fail and +terminate immediately. + +(Note: in practice, the witness stack will have included the other items necessary to reveal +a witness v1 (or greater) script-path spend, per [https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#user-content-Constructing_and_spending_Taproot_outputs BIP-0341]. This is demonstrated in detail in [[#Transaction examples|the transaction examples section]].) + +The items on the stack must be validated as follows: + +* is a CScriptNum of up to 4 bytes. +** It indicates the vout index of this input's corresponding OP_UNVAULT output. +*** Validation rules for this output are described below. +** If this value does not decode as a valid CScriptNum value, the script MUST fail and terminate immediately. +** If this value does not correspond to a valid output in the spending transaction, the script MUST fail and terminate immediately. + +* is a 32 byte data push. +** It is the hash of the proposed withdrawal target output set, defined by target_outputs_hash(outputs) below. Note that this value is duplicated here.'''Why, when spending an OP_VAULT output into a trigger, does the target hash need to be duplicated on the witness stack?''' The target hash exists in the OP_UNVAULT output script, likely behind a taproot pubkey. Its presence is required on the witness stack also so that the expected taproot pubkey for the OP_UNVAULT output can be constructed for comparison. +** If this value is not 32 bytes, the script MUST fail and terminate immediately. + +* is a variable length data push. +** It must be the scriptPubKey that is the preimage to the specified in the spent OP_VAULT input. +** If this value does not tagged-hash to supplied by the OP_VAULT parameter, the script MUST fail and terminate immediately. +*** Verify tagged_hash("VaultTriggerSPK", ) == +** If this value does not correspond to a valid witness program, the script MUST fail and terminate immediately. + +* the remaining elements serve as the witness stack to satisfy the witness program. +** If VerifyWitnessProgram(, , ...) fails, the script MUST fail and terminate immediately. +** (This validates that the withdrawal trigger has been authorized.) + +===== Transaction outputs validation ===== + +Once the contents of the witness stack have been parsed and validated, the transaction outputs must be checked. + +First, we must check for a ''revault output'': an output in the trigger transaction whose +scriptPubKey exactly matches that of the OP_VAULT input being +spent. Its presence is optional. + +For each vault input citing a particular , the output +located at vout[] (the "trigger output") must: + +* have as its scriptPubKey a witness program version 1 with a single OP_UNVAULT tapscript, having the internal key lift_x(0x0250929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0), per the NUMS point mentioned in [https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#user-content-Design BIP-0341].'''Why must the OP_UNVAULT taproot use a NUMS point as its internal key?''' This ensures that an OP_UNVAULT trigger output is verifiable as expected. It also ensures that it is spendable only by the conditions of the vault. +** If the witness program has a version less than 1, the script MUST fail and terminate immediately. +** If the scriptPubKey of the output does not match the expected scriptPubKey, as computed by creating a taproot output using the cited NUMS point and a single tapscript spend condition of the form
OP_UNVAULT,
the script MUST fail and terminate immediately. +** Witness versions greater than 1 are allowed for upgradeability. + +* If there does not exist a revault output in the transaction for this input: +** (deferred) the nValue of the trigger output must equal the sum of all vault inputs which cite it as their corresponding trigger output. +*** If these values are not equal, the script MUST fail and terminate immediately. +* else (if there does exist a revault output for this input): +** (deferred) the nValues of the trigger output and the revault output must sum to the sum of all vault inputs which both +*** cite this trigger output as the trigger-vout-idx and +*** have a scriptPubKey identical to the revault output's. +** If these values are not equal, the script MUST fail and terminate immediately. + +If none of the conditions above results in a failure of the script interpreter, the +stack will consist of a single true value (0x01). + +The above amount check can be expressed in Python as: + + + +spending_tx: CTransaction +vault_inputs: [CTxIn] = [inp for inp in spending_tx.vin if inp.is_OP_VAULT] + +"Where we'll accumulate the expected totals for each vault input." +vault_totals_for_outputs: dict[(int, int), int] = defaultdict(0) + +"Build the expected totals." +for vault_in in vault_inputs: + maybe_revault_idx = find_revault_for_vault(vault_in) + vault_total_for_outputs[(vault_in.trigger_vout_idx, maybe_revault_idx)] += vault_in.nValue + + +"Check the expected totals against outputs." +for (out_idx, maybe_revault_idx), expected_amount in vault_totals_for_outputs.items(): + total = spending_tx.vout[out_idx].nValue + + if maybe_revault_idx: + total += spending_tx.vout[maybe_revault_idx] + + if total != expected_amount: + FAIL_AND_TERMINATE_SCRIPT() + + +def find_revault_for_vault(vault_in) -> int: + """Find the index of a revault output for a particular vault input, if one exists.""" + for i, out in enumerate(spending_tx.vout): + if out.scriptPubKey == vault_in.scriptPubKey: + return i + return None + + +=== OP_UNVAULT evaulation === + +==== Witness program ==== + +When evaluating OP_UNVAULT (OP_SUCCESS188, +0xbc), the witness program is pushed onto the stack for the +following result (stack shown top to bottom): + + +OP_UNVAULT (*) being evaluated + + + + + +where + +* is validated exactly as described in [[#witness-program|the above OP_VAULT section]]. +* is validated exactly as described in [[#witness-program|the above OP_VAULT section]]. +* is a 32 byte data push. +** If it is not equal to 32 bytes, the script MUST fail and terminate immediately. + + +==== Check for recovery ==== + +A check is performed to determine if this input is being spent within the context of +a recovery transaction, exactly as in [[#check-for-recovery|the OP_VAULT evaluation described above]]. + + +==== OP_UNVAULT evaluation for recovery spend ==== + +This is identical to the [[#op_vault-evaluation-for-recovery-spend|OP_VAULT case described above]]. + + +==== OP_UNVAULT evaluation for withdrawal ==== + +When spending an OP_UNVAULT input into a withdrawal target, no witness stack is required. + +* is used to check whether the withdrawal of the input has matured. +** If the input's relative timelock check, as described in [https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki BIP-0112] (using this value as "the top item on the stack") fails, the script MUST fail and terminate immediately. +*** The same CheckSequence() code path is used as for [https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki BIP-0112]. + +* The transaction outputs are then checked to verify that the withdrawal outputs are as expected. +** If target_outputs_hash(spending_tx.vout) != per the algorithm defined below, the script MUST fail and terminate immediately. + + +def target_outputs_hash(vout: [CTxOut]) -> bytes: + return hash256(b"".join(serialize_txout(out) for out in vout)) + +def serialize_txout(txo: CTxOut) -> bytes: + spk: bytes = txo.scriptPubKey + return struct.pack(" + +If the above conditions do not fail, a single true value (0x01) is pushed to the stack. + + +== Implementation == + +A sample implementation is available [https://github.com/jamesob/bitcoin/tree/2023-01-opvault here], with an associated [https://github.com/bitcoin/bitcoin/pull/26857 pull request]. + + +== End use == + +=== Creating an OP_VAULT output === + +In order to vault coins, they must be spent into a witness v1'''Can OP_VAULT be used with a future witness version (greater than 1)?''' Yes, however use of yet to be defined witness versions is discouraged, since such a usage makes the coins spendable by anyone. scriptPubKey +that contains a Tapscript spending condition of the form + + + OP_VAULT + + +Typically, the internal key for the vault taproot output will be specified so +that it is controlled by the same descriptor as the recovery path, which +facilitates another (though probably unused) means of recovering the vault +output to the recovery path. This has the potential advantage of recovering the +coin without ever revealing it was a vault. + +Otherwise, the internal key can be chosen to be an unspendable NUMS point to +force tapscript execution of the OP_VAULT specification. + + +=== Recovery authorization === + +When configuring a vault, the user must decide if they want to have the recovery process gated by the optional recovery authorization scriptPubKey. The choice is left to the user because it entails trade-offs. + +==== Unauthorized recovery ==== + +Unauthorized recovery simplifies vault use in that recovery never requires additional information aside from the location of the vault outpoints and the recovery path - the "authorization" is simply the reveal of the recovery path. + +But because this reveal is the only authorization necessary to spend the vault coins to recovery, the user must expect to recover all such vaults at once, since an observer can replay this recovery (provided they know the outpoints). + +Additionally, unauthorized recovery across multiple distinct recovery paths cannot be batched, and fee control is more constrained: because the output structure is limited for unauthorized recovery, fee management relies either on inputs which are completely spent to fees or the use of the optional ephemeral anchor and package relay. + +==== Authorized recovery ==== + +With authorized recovery, the user must keep track of an additional piece of information: how to solve the recovery authorization scriptPubKey when recovery is required. If this key is lost, the user will be unable to initiate the recovery process for their coins. If an attacker obtains the recovery key, they may grief the user during the recovery process by constructing a low fee rate recovery transaction and broadcasting it (though they will not be able to pin because of the replaceability requirement on recovery transactions). + +However, authorized recovery configurations have significant benefits. Batched recoveries are possible for vaults with otherwise incompatible recovery parameters. Fee management is much more flexible, since authorized recovery transactions are "free form" and unrelated inputs and outputs can be added, potentially to handle fees. + +==== Recommendation: use a simple, offline recovery authorization key seed ==== + +The benefits of batching and fee management that authorized recovery provides are significant. If the recovery authorization key falls into the hands of an attacker, the outcome is not catastrophic, whereas if the user loses their recovery authorization key as well as their trigger key, the result is likely coin loss. Consequently, the author's recommendation is to use a simple seed for the recovery authorization key that can be written down offline and replicated. + +Note that the recovery authorization key '''is not''' the recovery path key, and +this is '''much different''' than any recommendation on how to generate the +recovery path key itself. + +=== Address reuse and recovery === + +When creating a vault, four factors affect the resulting P2TR address: +# The internal key (likely belonging to the recovery wallet) +# The recovery parameters +# The spend delay +# The trigger scriptPubKey + +Aside from the spend delay, the end user has the option of varying the other three parameters along descriptors in order to avoid reusing vault addresses without affecting key management. + +Worth noting is that when using unauthorized recovery, the reveal of the recovery scriptPubKey will allow any observer to initiate the recovery process for any vault with matching recovery params, provided they are able to locate the vault outpoints. As a result, it is recommended to expect that '''all outputs sharing an identical unauthorized should be recovered together'''. + +This situation can be avoided with a comparable key management model by varying the generation of each vault's recovery scriptPubKey along a single descriptor, but note that (when configured for unauthorized recovery), this will prevent batched recovery. + +==== Recommendation: vary the internal key ==== + +The recommended mode of use is to keep recovery parameters identical across vaults which should be recovered in batch, but vary the internal key for each vault output along a single descriptor so that no address reuse is necessary. + +==== Recommendation: generate new recovery addresses for new trigger keys ==== + +If using unauthorized recovery, it is recommended that you do not share literal recovery paths +across separate trigger keys. If one trigger key is compromised, that will necessitate the (unauthorized) +recovery of all vaults with that trigger key, which will reveal the recovery path preimage. This +means that an observer might be able to initiate recovery for vaults controlled by an uncompromised +trigger key. + +==== Fee management ==== + +Fees can be managed in a variety of ways, but it's worth noting that both trigger and recovery transactions must preserve the total value of vault inputs, so vaulted values cannot be repurposed to pay for fees. This does not apply to the withdrawal transaction, which can allocate value arbitrarily. + +In the case of vaults that use recovery authorization, all transactions can "bring their own fees" in the form of unrelated inputs and outputs. These transactions are also free to specify ephemeral anchors, once the related relay policies are deployed. This means that vaults using recovery authorization have no dependence on the deploy of v3 relay policy. + +In the case of vaults that do not use recovery authorization, the recovery transaction relies on the use of either fully-spent fee inputs or an ephemeral anchor output. This means that vaults which do not use recovery authorization are essentially dependent on v3 transaction relay policy being deployed. + +==== Mixing input types ==== + +OP_VAULT/OP_UNVAULT outputs can be spent +into a recovery transaction together. Script execution works identically for +both types of outputs. + +[[File:bip-VAULT/batch-sweep.drawio.png|frame|center]] + + +=== Batching === + +==== During trigger ==== + +OP_VAULT outputs with the same recovery-params and spend-delay can +be triggered into the same OP_UNVAULT output, creating a batched +withdrawal trigger. This is allowed regardless of the + values of each input, allowing the trigger keys +to differ. + +Trigger transactions can act on multiple incompatible OP_VAULT +input sets, provided each set has a suitable associated OP_UNVAULT +output. + +Since SIGHASH_DEFAULT can be used to sign the trigger +authorization, unrelated inputs and outputs can be included, possibly to +facilitate fee management or the batch withdrawal of incompatible vaults. + +==== During withdrawal ==== + +During final withdrawal, multiple unrelated OP_UNVAULT outputs can +be used towards the same withdrawal transaction provided that they share +identical parameters. This facilitates +batched withdrawals. + +==== During recovery ==== + +OP_VAULT/OP_UNVAULT outputs with the same recovery +scriptPubKey hash can be recovered into the same output. + +Recovery-incompatible vaults which have authorized recovery can be recovered in +the same transaction, so long as each set (grouped by recovery scriptPubKey +hash) has a suitable associated recovery output. This means that unrelated +recoveries controlled by the same owner can benefit from sharing common fee +management. + +=== Watchtowers === + +The value of vaults is contingent upon having monitoring in place that will alert the owner when unexpected spends are taking place. This can be done in a variety of ways, with varying degrees of automation and trust in the watchtower. + +In the maximum-trust case, the watchtower can be fully aware of all vaulted coins and has the means to initiate the recovery process if spends are not pre-reported to the watchtower. + +In the minimum-trust case, the user can supply a probabilistic filter of which coins they wish to monitor; the watchtower would then alert the user if any coins matching the filter move, and the user would be responsible for ignoring false positives and handling recovery initiation. + +=== Script descriptors === + +Script descriptors for vault-related outputs will be covered in a subsequent BIP. + + +== Deployment == + +It is anticipated that deployment would happen in the same way [https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#user-content-Deployment that BIP-0341 was deployed]. Parameters to be determined. + + +== Rationale == + + + +== Transaction examples == + + +=== Basic creation and withdrawal === + + + +Recovery Taproot: tr( + sPK = 5120cafd90c7026f0b6ab98df89490d02732881f2f4b5900856358dddff4679c2ffb, + internal_pubkey = c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5) + +Trigger Taproot: tr( + sPK = 5120418c46636d9e1a683f58e35b42336e776fdcc3b2d4e39e7a0bf1ab0716e3c5fa, + internal_pubkey = f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9) + +Spend delay: 10 + +Vault Taproot: tr( + sPK = 5120062eb40e358106ea4f39bcac8ce046e44b84e5c0cf8799bd3d08f9ffb4afeb7a, + internal_pubkey = c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5, + merkle_root = 11765541441f95f7af87fc19fcc1c09a1f5b05514d130320e4dfe6d729690230, + leaves = + - opvault: [ + push(5eb59117ddf962d44e11da5ce76c699cd9e6af53764795600543f02960b66023) + 10 + push(523882cb06ae65b1c2ba6e2009c0bf94e3d93ffe74470b354f854d335d9936e2) + OP_VAULT + ] (version=192), +) + + +"Initial vaulting" + +CTransaction 83b4308ccaa83eeb95316050fe2bfd1b027e285ddf31b0bd69762ec113140126: (nVersion=2) + vin: + - [0] CTxIn(prevout=COutPoint(hash=b4ba2b24be456aacaf743be5fe5de25eb3ebebb52f3faf75aecf45921a810101 n=0) scriptSig= nSequence=0) + vout: + - [0] Coin(4999990000, sPK=[1 push(062eb40e358106ea4f39bcac8ce046e44b84e5c0cf8799bd3d08f9ffb4afeb7a)]) + witnesses: + nLockTime: 0 + + +"Trigger" + +CTransaction e0844e873c4319222ebc407b0aa8f385c8a036e3145289d87750d5b895a88b33: (nVersion=2) + vin: + - [0] CTxIn(prevout=COutPoint(hash=83b4308ccaa83eeb95316050fe2bfd1b027e285ddf31b0bd69762ec113140126 n=0) scriptSig= nSequence=0) + vout: + - [0] Coin(4999990000, sPK=[1 push(9a15dca153a8651b610a02f3a92df3ada3cd45fd7f6183c7b2c1bc333bed1e63)]) + witnesses: + - [0] + - [0.0] [push(bdb4b3f6af17c93308af5ea689b33425497e388a0075f4311540e50d4d3d76f068ab645603333929e5ac62ecc125fc98a053aff53f65b0cffaaeef31efd415ff)] + - [0.1] [1 push(418c46636d9e1a683f58e35b42336e776fdcc3b2d4e39e7a0bf1ab0716e3c5fa)] + - [0.2] [push(c707f3e01b67c9dac06ad15cf0800cc07278a0a1c4f54cb92457ee5c0d84519a)] + - [0.3] [push()] + - [0.4] [ + push(5eb59117ddf962d44e11da5ce76c699cd9e6af53764795600543f02960b66023) + 10 + push(523882cb06ae65b1c2ba6e2009c0bf94e3d93ffe74470b354f854d335d9936e2) + OP_VAULT + ] + - [0.5] [push(c0c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5)] + nLockTime: 0 + + +"Withdrawal" + +CTransaction 9595af9728de3ae9ca6110c040ad34f02f9db8b610296f99618354b99d5ec395: (nVersion=2) + vin: + - [0] CTxIn(prevout=COutPoint(hash=e0844e873c4319222ebc407b0aa8f385c8a036e3145289d87750d5b895a88b33 n=0) scriptSig= nSequence=10) + vout: + - [0] Coin(1666663333, sPK=[push() push(c42e7ef92fdb603af844d064faad95db9bcdfd3d)]) + - [1] Coin(1666663333, sPK=[push() push(4747e8746cddb33b0f7f95a90f89f89fb387cbb6)]) + - [2] Coin(1666663334, sPK=[push() push(7fda9cf020c16cacf529c87d8de89bfc70b8c9cb)]) + witnesses: + - [0] + - [0.0] [ + push(5eb59117ddf962d44e11da5ce76c699cd9e6af53764795600543f02960b66023) + 10 + push(c707f3e01b67c9dac06ad15cf0800cc07278a0a1c4f54cb92457ee5c0d84519a) + OP_UNVAULT + ] + - [0.1] [push(c150929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0)] + nLockTime: 0 + + +== References == + +* [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-February/012470.html Bitcoin Vaults (2016)] +* [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-April/017755.html On-chain vaults prototype (2020)] +* [https://arxiv.org/abs/2005.11776 Custody Protocols Using Bitcoin Vaults (2020)] +* [https://jameso.be/vaults.pdf Vaults and Covenants (2023)] + +== Acknowledgements == + +The author would like to thank + +* AJ Towns and Greg Sanders for discussion, numerous suggestions that improved the proposal, and advice. +* Jeremy Rubin for inspiration, advice, and mentorship. +* BL for discussion and insight. +* John Moffett for early feedback and a test case demonstrating a recursive script evaluation attack. +* Johan Halseth for providing conceptual review and pointing out a pinning attack. +* Pieter Wuille for implementation advice. From 476aea3107b6459ad4e9cf5d0643b1e956f3c5cb Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Tue, 14 Feb 2023 12:50:05 -0500 Subject: [PATCH 02/31] fixup! typos and clarification from feedback by Gleb and Joost. --- bip-vaults.mediawiki | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/bip-vaults.mediawiki b/bip-vaults.mediawiki index f675737a9..66bf7cb6a 100644 --- a/bip-vaults.mediawiki +++ b/bip-vaults.mediawiki @@ -68,9 +68,10 @@ key winds up being ''too'' highly secure. Institutional custodians of Bitcoin would likely use vaults in similar fashion. -===== Avoiding the hostage situation ===== +===== Avoiding the $5 wrench attack ===== -This proposal uniquely provides a solution to the "hostage situation;" by +This proposal uniquely provides a solution to the +[https://web.archive.org/web/20230210123933/https://xkcd.com/538/ "$5 wrench attack."] By setting the spend delay to, say, a week, and using as the recovery path a script that enforces a longer relative timelock, the owner of the vault can prove that he is unable to access its value immediately. To the author's @@ -90,8 +91,7 @@ The only way to implement vaults given the existing consensus rules, aside from [https://github.com/revault emulating vaults with large multisig configurations], is to use presigned transactions created with a one-time-use key. This approach was first demonstrated -[https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-April/017755.html -in 2020]. +[https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-April/017755.html in 2020]. Unfortunately, this approach has a number of practical shortcomings: * generating and securely delete ephemeral keys, which are used to emulate the vault covenant, is required, @@ -157,9 +157,9 @@ The vault has a number of stages, some of them optional: * '''vault transaction''': encumbers some coins with an OP_VAULT script invocation. -* '''trigger transaction''': spends one or more OP_VAULT outputs into one compatible OP_UNVAULT output, which broadcasts the intent to withdrawal to some specific set of outputs. This transaction may have an additional output which allocates some of the vault balance into a partial revault, which simply encumbers the revaulted portion of the value into the same scriptPubKey of the originating OP_VAULT output(s). +* '''trigger transaction''': spends one or more OP_VAULT inputs into an OP_UNVAULT output which carries forward the same recovery and delay parameters, along with a commitment to the proposed withdrawal target outputs. This publicly broadcasts the intent to withdrawal to some specific set of outputs. This transaction may have an additional output which allocates some of the vault balance into a partial revault, which simply encumbers the revaulted portion of the value into the same scriptPubKey of the originating OP_VAULT output(s). -* '''withdrawal transaction''': spends OP_UNVAULT inputs into a compatible set of final withdrawal outputs per the target hash. The only authorization for this spend is the content hash of the withdrawal outputs. +* '''withdrawal transaction''': spends OP_UNVAULT trigger inputs into a compatible set of final withdrawal outputs per the target hash, after the trigger inputs have matured per the spend delay. The only authorization for this spend (aside from the relative timelock) is the content hash of the withdrawal outputs. * '''recovery transaction''': spends one or more OP_VAULT or OP_UNVAULT inputs, which can be done at any time prior to withdrawal confirmation, to the prespecified recovery path. This transaction can optionally require a witness satisfying a specified ''recovery authorization'' script, an optional scriptPubKey gating the initiation of recovery. The use of recovery authorization has certain trade-offs discussed later. @@ -186,7 +186,7 @@ The second component, the recovery authorization scriptPubKey, is optional. It is a raw scriptPubKey that, if specified, must be satisfied to allow the input to be recovered. The benefit of using this parameter will be discussed later. If this component is not given, the de facto "authorization" is the reveal of -the preimage. +the preimage, i.e. the recovery path. Vaults which share the same recovery path can always be swept in batch operations, which is an important practical aspect of managing large numbers of vaults. @@ -269,6 +269,7 @@ where * is a CScriptNum-encoded number (up to 4 bytes) ** It is interpreted as the least significant 23 bits of a [https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki BIP-0068] relative timelock. ** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. +** If this value is less than 0, script execution when spending this output MUST fail and terminate immediately. * is a variable length data push, consisting of two components: *# a 32 byte tagged hash, the ''recovery sPK hash'', committing to the scriptPubKey which coins may be recovered to @@ -299,7 +300,7 @@ for out in spending_tx.vout: recovery_out = out if is_recovery: - eval_for_recovery() + eval_for_recovery(recovery_out) else: eval_for_withdrawal_trigger() @@ -307,7 +308,7 @@ else: ==== OP_VAULT evaluation for recovery spend ==== * If the recovery output does not have an nValue greater than this input's amount, the script MUST fail and terminate immediately. -* (Deferred) if the recovery output does not have an nValue equal to the sum of all OP_VAULT/OP_UNVAULT inputs with a corresponding recovery sPK hash, the transaction validation MUST fail. +* (Deferred) if the recovery output does not have an nValue equal to the sum of all OP_VAULT/OP_UNVAULT inputs with a corresponding recovery sPK hash, the transaction validation MUST fail.'''How do recovery transactions pay for fees?''' If the recovery is unauthorized, fees are attached either via CPFP with an ephemeral anchor or as inputs which are solely spent to fees (i.e. no change output). If the recovery is authorized, fees can be attached in any manner, e.g. unrelated inputs and outputs or CPFP via anchor. ** Note that in the draft implementation, this is facilitated by a "deferred check" which is queued by the script interpreter, but executed after the script interpreter has finished, in other validation code.'''Why does this proposal require a "deferred checks" framework for correct script evaluation?''' The deferred checks framework is an augmentation to execution of the Bitcoin script interpreter. Currently, the validity of each input is checked in an order-indepdendent manner across all inputs in a transaction. Because this proposal allows batching the spend of multiple vault inputs into a single recovery or withdrawal output, we need a mechanism to ensure that all expected values per output can be summed and then checked. This necessitates the introduction of an "aggregating" set of checks which can only be executed after each input's script is evaluated. Note that similar functionality would be required for batch input validation or cross-input signature aggregation. * The script must FAIL (by policy, not consensus) and terminate immediately if neither'''Why are recovery transactions required to be replaceable?''' In the case of unauthorized recoveries, an attacker may attempt to pin recovery transactions by broadcasting a "rebundled" version with a low fee rate. Vault owners must be able to overcome this with replacement. In the case of authorized recovery, if an attacker steals the recovery authorization key, the attacker may try to pin the recovery transaction during theft. Requiring replaceability ensures that the owner can always raise the fee rate of the recovery transaction, even if they are RBF rule #3 griefed in the process. *# the input is marked as opt-in replaceable by having an nSequence number less than 0xffffffff - 1, per [https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki BIP-0125], nor From 9124f2940e6315deaaee4aca92a8250aeaa3aca7 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Tue, 14 Feb 2023 13:07:22 -0500 Subject: [PATCH 03/31] fixup! image clarifications --- bip-VAULT/opvault-flow.drawio.png | Bin 47748 -> 51069 bytes bip-VAULT/vaults-Basic.png | Bin 31544 -> 18595 bytes bip-VAULT/withdrawal-comparison.drawio.png | Bin 19737 -> 20724 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/bip-VAULT/opvault-flow.drawio.png b/bip-VAULT/opvault-flow.drawio.png index 092a683b0e14f3d86e6791b60ce9ae085f67c0fd..b1a0b18bb21610920f07e056b513bb3e0b9355b3 100644 GIT binary patch literal 51069 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 literal 47748 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 CfQxqk literal 31544 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%0AB4oj> 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 AtpET3 literal 19737 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 qJrHo>(FHFMQ32LCVh*k0ZM From c589490f98ba1b0c606d0e2030463f1fde54b786 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Wed, 15 Feb 2023 13:56:22 -0500 Subject: [PATCH 04/31] vaults: make recovery transaction explicit Instead of implicitly detecting whether or not an OP_VAULT/OP_UNVAULT spend is a recovery spend by scanning outputs for matching scriptPubKeys, explicitly indicate recoveries by requiring a witness stack element that is either -1 in the case of no recovery OR corresponds to an output index that is the recovery output. --- bip-vaults.mediawiki | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/bip-vaults.mediawiki b/bip-vaults.mediawiki index 66bf7cb6a..c5738a067 100644 --- a/bip-vaults.mediawiki +++ b/bip-vaults.mediawiki @@ -279,32 +279,26 @@ where ** If is less than 32 bytes, script execution when spending this output MUST fail and terminate immediately. ** Because the recovery scriptPubKey is committed to with a hash, witness version upgradeability is preserved. -==== Check for recovery ==== +==== Witness stack ==== After the witness program is parsed, it must be determined whether this input -is being spent towards a recovery. If an output in the spending transaction is -found whose scriptPubKey hashes to the recovery sPK hash (the -first component of ), the interpreter will -evaluate for recovery. Otherwise, the interpreter will evaluate assuming a withdrawal -is being triggered. +is being spent towards a recovery. -In pseudocode: +Witness stack shown top to bottom: - -is_recovery = False -recovery_out: Optional[CTxOut] = None - -for out in spending_tx.vout: - if tagged_hash("VaultRecoverySPK", out.scriptPubKey) == recovery_sPK_hash: - is_recovery = True - recovery_out = out - -if is_recovery: - eval_for_recovery(recovery_out) -else: - eval_for_withdrawal_trigger() + + +[other potential witness stack items ...] +where + +* is an integer indicating which output, if any, is a recovery output. +** If this value cannot be decoded as a CScriptNum and cast to an integer, script execution MUST fail and terminate immediately. +** If this value is less than -1, script execution MUST fail and terminate immediately. +** If this value is greater than or equal to 0, this spend is a recovery transaction and this value denotes the recovery output that corresponds to this vault input. +* The parse of the other stack items depends on whether or not this is a recovery spend. + ==== OP_VAULT evaluation for recovery spend ==== * If the recovery output does not have an nValue greater than this input's amount, the script MUST fail and terminate immediately. From 58cbc4e9b1c73995b9972b06b46693a313b26dfa Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Tue, 21 Feb 2023 11:40:31 -0500 Subject: [PATCH 05/31] vaults: various feedback MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thanks to Vojtěch Strnad for most of this. --- bip-vaults.mediawiki | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/bip-vaults.mediawiki b/bip-vaults.mediawiki index c5738a067..fcd16c870 100644 --- a/bip-vaults.mediawiki +++ b/bip-vaults.mediawiki @@ -68,9 +68,9 @@ key winds up being ''too'' highly secure. Institutional custodians of Bitcoin would likely use vaults in similar fashion. -===== Avoiding the $5 wrench attack ===== +===== Provable timelocks ===== -This proposal uniquely provides a solution to the +This proposal provides a solution to the [https://web.archive.org/web/20230210123933/https://xkcd.com/538/ "$5 wrench attack."] By setting the spend delay to, say, a week, and using as the recovery path a script that enforces a longer relative timelock, the owner of the vault can @@ -122,8 +122,8 @@ Having a "general" covenant mechanism that can encode arbitrary transactional state machines would allow us to solve these issues, but at the cost of complex and large scripts that would probably be duplicated many times over in the blockchain. The particular design and deployment timeline of such a general -framework is also uncertain. There are no sample vault implementations using -these means known to the author. +framework is also uncertain. This approach was demonstrated +[https://blog.blockstream.com/en-covenants-in-elements-alpha/ in 2016]. This proposal intends to address the problems outlined above by providing a delay period/recovery path use with minimal transactional and @@ -135,7 +135,7 @@ The design goals of the proposal are: * '''batched operations''' for recovery and withdrawal to allow managing multiple vault coins efficiently. -* '''unbounded partial withdrawals''', which allows users to withdrawal partial vault balances without having to perform the setup ceremony for a new vault. +* '''unbounded partial withdrawals''', which allows users to withdraw partial vault balances without having to perform the setup ceremony for a new vault. * '''dynamic unvault targets''', which allow the proposed withdrawal target for a vault to be specified at withdrawal time rather than when the vault is first created. This would remove the need for a prespecified, intermediate wallet that only exists to route unvaulted funds to their desired destination. @@ -145,7 +145,7 @@ These goals are accompanied by basic safety considerations (e.g. not being vulnerable to pinning) and a desire for concision, both in terms of the number of outputs created as well as script sizes. -This proposal is designed to be compatible with any future sighash modes (e.g. SIGHASH_GROUP) 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, future transaction versions (e.g. [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-September/020937.html v3]) and [https://github.com/instagibbs/bips/blob/ephemeral_anchor/bip-ephemeralanchors.mediawik ephemeral anchors]. +This proposal is designed to be compatible with any future sighash modes (e.g. SIGHASH_GROUP) 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]. == Design == @@ -249,11 +249,9 @@ The tapscript opcodes OP_SUCCESS187 (0xbb) and ==== Witness program ==== When evaluating OP_VAULT (OP_SUCCESS187, -0xbb), the witness program is pushed onto the stack for the -following result (stack shown top to bottom): +0xbb), the expected format of the stack, shown top to bottom, is: -OP_VAULT (*) being evaluated @@ -262,7 +260,7 @@ OP_VAULT (*) being evaluated where * is a 32 byte tagged hash of the scriptPubKey used to authorize the spend of this output into an OP_UNVAULT trigger output -** tagged_hash("VaultTriggerSPK", spk), per BIP-0340. +** tagged_hash("VaultTriggerSPK", ), per BIP-0340. ** If this value is not 32 bytes, script execution when spending this output MUST fail and terminate immediately. ** Because this parameter's scriptPubKey is committed to using a hash, witness version upgradeability for the trigger key is preserved. @@ -301,12 +299,8 @@ where ==== OP_VAULT evaluation for recovery spend ==== -* If the recovery output does not have an nValue greater than this input's amount, the script MUST fail and terminate immediately. -* (Deferred) if the recovery output does not have an nValue equal to the sum of all OP_VAULT/OP_UNVAULT inputs with a corresponding recovery sPK hash, the transaction validation MUST fail.'''How do recovery transactions pay for fees?''' If the recovery is unauthorized, fees are attached either via CPFP with an ephemeral anchor or as inputs which are solely spent to fees (i.e. no change output). If the recovery is authorized, fees can be attached in any manner, e.g. unrelated inputs and outputs or CPFP via anchor. -** Note that in the draft implementation, this is facilitated by a "deferred check" which is queued by the script interpreter, but executed after the script interpreter has finished, in other validation code.'''Why does this proposal require a "deferred checks" framework for correct script evaluation?''' The deferred checks framework is an augmentation to execution of the Bitcoin script interpreter. Currently, the validity of each input is checked in an order-indepdendent manner across all inputs in a transaction. Because this proposal allows batching the spend of multiple vault inputs into a single recovery or withdrawal output, we need a mechanism to ensure that all expected values per output can be summed and then checked. This necessitates the introduction of an "aggregating" set of checks which can only be executed after each input's script is evaluated. Note that similar functionality would be required for batch input validation or cross-input signature aggregation. -* The script must FAIL (by policy, not consensus) and terminate immediately if neither'''Why are recovery transactions required to be replaceable?''' In the case of unauthorized recoveries, an attacker may attempt to pin recovery transactions by broadcasting a "rebundled" version with a low fee rate. Vault owners must be able to overcome this with replacement. In the case of authorized recovery, if an attacker steals the recovery authorization key, the attacker may try to pin the recovery transaction during theft. Requiring replaceability ensures that the owner can always raise the fee rate of the recovery transaction, even if they are RBF rule #3 griefed in the process. -*# the input is marked as opt-in replaceable by having an nSequence number less than 0xffffffff - 1, per [https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki BIP-0125], nor -*# the version of the recovery transaction has an nVersion equal to 3. +* If the recovery output does not have an nValue greater than or equal to this input's amount, the script MUST fail and terminate immediately. +* (Deferred'''What is a deferred check and why does this proposal require them for correct script evaluation?''' A deferred check is a validation check that is executed only after all input scripts have been validated, and is based on aggregate information collected during each input's EvalScript run.

Currently, the validity of each input is (usually) checked concurrently across all inputs in a transaction. Because this proposal allows batching the spend of multiple vault inputs into a single recovery or withdrawal output, we need a mechanism to ensure that all expected values per output can be summed and then checked. This necessitates the introduction of an "aggregating" set of checks which can only be executed after each input's script is evaluated. Note that similar functionality would be required for batch input validation or cross-input signature aggregation.
) if the recovery output does not have an nValue equal to the sum of all OP_VAULT/OP_UNVAULT inputs with a corresponding recovery sPK hash, the transaction validation MUST fail.'''How do recovery transactions pay for fees?''' If the recovery is unauthorized, fees are attached either via CPFP with an ephemeral anchor or as inputs which are solely spent to fees (i.e. no change output). If the recovery is authorized, fees can be attached in any manner, e.g. unrelated inputs and outputs or CPFP via anchor. The stack may now have 0 or more elements. Any items on the stack will be used to verify the recovery authorization witness program, if any. @@ -378,9 +372,10 @@ spent. Its presence is optional. For each vault input citing a particular , the output located at vout[] (the "trigger output") must: -* have as its scriptPubKey a witness program version 1 with a single OP_UNVAULT tapscript, having the internal key lift_x(0x0250929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0), per the NUMS point mentioned in [https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#user-content-Design BIP-0341].'''Why must the OP_UNVAULT taproot use a NUMS point as its internal key?''' This ensures that an OP_UNVAULT trigger output is verifiable as expected. It also ensures that it is spendable only by the conditions of the vault. +* have as its scriptPubKey a witness program with a single OP_UNVAULT tapscript, having the internal x-only key 0x0250929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0, per the NUMS point mentioned in [https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#constructing-and-spending-taproot-outputs BIP-0341].'''Why must the OP_UNVAULT taproot use a predefined NUMS point as its internal key?''' This ensures that an OP_UNVAULT trigger output is verifiable as expected. It also ensures that it is spendable only by the conditions of the vault. ** If the witness program has a version less than 1, the script MUST fail and terminate immediately. -** If the scriptPubKey of the output does not match the expected scriptPubKey, as computed by creating a taproot output using the cited NUMS point and a single tapscript spend condition of the form
OP_UNVAULT,
the script MUST fail and terminate immediately. +** If the witness program has a version greater than 1, the script MUST succeed to enable upgradeability. +** If the witness program has a version of 1 and the scriptPubKey of the output does not match the expected scriptPubKey, as computed by creating a taproot output using the cited NUMS point and a single tapscript spend condition of the form
OP_UNVAULT,
the script MUST fail and terminate immediately. ** Witness versions greater than 1 are allowed for upgradeability. * If there does not exist a revault output in the transaction for this input: @@ -486,6 +481,13 @@ def serialize_txout(txo: CTxOut) -> bytes: If the above conditions do not fail, a single true value (0x01) is pushed to the stack. +== Policy changes == + +In order to prevent possible pinning attacks, recovery transactions must be replaceable. + +* When validating an OP_VAULT/OP_UNVAULT input being spent towards a recovery, the script must FAIL (by policy, not consensus) and terminate immediately if neither'''Why are recovery transactions required to be replaceable?''' In the case of unauthorized recoveries, an attacker may attempt to pin recovery transactions by broadcasting a "rebundled" version with a low fee rate. Vault owners must be able to overcome this with replacement. In the case of authorized recovery, if an attacker steals the recovery authorization key, the attacker may try to pin the recovery transaction during theft. Requiring replaceability ensures that the owner can always raise the fee rate of the recovery transaction, even if they are RBF rule #3 griefed in the process. +*# the input is marked as opt-in replaceable by having an nSequence number less than 0xffffffff - 1, per [https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki BIP-0125], nor +*# the version of the recovery transaction has an nVersion equal to 3. == Implementation == From 0204c9a1f9a9075f2483450f1bab034d453270b7 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Tue, 21 Feb 2023 11:58:11 -0500 Subject: [PATCH 06/31] vaults: make recovery output structure a matter of policy Since constraints on unauthorized recovery transaction structure exist only to avoid pinning, make them a matter of policy and not consensus. --- bip-vaults.mediawiki | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/bip-vaults.mediawiki b/bip-vaults.mediawiki index fcd16c870..c9af76547 100644 --- a/bip-vaults.mediawiki +++ b/bip-vaults.mediawiki @@ -259,10 +259,9 @@ When evaluating OP_VAULT (OP_SUCCESS187, where -* is a 32 byte tagged hash of the scriptPubKey used to authorize the spend of this output into an OP_UNVAULT trigger output +* is a 32 byte tagged hash of the scriptPubKey used to authorize the spend of this output into an OP_UNVAULT trigger outputBecause the trigger scriptPubKey is committed to using a hash, witness version upgradeability for the trigger key is preserved. ** tagged_hash("VaultTriggerSPK", ), per BIP-0340. ** If this value is not 32 bytes, script execution when spending this output MUST fail and terminate immediately. -** Because this parameter's scriptPubKey is committed to using a hash, witness version upgradeability for the trigger key is preserved. * is a CScriptNum-encoded number (up to 4 bytes) ** It is interpreted as the least significant 23 bits of a [https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki BIP-0068] relative timelock. @@ -270,12 +269,10 @@ where ** If this value is less than 0, script execution when spending this output MUST fail and terminate immediately. * is a variable length data push, consisting of two components: -*# a 32 byte tagged hash, the ''recovery sPK hash'', committing to the scriptPubKey which coins may be recovered to -*#* tagged_hash("VaultRecoverySPK", spk) from the [https://github.com/bitcoin/bips/blob/master/bip-0340/reference.py BIP-0340 reference code]. -*# 0 or more bytes that optionally specify a scriptPubKey that needs to be satisfied to authorize the recovery transaction. -*#* This optional parameter changes the allowable structure of recovery transactions. +*# a 32 byte tagged hash, the ''recovery sPK hash''Because the recovery scriptPubKey is committed to with a hash, witness version upgradeability is preserved., committing to the scriptPubKey which coins may be recovered to +*#* tagged_hash("VaultRecoverySPK", ) from the [https://github.com/bitcoin/bips/blob/master/bip-0340/reference.py BIP-0340 reference code]. +*# 0 or more bytes that optionally specify a scriptPubKey that needs to be satisfied to authorize the recovery transaction, referred to as . ** If is less than 32 bytes, script execution when spending this output MUST fail and terminate immediately. -** Because the recovery scriptPubKey is committed to with a hash, witness version upgradeability is preserved. ==== Witness stack ==== @@ -302,17 +299,11 @@ where * If the recovery output does not have an nValue greater than or equal to this input's amount, the script MUST fail and terminate immediately. * (Deferred'''What is a deferred check and why does this proposal require them for correct script evaluation?''' A deferred check is a validation check that is executed only after all input scripts have been validated, and is based on aggregate information collected during each input's EvalScript run.

Currently, the validity of each input is (usually) checked concurrently across all inputs in a transaction. Because this proposal allows batching the spend of multiple vault inputs into a single recovery or withdrawal output, we need a mechanism to ensure that all expected values per output can be summed and then checked. This necessitates the introduction of an "aggregating" set of checks which can only be executed after each input's script is evaluated. Note that similar functionality would be required for batch input validation or cross-input signature aggregation.
) if the recovery output does not have an nValue equal to the sum of all OP_VAULT/OP_UNVAULT inputs with a corresponding recovery sPK hash, the transaction validation MUST fail.'''How do recovery transactions pay for fees?''' If the recovery is unauthorized, fees are attached either via CPFP with an ephemeral anchor or as inputs which are solely spent to fees (i.e. no change output). If the recovery is authorized, fees can be attached in any manner, e.g. unrelated inputs and outputs or CPFP via anchor. -The stack may now have 0 or more elements. Any items on the stack will be used to verify the recovery authorization witness program, if any. +The stack may now have 0 or more elements. Any items on the stack will be used to verify the witness program, if any. -* If the ''recovery authorization sPK'' is not null: +* If is not null: ** If VerifyWitnessProgram(, , ...) fails, the script MUST fail and terminate immediately. ** (This validates that the recovery has been authorized.) -* else (if the recovery is allowed to be unauthorized): -** If the spending transaction has more than two outputs, the script MUST fail and terminate immediately. -** If the spending transaction has two outputs, and the output not the recovery output is not an ephemeral anchor, the script MUST fail and terminate immediately.'''Why can unauthorized recoveries only process a single recovery path?''' Because there is no signature required for unauthorized recoveries, if additional outputs were allowed, someone observing a recovery in the mempool would be able to rebundle and broadcast the recovery with a lower fee rate. - - -(Note: the above rules imply that if all inputs have a recovery authorization sPK specified, the structure of the recovery transaction is "free form," and the only requirement is that for each OP_VAULT/OP_UNVAULT input, there exists a compatible ''recovery output'' which preserves its full nValue.) If none of the conditions fail, a single true value (0x01) is left on the stack. @@ -489,6 +480,13 @@ In order to prevent possible pinning attacks, recovery transactions must be repl *# the input is marked as opt-in replaceable by having an nSequence number less than 0xffffffff - 1, per [https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki BIP-0125], nor *# the version of the recovery transaction has an nVersion equal to 3. +In order to prevent pinning attacks in the case of unauthorized recovery, the output structure of unauthorized recovery +transaction is limited. + +* If (as determined from ) is null, the recovery transaction MUST (by policy) abide by the following constraints: +** If the spending transaction has more than two outputs, the script MUST fail and terminate immediately. +** If the spending transaction has two outputs, and the output not the recovery output is not an ephemeral anchor, the script MUST fail and terminate immediately.'''Why can unauthorized recoveries only process a single recovery path?''' Because there is no signature required for unauthorized recoveries, if additional outputs were allowed, someone observing a recovery in the mempool would be able to rebundle and broadcast the recovery with a lower fee rate. + == Implementation == A sample implementation is available [https://github.com/jamesob/bitcoin/tree/2023-01-opvault here], with an associated [https://github.com/bitcoin/bitcoin/pull/26857 pull request]. From 6ff8efd3d195cf46b9353af3ad49886a50eda734 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Tue, 21 Feb 2023 16:08:23 -0500 Subject: [PATCH 07/31] vaults: blank deployment --- bip-vaults.mediawiki | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/bip-vaults.mediawiki b/bip-vaults.mediawiki index c9af76547..63aadfd40 100644 --- a/bip-vaults.mediawiki +++ b/bip-vaults.mediawiki @@ -633,8 +633,7 @@ Script descriptors for vault-related outputs will be covered in a subsequent BIP == Deployment == -It is anticipated that deployment would happen in the same way [https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#user-content-Deployment that BIP-0341 was deployed]. Parameters to be determined. - +TBD == Rationale == From 24241ee26bc59a3d3f094190030865d921f553f4 Mon Sep 17 00:00:00 2001 From: Jameson Lopp Date: Wed, 22 Feb 2023 07:27:03 -0600 Subject: [PATCH 08/31] typos / gramma cleanup --- bip-vaults.mediawiki | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/bip-vaults.mediawiki b/bip-vaults.mediawiki index 63aadfd40..5a91447f4 100644 --- a/bip-vaults.mediawiki +++ b/bip-vaults.mediawiki @@ -27,7 +27,7 @@ the prespecified path. The hazard of custodying Bitcoin is well known. Users of Bitcoin must go to significant effort to secure their private keys, and hope that once provisioned their custody system does not yield to any number of evolving and -persistent threats. Users have little means to intervene once compromise is +persistent threats. Users have little means to intervene once a compromise is detected. This proposal introduces a mechanism that significantly mitigates the worst-case outcome of key compromise: coin loss. @@ -94,12 +94,12 @@ key. This approach was first demonstrated [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-April/017755.html in 2020]. Unfortunately, this approach has a number of practical shortcomings: -* generating and securely delete ephemeral keys, which are used to emulate the vault covenant, is required, +* generating and securely deleting ephemeral keys, which are used to emulate the vault covenant, is required, * amounts and withdrawal patterns must be precommitted to, * there is a necessity to precommit to an address that the funds must pass through on their way to the final withdrawal target, which is likely only known at unvault time, * the particular fee management technique or wallet must be decided upon vault creation, * coin loss follows if a vault address is reused, -* the transaction data that represents the "bearer asset" of the vault must be stored for perpetuity else value is lost, and +* the transaction data that represents the "bearer asset" of the vault must be stored for perpetuity, otherwise value is lost, and * the vault creation ceremony must be performed each time a new balance is to be deposited. The deployment of a "precomputed" covenant mechanism like @@ -157,7 +157,7 @@ The vault has a number of stages, some of them optional: * '''vault transaction''': encumbers some coins with an OP_VAULT script invocation. -* '''trigger transaction''': spends one or more OP_VAULT inputs into an OP_UNVAULT output which carries forward the same recovery and delay parameters, along with a commitment to the proposed withdrawal target outputs. This publicly broadcasts the intent to withdrawal to some specific set of outputs. This transaction may have an additional output which allocates some of the vault balance into a partial revault, which simply encumbers the revaulted portion of the value into the same scriptPubKey of the originating OP_VAULT output(s). +* '''trigger transaction''': spends one or more OP_VAULT inputs into an OP_UNVAULT output which carries forward the same recovery and delay parameters, along with a commitment to the proposed withdrawal target outputs. This publicly broadcasts the intent to withdraw to some specific set of outputs. This transaction may have an additional output which allocates some of the vault balance into a partial revault, which simply encumbers the revaulted portion of the value into the same scriptPubKey of the originating OP_VAULT output(s). * '''withdrawal transaction''': spends OP_UNVAULT trigger inputs into a compatible set of final withdrawal outputs per the target hash, after the trigger inputs have matured per the spend delay. The only authorization for this spend (aside from the relative timelock) is the content hash of the withdrawal outputs. @@ -224,7 +224,7 @@ An arbitrary set of target withdrawal outputs that is specified as a parameter t A primary consideration of this proposal is how fee management is handled. Providing dynamic fee management is critical to the operation of a vault, since -* precalculated fees are prone to making transactions unconfirmable by high fee environments, and +* precalculated fees are prone to making transactions unconfirmable in high fee environments, and * a fee wallet that is prespecified might be compromised or lost before use. But dynamic fee management can introduce @@ -416,7 +416,7 @@ def find_revault_for_vault(vault_in) -> int: return None -=== OP_UNVAULT evaulation === +=== OP_UNVAULT evaluation === ==== Witness program ==== From 4f03aaea2c1a830e0676830713c45577f6f45989 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Thu, 23 Feb 2023 08:57:45 -0500 Subject: [PATCH 09/31] vaults: add backwards compatibility --- bip-vaults.mediawiki | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/bip-vaults.mediawiki b/bip-vaults.mediawiki index 5a91447f4..570b95b81 100644 --- a/bip-vaults.mediawiki +++ b/bip-vaults.mediawiki @@ -635,6 +635,18 @@ Script descriptors for vault-related outputs will be covered in a subsequent BIP TBD +== Backwards compatibility == + +OP_VAULT and OP_UNVAULT replace, respectively, the witness v1-only opcodes OP_SUCCESS187 and OP_SUCCESS188 with +stricter verification semantics. Consequently, scripts using those opcodes which previously were valid will cease to be valid with this change. + +Stricter verification semantics for an OP_SUCCESSx opcode are a soft fork, so existing software will be fully functional without upgrade except for mining and block validation. + +Backwards compatibility considerations are very comparable to previous +deployments for OP_CHECKSEQUENCEVERIFY and OP_CHECKLOCKTIMEVERIFY (see [https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki BIP-0065] +and [https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki BIP-0112]). + + == Rationale == From 6dc766d937a20ce3bb0f56979c203562508112a3 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Thu, 23 Feb 2023 09:14:15 -0500 Subject: [PATCH 10/31] vaults: add Corey Haddad reference --- bip-vaults.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-vaults.mediawiki b/bip-vaults.mediawiki index 570b95b81..5acedbafd 100644 --- a/bip-vaults.mediawiki +++ b/bip-vaults.mediawiki @@ -83,7 +83,7 @@ timelocked coins for perpetuity or relying on a trusted third party. [[File:bip-VAULT/vaults-Basic.png|frame|center]] Vaults in Bitcoin have been discussed formally since 2016 -([http://fc16.ifca.ai/bitcoin/papers/MES16.pdf MES16]) or earlier. The value of +([http://fc16.ifca.ai/bitcoin/papers/MES16.pdf MES16]) and informally since [https://web.archive.org/web/20160220215151/https://bitcointalk.org/index.php?topic=511881.0 2014]. The value of having a configurable delay period with recovery capability in light of an unexpected spend has been widely recognized. From f30fb52bbb165982823f8af131c8ff6ffb56eba6 Mon Sep 17 00:00:00 2001 From: Jameson Lopp Date: Tue, 28 Feb 2023 15:59:11 -0500 Subject: [PATCH 11/31] date fix copypasta FTW --- bip-vaults.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-vaults.mediawiki b/bip-vaults.mediawiki index 5acedbafd..1ac8de9ff 100644 --- a/bip-vaults.mediawiki +++ b/bip-vaults.mediawiki @@ -6,7 +6,7 @@ Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-xxxx Status: Draft Type: Standards Track - Created: 2020-02-03 + Created: 2023-02-03 License: BSD-3-Clause Post-History: 2023-01-09: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-January/021318.html [bitcoin-dev] OP_VAULT announcment From 997e4f4f0e92ccbc5f5cdf34c265c7e5e41fa4bc Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Thu, 2 Mar 2023 09:35:01 -0500 Subject: [PATCH 12/31] Update bip-vaults.mediawiki Co-authored-by: kallewoof --- bip-vaults.mediawiki | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bip-vaults.mediawiki b/bip-vaults.mediawiki index 1ac8de9ff..3f56d01a0 100644 --- a/bip-vaults.mediawiki +++ b/bip-vaults.mediawiki @@ -476,9 +476,9 @@ If the above conditions do not fail, a single true value (0x01) is In order to prevent possible pinning attacks, recovery transactions must be replaceable. -* When validating an OP_VAULT/OP_UNVAULT input being spent towards a recovery, the script must FAIL (by policy, not consensus) and terminate immediately if neither'''Why are recovery transactions required to be replaceable?''' In the case of unauthorized recoveries, an attacker may attempt to pin recovery transactions by broadcasting a "rebundled" version with a low fee rate. Vault owners must be able to overcome this with replacement. In the case of authorized recovery, if an attacker steals the recovery authorization key, the attacker may try to pin the recovery transaction during theft. Requiring replaceability ensures that the owner can always raise the fee rate of the recovery transaction, even if they are RBF rule #3 griefed in the process. -*# the input is marked as opt-in replaceable by having an nSequence number less than 0xffffffff - 1, per [https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki BIP-0125], nor -*# the version of the recovery transaction has an nVersion equal to 3. +* When validating an OP_VAULT/OP_UNVAULT input being spent towards a recovery, the script must FAIL (by policy, not consensus) and terminate immediately if both'''Why are recovery transactions required to be replaceable?''' In the case of unauthorized recoveries, an attacker may attempt to pin recovery transactions by broadcasting a "rebundled" version with a low fee rate. Vault owners must be able to overcome this with replacement. In the case of authorized recovery, if an attacker steals the recovery authorization key, the attacker may try to pin the recovery transaction during theft. Requiring replaceability ensures that the owner can always raise the fee rate of the recovery transaction, even if they are RBF rule #3 griefed in the process. +*# the input is not marked as opt-in replaceable by having an nSequence number less than 0xffffffff - 1, per [https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki BIP-0125], and +*# the version of the recovery transaction has an nVersion other than 3. In order to prevent pinning attacks in the case of unauthorized recovery, the output structure of unauthorized recovery transaction is limited. From 915ede327af11e7fe41041d98c88e1511763fde5 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Thu, 2 Mar 2023 09:41:15 -0500 Subject: [PATCH 13/31] fixup! add Kalle reference --- bip-vaults.mediawiki | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bip-vaults.mediawiki b/bip-vaults.mediawiki index 3f56d01a0..d6da2bbf4 100644 --- a/bip-vaults.mediawiki +++ b/bip-vaults.mediawiki @@ -739,8 +739,9 @@ CTransaction 9595af9728de3ae9ca6110c040ad34f02f9db8b610296f99618354b99d5ec395: ( == References == -* [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-February/012470.html Bitcoin Vaults (2016)] -* [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-April/017755.html On-chain vaults prototype (2020)] +* [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-February/012470.html [bitcoin-dev] Bitcoin Vaults (2016)] +* [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-February/015793.html [bitcoin-dev] Simple lock/unlock mechanism (2018)] +* [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-April/017755.html [bitcoin-dev] On-chain vaults prototype (2020)] * [https://arxiv.org/abs/2005.11776 Custody Protocols Using Bitcoin Vaults (2020)] * [https://jameso.be/vaults.pdf Vaults and Covenants (2023)] From 47a25d15403bc50ba0c5b99382e0ebd9029fcc8d Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Wed, 22 Mar 2023 14:32:01 -0400 Subject: [PATCH 14/31] fixup! FLUification Adds AJ and Greg as co-authors --- .../batch-sweep.drawio.png | Bin bip-0345/opvault.drawio.png | Bin 0 -> 92563 bytes {bip-VAULT => bip-0345}/vaults-Basic.png | Bin bip-0345/vaults.drawio | 1113 +++++++++++++++++ bip-0345/withdrawal-comparison.drawio.png | Bin 0 -> 20720 bytes bip-VAULT/opvault-flow.drawio.png | Bin 51069 -> 0 bytes bip-VAULT/withdrawal-comparison.drawio.png | Bin 20724 -> 0 bytes bip-vaults.mediawiki | 692 ++++------ 8 files changed, 1387 insertions(+), 418 deletions(-) rename {bip-VAULT => bip-0345}/batch-sweep.drawio.png (100%) create mode 100644 bip-0345/opvault.drawio.png rename {bip-VAULT => bip-0345}/vaults-Basic.png (100%) create mode 100644 bip-0345/vaults.drawio create mode 100644 bip-0345/withdrawal-comparison.drawio.png delete mode 100644 bip-VAULT/opvault-flow.drawio.png delete mode 100644 bip-VAULT/withdrawal-comparison.drawio.png diff --git a/bip-VAULT/batch-sweep.drawio.png b/bip-0345/batch-sweep.drawio.png similarity index 100% rename from bip-VAULT/batch-sweep.drawio.png rename to bip-0345/batch-sweep.drawio.png diff --git a/bip-0345/opvault.drawio.png b/bip-0345/opvault.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..702189d156d0082416fcb1f8d33ca464558d766f GIT binary patch literal 92563 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 CzF+(R literal 0 HcmV?d00001 diff --git a/bip-VAULT/vaults-Basic.png b/bip-0345/vaults-Basic.png similarity index 100% rename from bip-VAULT/vaults-Basic.png rename to bip-0345/vaults-Basic.png diff --git a/bip-0345/vaults.drawio b/bip-0345/vaults.drawio new file mode 100644 index 000000000..6f7fd4ebc --- /dev/null +++ b/bip-0345/vaults.drawio @@ -0,0 +1,1113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bip-0345/withdrawal-comparison.drawio.png b/bip-0345/withdrawal-comparison.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..8a76d20722d614c75ff804b5bdc487488bb79f66 GIT binary patch literal 20720 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

rN&aJp zu$?(^+=A!3H@>TGwy`tf28(LeMkSW++zNcn-c-qPx_Hv}(@3-th4#JDUc&0xi}j^- zFm+PMqK)@bk9*a8RJF~SS6@E83fj(yBc5}pruQ4recBL|50EZ%&qU)de(XEuh8K-S zTE4S0ICm|`d(+FkQrcL&@h1NyzRb8}(ZsQCjA7-!SyuLWk`GsuOobRCO zyBEnndzR-}wn62Otmo8o*#eh<5AyAtBa5GjUrHm+_g9q-`A_W4ZR{<?zYuO3glX3Th6iO+8-Yc8IFV|#0u8#I-=O#Z|pNa&=0mlrKxs37A%mW>p+3? zwbietYWeoU>u)9tzOF1z^Ym1oHuqtzbhMlwj*zIH=uPNN!fmt*WS0JzDQbEc#?e2L zQ}BQG_Gby=5w9@Wu?4MNyjqC-&MPVMxOM*q9-e zx|nH3yL2s0{ObBD!}k?29T7hkX0d2_TGF^#nJ}alFXJAibdy@#q4_u>zFv61yWt3> zju-hrFqUbQzO>cd$_uxHHohn4o8|NrxmOMN*vU#f|Dv%9tQ!Xx3M#JJ+bl&sym&Pe z2~$2qCEo72MSbPq_le#2rU4;;V4)9J^$B@mpJTM`w?#7(o^)pBG`^ugPCH7k*= z_@tyxx7M+!3gq^Vu9}U-Fy}d$(MRLerYO6@ce;e+nU(M~p9&rfgk$nDk0C+%(@IMd zTkAtu)(gvcYR7lPnU1=p7Pt^O8GZcj)g>2vT%eK4aw^yB67=CGVP+~#HpA4liF+<0@fyz7hjd5b zmcgE6yhbi7)$Rx6+=R2x>VxS|Ci8c%ex48wJ>_sD_{XQbnH5`_YQ-yJ;k!8Hb0X04 zu5P0k_3@{l4sZ*|`Kam?UdT4w!oEbMrpAxa=WV6-1|=^nAVPO<2_}~&>Ybl95V^B~ zIc@0nAYCzGVGs;LPeE0gw*&9sw&T{-!HLxZblWLxf92wqs+E>o!6S;Ohfw@nu#FGt z(I87utn6hABReicrf|7LnwySIGD!A|D0Qy7%&GpryWXLN@>VR+s23!{NXzo)TOeJvb&-ojgttG72&ynHK1L6Il?tZ zOMs`3tMJ?$=b9r&KT0}jNAJL9g_|Pc<;YuNug;<^)`IDl8yI?0dUSL-V}am|JMlYInTZ8BUP3-oWf+oLpmLprq8CDUfW3 z+Tt*)MbER%#`qEyv!SdDNItE8wuzU0<=)PWxG=xSiWZ!Ctfg6=H(n-7b=5g+iI!tuQLM)K*$2!*Vv!9<37X&`zB3urDCq+$UxB-YNh-HA zk2u8`L8S`YM^IPCFR%7zUZzck-#<0tf9QtUM4&8eoUi7`l`35q%}4v#ilw6txHX^O zXGbCj)yx#WTavgEM^l4|jz1B3+?yZfYv)`tiCP0$M~~3vkB0Rs(_7V7Z%%C+n#@S1 zXwqdxk)-;C_*iQ-jau5+WmkNhq3F6mZIEb*X0HZFuZttMvVleG4QJhg5bR(_@YTFu zsaY`y4LfyIbg0Wpi@UAmV1O6D+Y_!79NT_6hRllK{1Buu8{HAPCS31(}LXshzYGcKhp@8Fk94S#W^@oCEW9;jlEYiBeYJ0s$N7%}?fXtv1q zhwblyopJJC-FawVV`X>cp-ygzY;g;uz-Q0BYLC8whJlw)MMm-4W zI&qUP5q1viMo_Zrg#QvegV@EFj#~Dc`{W+Mn1m0YgvlqWZ6nsK(2aTuCbzWOe?2#*(tZEHNJK3O7!*E zv6~b42R6+^_R4wuXHpd;P&7S#-{6(DWXg9>SzCnuUd)D`TiY{8{~nLSvI5KmlpAby zhw;0F6CmNfaxn~*OW)f$<{HA82dOy~&_+MR-mzTzsFt?$ly3-qJ!)*qW7kbN#PKeI zAgxv*pp95`rYT7|V2W+s@lb&f031irpg-O0y^WVZ2LEG!=0Z}yVx{|iyqFKqQT|+L zUQD{Ip@V+w)G656wM<`?fN=G+jwxYk?B%ckInewOKR|=oDfboNYO-fV$zS3`1m6q`;Rw*^Qz)Ds}` z-mPFEZ|@7$vmOrya6vBc2Z1rLotCo9Oi1UGo28TD#2g6uyhNX^U%tHBJ#PdJ*$8B$ z8!ytc#~t(?rfB?eX_Amhx$mqg_snH}qUZg*z+gg|09bV25O;}amVqHVfVy9fsS)P4 zMxJBZfGPVz`uKe@n@T8T)q39ExvfcM)wA!pe^H`${UKdtMB^1E8a8HP{d6WEPc=|G zTYpmk`ccqtDD*CCAo~(C`|AgJBS;M&-Fr$z`R@GxEhh z>lkTsPY&w5FX4duKK7v~+DN5G?9f}|1ho+tZGioq_>Pv}qH&)7Iad2ExsRXlsVaYc z&9k)jy{V6xOn1hpF1DNXf4jry5LiH-Xij;4<-+_=w%`sJD*WYp^*;!S(={OcEk`Q+ zNs;`&+m<8y_ilhJw=dFCNv({J$B3$=PwvABelCiCyZ$;z%$grQE_P^ z<~9`g)=aKVS?P3M)kl@3f?GX9wU=_WA`UEFQ(dbCSkQU5>e@5Ako85%m)h-pHS2vf zJ&C>pldYmU0@5zmmA}82SpqPl7lcKeZ$CL!nL#I!sdLO(^wKLxxw_G(meM4G-r}Br z)ee|Ui=BbiEJxZ=C)4t})~i?Nin<&^`f)Yul<5IlmC_T9h7R}M2GGYaPWzsHsFS%7 zr`}LrV`|v|6`MG;ks57S2p#Zy1(=In<6qx7Y_x9Mb=YG(Ii&i-L&&@JzQ&ldc2#Co zI|AN`HNCvT^-6_pRrA-PhaLvt{Q5&!%Fu>c^2)vb!0#W#S@2zXiR)jksruC3r`p9s zux`^``DHvt=Ud!9CQOFm*5@}?=Y4C}PTV^GS#NWFK4eglJT}oyu*X_m6uKM!DID=;rd82?);*;8uXfSz*6ycp}^+;z^SYAHiIkot3Ev+3geY#wG>}-U34Qt5}CCYx~xtX3KKuEaWpA7AgjQI5G8V^0di*0X) znN16#n@i&PP|}ZyZN}RP8-gxbq#~^Oo*&jLATgR`C6&+dDfe&rcPEjK(0B zb}zPcud{OXUbpA)=i+|%cILR!i_RMK#AVi;4s9LWt18G$5ZVGiQ5>QM?0d| z#^Uk4fQG4EKTug~Y#l4%V6P#@X7o@g+)B9@*dtfY8j+v6JBvoP6a*S|g@ zqUt?7zqsHID3Q7FTc?~th6M%*P){aQt6d3MYY34aqzf3WGr;k*ygs}Dk${EP;C7Y- zeTz=^A(O`9-0x53yd2Cuw-D5_q`LWCl`?V%UU|%**C#r#-2{Fmq&Y|V6zxdN;z*AI za|_inK|Yj1JTPGW6aaGdY}kF1Mx0B$-Ix%E^(kckmJXh5*(t<_n-$30 z=}Fey%O;N=hae?Feoh{9JkQdpMWtg{>B0+^fT^b$S&HR&dimE4!I|q1O?9ue`1vpP zPCt$8t<5xfGBXqOsd`hQv9^tmyksmyYTL9*<*=GlBH)$^QvSHXPF6M{y3!AxLtkze=xwYYA zf@>B89@p?6m-qhsTJajvzg;(Nwgc%veq{=AvC!n;ldwN5Xs#2`Xm`Y*-d<_vWBdBb zeU{QsUI|;hI$6GZY+S(?tRE#O=_@{DwQp78#Y6M#4zlb`4L;|^JVBpkbqZLPhgaW^ z@4<1Fo%VV2GGgd^dElmE_>L zDD=U(nTLzLuy^DuZ9b@}UzYcwT2_;+qxo=CiR-2>rHOX6>h$T(HTDna=G2K)uhpel z(yMY=Q5z$BX-!v^ui-}JLi+4Wc9lNfs*m}@id^3A>mv07UMygBwyd9!7dV^tFf1US zC$i+FMG9}0^x$}4wu5WgiJ&rRp6DXvOU2LEPu%S+K5Z1nF3Zp|YThqD?W+czb4nHil!_^~*E!AQpPR zLt{KksBXo_Z;2Q3!|inAV~47{r&Om>nxnVnil-vftH$If#xk4PO!I4Ljp-3loi~iW zr4N(>TB=?4vi{jVk2U}<$0xSizasdEb9O^GkhDOQH5_^wg|jIU9=BdhKJ-80o}eC?v5iR>1K&D=-!%HL7%kI5vzH);w>V`tP^ZhyyZNJ1WM zGi#gSGd?hV@=IIj?SS*SKC!eyR4Y>Y-Qts1X&Yw`)dsC=^Tuh=Sg3(n_6HVQCtl_z z#lC;it*0QGUmKLt5z=l(W|FN9^;317oZ|dRsX`euVgan^-mq1@r_-tTimW6|3c~B_ zEHlrPu5=7;ES0T8!}-T<o}7#j z)FJFlcY%0v(gL~;syy2^PW_w#EzHiS;it~&bIgI=_+ELlWN;UoGVP;1rfT4Zp%ts5 ztzQ0~u+`QNZ}z5K6kNwVPov5<$q(OLhg&w?VGX7Ql~gORMV~@QbDK5pRA`ZJapKW| z9I6P}+`#o1d7+N!s0Q<2N>(1LHoZCuv$A_CZ@#o!SCl6*BG=f$lQ&Ca_H=;oIf+o@ znJ)_A#%%5CDQY%eXJyX8ho>MlnzZ>IWk%XzV`vpB$+`>1O>0>+*7V+3>8hy=>3ZG$ zKD}TKm8d^F0x3qkqDa4Dh4{`W4K7DjZ8?}!0 z7Zjdu$n0h_%{}!*P?XlLZ^Yd`oF?>+K4cH&Td{@iLWzcn9bx^q%_{7>bJc9bhC@I4 zc+Z|MXC4VIw;3vZplR89!6kCr9)M~2-hwK}KWZZ5}MpYrAPleK@hAV0* zbBc^QMUFL}qp70h8L#SWPMiWBcrVMmqBbZkfBa!qqi*wCm$GQOoLSC;j+N4m;vD0c zN2hd5j_+?KJac+gqkT(o_WoPfv-xTThOCNv^osJ`B*6Oi>YaOkUvaxvt zK}#_mu7p$=k~lbNds3~MX!WW9&9}tddvSaU zaqnTK0>~~Hg@@Ruc|;70L3OQ(c3L-iIydIZzzfvrat4?P+g;<6zjAO>3BYU}vv?oz z;7sb{edY$VU3U0k+G3|o|J@W+kjA?}j0G3sOKTRN&`R^QseAIP+&O?=$;aCu_ONTI z{{%FTFaW=uP0jM(Yj(xlJnY6(N9a_FLj^I-4pd9i%Pgm6?|=-1^e#XJ;D4>bcAL}X z5~E((9G@SZ{*_ajUjdW2VlE@$ly&=to|Tl5@}ha04R^`Mg%8j{Pcc+6AwRB*%VlA{ z?$-pqmv&q(Fh2Zy0wAw;P`7voCXiXU&$PYv()Ow{m_50}B9G5uvn>_H{b3T+s#>6n z2RP?w)m|}WOQ%xz8t-Jb4$ayJ2&Js4F_&z_g*kc!?sHCkuMkMw(~m)@V$TN*dooQ< zoL$n`LsS0>ih!knx%he!`km_EcLqP3TiRK_e4LpRpHv4aF-M8op+5+W9n5QNFv=ea z3blP;ouZAo?rr&()**BcxTdM*!uLD7{$K0v(dV$$L?z$eZ=>(L`YXu*M9TGnqFlhc zu>o2DBEJfxr3DbL-u8z8iq7_y6yf?SLE#>;!~E?4yZG|-cE0)9183(gD?|&v1$nv?V^ffqhdxN|vXcYojj!1kQ~(uyCN6-@e8yuaU(3D#^7LW= z70cB^KoVB!`tE>D6(v{9ru04g%B5}Gg`NAmXoIYW+fL(~R#Gg+YvFcD1G0@Oxd`%^P!)iacFXmJ z!hd~dQ#`Z@kb7pEhkh6o01PM~dEuf!ges5}BnO0x3y3f0dVd|*R`3lM6TeSslVUQO z8WpBH%=bS39^DFv9-v~Bfth{0^z7CH;!vUv90h;{zShb~nYYFTY))RL}qu144NgPm-jLzVw~9|hYP zs3+#r%@TH%#S5+15`awz;*PAJ%(-++f1|OkF5pSSf3eQxq6p>kE&(^dXb3baE^X}C zh|!-O+I?8Qnf6I;jyrY@auFC!_jI(Fy=4+#hAf16>MYh!y%aV(|iUZu5BOci_vXPM*;>bNbUj(#FOF*kzq@p*KNXn zjzPC1UL~k97gf@@8J>0;Sa6PX^b{WhkC*INtBA(fadh#_td+g#{&{{>@)9vv?0Rgq zfr0=OH)Hwn>C>m8ZF@QA55%s?fpOjV@8fDbWJAbr5Ibv`!_?z!SGpuUGB;RLL!Rx0 z+)q&`AIUccyW{g;b_aN`)uq*U5;b&Gspp~TZ?RV#YHhecmQm)Hap0l)dLJ<~ZR%o1WIzmOk|DmlX126%1{4Oz8P8#c zz3A`@!l!QKjsx>wl5=gm2g|t|jZL>80oKzQ6sBFm6Bb2OXP&*90TgUec7Am)ph0`L zh6UOZp62tmT%F=Mv!+1Vn7w4m*)I4eYTiy@$Or zRZ?CiJC6^Fiz;L<@=tao%gtGw@v8&`Rx|MA@(_5%zxU2ObD5mw0uviiv2;GJSyUfIcKJB9TvPFcCk84?9n_~b~=*x;`GjbiV7)7rKpfnRD% z@q^WhN{wvGs3$a3NE7XiAnCo-65xLJa{1SukwSRZ(x|zlnmxkzX*q9YZuK=%Z|5Wm zQ72M5i`WDy3njiY0={Ad2&l-%5vXM?2~bob8ojYcx;-2N}{yd{N8vE*H`G4+^pC{ zUV2@(8hiM!xE6aap<|`*6Ij+Hk!I00olp!vDc^*B>-JqfTQ&fTI$ff0zyPkqZD8fI z9qe6)VnjmB&TnOK+vg!Ie;>BGZ>@7{jxaaB1>91K`Uq?Vi?sE=!u5q&=gCJ%;}v_+ zN2{qa4F~ARX;d9_FtBKnZarR&>wBFxFh8}y_O}nEj^uRy+=#CeVXI6s4`k0-n8a28 z?_(7f8~cZn{m0_$<43nldSp~jo_D<|Rz5!K%na7H=YvQQCm(Y!^ZhHBbW9*WN-^p% zCvrO#^Er4u_1_$!iTw@Bm-seI^UmOz znA(eG?ai{tUQ4#R!3^7HWS$0(uFOWBEjJ=2@YFAkfGRm;7QSUeG$Uc(&*!yM_^;Yc zSScvo%pJEMZFc5kZ_~ejPL$zK9jK{qo^*5mGE@sDlL#jB7)%EJ&&hm{_&B68+X;YI z3D5wxvHxJ!;4eYmC(zMlT)by>0gdt)TK*wXsY{VEWA*X-Lh(EV+gYBL1e|0J%!B9C zT?anC`P^N9nbog!$p^ArcL>ye6J%T)_s6S-R0~`R0nFTX>;r|0?5BxWIry+mG((uo zhmL?6pUGCqrgvS{R8ZEY&N8{&vmp=S2ygSlBN&!f|2=Y4K3w~}Yc9K%+M23cO8BI~ zHzWjfg|+PIon3-7RDvMOr9sij#5g4P)nWI)Y8MF}D4N zJR+X-uvq_cjPKd%kd55Wjk>G5PC1ALdv9lS5XGuDR;HQkx%dm!m5C>pARlw+9j%6% zTUQ&R_U)zPdyC)ZCKLs)Q?VfJe=t6db`X&Bd|ye%b;>a|VR zJ?Uj;DS)yoC~$75R}3$0UjBU7VH@B4;GTa3j*g+&%R|))4Z^u0=yFW9PopHv%6AGWKXxgt60|hB?+u5jh3NW~)_qLq}FMxAa z&*#D|{jXz&0bhd^UI5FkW=WpD8&Y$c*jjx_G^0mCw>Ie1i~Ot8Z)1@5XeG+bvulFX z(^kXp8xzMU{QRw|lzZhv_97V#62CLad#-nLPc=mylzQpbl$7`;MgGc}gRyJU<$g6M zFO2q|feM2-^te&?2z#_)wnJ;!D&__$ulzG-0ATuOYPSpR?36DeW|Sme-FB}X^qa}C zpPJJKzz-<+Xq=uN!X8--=Mm|h>#ssc*z2@{L@MTnez2(R^U|Z$HUnw940M&a9`hmW z0SqAVuirgLN17#&m|Q*Z7-vw2!9S~yi&2W4m6c6638aqE?fe-JJwS<@)b%cpJfYuT z992EH0K~FWr#_x?JhE!qbPTF2zRV7?*1~7saCMBP8Vg$m^kD5s+emCXa|;i1U$Ru5 zNK13Xp)nbbl_!Z-hSfaggghw>kbV|{aoSwlbtDJS$8+3eAYUv6D%D;P@p6EenC3`% zcVDcOGK(r3!xXuFpm$UI52t#)5)O&{{F#>K{EyYT`+&h< z^vF-k7eH1c4YC^7e;8-X3{tc<2=ZEi&)zR3;L_}D*`Q#K`hhogZ)ar8BC^V8qD-nZ-jY{Uwgfc-qAg0P1Av>*mf%s$r|$6AF^QOHTJ}E)G@GU#885fC3l= zFfV=RjKr}6P)9BY08RtVmahLUz;ZBOKG4x};nmc9$~zPSR3@dOX6YyMFY?+S4_oET zSG#fR_nlXO{3g0baUgiri*G2I^id%_)~w))2q2CUQvSa07A96%?W=wd{OWn;Yw1 z?;l95?p|cpi^bf7LD}-&_b*TTptV6$S+WB>D=+z~FE9oH^{8PR__dBQ7{sWvIUV&= zqy7MN`Q^;bA(iv*h;yJgY){;>(VU{`wJ^~#XNi+lUzk00ZF_nlO zP>ZeV516Md3^gFd4jdOK%^*QasXNE5Co$#)OUWiF!W( z50Zu)t}ha_1=Fh0`!+M6&|U)a7ylb4{4{4byLQzERoI|;XOjog&t!QT@@`>kJoTbP z))p1EN>F~%9Y0{7ouZJX#Lf^&^tns>@i~HhcTks|Z%={($rE@EZZr`ncCCOIYX;~u zp8-j)&8w^2UZ6H>X=8)!E5nxogx(EuSLX2#3i2`npiT?~(DFCTB1R6fG44nro74}A zpp?lU;*MWbTV{^jT^|^SYXu|qqOB%LHgqYsY@j!!{MBw%x*WjQ8A()3;_>&OWPZvh z$@4=z)VJ0jBm{cmpC4;Q7(ln%l;KLix!(KC@s-{Hyj2=lR<5?Gv7n`&j=C_B6VxNC zn6{7w3>w(Nyq59;5UG?hr2v$Plxv-Fus%>NtNL0mFbj0ylse-_`AO@4;Q7#qGPe)> z@$%k}X9s9~>4u3I0DL%~HNynaV(E4rCgkm-n zY+&yL(8uTBFukVg()&0WFCf{K3s{=DaU@HVAVe*?aP2qCbDJs8Pi==yj`}g{O5b`p zCm`0A^B-FzAA(elS-IC6OldgG44XiMQ(o{R=7*D5Simh_g!C`cYft8R&_iQ(QJ`=& zNV{hX8U%}gsM`k6?2W;u)B;PO!#MlxLj@bd6))J~%Tgb1>5xdO2dh=hTrC5RxmVsd zNfJ{PU9Wp$&LXwsOkE&MPk?IM4>m>tG-)I%$JP~@-3X%k~bn)Si|=Zq4@1f_Rz1n z9~w=P4Y#B%ffOIZ{;)`^9{3rjI)iZ0}QF^*f*ehTDx)~vSrud;WCt$sQ8q}L4CAzc8y2w-NO zT@_sby9j*>R^1ev&ibyd_dTx_dOtWP_lba$iGJo-`R*>68#IV#ck_VXFn1fkzQAV+ zn6I)d{L##Y_w2LQ)6#%#HDn&I78*>;*dL%zO%$#UT-_+pGBG)PVx4tCF0Cd?L6dC{ zP>=yjkBk<)ekGuEvRgozQ9E@fY4t+z$j7}G5>6vn!G`P*2O}tVblVN~&|14hq@KP# z`V=Tq!{^Sk=6q2rVsh+ZT)?7mnaW^IhYyb0TZxH0kgE-nR3)BZMk1gK2m>LJ$5w&; zM!h0<1PCAxgevy_V&{+60?hzNUIMGuFn7uS_`ALeQbq}`zZVcGJjfs5%qb{_8_31s0mMznSHunSd!buJ!xoJJtRc9AmD4=M2wa@sFzXXgU6ywmBo^+K2=N zIT&*HmA@26N5MGM7e2oOhd*a}>^bXw4#$X5bYR-PMN)oWhF;$bA5v+tQ2+GTV}KZP z^_kX_zCjL=gbP4iR1$SWN!z!X6^;V0S#bmE3Sb+-0PCr; znaET?Ee-&>Om-=HqUFi8=@KD1PpcW%r}->w|LOj-<@E!MUvNaQFZ_LiLfgVXIPkm% z%d4ilY`tq~ZpISev2V1F|d80^wa&oFCHI5pzG1hhUOWTBlSuZDZ zz80?G7ay?Uu^h-HnmGZUCM%)cL~>I0$6oq&>{i`3xfFT-Z!R{VR02V_o-8~Li1v4t zK9f#>XwJ<%DE$=(O>CZO0Oj7?h4pjcsb5i;gCHJ~dCfV7)26T$J1cImefmjotLH>EB<6^LPR9BS)TUzv2J72l_78a6HUTFH-f*~tVmz_AKJI@&QRc+#Pz=`4%v0g zkt-eZ9p!i}NXI_E*O}r_>4To3{t9p+jz9^L9X1t2+`cz=PI$k4x}`UQaq1VZ{U14H zWZs~C*y@GZEA$wVJ%9&3^nt1U?CtG+{S*S?;cuSlPAnMB2pG*jspRYy=4j%7j^+S; zx?t!A?^(}{wdHWL=|3rC{H}7p&4>TMzLdARo5@n9%FTmrvnl@yvHV z2cGu;VP{nHJIXt;vTlF_W&wxwz6#G|c3b`vv%6hyFOU!_r|L(jdDa3CoAqkECmL=g zEK(+2@^|dqNlV%dUef|#fiVNp(Nb(aZRz4sAtv4G^DnxU$?{=Sks-bEwY08Mjmibi z*9YiObnENRd5NY_+p6yP;_csQEdRF zBU7T~G^90K)eFRRtj#eyD!UWc97rua@XxlXi+u| z4%T*#Z;OY-%iFu=JTwf4F4ywzwE8pgwgs3!es>-~dOF zxj56)CK&id9e@Rgd)LG#t;$EnZ}bW~h+a_jR z*!pNG!1zDu-OZR6b*pKte^F<#mlHbHeloIi7B_r$q?$4BL^U8V=SRxDhv})Pdiv(H z{*?#@*UrDsTqZYO_9|O-f4fT{3(K||=Jx`4(X;nY?$OC-?o~;i-wVBM%QXgoD|z#` zoiI835T)lUZS^$0JG(-E?!mvYvvaYWeDi#V{zmc4WyW6vyH<`AZ9R6|J`@y4FoF6> zv2K_3gN1FM7bk5RUHbQvh*=pN(FX7TfDQ2lEW%&ruYi_r{hb1QEBtgf`7qx+V((u| z@ULR)n@Ba`9l$iW;P1>L`5}!U>5M*@4LFY;P~P!eoa!iuc?x2;9C1X)mWa8y^qHpX z#3VOdO=o3I?vAc))RbnP*ql{*8|=Ngw9QNy%KCQibx3*Fu=-DiRQIM1v&v+w3=)Ly zMlcB~U@dh2p6}lk$rDgkT|Ur`@8ciILOreo;3@%m!XvN2YUQQEp}RGlAQsF1TAVL6~>77+rh)2J^-n0tl}M1-L&)`O%2)}-5|kC(R8xZ0J#AO=ZY8-)3dyKi^J&{ z0C$lh65`9QU>MwB82>0@gEaCsEEJSWU&hIz?~2)$Hy;23O5Kb3FRDSwyc774fNF5y zzUhV-j@UJeOW;6__)j(jUe*ccoRbNiVd8io`gT3?_(_U9^EG#7E~5CXN%o*!ptr)8 zY0!f{Cvc5#>^}lG*H*ReL@ymNIP}vFkLt35g7TFo4VV8%N|ArZ&xr)<{^yD84~1=G zyljCbw>*K{0K&ub*1j}0Uy z?u6n4`KNm2KtX@85PM|B6q@@aUoaeaNo9DEu2n;IJLwJLmVU6h?ens8z%IY8f5-D8 z4SRhh{nx^l?+Ap-v+olEz3flGzMp2Q&9UlIw;15Ab z=1Gu~>t%^G-uMmknAl@4;Ljdz|4sKX1xEkxyE1+gBmjW@uYOm?za%~Xzkb8Y#_s6X XdFd5TTgSn-7P9DS8N%{3E`@&N1`(+@JftKi7RN@9TYClj`VTEg_~T zwqe5t2^$>RdBX-F%!Umczlm-ESAKY=>4HBSBb}|08>*iu&x0?*kw_a?QSi?(QNI-M zkP;h1Vu$hq=pp_aw4tbfK4}{p1%*YjwV`NjV`FM~_HaZoyp;WzdSQjZ&MRp@Cgwf9^&urPs7u}YFHQ)z8`8Tcm$7gwYSqYMuE>EbcR3p zW9{$D2opSl3W^8|1y`^TBlG=6f`7q97is`Cg8pAq2zDOj9}!6pWBzC3`_1+ngRz1; z{%mUCKbHv@7c`#f6k@`~`%<{x&ff4~)<0v|(c%98jPdi2qWgjsjkTc|Ah~}<1g2q9 z!AAZTog;W_1IRxQ(*G3|C&0-$9BE>25XKB)kfAJcI5zU1N#H~_%@-DFf^{^3Fhdyu zZ~~4MZA|bDw~OTS-A(w$=26Bh7Xq4Q9f_tRNR-Hcs0bq0#@5yr$wsh)Y&mQwfo31g zBiMzT!N5!7{SZ7j87z;)aoAi}j42;{2i&2Xe`jKzs;chr*S1>O((i|TUYH9>yL$L@f9|tv}0PRPT?5rJe z<``C3n7u#7$=%N`7=mQ+i1wyN z!NClSL(yDd1Y)pxlnajUM{+*~5S3cbsD-bQz)FeDYU@hQ| zFQ1KOpvfF37@p}EWMu1%w|9r3%&eVYA>b}Ck{vFXg%bq@-+=ienS7`zh3?42!Z@~0 z(Gk>u5MHoTu$i@ueI%R@bwM%Q9Qc9OcECSieNCJxp%K(DJ0p@i5rLsb(}KWNceE3Y zjSLTRgYpqvh=WZO-2{$_biqX9qRlDM_Aa(8h6|kHPqN`gAt_O>%$vYiMNvUOxo zB--7@6&Hk}u~{fSHX6@Gg<#Bi)|7B3I|x0*HInEYOh zsLmv`YcMW=%CIv=xWIS_5+}eEMG9ir0%7p|TpdHAgMwHA{OBlK7Mnrj!2JCLrXC9Z zLr0qWS(}h;qQioyfmoWGInj)bbh9xrff2ZlL@dJ?77eG`qa)pIZ3WtlG-9x$nSxVw zbMQ3^<@tsKCrfvOhllfB-R+&p1hb$JqC-fq6I?L4sd<1O2N}qAGIj%xx<+DnSPlu{ zfMnR374#EKAC=qUCHyAJ4A8HDrK<%(NN*Ip}v2_j) z3MJSF^K2YYjL>MJF)ReZfH_lGCQcz}KPC~vqS~-A&URd6I6XKT%W!tZ!;P&`rZ$Xd zL^R*s4dxC(W0}GBU|Sdxhi>NX5*CJpB8>>fA)z4{90&w_YJ{7a1KY?nh)i}B#2zY) z6De>hWbm1X=SN3lSvYeSBs$mxT!3Ir$aWYTlnsvQ$96*Cq5e)$Og7ow&jb#Ek&T_G z_Ix77kKp9%&vQov&n5S**IFPRFVMLL2&33o(CQ$viS zN#@4p0@a6dC=_5a*k}yXjb#ky1_Z$Qp+vSBFc72z3;Ykp?_9k2s8g3pQA((*VWY0y12Gau^5Vlcd zM}Gta&Tw&ahtX_oi5P*Wp!r1^1^eRgc6e*15zC0Kgi*8`$%Gc_ zXy)e#<)ByyRseAQYkNurxEcbvT(&VjipGVwM>+>N*x1qF_CX;g{0JilYZoNS7Z((W zHphiJ`vET*jO5zkNya2IDwV%)V7<1pqK)X;f@C$t3U?ZFx z){z*7v137v9U^Hw35m|o*dl>a_y#~t2=*Z)vbh7zh2g+q zJJ5NiTsO869!o))^6hyjrEdOLb+jYy{t^uKv!p z1b@CG+?N!L=OFP8rf_gMB$C9&2O_D?=Amx52s{c(30`333bI5}+WR!2Sol{|)8A_kZ&s zDCVNVZ^VWTY8!0O2v^>bk3}L)vM+vi5jsd$URs#S;^XhCr3uk8#csd6zdc1leAT_O zeLEI&fBP=I6b(67t$q9CYSL+&Lr9L5FH_!Knv{R?*r@;G#8GZkV8F_+i^5SV|37w-y=M16Zy9k3yk%Ua z=I6iq3|mEZAA4%~Yxx=TueZI6X9$N_hkyUL;=!9rnn=^Do*VW)5i`=lVKnybZ*9sn zeWkNdp!w@>d7QJhf?&>hYv_^~qT|QcJ~5vbBe3z`U;0Wme!4x@l5gPAlIMP8R8+bn zXmxp>IaF%1n7a33_{!^}H*-pTv&_3x!tZZv*iumKE;z#MUEr`%5jWxzt>~gY3Ljon z6s-Mxe`&&IZ_(TDyhHVq$b1o%0)T?#V*5u$AVce zIFHXE-vC)~vlYezJVI(Qy)E{IW`pBF*%dno2W#JcG5K5a#YCXg<#~C-oB)}P`snwU zPTW(124r|Jsv2aTeVO1+ax6a8pRxGb5A}!GZgZ2+0>;#!spjnZNw0FDPhY4*D)i2m zF6M*8t*NAx2l8p1L45{|Y{R?Dr)e3+t>UF;fyR=NR;4=l3U#kwvAFFj2bvs;4&=$A zTzC64y~AcIzWe>{=7|^FvU~CZOMHG1$PCuDS=dTZRO&GMg`0cx-b=@BeSFqPf7YcE zvpi@!VrVgR9_V-69k7kum7Tf2o6$ZOLT|IcxQK+IMWv&cOBepk?EVuz(|s!JqtpR{ zK$?y_L{ns6bQmva)Fp1HMIT+d+jzm)-?sC4@asFxtqawyvL3FG4p=LXh&~~duAiYNur){S0Xx4zU^tjx0 z(zSB`xAUyaPEWtwTU*rQ=oA_LeJm7kEag#j4wa1A;7%Okq<&~6dN-Dx-ru^)9$FDN zk+@2A@Innca}K$ky04M0KOOL-kp9?9PunENi$8yLLh|ss;|*QdDX>MP8W+6IJ7#Zb z_-pAO4|o55bNtV*l{9ZGHucoajY$H{e{m8>p`og*dat|aHkAXI=(QzmYugBVp~=%H)pS?wiEo%!Ex}`fM6$<%Tu>`Mox# zUKcnJh1ai5)ZET&`}MtU;P~qN-nDId?{%*iPWK!~QyPNbU5xooUU|j1*<8eZJqk?T z`kT<>zWayPKDxlMclT(AhDuXo?)4k@H5uOfQ4(O|g>~zKwV*^}eDet9)D+H@x%o*Vjvb z*nNg=cgE<~i~7YncL{b-l-v;f;rR{b`j0P*CzY5r`t~XE!#6I3-5Z_$bRNc-?aEYo ze;yvTcv5mV^XrMPkKwb-JzFT}$yDIM42#iH$gA+1bS9MkS z*yna;w+feCWWl|COEz0s>W81e$Zq*~#HWoMG~{F!h+U zyT?D(hX|Zy)wgU@WU(4JrdMioHLFX9^mlhiQB&1T=gO{RMSObIP`9o3YCh$WvBq`# z3v&20H3t$i+ub|n#V6pK7lDq#<(1`jJ+f5;zO@EsbW#>^O--vV;Bk3m@8+AkPbayh ze*I}kR0-w`zCH;#^!tY|cXj@{lKIhJ-$uNiU9*25Z^%2Y?ks!`$vuAJ&+nDCs^!iM z1!%wJuIq%evYlQh6c=uo&j5Eev?wKHE{KBG>2B(7tiYn9i_NKzyGZW~BcFKAct!MT z=Wn#>JNx_Bno?XdKpOh@MD@0H%mA>^c;a=8+@8(tRtr9FVAasd{qWbkE02Ey^gyO> zC8UL4M>I)I=cTZwcct`#;Jujd!8B*^GLCNZN(p<#8SyfhQ)-+9mOi!p;Ag7^2x)E| zS(dm-58hPA8?6Iiu~?G6KUh{*js^u$B)A7kQ`1P8n-$7yFX0fs@pR zPA^OAK6-x>SE_SqVNVr97WiI8uOGRF7mTHZ5xxp>9U%a4TpK*FQ0d$LM5^Tbr?CM{ zS~%R`?()!L^6ukCc*nx4a{#5W#=_d}O3ROjcL-Boq-tO~womQ5;-mZJ;EA=d$?=uR z6JZT^q^7g3*`1rtI{cegr}#zEvc?Z$efg_+PKiBy;`zjhKfm%>@QAlK?)TBa3yhmj zd7Vd2Ji=GZqXYpBFB+#T(7`L6<;HF-I#uB(5X!`{ua5)Wxo>l<&nrp9$6M&l9hy0+ zZzCME@@Z@&z9gooBz!_csGv7M6D#5_zyH8Eb!w*OUiN0}=at}!s@ZTAnP-U?KGr{T zfL2Hk>sOLw&91(a@VzpL6gTjDw{iMOay{mSb-ezk)}?#ZzTH`~`xD=K9sSfG=XvDP zA+Wi;&^%A?ESyty0pZbzA~1`F+tV$t>!o$9ox1C9+I;N>kg0S+T{t2UIQlF(d^vG5 z801!)f$>hnISo3_Td6xn3yaEKHG17C?;X;9{i5vDk^5dC_{cY%aX4_}uQWRL?-;#P z11LyRdO5yaRT!9(g*fqQ{O5l$3t9e-ZI|SUGZI?=WMFYazykKEpfUmUNZW7@TCZCi zaZ`RMr&cQGo94em`~Z%!-C~`oA^hm%hG7kg;yUoLoX8&!IJac-B%%b7-bzBSWg431S6*s{nO(xU2x-&0EBfPu<28@RtqvXombWcN7)wq0q0N73u<|A0@!R8QU3Y* zWoLGi2q`zsBq|0R==&S~xy$czH9h(lRI4xK)-Ng=#sC8t^4>&O6HY^JU`R`9zmn6* zFVpE^JI0GXjsD%c_fq|^V*NmIxVl1i{qtf8(N1actsSY6Qv7TfeMk%O={MZf9G5fV zRa&Nx&%c4dq!~9TJ7YyVG-Dg)o}wfhy3VC(4>{b>654(2bDRe_xQSAmGnH*;y)azma2;UZC!cB_ZqM`F{@4u*B=AVI`sDt@LgO3gmR3ueExZ$d_3j-O zvN}x=mOH|uG6rgXuP%&j%01$8kgYwhvEg!DlU3S-h$rUnn}Bb6_-%1wEJa%Qn#*+u z=8w-)!?c8Zf$g(p?L@U~gVi!bERpQLQ*%9AgMW#dM?LuJ#M6fvOVw?^`HU_2v8;w+ zO5fd|vlsFct;D5oLFX~VvSf1M@uV(sc+^Bl-Q)2Z>cfwUVJ-7}M06DoA3xS2UOKu1 z1^g;R2j-|PEr6Gwwuo*mSsA=N#$2G>4xxvo9VBW0L~lS^#H_N9{ul~O>$;S!#rGII zia)(wXnlB&w$wT(($ECLTZZV=t9M+SrfXWpD)TRBK!43cbxYEz_|l-yZ`zs9%bXU0 zrq}uQ)O1KByUjh6JZwT+|I|47ihJ|kYWY~q%EZLlQrlrk(d^vIsO0lW{K?iOPh=Cf(>7HIiPoyjK=`b=PJxOj*)(Ia-_oDur=EGdfNqCpZsvXW8qM=NZ)s7DqtXns@!_eKJ5_1bBvbR&Kuen>W4|{_=i@b+`b8`)`*x z?f|<7vPu*wYG)Plam{z1dG+E|!xKO86FYzZURz>5vxhfK&g{7mLi>Uu zMN5V0#=A-#l?~L5Uw#cdYt;69h%~y;z+)XKk;bHZe{(=0kiYp)S5b1swv~NftVqrG{`@|gZlLc6P837|#6)dMud{2j zWkHvn28Lc-ZLXBKL9XQMz~M<|ys*1%u+m1=Ykq29tnxd{B93mXkRnoy1@ILb>B0H< za`1y}&acf1?ccfrvq6sAEt8P&v1ul25rAFR`y%ee=AXyDkAg3B?LEij6d<-ubz(Uh zm2kgiDwz`6@S@)h7ouJpn4Mqtu@1SqQ&G}*j!2_1Bc&g}0 z@1MHgT?wwL@8$K4=$64g{UoFchEA+B;E4#oM%HjMfr|ocU$E3)*wQCR;wExM{ z$veGLrBaZ^_7_ZvW{&f#uXckRMJo=385y16j9Y3ok4?u&_;jsji;ZJU3kKdOa<;#v z{Aq`_e#3L;*(?P((=*{_QttG(VUGctc1q+8V(&EPbTc|edFMdIu-Ekk8KFFZ;oRae zZfi*2e{R2XOxNX_EGUK~I~mCLJ@DdAy!-x&VQ7&WqLB6=C+-1PBF~8YQhZAqL8@dx6=|Om5_~=m@PEtMF8%W@<)+o0s^HH7WSoNKU zZK(ZuL`v_i{2+x`t3;g_1Z{tc*z(fkBnaqHXMWyZ{ZMgX^9`@osHi77)~fW)?`yU@ zHDxW+!gNb^#_f$DU7QnJOzLlb!|iXLI;r$(SE>0k!hEia1EkM7cYCRE@ z|FP2ii?`2$M@YUB-G|c}rC&}oM+S~GFx(@r=d9YpCTTWp3N*I~`)@lFpinXMsy~(21;=;wFi?#JZX>*7@&DA=V>JB#I z`%T0StP-VdPTl+>$m&(VX#@vWMRKkl%;<9~ND*RXtLiHQ8*5tw$t?-oxe{0ybPWy_eRx8LZ(Xp(J z)i$`tbQ-E2F8%hL2Nc_HH?XmfH=XQ*Q!GUL(B|h`kNV~m&S;jYV&4;x z>jX@x2NnF(o!c`1=CaZrjFh&gD|LnJi*u^+-Z`Rt9c32Pdq%EDWLSe8mwjwyf=eVV zJ$E5AF!W8XEuBizt9Gj(V$NuYDuE&iucGSqt*=Bcj+-X7>1#amcJamR=F-jS`8V?m zmtQIZmMiWRNHNN84_m<9@dcs#=JN5PYS(V)m!{ma16Z-)Y;L;Yy{2kMzjQf+j}|!T z(zvV%6D@7#$+N1S44do{pJ9r+3h*@q(>XXsKEjhKoGpM(*xc!A@fD>~u@(89aY_u` z^Oi?%OKb4)gLfKEmx>nk-SvLdAPK7mDmN;~a6A^&Lub_-7n7B14LdrYQeusdd} z8|m&V-LzN^(o<5l#=e8ksD)?sJ$;vB%a>YePUn2Aone%Q@C)d)a(DhkJb$0xiQY6mLT0qnQ5D#u26 zIlJ%eEkB~}r-J_dnX)^CngvpJ?{l+w^g-R-f>G3w7u=>5SJEZmp8)f(c1Cngy`a~> zx6=8Q;W;lw-95q)0$Qg!zalF41*$q~_&}=Oi{myzm`nlh2TC4Rd!(PD_MhoHO}<+1 zZQN?&Y$y6w4CuF~f%_+&ie%4El^hxO@?WQg(-cvFN(IDyoSnvfl!Jz_V!V~PUNIak zsRDR1tK$ORZt0a8;vk^Feh|#(egZv)<6PdS4FMr496HzUq zaqA!v$enDc2!8x6yW;;}X!ziK@;Kq}ueYlFIdwt0+St42LemZhv-V$~!cIg2d|xdf zY8EEj+Qz~kN_d@8wH)u>ec~f)kQ+YpV-4Ck77x`RHK&PId%D4tUf@(%K&oh(@0P`gt;Rz3tDhrKlt0 z2N6YCX49hFwNH&BneAqCPntxO!|!`8w2d)aN4bEeEIkUwPpBUKI91&=EoQN$NYdh? z(aLDxrRLqof3z1xy`nD)(xs&by9CL8ZTDj1dxco?WFHYXt`@?_eW~>SL1pCaUKQ08z7oYBYeR6XCk>1V1x!?BuHm&l) zEjs{(4hLEMyMP-(*d*9H(uSk7_9XHWFU2{5m0Ip z)OA`w%|qeb^pb%7dVJAxtm`+JDWn=KGbYHc1@)8KullteGLiGkK->z^KLCQZZvzR% zq#&Wf$(#_m8vS*)8nAhb;1n8X+(8<((hnUtduZ=PUWrHWjjQA2z@m4rkFSL`4q}y> z$#nsvyAa!c|L8s}cQF6!?Uyuh?x%*476F}D(*oegxc8q`cTMW=$xDCM16SHbb~h!- zA9?8&^Xn0+oV_5wb*!Uks;=7$%U$P&Tv?s{- zVP4+)3(&%fqtRbFrEUWL`<4Br zLlXvV>wkS$>F|4VKdu^}udm8|5EApju0*)Z%&PC8(nO6Ej4|9l!Rl671eDCphklo0 zzC*;NS`Y^YES3(|on<-X+MP4*yw}Z-dJG%My_0!<|^5 z6bFCQJ{<=T61$7%gUaFs5iTAa6{O1F%_F)L0-MxPC!gnto!U37fP2w@4*D1=lM9MN z6Fr;X-tW8Bw|@cXH>6G<5m8eL*si_Uix>GHZp42*2CO1-zT+(ETKJej{Zr)ZlZ4nz z1!$MPzUZIM)fa#$soTyTUVJ%n zpzAz6`6%)9ju|62W4*ET{9RH@rQjphT2asuRe3#u{8PTV1zy`wNqWyzl% z+9|41!@ySCo0nn;#v zl*SK$5X*m}XP-9{KmQJE9T z?=_$7TO^GqDW6&sA7$LU`*HX1#oZ^?2d7pa-V%=f8lM!pP}OJ(*W^iwH#~E&7>%x| zZV4_qYC8YxbXkO=9l%24Ab#dvxLR(2>HC$PurB3-DwK@B@DYfXbH)0U>0eep#*1px zektiwktthijSjw47wr&{P&DZo_sHNpMTng9zZN!m&vcL07IAUEDS+>9a4*(46mC#x zo-0Yu*aacvDo6CF%e~Eb7uc&^VA3}P*e@EyG27VFwPOdheKc~wQl;DX?$!bKIZ}^8 z+_R<)(&N#jsgw&3-o3nvm)G>@kQea20lJ#k7zq-lMi06s-{nRu6-0cft_20Ep6x&p zN6F%J8LQ%PNpscLprjpMq?GnUQ6EY2IB!Cy5mh`bdx;p~9c| z<hE6$;{?NL|rdV2!VnUgZf*8$lvew7ywqo3PpMG7&!-*}2P|4dl zl81g2KVGU^OwnFlY5NoEx7D-H;N5G(cf)OkGc(3}&gA^k1sq?o5qOgUi_lIDSE z@oAxE(QfEZ%tOUZQ|c3{dQMeo-|_2@c2u59I@6EPPt>q(Sk)Wk$R_~c0@0a2o2Kcw zAZb4CDomew@K7abVV`ZdmvoSQd5i(RYN-IpAlS+0Yv>;Z$!CKPFXsy7cf;H(aY1?P z*Z%;h=z=bh*Iy;}yFNnkzPuG(F=R!`0AvXIJa9Qt$o~U_UK$?J5qSgMd}C|pB(5sP zp-P|D-?RR(1efpQ_@gj3dU`lm`jW}_O$`Gn(#nU9@d8fZ8>-LZoT`>$Gmf<3oUrnH zt_0KDIt;gQZl&mHKsJ!sgBXKdmz-rle86Mf>kqtG1^ng&Amn^LF{O;%dbev|aXT#` zK!dg0hcpsnRU=->NFc1%v{kEsCw%?L)<;1`A-Jb{-=ErCVRihsw`T~qn+$DMK?u9r zwq;07XrtxZ*)5ypMZyZ&o3fiST|U;<8>r`9T17_7e=3;US-LJ%MIH8xw6C+}iDO=m zw4PtS-lUf|&HCxAMLfM99M1go%~4;erzj@VXAVsWRTskz@9k7g{}#JyT|d#&8q|iq zsn+yVE&x<(`qyOeC)6DU<$`@eb$hmIT0Px+w`p4IQ?fG0D~OIb01egMZn^BZ5Qjaw zZD=NSpb11weaF0uKJ_bVWAB0YX$(=NgsIiH%ne>i{#DR|S~k>tta@2O6j9(>ehnk~ zMdhCP2f&O9YHC&3K}AL-6_x@j8_g~G8i;W*6_23fUET3kjcWk)JTK?DETz2h+((Lh zyv))>r5>RlX&NS0QO>=11dp?C#X7%Q)2?U>pE~^_FXspua0ogTdM=%OC+Tzdk*eR> zm##1HNkdKNP>D5NpHIDU-DmeqE@AtMfc|^(RY23`m{;nD-TQe>fS(wkSwQpIdqD&a z9;jcv55t^seUij>bldd+op}}@0m@Ay#je{ygAXVfR_HRB#|NdhJ@F4wd@yuL;x9y> zB%$o!5fg5v#chyRZ+?IMFy+#rm=FWCL-jJ3RYYN@o`w!rl8MWw)V!+GiF@YaEw-HQ zI82H8JPN{CSj*r(Es6NtuH(HA39_{GcaEoHgv;!)5aJ{rvZm;M{iFuwMRWDJwtcVs zeCX{m$ea6D!#DRjDN34Gnk*|k)DTt|6D##^ctNaFlB==^@{M~sl99Fi>^cEXi?zBa zVDw7kbHj%&-_1TPzExu;QD2RJrRwhYSIqApN3pjBB>xI1b5a=F_~+E6cBFIx?7|S% z*I}2OvdI5BGn-uKv{fm7_S^TF2>WB$qdSD16Jg>NyU=3J&ue|Vo0p3pi^$a;xyyGe zt+JNGv1d>CIUBi)KHbI#P0`Qso(hL0!+Z&8mu_iB%nbjyIt&Rw^jf|$8rx3u|mqF!dD3_m-`MkIe{%JxO$ z-DVQz@hMdM2mCJ2!c#su@fqRUGrd`@>g)0)a$NoDmZqQT-k-)A;pw~bveco%o~Zt& zsNv4m{u*MfsklLXcJrS-4uwHqpNTWy_T2u9}%ju-XFhi1=9LZJa0@bir)0t|Am1inMP+4k5g_4767ZNRHFIRC+m-{9qF*pg!)k{E zFU8y*19fNRu!f8&-?Sk$BtjpZR&qkSk{Z5r?Tg1yVW)cRLI}XsOn^%a7ll>a1pO2= zpBRAD3|aQ}h*^GkdZQXkX-oZ$pdXr8mFcwOeQy zG=S7;fT))2MXlaQdRwDKooOsT+||li}|Kw(X8-@?$mH zUe_0NAo*}oAXDmlZB*m*TL#3u-o32#od8_~v|4lrf-^tVNefi7e!ki~lVzb#IzP>8 zs#L=Y%Kj>wE}z`cz!-Uglhsl>9r?LkWTg4Qj|;zDO}JM-7$AncW4`5q68^XTyd?2- zv&tIT1Gk^9Kd*=@or(ul+xH<%S_S|{N+Y-Y@tQu_#?wV=w%G`MH>rC4G}Yf481i_* zknRaVY7zFh9O*k9ZuBWo_i4-J`!q;A?hVaebEf?As_886k?5NvzD3o*z`C|M3aai z_rFVC$X>N0@60Kwtj<^t78QEcErF;w*qtW(xINEjQb1r@{?((&8O6Sf^SlyoHJlC) z&I64es(XG?4CzXlvENy%7N}C4U$E>g(xP*-#i4^z!u8%IgU;W{s3@n^?%=ziB$iXM zJYuCN=<3T&0l`vVQk$t>v|o6epzklyP9ys}Dyw|RTA7vTf5hKLXA#$CEav@6^2cHN zI&f|I(mUIKUd(_@-|mS(m0A4)som(|)$5y+`l0a_XIh?=cI(Nl)vw@d`NUPTDQ9{I z%=ERWP4aHF-!R^aoqTufc^ ziC2z$)gSrh>$<3kPMcM;vxRY}TBBBK^U0n~3zpwb1kG&RdX21?S9Swp67tfB(P3Mq zu6R{7`fU!@4D{LczB%|^Z1_CrF9aNK(t+pCwriU0cDs{+`~#a7@A(m5h@i|_Vr#LL zi1uY3U)$+n%IlzG1a%v}j?+=mq8kV88$Rop&z|+o_%UdksDEI&_>equ$~joUDI!+U zPPXvvwakurdAMql){S>>^?devJx~MiHq$$T@f9jbxE2qSqQT+Jq?|^N=*&Te@ z5Bvd7(E3wEChKJ22GrB!kbA-{5F|D2rfYM^!$D8gtlLrg5ZBnQotVoHo0fDUdYUsN z=i_^fL?lQBBwA|ptoRX&Bm?@sHINRH3~yE3y!Q$x?w47sBV<#wH&Hb}%5=42Ffo5= zaO=W=ASl00eUQUKw#tk%v-f*41*p*X_^YTw-gGLl^Sted)HTpt*>iq;NXfvV4LRea z{TpP4rrQSPcslPmiD#T zG7|p)d(KDh5^{17u3wF^?AT{Ec^2aP;Z@Ajs7(vo;|4mmTdvMs$?B@k5TVCaUWUHa z)<4z;(vI^x#YaKuEL3^7r^-bUE`ylfy8afJO5Bn{Zgojm^SKlZE-YRd0SLQ^J@acQ! zl3QQjta%_7ka}4U#zM1WR#X<$t(u}i-<|({t#NwH+V=)V^J2?F2K#fk;j-7|?cb(; zip2>>Kh)*`3W;(|+H&w<>efriogyQOBWY5SiLH!|6zLq7&*mfcQl=3=K}QdV7dME^ z#BOG=fNd)w{(AdVa@TXol3j4sOTL-kAQ&5|%Wp8+cfA$wvY=5V;k_^8aYg;W<(mYi zhC@GFW&3T4iXJ~L_*D<%EvwTkK&{v(kWMdVqqalR-3pIqUu^pF=x)U$zq13n&4NZ+a$2nz`=HEBNMbBR}3@V$JTj z5y_o0I#Sb<0#q_`)BEt6L4k*$_qJKDx~b%eqSxY2ljDMBB^lk|^+ny8bL3+^f*xw@ zu9TuLNz#_WN%!Uo^^&g z)7SIENA2Hxj!Wt3$_-WBe)XuUy&N55{2>~nLI~I+N7V0Zx~Kav&L5s8n}cruCG6bQ zM;y3lsoAada2bHp+X3%LX{qkZ=Y|d`Box%YaQB{g#Fa{TDOGd{P%q8PYO~TSzkui% zBX+$qA5Kwisy9pPmM6JAnSy;#FL;Q-JNbVq2>P6aH_?svlv+vFD?DqSvhnTa6(gZ9 z#iV`RF+Zk~qs9SM#cXKlc~UCj`1}jtMVCFr5!Z#w@3`#I{CMbL(y6|4l?2bD>ngB4 zu=bQsn#AmWm*3YM_4YG8XGu4r=?OXwVUw>vWWvya4}{|RQUy3&ndN{(_x7fij1Sk# zhV72DH*n6)%ga`c4D0`Mr)p}YKs1gf_4J{4Y1z|5Um%#Kr&1~Q6~wAaz6Gqkr#eyC z@n&Bi;F_pkqDV({2HI;~?t82CTVQhD55;nP!_0pWk-hWdDf7DG6^;Q7nPVl^3gK5X>dV1Edbza|s0>ZO><)owlXBzF6EVO9icIez}!ak^jLAfYNd`}-e2g}xly zGwLl$_V+tQ&05i20j$yObAym7(Cc!YiTj{)SsWhzNSrqc+DJa~?52+#ek~O}vmDq`RQH^{~YSV|~Uz7ru4ugJQ zLF@k(kMS?r`f2xvB9i|A7Wz|F*DlE6Z#gAR5MBBBtft=Z_fvB@9;%#ji5Z|CN2x&LtjRI*#AWb{8=m38h= zGJzv$qM}+Wt5DN(2W*yg^}0{?tsd9yhB5l5rBgI8KxK1&omA7jypv~lf8YVWxs^FoHlvP~C0$KBXt=9TM0fh&zVS7o+HErams6j`Sutb|@f2oO zmb@#E6~hd@>UA{kw_HAe;y)-A{WW*F$5S|VPvM+{$-_KF% z*0Uc{P!LQxUPP&SI{(4x_})VJJtN)e%v@P-(Z_)6CWXUNw%%WTIHr%>pz{YegW-vX zg3e}X?bo*SzA3LD4UGA#Ie#LoukDJlcgx8zEuryNLF+BV&SL3Kq^5Q668+!O)xkb^ zWaYuYi_zCMu8l ztkokR>aktIM~CXRt;lt3*{uVhus+>$u-!l;RpaQkanaA; z?Xy^)sz8q#ky@}}U=>G*nS?J>9z`Ei;BLXh5m2VUy!)@!9~F({eN}ycHy&-1B?&q>QFh?pQsj*&i*h zI2zhvqyn0!wind|Pu;$f_y?G+JKVvjHKX>dczoVoXEq=hJOTzlGgm=pl}1tUhK)nt zbT8rxsWCE42mG_Za_mgRslLUGg(A5pM8q z-DDC=Wvb7d3-LXpIMx{EeRP+LihQG-Z~{-$Gsq@ej2Z5C9wHAv?1}cPgBX^k*HaB$ zYqhJsgP7HTWcYN~3ObVA?k4RTtV{i|N6XW?_Y~@Y@fU*4ocFdY8)a12?)F*IBdtiy z;*WJ9A4T==)xQCd$G~g1hJ$W>6neeA?dN-(vGl%yZte z9DM0)Bl7NsHx8xOcEsEe%v2LQ9VKiioxOGZImxs35$!6b$ z4fVsNbuJUDKW0vGNhY9RxBDoo8;dQQ*pN;gAvUE8I-S>-MoR^@+(!u&y*%mRf6N%fdZibAC~eJ6U##j9%X zOHDqMFtOG7PW0|v=z8Lj`Tk4slsdXF*Y5}rblTX?=j#tPKUq3mJ_wkoe!!5bj%MVA z4EXGD3+rva`nYerp8l+#X2+pV|EPKMvF*=qBE%v@H(ptV)ge8c_d4(#Hb-MI;f@w< zr*?b7HrK91*)J-?zU3ZAQyE5h!tMWT>wH4?t$`0?`||#%7VL2=)-^Yj7IG4G^vQaV zFPw*;#aN97c777u_w<=!vOHv3_=eUgy>sU+ogS0amD~4}Bb?C^#@>VsGxhS9UnAtT zFn88}&?*ERbu+#9p&2V*BkjSe+~MP%mDaNScNVs6pQ*nL-B=O3^r44U zT_?n0%~kJC-u(7SI!7a?Wc53)eA1WMwVu)3crQNr#=i1iy|nussXMC7_cOP3%DBm{ zmKSE6Rh3cbd8JjmQ3mK@HNQhy-We4c;K^zKQQEC~wEsgfs|}spw5PFQ{By%S34P%F z)cr5LXmlG|ySM?}|Bzhek*jLlU|x3Wv&W$0CFBa!+_DclBSd-4y=}q}p z&ezJ_l9k5U7uA4Y=M8v<=e8FQ?|LiRsPGQ*Aa3{wUg&OZ#tv@Bt~u0;W49dFzAXe+ z-vU3Ac_}E#nJ!k6>t+?wXK)Aaf54b}xSsKtt#~02jVKU|)X>T~tJvM}MVX!oee5~X zY1iC0_UC`7kKbt0(n^wcBw6`$ah@NJ`8SlE_*<2BAJD*jQ!ibDCTx(?>~9D3onwYm z0P$)>npK)j^fl95eRSv4erH!@2OE_<5ogy0aQGe!;B7^9*DCK-oz7fJg=pXtXhHSQ z%WkuOg%lSW7~op3m%yu2@P>C?A!rGbs{bX}27Q%%!oNYuWUw%_7+!wtmumPGK|$;P zqU$XKqKx`>Ux5LJo`E5xJBMzhVMv3aOOTROKtM_9?oNpzL>Q1%P(W!!k&qUVP(q|6 zq{Oqv=Y99y@7d>k@{7!@d(FDn`p0$sRzZcKZUG~k@q?;13%bIgHL@>r%M#gyd4X-^PQURF>i;Z()WG#+Gx*?eDU!-^TtY&fUH89qv}7chXk8#2 zu6vx=^!`_S&V(iO8yp-BiuDD)^%fAvaqL{B=VY|dITqb8^~4tl)Y?HYUVb4>jYA&` zWJuGVyC64x2IRiejG}iDp4P$p{rZK9zAsYEIECtG*P6RIR#u+;NQ}hnap${zdF7{n z7}%r$nk%MeT7e|tQ1Je@2s1_ip^U~@!S7i)L(Q?jpf`4BB)@ZPyLg(__^n9nq_)kE z!sf;b=!CX>IIf3Y_v%N@(T&XWU7s5Xz*T2q#`xs1h!`+WYuHo8S-FsJrC6OB%HH33 zlqFJ%1^O8?Q~%ogdzN2CamB!E8>Nw0cCL3<5fPOg#L~eV`7c42U%@i?&S}6#SuBz@ zo!pF+O$M}_LqO?Z+C|z!z!J34zci03yQ66TD3vg(I}T0oegla|Z8MP9s(xv$UTYi$ zF0*gzS>>g&On;_MM7eotEbc7?Z(N-+&XM7M+)+)`#4TswRCso0!)iOj-B9xgeZ3HI zTs}lg*am%7=}$MMvKqyveSWgT<{ z$HG}SXgDig^9)%+tP9V6F{-eI+=?A2+937D^|RIsl;v!VjVx4lfQRYs%*|!(sGl~Z zIullD-txJSIJew|3{IqCp3ElshsYkXIl;rovg?7&G*8dPUAsE)_B8g8I2Vhwtr#Rx z7H_uEd3#xw^m--QlO6OiE;Dt1pMly+zisn68D5RiLDAdVFxhbWWzYla7gR6t9=Li} zT)m+S3v&3Bl%tlJrGCaTCnC`?HA5+&NvX{qXs%)aqGp11E$P%Ro^Srxt59Wd7R+c# z*9uGF2EFEBJrF5Y-#EbNmzb0uzRm*yb;KihSMYX<%RL|cgpJ}9`F-H-D%u*Joy-%r z(42jYSX~6_kgdEfKJm$}vMq6o>o*Fd#GCq3!`bvEnfgJ4gz5c&(z}`%3XJ;@9j<$8 zN#&Y(58~fg$;NQQFnvV!>jGn~dV)X6@kkU0$~R^GRPDHi57lup@e+AGAx;1z6e3>1 zf0OuQvK#CBW}ck`c7b^yr{F4_qPte&Dfm7(=`$#oyNgD&@*}~gFRoYJ{(Jdngi(_% zzw}Nc;rseWHx$(m;hekeBgX6`ZhgP3wp2+Q2nqBCzPPrcxQ9h`I2Mys5YA`zJ zoAe?)t?o+aN$2u@&)LQMu8eDw%gz9s51np8LyQ+vbnV1G z0joDmo3kbWnQ!A=68ps&J>nMd5Ov$fU-_$X&M8Cg^;c~~O>Lta@3b^Ng9TujAQptH zmQwx|$zc%%p;bv^@Z&46V*Y^}qZMKTq|G}xU!IC8B=x_w0G&Yiy2hCpSbhS!gj`=$ zH52sC-+6KM@aUCtMF`N_2F%{FnMa-~Syk}AanFreYwfZfg00%!T!8HZCPXv>ZXb@~ z_7GUfp8)ct*MGf`qjZX7Y0;%#wmn8_=BN;Hl()hm5Y#MqEw42yzQz;`{|YcJmG+y5 za`PP%|5;t@rNOr&mCZg{rEa@HmImHJ^Af1e)2857{rkG`IsCkHXiL|(41Fw_xCfmX zedsEgQ?r)%{SRf3>F&TkF)`km?Q370^AL}K1#hM!-~edwqe7XPax1HsRhWigDtZbk z+9cdLN7a50jJK%TV|KCg${OdDid(7Do8_s>64c}7t{w@&4(ske11i2{whsOY03AE` zpJMIuqAx3;Q6y&(L$H%IqhEGkyV&RoMH0LSLExfWGOHg;p+Pn$0QLf?B=o}0X zL`(moh&pvOe@B#oh`kaOha~l6Nw}8y5>TYv^BFcd%od6#(0_43%=bBx?v-R?8_%R~ zU?vII?y&6lZMyuqO$SP z2U4tfXPd#7r|W(M25f?P)TH7)83@IgQeAwa|M~-_(2>^SkZJ#KzIW?z2B2D@lJG6w zn7Eo}YI9(Tg!vuSAc;v%OAiDwAi6-^sV~rNvCXg;wx3taZocXvVOEAt z04#-ShAiLf7O>J_e6>wA607hAgj!Lx3T>99Um2K@oI3N?NVhjqk6oE2C~Fo*?l6VY zDm0ftjR^&6Qv3O6zdvWFjJf~3XOKozD)?kCfD&UyRk;rDDiO2mQ5@V;^44zU4IG-9 zPuL2~R1c#Ua)YJI9|LX6E1*+)1uDsHZA3MWJJFxj_NnQmiR`X)T}2*P18+CZu`50G z&R7|A18~BunOFK8IT_gXQRVXwEdER3_0FTkrbekhK3@!MmOTW{R{4TPE$I-a(&`t+ zlb^ZV199Sxc2HGb;y3L8R0GYFTc0yaSr;+|T#a;oS4?x&u71lwNJsT2BAk5AQG^!s zwa<{Ke$L8Opn1B2M+%#`LPsqYbnKxWZgUnG-7jlU`9Z&JNVJdFjr=V6^lpRff>&hc z(71L|lQ@${LwKQrU(M9SfyCnr|Jv7Db&7hudykAIO-aE98&cUEVr(Ud+yY9zGQVa% zN}uv%nFqUX{&vwyrZBR7i3miL2es~2P3oYnn@t6Mw4^O5B;EC}u@)D&9kP_SE{$j6 zwV6$T(`TJTWK-PH(DDt8LGw&oKy}l|U2@sfKc7l25$}&z7b$B(R=qfCXA0;1yr4S3Y$F;thSH+1N>)C62~VNxjO86 z32FYc=Sh~=TrVexW}Q>*YZ_bk!1-fR-k}xxl4&Nz!Jg`%-53&g8xi!>I;c)Z?i`!9 z72|7fnS(3-g(1{RU5_`v;|!t1Tsw(NOu^!-CM$V*ebrKZ^EUDB^?l6dasB};z!!G( z(UDD+6;m((a-3puv_n`WAIh3Iq~ELX%Y*mADIX7kGrTAkL70fY+LYinFsv^*s{A$c z6BYI4!pq7YMy)}juBT$+eI?G83nyvKrL6rMHt~LXJ}Cg!XWVS+HmxabSy}6yHV!^M za30|{p(ptkn9r{+9wv5UhhkV{?-zv(MA9`o7Ev-2v?ml2vy95ElAn)rqzMT+tTv}O zoTEL7(Y#-zWOe1&Q%GObdv+P#cE%Ajq)Cf`&SC+C-XHotbcI!9{0Idiuj!}ioH&Xj+o(mm8EAK07YZZx`Oy2^#$Wkz zqI1PqkIgk*-UA^gRh~)s@L$lPy8eZ^JMSuTwR@I&LFVEH-w9WWT+f+}9r|g3;&!%6 z9LtfsQV*tqe6Sw!ypY|;Y zamh|4R*m)Jjcf!;+Wk8oZT~z-8~YPEQ71v=ACDY)J#(l{0Jx3qFa%V2ohx|r%q8><`EGrj-nT1T{#Tv6NcbnZo*6K z+Fd@ss7t>p+8yNLPx?>>~jlZv!Le zl`iw6#;QJPgYVx-e!DfWAaZi6#Ur-9uUDKan*Qa-XE-WMbsx|x^=sP{^6|H4_RvQW zSWS~Wxpi$@O8c{bD0(&avpH>f5Tm=6nezcVvK*fYt}w-1eE}kt=j?Sid~a2 zQmzzWUIrTH?iS8f2}<2uP_$!F5?HxQ+kbqTuGPu1xAdGxAcp}x3x97T&^ZbX{+3K{ zdrdZ_^aK>7K8t&%c#AtcW_IJV^R~2)=fPeT-*IW@za^n4F52n8>Hfk7QOiBmOTZMgW(dv!2!d*&|v!M@55^MozH< zFQXZtd#q8rVM%fvbLt>|0_rj>Ijn}%tG;_9HmhqSTN}FYwOzRvY`-6-^{uSAlE;lN zbw`e<)AKm$+^N5%e)fCUGdZGtSwl5mXm#2A>u2$EalyMDUqgP^8Ep-5rM4)=Ndp<} zBW$8dY0DMv2=*H~@cWctf~;0?;%$GO#@&Esm8CEOYp(@t$5c>K8_^+?v|E-PeXf#* zs!vG1oG#Y2OdM1LaZ-?grSSejznm5M3%@8~lv)!F{jCVHq+BAXG(Koc65+)n_P^fg zaP+@LxW2bV9#EmL@RcL0=ML2;4&@&{*1_mT@qTlS_nlON(#pSmAMav6eZ017{mhjn zpKtUPAO71=B3gbOm|;^|nmyc6Xsvki^b5NDXKu zV_N&jWHqcCCMCM5#eLSUbE&p5v+MUkHPbm+EtOx43}OfeM~1DGsPwUx5aG-&{a_+$ z=X>3xrnbB{GqxC|O^vU^`!f9oA_^=0Q|xu%;)!h`#gETix%|?MY#19HWug#-b=!6m zE4pwxJ>-)@ zvfWe1UX=|*hQM;#UIM?+-aQ2ul0yfz2q1=b@tiadVW-L)b=B|b&5gZ<5UBCQP5(hd zUk|EVe&uc4YgN+z!KvJMqZcDm&P)7;QI!PxlI}f`iu(J^)whQX`+kEhvM*NZ-w@54 z%8@7tpF=A|!@Ae8-%hwcneIqll%T(_eu?w=P4a{1ZwBb`Db(1d4JTndejeNG2KNmi zc)v`q?ryECsVBkJs&Ru{1#=)2O=$nDGDkw6RQ3`lN>=OhazByv(#aV0AbC@%on8k< zN$il&5S%`)D|4r)mGHM?opbZI(;59>9>0fisT=~~dV_sac7GDjiWZ~$p*M;_g6pm} zO3jhR0}}tH7RHJGm7pF&w*d=(Mf*=WRy>Q*lh*jl-X(B$3W0>6YrI z*rr)nxy_S?AY}_(e6)Se=`>tbz6_#4P|j zH4*pz`u8k$0nVf1d30sPlI$9%UI^L!4@J5~M)fbx41JAc^aVCH7h2$P?sSPlMVh2d zqVT4h0xI3jWgL|<5i|5N4LJ^&f}R*F+tY}`wq|c{YFS+*gB^YgQyFXFO!9SGT^zt9 zdG=~C0)&jW>p|<@?~gm9c-Bo44%iDswq>W~6*4>^fXz^U`_dN^rH>H6e7vopcMo!u z;BKz}!p^#|`i`X8U+bPftW)ZVzpmK4tk|m_@UDqKL|>I89LA8oLmwBiR&^-E*>=NYGX1s9BEbP_O@F8f$u1`d@4kvM5? zb*d1zcEDdyA|Jb+*e5^sG4jWY<(RaiP6~fR1oEw!%A^8@0kYCGy215Lh?-vVW-BX~ zp>c8cy^Y8YY6>f|+pZ4wX29;+^{8P{vo)AgEpivM=suVTPR9zP`nm5yS`*x4$OIDH zXlTu>NcGXiWWo}cnh8I?5}0Tt^f>L6>x~#$MbfbtRb3a)xy2}>)nM{57`9uB=9WzG4X3uOcKDz1imgiya4rX`Nch>G!}Q{tEb9-X(+@+T$fk z3#@Sy@4Y>geio5zy~;RxmZ;Zs<3kUbs7EvckW20gJGxLbfn=Z!u#^1i*Pi3V;1!h} z%C{RVQ5LgIdSdUJN=Yb&15vHPnBPoFV>bTFghDSHfj-P~lVZn&LZB6HELjiU>^tT2 znm39S<(pn0D)?)n=_*FHa$t%k^4F)*Fzj5S#yTm<-C9pMk;2L{Uwn;Thf9CE2Xdz1 zH_^atYxY1}=HLEym?(VLjRhwEgH$&!(z(6c<7Cn<6a&G177eb9 zKX~5Bh^KM-KFt@(;lcOzUN`U*sy1UldkXMPmKwZgMDD2VufxTxg};!l6!cG&X1~yY zNJR2E<`vvdOSjj%w|8xThwi5*!%PER5*RgY69Uyb*2A^pS8iLz%@|(8jfw{AuVf9V zGJHC|j|s52ZhQ{oLv`Z^&)<26dodprjwILWpe4?cil7M8bE;_mX!KwWlgnP zy}a*N0sXCI9XV}}oOL7&&~3Uw9<9-6zZa(208MA;(NL^5E2=C~FpjpIHW-5EG7q8; z63=&lh1%Z7giJti^uEw;^_1f?AyGqV&4jkeHuVQ5cU>j)#g!O4IKg@-4M(b+-N929 z-*tT9nTN3JiDfWR5LU^r)qRXe$9xla(q!fCmLu0wQ-uOy_Q(*?({35&XvP*g_wHk} zY{x&tqCn47bfuzozS2j-E>Mu7_ppdO7aQ&Y)#73$%b(SpAc-^Suc(%S`aaBo z{pWT2N*a&Ic7FMbon*jn>^a5E)prbS!#0mkono(%x|4lP@BZ<{8GH|sE}Dbv;a*LK z8%;A%8NLoDATBun396+phqr-=H9r>7Z!!F6&M7xS*nQ<=Z#K6+I^g)3maq!G$+EJL z%JqUWL*QP2``Ot5YHeaY9twwpIl0LU;Boy7_JmbLBY;`*4QHklXG5DhH;pO^sF$}9 z)u|cwc}H88oe1gI+#uiAm2%-3W8Cu3So#EB5oFTzo?S=`cOl%y9Lc7R=N}5 zvXMI@*NakJ#9=-@CrpKPK_a_=tN&por>2i+n+}@d;)-uPC@WL|q}Mp}22NnBUzc5x zdZp@d9GsIZT?c)3&5#jCwNbUZkrB>~lj=$l2X%%&eMwS&H->?Ow1G}wc=}@&U^O@T1VET&(Ti#S@$lhF3JDoo&*6lnNT?qqb2aE z=yB|ghF*Rem(a{$#mVsPp65raqM>QYnq>xOoB?I#taO|c7@pSfFi%zeFCq!ti=Zah z>b?9*kHbI>oQZ#$uvI`7<_{J{r1Yyiz~B9|Wp5Ut~UeteRTgll~1dEpw&}p!lBm zpA=bnWBd5Datn04rDd`m3GkdsD&J6oK}@US-QV=oa)qU;j#+XGp&vgaovQy=UVe5A z>eW_8(~rJ}%$(JXhyL7rTJi#u0OL8!K>IPu&H-Vr)3=!VwctVLF7pb{Rn^jvwq@j? zq;imBzEh5OU-jNqleW(^>9eOeVrS^1`(69p!DSKZYB zfp4DJz*z*WSqVIXq>YDEobE97t@G4?WK!vLrPU-!W=B%_L=e*L;AZn0*Kiuf(!_t$`C)P0-3?H^}h7d5$g>aMA|?+_PS-RI`Klw*?-&vXB4O zXw@@f-#OhclOBzzd%g4O#SXfHe^v`(sM%<=a1UAmm1U&k(t-bVQbcN|)x&|wo8HF1 zJ7w7psmu0n=7_++pNC8F4e?u?HB*p zXz)5;H*JF|`=~n=r?ys{ra* z53ID4RNdpQaevz=PkkumhDvbdER+)HaniaY-Tg)7&tYc2pxQ@n@cv%V<0J;x)aIN| zPjvso%dC8w8PdF79JHq4?K$m~j6u$;^x96_>OvZa2C`6(6H-HgrxZJ3i^laj4(IPyM1ez2UalnmuOE0->aDt_ z=?GA7E?BzPW#2|sTA*O1lvIs?W&h6JnBjqwq=}3kT^e+Qko9ByzEnawrUu| ze}f9u=rDR$iZkUK82))}fydD>2^}t-`JIE0$T@loq&P-N|1%xN7}bK4^!i&{G&S=2U~`6#`SAatMF91nUMRhmiz;#) z6pUH)J$@Jgh06G}Pl6j@f@0p5zvP8gyapBYX$m#?wKex?Y(8!1b&U<(RzTpfjJeIq zUF|u4f+jozCR#%eG^L%(^@z^dbt zzaa;jbtW%C%<~GDdf=R>_27^<;~ z`Sk^{R6aLQki->bu697`EFo03AW}Hk7}_`21S#?^4#cUp?)ZKD>#*%79JFI>Ip4Y1 z8%TM4fS4rK$}t^f{k1D3*&_t(h11Hbz-sIZcB*2rO&+i3xJsttiYoC0$kTls|J;fKUWVuekw@PvwU~W6Ut}8bCUe-uI&Qk_oDxi z-)pj8K?9P9gSB(_a!%a{L$~lg-ARwZB9#qZdJEnF#_EZ)TwTx~4_`v)LJK9$; z^}ODFrv5&Vv&n4HapR1z-Z+GY^kPzhq`5nZJKZ$p3W*&31c5HukG3&&viy2L;(Pdk zFra4zWpqpBQm__l9~CLjVG5vmt?eWn(J&6N$}TF$%%8$T#tV7i^YS;N$PPfH+Op;R zkM$Aw9<`Zxo=!)7N0Y{Ar5iXVSbqa!;1?+8%m+WzCW*Hjc1gXwbQMT!W@b5RjukCf zn>t$-9K7ZZdZqy!Qo$+UR37Z83xxF6ce2lUvH{+y`hmH76%qSe4cYitn%))F`ne)I zRfYE@k|V^$&1D)`)2D#PNSg~E$2v3&a~IyZ#^|mN1)V4OOjk${7Y`_2Jp%60#&cl0 zP9le_ldFrnPb1xjbVEgv3N|HetBrTm!~m+37zcEmWEl-MZ^HS@eFy=>aGx@RI2<#_ zuk?~V2yiR=6oufd2RH+md$fxe5I3kNY#0qFwl(A6Grs}SaW*)u76@v4yy7M@V^tmc zXM__HIoyA?O?egTpkJ85=~XBK1HyZ1^r^H1FZVyMz3e5U{!OI&9RxQ8k*!Umf-g4{ z^5dBxvQdVGuLsgO3%u2Rdn&5I&b=nlOE^_yBJ>-SJ@Uws95y>?f3r}r4Um%^Wq0rh z$~lX3bNMTp-_hkPW$@@aSs~+6hDCUlHuG7eQDIRVlpM=MAEd{wAb#H|6K~uRdox(Z z5W;~<6Z%*#bOFw8r>EojEcQ{?L^rC)e~{$6WAC)DboWGRO32~^#rtK-+iiW%H*?L- zGXk&Q;*;e?$BE(VI^k>@kuMjk1z+#~C=`Bn6vu_?zTV9Kj9rFMBK&jglE;c$+-SHt zwq-)^=&`n}FH+y8tsU-Q%>P>Wqak84or#b4p=}>E280-Irt}jO=T5*{*?x;}HVgWH zyEqg9m!7vnpnmRPnYkh21;V>L78Xt-d-(t)7W!^)CSQskb;5KQ@oY@JvOj&BCleLz zyE3eoB{hGP%4f)JX#7`1cR8+t^#KJB3dCh4R?biSlA!Psf~$c`;lw}Rv|(1ddYv?p z6c!fdcI@Kj`B0f+nR}LMh7dcByU_QOpjbw+Ef&wY7}i$Gbib`T1W;b8sMeR1&jDJ~ z{vDBH6mJbTb?LR+Yw<_RG4C0?9qjj)11(?P-#!C^l12(x7m!AcH+@?<1giFpQN`X^ zD%q9j>}sd?Ih-hgiySGZV>r|@(UC{*5wH@hEj|C)>?>>Uf83%2S4(y5utP7e^=TB} zaUX(QHIDA;#n_02@-!Xb(5_ZOV{6t;ofiSB?P zp!YVdbGRK66s8P;I<<~aXO)o))-jgX8$;oP!@+ncq^v5gaomIoREW+wLmD-pjrH)) znqiMPWNig@BrOtFLSKU)emX?>W?^Zojw!}>=6VJH?F;E3a(vx%ObmXKeu6*CigBAf zjzH+wC=HPv42jLw24Sr0cJ5()TU&m#zPFsyGCvmOSib+O(j0SWs#(FW^i$dg4>Iv8 zUn8dBt>WRB#$5{z9R_!j656wyiTNV9KlXk8>T)hx{||%HcPJL6EN0WFxmlM0V*8)j zAvue@Nd*?N2Of3W)2-u=<88{^hLpMVGt_Glyp_Kcb@BT;bbm!($?wb(DQnnHxwhjX zUf`H~_XbYO9CyEFZoa@W^}qi1-5II$O%=g+nR}`uA_=L6Nm+q*ig$QU)vs{kXmRf& zDlg~2ndk9@NM~gTC`;oJPOd7`o0wQ@-dvt$J=Zsm4_z56XTQD6`~nO!9#<2&iIxU( zjOqW;{hZ!TT*h+KSi+pta9gOh`%!`gUti$Q89sAVdVU@p(^qdUi;K`NV zb(O*ZK=wRrEme~}Rn|w?DG=)N#+X=uGbZkFIEWW+cuKmi8N=j$HuPfaE#}3wK=7So zJLmlDg3_LEN<+kIE8XuNFngKt-4gJ$amC^{gguu>pC zNUSY%yZSJIM5Bq7nqv$G!4aopnCl%RW3C80+XQa%Sj0=b5Xm+sb{_}3sE5hkCu&@5 z)pBgp9e^^FY)9ss=$-R4>l?M$gDA7`8aREoEZ-qQFqBwEh!*Iv#E@ULzZn9V`fn}3 zjau*t82KTgb7Y+`gVOW=F>}MpR!-R_3xKz9uU_)&ki5T%Z^l>Pb6fzdQ@h*WdFE70 z^A=P3-4e)>c_)G38Qu7l`*G2K;#h8Aa~2^%xI2??=U%+A{-E;rVh4!&U-TpuBXIoW zoiGAQuQn}PP(<0H&~o?&^uEnCGQV+Hk9{deyYFfdXO{rZXzJPlC>y5c&4{wMTuOYQ zU~e#t5!kd&$7C#hdiPyjm8$&#ht-o+w>RHP5QH;hnVf>GM!f@M`@9f)9KQD$-ghF611#c?faUOM2=K9uwgYPWI8Gixw-AD(el<#k z3|OiO!4Csg;`tT;@^>9-yeGM2fWjh5p%m&V&bRL95x6c6KfTDwUGOP#CXs_W8ui@BG5&}tZ6Nw@4+H8jZnAq6}Ug&;_9a?{otXA>tC@4L}nwkwcxcN`~~!U zH2JdRvfm}!UFN&UHO&nH()i&VQ-{SN#x-`$T%D3BLF>Sv{*jCVaA}ORL3AE zo4Jh(d~txWnmL%@Fy0=sKhDd#l)H{kwGZr4?JAf1sf`B#^wjs2ptoWvSr(W)JM4~f z22xnuLyhh)0j})>(7ax@rlZwief0o2gSQ#(2pP0=DU0?<`uOD9YtYPR444P1r-e8; zSJI)k;*PfOcZL7NNUf+j5RN88$9bdYZ{cE88orxS611{+IWAn1SSm#;saArTX?Y z#vrH)aC72Hxmu7{k9P0(#i-uKN*~U0hF#;2B&K?(%^FaFBljSynaoD0^^tav1n)*E zH5+zKT;CoC1HZSUeqh(W5`HUH#?q7>z>Xz^5P^4CB8pV+;IHp8Mtk5$+Kl5Q(9p$PH!s#1!p*u0iJ4)fu@y;hPm1&7U`#5Rs9=&D- z6olL1qebSG9WW{s5}_d6{6S*vlGN-+3fI-{#s*e9UBC+MXz%lSSN0jW)~&P?I?jhv ziBI2JMk&KGKqCCn>)O$z(QS|-eBh*&t$H)fe*rjXL$ra~c8MS!x=RM)AsT_ zC&R=C2&feAd?U_f^43%eI`#$f%VH}4b|n3%ecfm;e0QBmDX_)DRpj+giA3F=?=O2u zg+5f?;>b`-qKwc_ofRCSHRZ%w0Cu`nXT?xvG7d;i*YVNM4#jns6oZhh8k8Y@6Jwqb zF&h!CgD&2wkuDYTB=vZ>7}z8NKw2TuO_e3bKvVgRB=^id0h*<}g>7CaRf}90*JitS zpVK~aD5~cdp0__p^N{|GLeQ`2ixll;evohR<{U_w;6Z|dJj`-$ER+1(j7BhZuW%fi z9{#v-j=~>+-z4otHlqCjjS%RO*4`que=-elG{0vZQb(E%U~~&^<}K_VI{wI^tKMp9 zoxlk&fmJDrJWo2Qk!!*m$ED}YJkEJ+U_o6UlXd`JrG7q274;kcq9^oh#4`{;?-Zh3 zHP-N|Cf%rqV4hG%#S*`|>m}%p7=zVv3nZz|zj3Pkri~p1%fo)n zY=Z89-%cXRmVTL7H_V2Wdz(#*RV*XruLgLz{=P1opWXwa(`MDXid22aX_q3;*uqJJLNg7oUKI7C_Cn7`#q9zGj(t=pFD+Fl z`v&z-d?p0mVcv=|^W|BKSK9X+uH1NSZMLuuWP%}I_8}61A&h78n-w-<1n1rt>q$=> zBX8BzD}(qhWl3`vnYAJk0s4WMh^u1$pC zMnERQlSZxP%qVOa1PS(*^=j7YVK6A<*_j2^%TavAcVT!`!28r(>d&NBf=B^R`~Bx{ z^)OMu32P&KTOzxLyJ|p8xb@dPf7_=aT*-gRHWM-MF-AHH6BD+)V`TuawhvNEVxbom zMTFcR{^Bs49wy<>c6*BPsdV_Fl8&yZ=x}f0jjPWX@@zA?K0C`@4L(+R^Bxpfx|nzrRdLl%CE>`tA`zFLbCiOc5Qr3>V=XHYjpT>>k`{r@gsp?gfjc%+o__B>x%9tuL z3k1wR$nohxlfDOGox2%%`nP`ur0Sh(&6{_=4`8KJ*VzTP%NTxirDn2n&tu4HXXW1x z0j0pLZKI-Jtpz~v#70JuqYNdW@)&|s-NU;0F0A=PQC|Q;@-r@4Rtv0TnxOrM4%GWl zZBj8GRmu*7f|3@iAvia&J}DK?5RGZO`oWSV#gG3`!R)^GJ|V`#UBhEx4!cY|BBSRf z!M9=8HUHAkv$VsrMDw0P+{s+AQ6^ga&Sjf}uF(KWdxS2^*9NIlagEDy>ki%u#|0=+ zSZRF#no_s?Yu1uI`)RkVBR25tcoGM!b`n01jB8hha0#P+KX{TzNH64K%;?{~hIF#7 zvlG}b8Etpn1;mFRbNWX%y23L8E8#yK5;ll6@uXQ9(^#WoWuu5NG<1f3ry}OhavX+M z$}@yb;SeEGZzaXOXUt@F-4PK%6oye#Rbz^238goabT6oKc!&DH@o=v~0NF>WcG0l~ ze-LF7AISS*Ff@LD`EDd&p}@s2OaC^xsrz-ow&v}j z3~6lkZgB@{UYX-x3P@W%+-MO0zrkN{`j{X<=cI{rim6J0{$qZHUtT{Np_z_f<>1Of zhyCBcFX~3mK2^10FEspC6k)8$GIQz?ucB?41BWx@=0PdSYuzrI>pp2NS4aUnV112e zQR`o&arCM+g)nlYG)7dX9JgF_}%AUac_Xy z-771m`QMn2B1!SAnHvX3lYR3>AZYw^MjGd=XWL4gi&=zD(-rgOky_9D@3=`Bn+ zj_eyJ^XRwOp8rMo(knQRzT=OKb6m3v*DqvVuID)>dn9`QYllvOdmep~o7(8VpH28@ z6SIxOyh>6FNAC?(nv96z0=lgp1DT->pRSmnX{uOF`ax5OHy>k zWz0qvpRNzZL6lMJRsn9qt~qAO`Lv~f9-D47>t?zwb*$eoO(&u^Ecy@q<<_Pjl#!_E zaLX+NjiBKuPG*o;S^UN8inUu5t04^ev`7ptPiT1mz&{z6nm{dX)G{Y&mobNpA}V+h zpPKZ+)AQ8r(2jDI&o*;z|q$mvL(N1uWSAN_bd`y)o5xhc5o{9e9?`5nu@8AgG^ZWu1HOyftVV%tr*9fOfysb`@2ZmX_9B0 zX={(=0lB!&gP=7}GluaE1^E91?sbxx;Q!#Zp~D2woq*|pM;$_O%R!%=_9a7BO;=(> zkIgN8(}r(_ly&G^o)Zd`Bl`J=x40px$;yRfSIQ1Hv0_3MMn+9q)G zHJ_BP2_BZn&ly0#UP=E?2pAjgniy=8q*Axbu9^(B+Dk{K@j!yIDHOnw{(LjZf(gCq zdJMg%3eBiAlonQRkT_YZ23_F?pmzI`5#^3;jG1D$1jja~mCQdPPf}`h?%0Iv@1XqS`{(@kqme?{N1(dw z2a=pllc1_8;(CFCiU%SUku`%bUbornPZXvCqsPTw07mJwJ%m#|+hr~Mj+cnTCs@v< zM;evoV}JGUAx{)~f8nZxF17@KAM7-dv}_6G0|A%*mGVB#|#FO z!<4F8ZmiwZg8%;^z9wBsk%1i1jMSRKSDUgnlC`c6}r!y6gLsV3QVxrHcS|JtEzBBNs zM#qXu$w2b7Sy=a()Z+sl0c_^`h<_ukM!v66(?_uRQ4Z2r;TWcHt1@s#3IbP4tOqu@k_^GS1k#>N>nJK4Yv6=`x&7qbIT+Z}S65_Z_86My{e!eO-Z!K8Eb# zlCKJ;HeTeHp&ExSKLeKK_2!5v#$|WR(=przlML}(X~$Fq5#Y)jNPHpTh(RapX)^%Y zTXn#{#X1E0ISj!eF$Wxshs7AC5Oc5SeX58k$lsm0=BLs={ch1-nXyS~#UfXN}_i5Nyx7e0eTw<#_xESR0JJRtv_*5>XH7*IbMPrf`Lr*mY~qG4j_Ai};{aBeeO=4Au- zh5XEm)`9;PMSfclZ5xDNn*$o(*N`2R4n;c(=f{E_&2*JI0_UY!0e{+oqNB80oLU>V zd7nh!N<*@`_VI1q-Ul2xu}qY$k3q6ZNtUxVu;uCYk17^P8(-)HiepKdfA&*DrT!1F zm<0ffmC*iAuvjhV${j3OZ_KJ67#%<}V#q+Bthl*7UVQ#;A-LP@3SMLud>4X_Ah&-O zQR;;LKPD}*BF+(Nzs63*tz>|~SC_QwiHe9KB7+ZVgt3$SyDAI%II#u2uM3UVL3@!S z-z|`_`Y+){UQXzXN*lHU(e#us;f{Ngye%l%a?xE-a%gei?Ym7-|IjzmcR!>5NX-~< zY6Y4foVv3MO}(aR*QV{^NkOD%4|}rZ%IDYgS*d57#7YMM$4YA-`4BZlT!1Sui=K(z zIQvc=Zg@W}`_-MrpX}5XjZf3PP2#sIlCJDX$FX~sTVyN#%*ER0(st@u^s);uD*877 zsj%_w8={Y&_Vt2RhZ?K10BI&C>j^hYDgAj#!gt452{Unrv~W__@U-Oz17|dJSfqKv zm@I#EeYl(^)}jxev+o%GS4Yu)k5Mszb2&1%N!8sFP+A;}k1f>6V4NzT*o({XBFS^wSBc!s@Xe z>zg*dPq3-P+NB|ufAlM@IjpoPTbr7vuv7HI7?FH!=^SJ>43VSGz)?EMP!!wh0>lw( zl!ISTrfzA>cJeVD5Wnvo>N86Ar_y&651A z_d@uU3+xAhBNMOpL4!ex^)yo;pLU z`m5GL4zLJ6Mo*O2!1%utS(vD9*e9r~o>%hcNrV^(xHEiI?!6aHmSE0ke~15r9^lam zaCjAjIWBzVrX9OW+?~<;_it#BGrp%$`{h2LlMV+7Dq1Jw*G#geD|_WqE2(xM9Vxrgsb$J=* zFn0HRr}Oc7K*{fbSqXIryaFK}ZP4>H#en(QbU076Q8jbS9S_atgO)TwXGsJUMasR5 zDBnP=wzS)%mzC%KK-zW0>7ba`k}CbP#m{$FTQ&W1{LaYf5R~yt9?3p(gzG+7-6)PQ z9`s2wMPk~B0@OZy>(By*FwtIu{Q5Hh4OZpA!r1UGMCC&0G)Z15hnBS1MC6rSOs9`9 z6VW~$;({5o_gqj@IB(5iBiXf(Xaoc`1(ypiU1SKZHU+!Mu3L^`$mh}lRn9A-(>S{(FoNvV9l|z^z#7!eAFCu zZ34!xYvYk`R6WA!@jmape5(?!+(@Cu@tEY2;e@%NRW(iS>{fRN>+?&^Be)~AvyrI6 zL*8Wy2@BD1QA?9NTD%cE(-Te~pRSp3O|)ZLZN<$fx}K<@c!tE?h&M`qlhXFG<6g)K zP?J;I_3uJc?!Ejn9p8Wxc>PI^ctbE~O4j-i%I92qy;j_rM-jllQ zvcHO!f2*>=A{q(*k}#XVZ?r^zz2a@@WpJY}+k6Wf}DOHQEOcApjX?KciRQ3Ei zHMee4*NwYSmP?o9r|^E=QpNCp%KsE1&y)6_2T>RzVBXU6D541E_2*Qfc~(FyXrJvgHPgAa#A8(HshPm@{OZ%|Lz=g+Fsy7#q`}G~ zW~NSsO@hCCJ8`*=ba?7NGmW=YXVWz4gy>8K2UwopQNt+R%)3*kKFNX6;bvlr`Z!8m zi|#o4^ei>lqo}8wBPVX@S(fpPzM$V`!3AuLc`Y`mthHd*j~#97BBcJu8)6vZ!2RB1 z*TSKJm*+iXbl-~eW1!kc&@5cR^abKgHQ=XvWR!f<)XNHBO{Ae?n(rN69lbl6ZW2+C zlK@ppei;9ZgW*}&!mh+gkUqVAcD%g>i4P@@8e6Xx(Z16ep`%{i_#|78Wg&K!D|Z}p z6&$&fovt_jsT8@n;@`csr^`u8lGEsjq?sCxFV;K)G$MG4=Er`8sLD9u5o4N>s#i9L z$AZ@QY9nPu6@QCXe=UsxAT52%K2QqEJg6f?M_3Z)AEPk*Mh{+zK85_}y%?O2Kt*ZB zy_4u()$VIF6m?Lt(lB?Co6x%o>@%MgR?D6s4-|WP+(qdq)kgO2{klkkk(>}Ue(B3$ z>50J}Adu*en1E7$t=Z`W6{ryMT^dFC#&CRzykot#H6+3P1dyfSaUh#tFa`3riL zuT^M#qC>^>1|-mbpu?I+`;P{8P7#%YQ5W}|nrt4t3Ns0qheQQi)K>X3-OO zsV*z9qqAalO*8v7*yE^lm>)Ox?S{G_6|GPZ@)D#RU8YpNJ) zuYs{@^j$I4vM1kniaAj^`MBTZ_Ngk_>bJ0`;Ozce>M#))1$=RGNyQb2gy#!qSfuqmzpg+z+!zzO4qr8BQ#k4EJ_3>Z!*Q!{A2#6+d(-Sq? zL~O+V7%EaV@Y!%`3k77lFK0*2ZF~k?bKg#xqPJZ*t()(5QWxG9a0UPr|+W&rf z1GY2)*}SEmtCDxysDzMm(7a$;tOC#@`Dia0DW!u>?OOR4bqmo`h9Kj4ayLpi0jN4Z zKL}Y(Br?qwG^vsMs-*4#vtT3>BPQF<-z*AiK>1>C}vOP#&b7WacDlXtGy2N&qhsxU}uo3k7fqo$}UZausd_H+&7;j|GOT4f=pQ_^7@L0`a{!=>f(Q( z%$M=Q!W_t+7(I{UipKF{#u3hA1 zv}WpcGXG@PVtNX|9n`4h&|Oyu2Rm$%*by32BSNIAy2W!PE})*XT3(aDMG z`y*b(18&hJT&9A%hxa-H2UA$Kf-`^+;k&`|(|4Uv&UlRC8}G?r?|+Xg=i-`WDY|S+ zaPqq0N#Da;GSS;CMY-`>qpqW~UWh(I&{KM?PYG=$>c$sE|a>#&M&TzKSHN2eX z7&+7_=kte|)I;kUDYCp(ce_};3rGj={(9_V}#%9vG=)k0P_Uu*5WD-%IWE%EZjJ+g`~h~sYe zy;LDpMp)mH3&-8I)6(gCrlv=eLLL{0J=r``}j|n8*;3ZxxNHOwjem>=Ud&Kaaz{JDsX6cZcKSe;GYH$?F-Y`;-$P> z^&NUg#Y{eT?i^a2=@Q3TL_cT6XDGcN1%rTVH}zqdI0Y#E5~}++k+VqZ|7q_%o1*Hv zu2DhI22{FkW}0*PJ0&M-UZ~Kg!?xpDTL)qj z&V$CcR9yLdU=idRb2M@0#LJjIw?AfL_xX;i_!pfFN?9Acd#>!Z5ml3(kLz75tKakg zZC>=vtNv!u2fn60f1b0$IKFm0*^cJpkV^Eo8!ePmQ>#+>cS)n9RUXvLN?_wA1I3}P z(h2H_9K7|xVns?R1TdVwYYsTP?sysJJnmH zMRq;#;@iF$Bds_o(QZQG{H8dcOe57snFT3}a?f>KBumg9P_Dz%aK)tGenmd@nN9nA zJ&wPV(WfjqL9w3A-N-of?A32l(T%>rE+WDl&&P)~!|8F-;xx?UoXu`SSYFoiftwUf zP?So|=e0)&{d<0&`{gCQ3nYU(A;0*8T|}?+jD2EYG30Zl5=niePPg#IgpG_y`CVO_ z;iH-B>%?~Ne%1SAMA;7~NkV>I(cRA&GMUch4G-jccb}9uRtz7M7{a0;R=XBRt9YRN z8PVbx2s?qr4;7e?Q_z%m7x5IAwS}Eho;%JNt{xRIuXJPmY0*KN4rUX;&=JIc{+TpG z!&&Ww*rQRik-vj!rDsKLeW?Q4EAF^bT_x~;oy+MY=D3-}BoWiQiZYGwLJmy@)%UMQn-uW8=pP_D%p>`ArA zKbO0vi(5yPwX)cQZwoXxrMM=gi0e{ZCSloJU;1E^tII-$BI{^kP?+2>=Lz4CKk9f{ zlqBVGSWzd#H6MnQoDKoi4fW{|t75{p<(<2^f{L>a#+VJ*qfTneJGi)e@lS}Nh$G7At+Z_Ak5g*1^errdyfA_W9_{En!!x>Y z7E!kLyd2X@FcCXuLF;>1|w1yLIzc+YVB?lSOVaRKNCR9=yFg znnP!rcKGl%BDlS%r!pC&q4c=1n7e`x?RTSGcoyFthDseCKS|BVwM#RQ6mm6ZKh#d= zj>KMe$sD>r#a$4s=ALII*u&)?oZw~GRR~&;C%FwYJ{$|>IVlpKHEQI->6Ph z5qI)BE2#0p@?nHKd0B)d-czkN>;{w6d#*klIjYJ}Qy7LmCfLL6@5-5_^oOSD2kCVB z@jT5+6vvJAfZ2zgTl|)!zkE7{G064#xr9X#wXxz?v$j+sdS7>rPu-&{L>E`&g$}(a zH_h8F_LRKw5&a_~lZ%v#gLIe%Vw0p-tKDZvv@J2YKcM?Q88hcdkC6eN?lR+hns!fm z44MSwkb)uv{_}N8=vaQrK*Hk3Gb9gC z(mC2pQ8$z@cLzxf%woyFO>&NAk|tKS9!oBRTTDO&#lv^DL^8uO6CD}GL;V^-8HMv38~T1uEp=*OVIS+S>9deLVJydvplImj`L|bCMeX4>S}*M~)u2KZ3n*aDzARc~3^)R>$WeL*VgB&; z36d}_5ef_n1I5?ooYAT-~5LS#zOC*Nv zf8{M*C-;M2>eYnti4GXU#Afo}bLO`EwL7`zsQ06w=uG_bD`xbj)Ik|u)8M`Ha4#a;@Xv>D6C40*#zEVB3ykreO-#PO zrMHXtP5J%#WGR_*7l@=@pf5HG-hC;$zH@FpU=QHRm+BGE3i4wb$wEuj=WW}FNcA94 zQXN#sA3*|%WfYDaUXOQa_v`Xh#p}8)e}Y8I{9pZI8yw=72s6fw`J(CIlHDf0Famk_ z!Z674!^9~r?XJ5sZ!HdG4nf)2*USJHQyX5*iap)w*oPf`R8m9}xe}bn(&+0)FAVl) z*bj@YN{#m;6213UkV>EQM}Obdfn%3pmNx4y82hB2HmUV4mdi}c&a!XB4Ey#k5HVKA^+wD_=rI6V`A=VS*B%`3g=V+R_JPb!UytOC}*j)N$-^ZeJ> zt9B!@)1lnUkEs=kz)*6`I0ezJVk3rL#1cWR&z@T~vgrGleh}Y2-WJ^2;6A%-6pi%!=G_CQTv#<#r<>ZGG5rN*oZ!EydpP0?#HfC}$TmpBgOtlr0lIVd5Xgy)YN-DZ+>z6m8@ z&kS<(I|}OmIwCbzF5oKc)q`WKs#=Q>{=S6h&4XCfX^dh~WYhiDaC+^QRA6f}M;&fY z`rV5}80~GI;4U+I`S4G7?^5S|b62N-J5mtL!L$7!F_?Syk+tii^&bKkg1$cHlhEQ1 zt^EEt-u5qJjHQ*H@6Wgdn&#{uDtDvO6I9D`h}o-GpH6&Gsqk7E*#g@=;@+QMsa7%w zd(-Rm^ji=J8wAO_?LJEc395mT$&{UMBr*I8J#X5NB^@tlr|GG==bC)p_DM}0By3k- z1LyOoLzy=i6Q+KBT?e$`7K%6U)COP=u!6fTMkplv?3}u9R8Jy=)Z!HhFc9I(D5zc( zbONM>)(|`vJp!$I2smxwolh`3nYU%JmbF_ua>_Bgg4YYoOz4}BTdT`C%XB46b%)XX z^}pjhTE23OFprdh2BLGBPZU>|fm7Cbq#E#q7OQj7Am@Xk@?!IjN(-Mk`rWAz_7v|u z=;ajY8HEG*eGnUK$8h2<@5ue4n1pPN-y5HHQiSTpmvX!QkNr|#R*XURwb#F^ODx0) z71>XaJ%9riza!SF`8nGS2dyriKAD#7ta-mgJ06DWf(o*X-Nd%!e5;t&QUl>vw3p)3 z{CFE|LJHWA-X3*E*z92KGQ1`+t%M{RMuFG4Le?SkBgOX9GqHO~C(1hz!`17q;`sND z1A-25ir#p!(Yu#I-<5)AW7o9G6iEz+@zhEm^*j`Hk8s!G=^zl2={gWWO2!zspiU|oxYqw?_NzX-nzH_IK53-PbhU$i? zAaK#zOfh-^#`mR$h*1dhowkz4p~_>|=D7{I7K6_`+=FS7s`&cc0aCurB;j}iDjZ6g z-!xofx4AW3VyDdl^XXvKuEqJ8sJYq0qQ$}d(PPTdPUu*q+Mu+&hrKOeZWSqFOsXoe z(5d$SO+X?V9!?H?##~%%qd9NaKnl~F_jwI=y&~re<2|sLZH{WRWx_*E?KkH4j6P&s za0k&K>EiRCJzZf?_Nz;-#zmlfK(t}cefw1#Q$Tujg?T?D`Flfr#PPEdk)h3$1{Jr> ze^f>)Hf{u5xIk`Qi97}vL8T^ zkXj?LO?C#)(dc4_Div?>q0fHCg?#3U_wmRk84m$u?}obiw|U>oqT>^qt(sWeLO54L zS?HTT-Khgy3z&!H_q>TV)`)zR`D9_us_b^GUGj-THnvquzx^`WtBA*3>3mUH@Mh5Q zOM%C!S`o|LCL%__NP?)K?7?}%+lrf~NE@+Lz5OY~B@+$}-TTqJL9#ynePS&X3^a>t zEjnQRnA&RlF_v@nXPUR|Zn#1b`JC7o<4;+vMeP<+%G!cf4suI{q`EemOP$zjvlJtV z;cyP=i6J)EId7iV7Irb3DeC9QI}MIr`^%6s78zGi5oU#Qh^~szp`!1NPgX9BD5c!5 zR|n@+&%6E&41p&i&P<gOZBG|=R4b2;k9ZhB1`{S(%xuH(lsjb))H^5jsAKM&0!X2eVljBXIwnh%dr zF_>!qCg}lNY_al=;VR9rxxI4K3E+DFo$Pp}3r z=ZQNpJ3Nyl8lFWA@KV-nt{IqU0Ra@98f6)`!G(ve{ z?nz*t`A?>Ya_?}*Ov>=;QYW==axwJ87DTzk+&9he=$483A|_9m{P~KeA@iaQduG2P z1LOL&wy-n!505WJlE(!+Z|>8LI>|r`hT0|*MLpxw6+UI09OwRb0SBoaayJpz;_B;f*9}{$J-q33$p1%2 zLqkFvUtMXR;GAr(SMpGGxYmX|`Hp>rM=t-!Qir*!qH1&lqYXulpVEL{Xk-!e6Va^4j3?eK-|UptG<;pLqe*@N_dk&eiT2d#$Z(Mb<+R3Y(5$T>qknmgM$# zLcV^Bvd?cBJoCHXV)UX)15Y(gt5qQYuS8BT+k1Sh`%b)p^VKxgvxy!y)R}<;5sy~P zeP=A0jgyZZMmVQvvYOF~`N|ECY2cL7#3@P0Dc*(}1akx;p%_($x`%^!vmb=X zKHB`NQ8McNVje?>3rWuv$PDWobJT3^?GI{aG5>}-W-zfBeu>kCLMDbtK<1P^EKW- zW`TiV)c$EA`dTQTb12VM*=PucyD2hkqh;DM%Q>oq7tW)3A&L|FHKAWp_v;+r%CRt` z4htQ$`o`;Zsot9$y*K+T)eV%*IBACO?_?CCRUY1RcYAca=I&Z1SoGE7J(<5|S`YT` zjoRx=u6<0+8`wH5y^}H02z)OZDPOr4i+UK`rRCy;Yqg)(P?;sGS9wQ$m&>VTs??JM zf`cP}&Tck$Dr=t7wdM#yAETE49ZSoX_SGtKUA#x{@}~ET6%Bdizb6+X`NGw6F@++! z_c?^?L~y#PR%KjSEaVYPJw?TDIf)QC=$l+7WPyho1rA?(z)3cShDzG>$)^xzCHTI7(P4&!R0D-;3H**aO_=|oTi z9;)M3TPR1JP~3UAgZPh3iP?TjLxnM;F<`~sY8P(wYg=qW`hv-&YK?zS0cpNQ2G*)^ zHvUKi)!~UEb!(yg?fOmKF4s1Bs-%7Udsh$JKIVQ;e0VR%dWdC&BU7QJCNw|Odw8_? zd8{{GT&eqciO#vaf`A>pdh@LFL(T2CGHZr4MhHD_jv(7*_o2M zx+g|L6Y$x*wzvMTby>bq)!<;BxkIucvBlB3{>4BczT@R!fun&|`G9^2pMN2psfpl! z;FTu0o-*y7BV9lW>|>p0ObmpPZ+3q_2-wy+c#E>n`CTErW6jN>g(uoy*%xtyEfOcc z&r}Orc{H?l?sQQOV*m%dBG=IKM4+|CCrF&Yh2_A)|CKKqFXq5U=V7)4-|p<6vH>_v z|8r?!F#sg9FJW^ppvZlMLB+x=|8oY3$Rgf?M8@&x05sBoo*VCSp#iU9VW+DW&}c*mucD z8+f1-__MC2iW*r98*{7Mi9*+rbl><-MA$=FoT&t9G8v$u{N8VK@MNUCUmN`Vm}Nb(^Nma2 zzMs%c6qKRr0a7~4P1Bq!$hsB&za7X%33^tJLj^8Cwh~=&o$E|=S?J9yp$WD*HlP9H zxd^%SPgmZhoXFm%(CI-E(0(UPHl$(R&;3s|L6qkop!W+mV9bd$W;9V#T zih?8$m!et&Ld0`gbn!BJQh*CKBk;D_ugnRC^YE`(Y4>xYSmg}svAEh(7d_zT0M+F0 zWHlW~;U)$3q#z{v1?t&UY~ z0iZT&8zXNY!6;Ua6bKuC*8le;Zo*wE(HcCI;k*Nt+rtPO^YO8hB}Y$5bMU!j_crsb z!Fg92-w#G=6;av$4`iM)

EC!W_-DY^aZ7k`P?`YhW!+k@9eB7_n;_hN@-8E|Tma z=reMFzOy;9aH$)pqN~lA-$=FbHLTT9QqUbq+J}W&5{S%k|JD~pxI6MdeBx~2kx_0$ zMW_y#;#Jueo~r(ezlhopt0c)0yB1fx!o*qr&2CO--lh!gWCG`XRvAF1FgYpt%ovBMBSv}Xmdh3hPY z62%2i?&uy62X;V&-fzON4OKLR;a<|5m3&vp3P3-@y8E8HAb#(TuUm}d2!PNGq7ST8g09n!V!WhCCgUXACGW>h_eO5aT)25Rr0j^d}M6l+TXnU2wSO zlB6bIb^3bkrY@T;o*8bw2btCReyi2eI@Hh1Xj7+Ph3J!?Hz$A(SH9OpJ(U40?m zIss*@$k@$;RYG<7<>>92{C*~EEq8Y{)&~EmUAG@RJAI)ndl_KrJ3jp%^9{-z4VY!z zGvNL`+a%dK>@T4!R>>w$dJq3BB+ z>Tf3duhvT*AokD&-61UQp@>Hla@MQd=A&_iDLZU+3Hw(&%MvQm0%{J@5BIW`Al2C+ z7UFGI?eR`4%MCPjOc4v35siz67Bd+f8fFVpGYufYWp;6ccyNDDUWm;tTeNmfSt{h* zW0_43$ETZp4bOSQm46Kys^MO}f_;Ym_isAaAJg))3V&v4w__2J%N0;yKp@#FTD27Y z88R9}F7cdSMRVTe6*#YE3O*wMIm~JBY&)Th7O>c*jXL^n4qP{<#4IXiuc3cJS#}Kr z$wljCvh7mPT3D@z^>q}%jE2|@1s|n(^lID|qVB=5N{4Zy>i0IZ?ujoVLK^}C>ZZ+; zP+-JR!MY8=vYe1%?JjK?A()D>ja4USe`9eR6v$K0ZN#M0`h{u+eZ{D;Ohs3V8JDye zPonk0+B6AnP_X1si8H;{7*NID}@PNh+#C1|cgQUV90#c>z3vRWksJg?0-PFdQ zd$o_aQh36{w|^;dGX|I;D<-}1Kr(#*c5=^WZAK+1_$`1ePZSj&tR0buLh6<0w$W}3 zRKlmy_>~(uUO@#>Y17u3Kcz*KaVilml0jM#3?eDyD9#}M#`r!Em_3QbgE{I-z;QO> z%?Ch(4_RslRt!)U4Ccax3htb049x^|d;(D#FnxbBZtCbS0NWG)D&vip_rtK5%~s}r z_Z=m5fM}0wZX&gWfISYwI_3(B1qLr{H}kx~$0)L9$dYE05&s^5&MGeuk^M5E3VUhTEw2n9d|v^XO=;&hYp2g%a})FLpx8JdWanf{$yV$a85K_=Odm>%i0C zGesU^m*EnDZwG6u)FKLAms`Qhl`;WwQd0^xk&Ti`>k!s3&} zm8ZSK{HLOOk8cFQ;>w%Ribi4RYdc&(12OFUka}7c?jVo$PFDJ(>bo56z1YcN8%++z)@ge&mkY4ti9A|Ly z+BX6ko9;a`_j0Sh(EnkJahf-dUpaEhPsQ7xUdXU=>1M>rh4MADzBJ9un;@%ivVTL< zzd*Lb6;z20nsyPHz1Tpihp)DX2GgjQ#PyH?wv_}v*nc)M^2>G4 z#;Vi#3^EEUON-8AM6y#hv0<3fGPwqs0&PVH&+NsmscCE#wJHY$2jz1=@CV$U?*-8o z2S>o2^VVlvEtN{!-?R84`EdO<*QD zqj59sF%^)i>yS||m3T69-`Exk_i~uIhuqlr+jTq{TIyLdm=zT4D zW}kyVLzxFeor*Nj@g{5#4NzAFrX&TfBn)abX-CPPC4G%-KRFA6Xc?^mky7=1F>+2qd)K$|jmN-;%Hff*=fD?&-bY+Upv{6({f_*sh;EFE){tY}&67xstOVVH3eVxb1MibZU+krKti#^FFCmTL zmx3>wdt!1jQw6%;51E(qM+;4`3xn9A&;_GldbNitS1*#9xw)0}zVVfbNJ(8C;_lOb#*21Tg=H_M$)ezPRV^n z%H<-;=;T3X#|zXbM-~Ti^C3#{f}AaK8lo+Ks!qqt)Qw1OH3fzaO*98ntswhNX_suS z$7hf_ErDDyahxgyae#~Ri4Z9-0%-lyO9>}?&=4&~0@Cr6q@xfH#Y5|b8hKu!zjW&g{gA!hs5tUo!>csFyhi5Y=n8ve{Dj9 z2e+-hlN^A|pDf-3!kkgqQ&vDC$FmkqhBVT1p|=%u{#+1j4UtNc1lzf7#UCSJbTsku z;w>A%%*v3!1B`~}gGg*bMEF;eAz_D@Ice*ENrzIiireF|5aX?w)jir*=4~r4A#q*_*uasj8CA_%cFamq`6c%m!_5|A{;wkBGNA9tjJ_psO5=4D|6+#le z_?;ha;q6j=!O36lcf7wk4sae?9tKTMa-Vu6e{x8QC0!JYOmCXsfzJn7?vg4jr!hRU4f#*VmOkH$$y*#J02vXmIv)x<(q>ic4sghN}^p_7%%~LVUpfNZWK@q zzZZN^eh&%0H`H`wL&#yxIn_r2XB0m_y0bp>v@5wG6-(gn@%9>XYwxY5EmNBW16^0} zwwY12t%u;+{4mYu`H$_j`{%By4Uq5Ml}XYGS8$kZTX}-z zL3~~+u)F`;qGGxx>U1H>K{jD!quw0gm7DB`(+j11TOO+_9i_|=n~*%9Mu$B<_5) zzj+-93970|Tn`?g&iG%rXqX7oc4(6XAD8_4_=+s5dgB zwlMDQGE|m14Ve^L)R|pCjATpMHkXI{KnPFD7ld-ge>c>9AVS78$a0XL&Ds*d=pmH{`(1b5n-)~g$vrh@PdYU^X2__1fTI!9`5RKqXV*m6BfSs z`N;z_rEtOx{}9mO|L_0hgAW8_HzG9D0C*L=4dzuNOJDx$_% zr^}I``#oW7M=WXXkX`0=oY8PlC@~gWc>l%;&>8}Q9*q2A9_d-&WE^?-NvplgVk6Kz zDqL|E_A%UT%{S*cS<$GZ{MxeV0@(r(9Q`y{Kr&iZ`m@V;&5eKqS zSOjRBeS4AVs9;ct8HlZq$8Br~DpfFIAKDElO-Pd(!~QXhoX(RNbD~BBf;QtTnsTjS z2W~`m;3vBDtXa*hYF{AO(#1p>W~^}2ly1yPQCD8 zv{;P6zL>EceRI2zr}J72{ZhZ4j;DY$|H0(`rny@yy{fL!G#duJ0n6^)s?LvnNsg>7 zK3o%hKzCZU;g@io7~>7(Ws3t8{gas#_%0@x+`k&D8Pf_4oyP2SHeKV7>Uj>X$$>zuv0w~6^y?71{3 zssvTw=BXc5zQxjt4#=V=LQyYak62>sd519oP1R@ExQX}3&JQ3r-HUgTgNl?Ibgl85 z4tZ*1oYJV5>hB%6?P5 zT^i}Ns5_jW2^&xUP5d}ATL@s~L=lo1Gk$(bVaMv(?q?ye*jTE|>Vd2-g3o*(7W-Dr z7|*YnRLq9=_{bSj>A^@>-bqyDzI-}3k#kfHqpggGzyOf ztZWy~)LITHE@B7u5B_W(CQk(F3J*>PN`p_X_wS`v4W7H}Eaq9zM^=J7i zP@SDU_aS6hmF?QZYYUBvo7WN-VJ(Xw6UFOW{G==cK=;2;^98P0SA2`1 z9%MM30W$UKmfz<2Y{V`UE}fjzt~@91|58$bCA zt9hFj5DJmw^O8`Q@j6DC?$1*41&8SUIWa%CGmAAI3pM~(T%alI-PT{)8EQDNgJ)g_ zr|7Ese>iA2r4rn756#e3c+lkP5QiS&!Tz z@D4ufs?u~1#m^XW6@!y32<3(v-stivNw7Z6T7Sghx ztc9AcN9jqLY8l<|z6Mic)L0*Wg7JZ^z~FOm;Xz^Yhea)1T||$rS?%;c%?yaiZ_92IqoYgfua3^Ef017LB_9;>?Xp>xBVg&j{Iz4PzS7}l9irq_aSH2u$CC@DNq{?A}t@;{&WZ!i8! k_aPtp|G(z{(|xn!XVE-PwevJw@Cf{;fz!qoC|d>oA5cg4(EtDd diff --git a/bip-VAULT/withdrawal-comparison.drawio.png b/bip-VAULT/withdrawal-comparison.drawio.png deleted file mode 100644 index 320a57b044f9f3415e84d65d304541e055187744..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20724 zcmeIaXH-fUFcea}7P{dK=FzVV)Y2DGc!s#P_sYR>sQ^C@n?O!c`r`8iow zSh%4EIuGZ5%tdgDZRY>@)+vwh=A#wOH~$9GL+BU?XZlt#*R{UEJw@orQ&? zfTU|n!uWY2(H<DOZEf5{S+0P739u!D)03BlNXRNMA2BkpGBFmG(FUK+Xz(q?JPZt96Z%r_JPVpcRkvQz19hXp)kOB8Hzwscs zc>TI;;NwAbwbsVaY~*YVt#IdTFnTq%BD>Ql&R8R)FTu~%;#VUO8=A4ZuZf&4Ov=SoSVqfD zQxoG4CnC%|Y$@hG^8S_xnlBAwr0e3R;N}9=^)w<-WaUsO6F(g{oV%HciI zP}`S)!b|(gTbfYy{lVL{ur^H?fnoBxAMBP*f{Z7i%efZ8rmE7cnrH znUOp&u&JH3F<#S$EbpTQ$Gd}XkSJ|AV+A)$nk5Bopr8iIWJRhb#>7>MfJd8YN$VoPy3o?Zk){1HZs3z0g6fZRlhKv+(?@%NUt}W} zJ0t=jrDsQm_*r?%d&~Ix&?wq2G^jOH+lZu1L}?+RcsT`AFcz|xiJhIax1I+SuYQ$2bQ`P!CQeuBtvlo zqP094h9G*|m}6-)6DcnvOPZ3tnUS;}&Q8t*YT-)uvGJk$ODURJ>S8r5wH5Jx7Pcf; z9NNqX?QP>_NkY4VIdwrIwO|(RS|~G33wb=!1gEbluSG%G$$Ap0;AJM7GCn%4BsWD9 zlB*ZN5QlQrkw;=FL;}Lr72_@EO4heSLTwe1G)oUKTY450xSf$N%H7qLrs?Ug3oNaN z(lIc$b3@ypw4_X_z9tq#53;-*&Bqd^O;H426Lnp6mE@!dZg5>2Z;X)%xa4P}r|l*y zEiWanCrh)mf>~S8U~W)91lXxsL|sF0hrhRvma(EH4X&$XYis50j#YAVlO?+QXj#y7 zm!J+BzXv0&R2@;V&JK1r)Om5r{ra$W2Y%A1ND``TDfXz!YE1* zdAt?g3?*x+hd{e1TKUKs+qqIG#&BahKOc7}%FfnH+rYw%=xyiaW$gw-Vl}i31FEH;1)jN{^lYh`t|TZ0Z%6i2aHRk{;b2w}OEPnt7@K;) zO(^~f{~evwvWG$2UH7UMKUoX`{|=dHd;zl z19@8?6AKpz%|=^^xo4;f#^8b%N>>(Ug@;)qVlMUoxD*GJO>Len=?Fi@~kG{;(kFVS`wJ#UI0ji_%2k@r>b(1v`#S*ePimSjlrO?mcV0}qiNDe1Dv0X6dnV&Gqf@Tt@ycG8F={5+g@6R4|3gkd2UVe*<~Ag1?_XMast( zjka(jSSiS3&~{c(DH;jp?dJzaq5bTzXuKxT)>cNr-xv)d1lA9$YYulOZ zSs7|cYr|yC5hUjJH1?yCkVqRv6EklaeJK+;Sv+tkdY+1!)=D0l2)L_>IryiNqOPr+ z0+c9ggQKBMsY-UfrgCy-hSsvC6!3_>k{1*rRB-KP&<@~JlK2M-$Y^>a0|lrb_SEBVU$ z%ejCnXp*$K8yss#B*94-=Hi1GS$HU5ao`gIf%iaCUCFM#Mz+4DM7%Cm3Tq3;E0|g7 z>XIyE4fUkl6>Kc7e{v+sHdLm^FjXhAd zWH%)%xEq>aZsBX7TJMG)pN<9|HwzsJuSP)sVR+@KiszhX+jG1`k7F z338qgKLwhewTq%YT2l|Hmtwyvjhsnyn%6^Kx)dUm+0R*Ap5;<69ICPVk;cL6FrUlY(=<4q zgo#8OKF3QR*tLyk=kd!dCGA?L&qoy;TcEI5n$}v!Em!rd1$wo-ON>!nQ)y{i5DCbO zkxwdFp5Dr}L%lz~wpDmofOV(PC6?bm9#p?L&c^U?z83%I73O!QmxdF={<=r#l7=DM zPP(PV{rK&FdzOt+yp3(I2Fvds7AG|DNf9@{%KhuoUZL^~?ti^Y=-&QqA!`q;PGwyF z+so=yF@H7zp1k~E=idH|)DueFe`|Ut9r?%K`kbnBX;@A8KojzBO>5xI1peyEUJW5( zRyM|&ECbU&{?^5ifZo5om-Wm(p>i{*E`k4VP4De*+y1xy8{A;23p5mqX!~2!z%&Z~ zYnr|P=S?##blG`pwW~ATB<_!`pl+9IJy6jE_n{vRkZEz}6;9W!{Xb@K!KjP`N~|Mw zfK1s~>WXd`Cg#pw98*#79eEvb>{h}_Fq5Mq-`g$Cdd5GdVAhsrY^<$4hE_Yvrau`; zmP`*7Y41^O4_DvxTU#Gf$602Wmb}`d{(Kmj=-Y6()U9!MPJVtVZE3QCr~yVOr@h^P)pA|nx{j!B%aO&&IT+m z6$B3`Q>Mq?7JIcM@;4rnx^U^7?bG4M^A|^WlB68BdiI{yyEI&LD322wS8-^0vZJ}? zN4;d_t=3$-BJ`JrJM@?2&6TkX!;zO*7dKQxmmQG1eOR_3Xd!N>8<^fjK<#4rnVC{dU%xLY*}jsLwKgkW@ch#U zmD%$Qw$FbE{zfVU3V??fwW#%N2(?p=6?wIk0#o!YZ?4T&5eD(ExOXh|PhE5G%6D8IQ{U=wTnt`m zcCHk7V%+lnJ!A+i>-p{}+&QqLw-ke-4h5FUHm#rjDn7EfqA^`VOkCS41evl%t&(GCQTnb35L zQdU{752RY|%7;#r9*^aBvMshnp6}7$hwGMywl;<&%3IbGH%29c3-4b1dQ!r#(?lcL zq?Riqo^W$2p=*iu`DG}*Y}QMCEoLoe=;rcFU)5}QjlI~b>-$b#+`)(;9;1DM3biHb09hp_EpBv2AxXx&5(GUwEk6epzX4-(Zljf zc989y7s*H1YdEhj&2oMxTecQBt5f&E`Des=p5_=={>Xk#JDVeLh4?`!;{v{bXx>vS z85J;86Ug48eb?I>Ok`DMvGSe)(%0S1AGz4siNaBQ`X7$iqVJm{qkmAFByXYE!-96 z`mK!Gtw07YaCK3d95Ei7_c*Ax7)fX3l+NT9eR$U896S&hyl9_%EWpwJuJYvRuKQ_$ zQ?lgLi<6c~&l&}TH{^aG6`UQp3Q`@kh$xU=NBvN!+EX^k!PW`m^No?;$FBBIR)0DyD4U z+j0sa+iNs#Xx+1J*vU<(WFOP)~)sI)_-f+{cMV796(wq>*-Y)t_ ze6I$q-mjk6VE_@GeZCN`3N~`$m4FQ)k7zq}?@H*sytAVxv`gO}Y^5$VJ8wQ)J9dX( zKHGHHl4&+(q5*MvmjLVNiN^xA{9r&0|JV{k;0Ih3!+UPWB6%I9kVoiC9Pd@<)9^auV`H zMA))BF6QD?XCCo#xxyVcD}44XZ_m>=Med9J*qnsdPKM28>g(3!Vin{*pRp9-jxm=i zFfrq4k1QA#39t=kMJ_pIPgm3hV#bmM_y!!@Kb+)wJr)Pcx#Ywb#LczZ-Kh4B=GR`8 znyg4OeB1;FUO82~N)0}1Mt>SVP4L{)+{8_nU$*pU_4g^)-B?{3*b{NKTg+19a&_Xd ziF74~3Ow$5jTvn<{lztwTA4mmr9^Uiq(QJeuc)lC8o0DadvRCzA z;TAW#pZgb;U9>yOOLJL7{LIpfPD@&@gGyHUN39V`FM6eYQ7r1y%ns>E%svchw=%0GsK9M?A5;o#(5T5ul zy9lb?y_gD5FqpjXQ66Dt!gmhwRXJ1ctbrNt;wifY2hyD_V42B~fT(i|?e>kWvl`z# zFDI^b$61PTg539}&o0KPbv6b@_}!_f1JJM@Egq`@W#$ez6|Q@Abp4S!ag~) z0ncTwC`)bsXE@Tc=3G$@PCB2Y)3gZmE!=FkTvklpGd5niU58~(Js=m7Wpf3bY#g(5 z6<+t8xTLYdwYNVy_$Xof*4|-ZGr2$5-YrS_ZP=W2OIoORyPFF6H{)5S* z#2zLVGXwyx;40$Vk$oDEPq4LH=B-Gs3Xt0NO1?k*aY(A{aa}ddLEg%M=u}LLdPqON z@J@E%yZ|@6&EjfoZA6b8+62PJzvF!v09{rg07wb9%Zy!TVLfpC@nait>eUkeo}>`e z`+}xHIjWu}x#pZVz94Xt-H-oCN`-RlA1Nl0Z{*|karh5|#r?T&i@^NwYX;luP457Z z&L9@F_sQq#JQD({vA?YzbE>AtjM{SzuwB=ix`RqPbEmBVE6(C z#M>iBG|}&+$+M0_0eKN=Tb%;2QIc!#QxJ(T5I~wg+URHxp8^(o0`ej8%2g$Q(7i|v zrQC-naRXO(9aV0x?l*mPebEM4Z7mmY+AMk4$*A9lkUQv{OjYuBrUfhl*zz?bh<%Ng zRPS=_=(mUQGd)EaYqR})<7rugN_+qa3)utIxy(eJsXC7xIxB`Mh#7YdNx!USXyUxp z)~1UF)*ci;$p`^2`2psgaar#m^UYbTv^HY%!*c_1u^YM6g2IWJ zzOu4&_NCp2z2fh;x1~D#M9=JiA3!pJw8mSuV%K*+=Dy5a-f`@-*bDfD;JJFfJ`>1* z`<3n7hB2HOSD4Eo3{0O#yR6p@upC4lvp7eZW|$?>Z6dQ!Z59y-h*Qqc-tMln`Y~pU z1Yp-ld&q-bVB&V3dVE}&7MWvn=P*D?bFHHT-0}8>L7ga_d zSoTNU-&N0{W9rEq1qIA^cg`hN=5k3p&?=@(n`?_SQ$x0>Z#}PG`4)$DTmdk$a`dER z#n=5)t;yO*uDU@0oVKx@04%}Xt1(yp#x=lbptVl|M7F&zSy0OWqP z`TKXfcc^{e7BE}Qn0_U=`P3vqxkGIsrsb-|O(tqz4wbxE=X7zd9<~hcGA%{-xB?&p zb#KhcIe#%6tdO7PwyFfnMCY6kPyg23-QeQ8L5nH$%)9EF<&NON<*K2L5A3Th=t^Yk zdu?72Qh47E-j()v%iC8SP)45V?eP2%k7VY&Grgz+GUQ?}Ks8>CM~Jrv0vQ98iL~g- z;JzZSyK7~bzS5qojKs-}3&$+JJsc}+JhpJ})~R1z5ZcQmo31ON8HEGcQbR_;2*C9(eGpBm%qQ-)3?;+i~|XF=0;=i`n3W7u>^^PkmBRoVcoJV z=iO#&*76gARwpQ3j?^Aviz+;2Y*S@uC7g*i`5{=e^ZE$i3=?igJJFhcf>@7e$8WTO z*{WH!06<^NEcfBc=mS+%vSK8M!1Ta=&<5R8XX3zVy`|L0JLxx#X;XP+ojd7fYAfym zU+zGr!&T_`W3}s}l9=Hamnn7ZeBIMMMFX{Y4i%qDR7!3=E$g2@izq%lt^HK}_hNp- zT<@7sUQW9DQkGc{0It)l--(Rl~?*J0&p{ho|3Bk2uO)d_kl{XEPE&L zB+u@j)IXM)B!Dfi+pRJ!1)t3}!tjWi7Bk11zZtxkB3QAUA*w$4zNP;VwzoK|;Z8;( z=lHj$fMHo4zOtt>&TQa&AfO3Ika#{PzvKYIJ^Msap~gIxBU|9)w0dN5$N1h6VccG6pv#*TF5zt4uy;ZC|+tr&lDau~*mjP&NGvoT{hQw-(eL<5ZTr-B8nxkipnwuMiwBX%arQTG?pin|J& z1ur%V_g)bxnM|LZZ_d$OxwHe_jQ zwP1@-Qvpd_ooxxE6L&OBpq#F=1`izaSp&4(#N;=?35b2P3$3-c8((`e6THO;o*7TM zOVNH*JRwry@+$1Jpd9Kh6sIq&>QDLUE%#;vPnj7XO0_}b3w&EAd*H*FpZDj$3n+Dw zA%X0ry+iPt`2$pqrPpG2XqK{W^aH6`UN+i6yqV)e9nH>gymOzg{64sNp?A{c+))r( zRhQZ=4;<}>__U8}?4jtGWM#hce*T;`v(&CPb767(<1!d)Ra{+7;94aGkV24{hF4}u zY6IMPS@42H0qp{5M$E7p18N3f8rmw)GfmWuvpl6YVley(VOa4q2YT>%PZ+nrx3G8e z$WO1a6{82K8=ZH`^Vvn?@gXXY5>HHhbLLWMFU?voI0{{@ZbH|tb`u0PzJC?vuM(snEvv=+(SWv(Z7?i*Ri=QIlA!FW<%PDrXf}uTJJ*ZL`C2 zeNKOl5H@;wCELx+MWyrG#|$$;I3!ZkjFRBn%cNh?U(KPLq;fXY2pgkr{rs4OLU~ts zhwNq^E^z7vyKSUTNo9DL`M7KDV2Ac@rPr|v7$1I_$SOoQ&6SA{!rV@`cHLCucTQS+ zAjGKUItpk1xOdmmTd_kcpQ3BN(yka4elpzNY19&k$=UKgc10qB)4inW3y5O*RY)

BInTsyQrog)6r0G4vy}Z+UiTHp~}kQJVPNJ?t%$7RIYTa)X2uaPhS)S~>T&>SssE03C%6`R_(Sp8M3hlq$* z!Buj*xxR27(mauk%bR{H@$nga=je4|{}UYK~3A=ZcrZ z$3m1_76bA#GGm4}neNYY8h7A*irSw~TPc1Pj@?<(8@^d>5kMcce5dmTSfQhI)taIrR=nRviQCt3 zo|fItP(I1I9GPAuWXATDWEZ*VHhYdT*p zP?l>y{@9e)n(%>*G1;9Xx2095 zdQ^h!+_aNEr6AVKJ8AOqi{;X@%xFD6?9y}hWAzW4q5j--uDs2Z#B3(%+So8z-^nS# zpO`9`F?}w86$$naA!{o2K~bsGlU@=2u2L;)OpY^%rok%s$V`{rD>g3;Z*q^G-m`6> ze2OD2vE5VQTw(6eHr2y#=@npJIE9uLO>@#aN+*zciJO661cvaEF6&H&>f55XrBs1v z#p?Ty4#!meKYfoU&?_WE-5l$x!%ibl-wPW*otK#HZ5xh#B=%n28EBc}g57(T zrk%+h)|90Vc$dEoe`UrCN1}gwPHt3T!ySRK`3Y!}&BeAhwZMGQAlk_)+G=yj*snQw zZ`KO4=;&$BvfRVQi29Z!S>A$4C6#~O>fPVp<*#&7GoF>Um^1fq^5gk0w`F(p>ZsQk9qn-CFp#v?4=JKh_^V<3OHB6w>P+hc}795+x8;=hul`mM$xZ1lBV@TlMP z^l;6i8x19SFzY@stI%HaWkXvh)&fFt`n$A!upObSn3BAAPme6Ipn|T^f{Oy^x6WL~ zQcBJj<=>cub}qrReVHMlG8kS!^lY;Y%KMP!JI~*n?xGUoa+%+C9!zlG01Iy{EY2~% zyrDn(r8%*k)BlZC7$?1hBaJca{p49<>3EUhLJMDi+vkxP0VDkE`x{o$oZf!-JH6nS zQaLWrrgQWk^6LiyT-0^AU)%uxG=EfX>9n1?UWtiNhmXwU{ZB^Ki|rcKqLpvPwlgX# zTE{AVTiG9-JIdMv_!*u%DEs8>QtQlTefPt*eYNK>iagP?_q*8RV=HZ@D(|ax9WeTm zd6s5RS&i7&g02J{4F=_+e27zBB`u=FBu?Qy`+B8_mjZigEL-+*B>(R0jJ(N#t~NIA zsCI|bfn5 zawNsfC6kx>bH)J*CB34_h^w|MT(+tfUe#>pR9u}iH|qk?`j4_y2f8u?VPUbAKbJmv z$5lM|@~;_FUI4yeqNvv<`EBt@Zo#&Q&JRXaF2L>vQt(^M6jVvka=SsypIU%QC18c9 zZw1PaU!^_5jjOi-rWI$itn_w9*Vtpv2M(*N8VH-r?CWnwm|O#zZ5)55CVMCS7DRmQ zNJX8hWb2tVv2#rv?q!kv3YLA_#FsERNW0|hQ+IA8h&XAy()AJ8lm|IsnX!cZ46C9@ zMyM6x8dqH)q1UA@!fN%_qqmQ5TG;8-)~P~nWubS+^8yG4vtfPh!+q4A`N`0PF;^`aWBS6As2MgRrODkx&r0hf1naeF7A z3cJek(t92fwSQ^@01Ls!fab--6F>tpS($7H7U)&86x^5UrB3^Sh-5^dR`W$4Yc3Pm zr)(}JyX^BoaV=CRG$fz^XK%8XU03sGGml*XP0^g1?Z3}5#>y(>W|j+NGTFI;kml(3 zIW)cO+~mxCW;LZbKn-L+B{f-PFue1-J{z9bn&!XK%gmhs`O9Q^I=!|MIS}>K6_l0Q zvCrr9%04VID}3h=#rT4lE-v@Q*^=tLsWANP7$%3qEm`pwmP`dncFpbVhrpKR9>S@a zS9a{7;BGtzbz%p}n#~Mo34d%`391V*)NX&eoUvMJJ=hy}PftVo=exxW!NX6o<0A9q zF8eQhtGH3bj|yI&Ym5tPA20b%Q}FQbhzTf%dxFZJ3aHA& zSzB9&YD7&t4oB1m;pYaih4a{`xcw?y6!X#4@DS)1zIO$W`fd4AtYyzpwiZvv4R7XG z(VtZi$0{$?fP!FWvi1(t$0wl)ej_&|9v3***31A1$iAvVnSKf&Y;SJ~3bQglD$yz^ z=Y5Y!1O(rLdYd}T!*@vx3Y@hW%p+L3jtxm<$G4kHA=g7z4nzt}xfc7R*XO6}k6c;n zDe~$A1@>GpkrIltV9k9jsr8$4wXDbWmA(hz%?ltRNtz(E`I6Ble_efmQT^L0Ypmh) zdY^7oq%x<-9cQUpSAv`4ZJYPS-J@kjXnd{zf~SD2=WTgVB@i)<_dcpZS#)08dRyW7 zosGqyd{%*$tcLz;dz-(?sNOm^w%G19j%nIQZ9V@!M-3a0_m*x z?l8XPI77Lyi{8I9}b%T+Jr@KtgkHOf$%_1y4=Dm0Kpb-`(t}~;SU}WJn@*m7Bo|b-ezWNgSsEeV<~sIX!o03p4D<1cZmE0IepG*XVVUgCdp->M zKxY*dHwBi*lRqvxaPC+x=EFI&^xlJHT+Dj<|88o>j^*`l0SiXP_=3i>v5HlM(YFSy zYrF2Uu1h#pmft9aI+*N;Ugtgx8o{T%{4b+B;1zv+*oo&Pq6~`>P(YuafW>Rc@jq!R z#n|^1BQ2kZ^o&H*HsI$rg&Y4{D>%?f4Ioay60eOgPFym40xjj@lPK=Ufd{;|m{J_qeNRA|J?b}?4|OL@~;IB4$mR9|1#wX>Q&uW z0;*jogU|hwbKPd|4i8ln@7{cI`Huks?3Y1&lk*?tez+K0|FX9xHxh!YG6@#?b*Xb) z-{8jB+*=>BV-BhWQwp~;Vug~O*3yikSH%N42q0cGFAX*-RUC|7KXB_7WBc7GYEJ)y z?v=7zVxnYTWB%F;LG@o7Di7twBAGLe0tnVBMgK0Pj%1-QfHqE2Q|&BdfDK=2o}%|T zqV2S|!!`F*q&$g^ztv^ z7b^V;LxkpYOyr@mI-asX7vOW4^dS`|S6<}|4hP0g{hHg3N`(jamcz4#Cl0oUmzXl5fjaa%&7P0Yv$MCOhi<$#BJ&fOt}^ z0+^V|imIM|)5soOiP(q9lt_M=U871*0{)vtx1-iAEUnLXh&ZIh4QI=o)vF8Zy z*EXAqgFA2@o6CFc@k8alZVWxdhDk3|@xy39Y;Xs(oqCAMuV@$q6jNKM%ezO?@*x); z@L4(UKZZ^27h6}NY|cbP6j>D9ciKRHaY_rxs2YEA3k`Pi4$1?8e`_6p*+3?RX&f9` z%JjYb3TW?D`#`{zy6V_DzjRolyuE|&txe`Quz3Wycjz0trrM)_wyv_+ zs*M5aBzejMj`0#AK``TB1%QIU=j1#z3G7XhY0D$ngbGR|fw&}Vl=Mj2Hv(^iwd z&Z63V!=w4dGAOa*l^gn>eFh1%k9&@r2s3J0b0TWDeID7k75e8YGt&BCxH zjP+ZAmxkjN!Q;u-rbli`mg)-zw&$HX)T!4JXdAI(RG!t?X5fI_A9DW6LM^S)=5>Ii+xJ-+g49b$#K3N(+j3_E9*6|IyRV zqpuJ4!za%YY-HXH9Rr?Q_b;y`EbNuGN%33CxTDY45AXF+0tM;tD{rf?zX=y9QRPAE_=7P7D~6ADHfcKrEQ^dyDea*@E};k4eRrL!?BRhJ*bJ%Z2MpSGXh+Ybr`kJ>g#A`&U?s z8i&7?W|Va3A@ayhfaWD_+XUsOeYu(k-z3;nMO+x|L89w6faoU|taKYk$D{x94LrZO{B+7-`77@2%TJ%fP&?WKH|`O zi_sbObB>`UZEVGWpIlKd1Vj&Z1f!RUg)eER2LVx8mb z0(bF;UP<3 znmrrKv~x$V%Y%S+@YbKM=2xIqo(Y0- z(8bSu_-Ky?sz)Wh;b!&Q=Vri~OL?cZAFx4|G2yxA8V=9`B{HX<(l zqsMtcV4R@G6+po@9R+tP+#z^T%J$22H=Uyow zPXqSXJz#lSy4vqJaOu@HViGH9__^MYA6WlrWkuncv)7&E{6V_=0l8@8ig$+kei)5* z#xiAT1E5}6$M0oBmn&^+#RHDQ%hUoD@ACw+@a?^$WL0OfB&AJxwX&_R6cZPx7a^<2#xfxFgam(%It5n&C~N+%Ck@w7&t19S0yt$>gLDBdq5)+8Bt<0VPJF z+Z362uar5zH*YZ>hX2D_+(FPibXoZa+oyUFeQD87lMfr){llu$2J&qSo^jA+MN3g# z6843zp?S`=gY2uZxyhG;fMycgB+R~Q5-aDsEwG9*lWSjw1tMtcT%(?}M&aP7&m+}m z+(rk)Ai^McKY0s1${s1G+2V5WV{a(7<^vU*LYGK__4{TtXf=;sw7o6-oZa zmj-1T73_?OeD0z|)qqOVZhKs{{7eRa-^#xJM!lBHKa1>pH6FJEgr9a$0=u=wm@VUy zD1Tw9G9y=3&SC!peDOK%nf{;6T?ds8EwK|hhxiTiShj%9wK&T%L!{u6htmmw%?mVc z-u+!Z4rS^FdXxu))-Zg-OqFkXv}IwaC@2sm3I}NYBm`J4Uj@vBXs*_?n+vN`1ywB0 zIYLgs8%s^+yknwn57)dCyFGG(35SI)U7~Ia37ECGxI9~fqUohD-ZXs`Z03#xI* zTDvuJU9=egSqr>ntlvE*Xk)eBS;&z2pnQi1_4 zc*pJ~pi{0p=f%{oN6mlF>Vwn;PG-vu@~krT<_u7)yR79vXcA^BRO{_ehcl}^4`M)* z-^FeZtDSGQpo2oT6JgsX&@5m;zD0+@9m!G53itB2INZbe)<0XU;jxg69Mp)eVlMH; z;YRqmBZs%Ky*0jsLY5!U!wcqnonb5k0eSgxWoDpb%A`$Im#hMqvT-2SE$+;-j|Q#v zg8pS^%MM0Xd=3+sH@*JxRLoRDLdVo4qGWVr1;O0p`?HP5{wc(ofyyB2$Gn^&6wL->C7FJ=NVFbU#xw^peMDuAA zTtP?ck&c9rHQ-%)m{Ng|Yc=3qXyBnr1J@{J^QPB!AI;Uhb&xW0LllvscPAH^y_7oZ z#MI;i{M!w>jG5^zDZRKt08uW6n_uqD_C3dr)Mx1uc7?1NJQ5!hy3LapU-``#Flr=L z2cuU-!sUBfp0x*9Xyhj=#cHepQQJ|)evlF%LCh=#A)@p2OHe?^ynS${^SM8fFP<^c zmN9-p!s&T8iTD)LrvLzLJh!0Q^YOq_=l)-Vx3<`XKHRPr6);RmGopprx{ye1gb&HkO~ z-ndF3nBK3no@=`fy8^j*@xGIKSA(VjZPN4R{z=S-cqI=Nt82q*i=K76fA347Gfd_! z>&8g)9J91ET5_Nj^(=QVA;m>*VXUPL5MaEu+IN+hQS*=OyYOyv&2#k#HpVgWSohy- z5-bR`FbeltF}w(}?q2380;7j#nIwMndg`KU-e7e=^k^KBgKji$!hXsd()i~$@;H$1!Dk-uR7&}To3iowhj2Lw@LX|7HsNC9im=9 z&NR0Zys#@_Sk0m3G$WlnEq|E;vLN$g3bTd3(6{6@@^=op8%|>43`@1iM3&J9wry-9 z%*CD$N?~BJ(@k)X5+FFI(^K6$&Xsl62?8B=z$?rrNXS}h7c3^~uJ02M8y8-_ZEX9` zyeN@-?sFWhQ<=A_$o+Y=8IU3JkGh~#Z9taoFdO(uv}=FAXnIp>hEVSJdx@1_je-72 zjcLnn9;Pjqoa8!#Km}Lgk?Gs?xI4e`bA(0e^HFdfinIh%{OxIf)zT#spVM5TY~Ez$ z=Z9yolpHDf3p&4!I%g>qvi91BoBbC{%X0ZKm}*V-l$L_yN=%s!5TFUIUg`3E4V3Ek z;8+BYsvKBdzVE|WkNJCWDfkfJfk;#V{DAU_=pFS@x%{>%qZX*74N{87b{Ddwgpkl zG2)HSgV15MLTk%JcDK-L^SKbiJ1neC`+?z|0s$lKb+{uD=x(M54RUIseU#b3nL%6d zX#m6xgsg|HM5m|3E5npGJB98kGVNyrGBT!T$^(988OU@VZHi#}s;C9>;9SchBnv2z zEKupYn(OTkG(Y`xS_Y7)rcCc@t;O`Nya7hE1mT*C-~^tox%rWk8?1{8X|>@>+H8AI zS2IJzoycR?Ljy`Dx&>4jb(8lK*DeHo{jl#s{Am+bCif}<=Dpm-6O^<*+v$~vHuUd^ z1Pk?>KK(pv?sttMCY2k)T=>{bRWPzIhen-j&xt-#s0)-*CooSrF}dFm5D|GCl-O@J zD1%pk`0+@v;?I3v2WEmJKb}?h3wO!?=XZU8g#{Y%UZBL_f&T!sYY*^=x!Kubz8=lI z*O`{quKP_G3uS^h4Xg8;r-FT?clQ_u9DTTv!QvlY$%IbQZef6l6a#84_}-8;9r&Km zKbMdYa|tbuH0LBM{RBV!&c_Mi{W)++YLT?x_uNN zG|?MmX+_~jRrIK>ton!|&pX^l6k93N-TMOUCdF7(8Dx$*rC$Y!oe%Or_j+s+-Y2T| zEe%TAm!4gY1Si0*O_d0$UG$sw$jV`1`%m|amp2SDrn*}6ZXep$cjH~GeDmVq4ZzSf z+Jw38cA(T%d%_C-K~wj%gJWeyfUk)0l!gGcL##Z?6NIHA>_DY3O^+xYWo?gen4cOR zsSb7dXP%`VvUY(iNTq`^Q&kjE0o{E8K-wG66`8~-IM!5ofWQm_D{~u1o}xnnOmZKo zQ1iLQtNxW!K5B3~^EdvQe@_WG>SSL<$vfv<)6c%j)MT!+?NmQ--6%*N@WCQ~;rCyB zF!KA!@;#l~BktMH;6czUC5##ZzSY-Vx0k80oA^`@+&J7u+I{3oz@0LSPzBszf8DCx ze(0Byb}7)mZ(^B88jLzR2)<2{SB)IcjSVIJBb79b6s!w;T6*t6KTu+nf?(bQG#V#3 zz8~lYnNr{C@(csJG6<)D9K-FAv|EGipSk|K2c5=a&`6OUkXWL@aT<>WKjA77 z-=?8_-?_y=>WzP(Z1B=Zh*7Jg8s<%{&|i78Y0=NY-hbVXy!etgo%kdqpuzIM?hA*#C{MWox=LfB ztH06Sq~494^eZKIPmP(j_1}|9;Nj_)<*EFBkH_=6AX+OpF6vj0V@lhS_d>)(MA9eq$0Kh(H4 zop>T7U{LL0t)Xw7@OX5B!dK_Lf7MIiH-C;%i$2eDUA4T+?@XR{EvWf-Fa4cf#_cZm z+lsyL@7Bpb#azRf(Ed@;y?~pBy!#Lbk$ga&zA}$Gx_yV`Rz?96a^jy)#xkE={_{z{+K(yv zRTq@c#9gB3vHWMlxc9M++;RVyt(Q(5P)t-6(H_dcH67;4C^oIAJy?Mgyje<7QdZ0q; zRtHXW^&dQIdrz_CcVu)s9DBuR^V_9ci~^2-axaU_E$I2iF^Clq(15BadU(#h7o5x6 zpP>LMF@4WGZVmW09!-v(d1#L0HgE#N6B+#SMJKZu}k#N_szPFAnB zHSBqK0_X{82GIvEcZaNj6LgK~rU|jvtqBBi%bahwkE(Qn#F>w#D(L%q-!fo}dq6sh z=>n%oG&R+jZ0q>n*w!YytS*Cs&0=3rX~l$+CJun{;XpwK)BUt=5rXUkV%0prrli-p z;9_~H;N)QU+H5Uu(&Uh=r|}&jK_?B0;&>7?1l#YzHqkJBe`Vtl3_S?OTkv&|k7hj|ER3HE%3^NFpM^T% z<6gpBKe^O^s1rw7CwQ56w);l%?@}WoleV>0){5MHEQ{iAm*X$pP7)v`0s4fmZ z$-J>7!jc?ANd841^;l54U)_(=+8i8oSh(I_$+=%9d%22 zeyApLnva3QNm&z4-aB&H_DX>2F)OKR(!{6N*B3#JiM<09)Wh?P%fDtc)(1qs{&Ob& zDw%>r=pKpr+~;^u)&;TZ{8V?L+q4Y;hlRis^@7a7RT6ml92VdWc>XlkzbcS#?r21? z14a_m1!ico(dXOEzRiDxea$XGc&GKbZ8-he~4T|fcu{OPzd|4rEoFIWWRykSrNSTnxzv7RsbO061*w5iNk z;(V!v(NgQotAre?djLv}%r;KlD<5`Jq!}yzDouMrMS6VZr+;JE8%J(hW?mltIgn`H z|2&X=2JU#tBPNRg{rp)nKlE1l2cj|PQ!2F7tL0dn0tWF!q=kmrTmCirWj%^(q-xZ0 za`-`Ukr3_U*R=2urQc@N6e_F>+^&zB`zJ{_dB6LAKoU0o+#S~~h31&808;Qd_J2+a zG9?H=fiDXwb%N|b_5r)60J~58N4t;g1tJHvD@Fgt0IE>wq-`5O#0&m30ZpP6_bK%T z*EmS>y?~Ot2oz2f(I-_!fL8=DZP$NXRXS&2l)AtNibuHqCMO~62Mk0;?~~lW=}Fpw zFxzb5x8Q_%@BjXVj$fdRiOl|Q{Np7rw*HtRE~ML0UlGAyE@Xk~n(E|hT?qMq08K=4 AtpET3 diff --git a/bip-vaults.mediawiki b/bip-vaults.mediawiki index d6da2bbf4..72f3f4fe5 100644 --- a/bip-vaults.mediawiki +++ b/bip-vaults.mediawiki @@ -1,25 +1,31 @@

-  BIP: xxxx
+  BIP: 345
   Layer: Consensus (soft fork)
   Title: OP_VAULT
   Author: James O'Beirne 
-  Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-xxxx
+          Greg Sanders 
+          Anthony Towns 
+  Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0345
   Status: Draft
   Type: Standards Track
   Created: 2023-02-03
   License: BSD-3-Clause
   Post-History: 2023-01-09: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-January/021318.html [bitcoin-dev] OP_VAULT announcment
+                2023-03-01: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-March/021510.html [bitcoin-dev] BIP for OP_VAULT
 
== Introduction == This BIP proposes new tapscript opcodes, OP_VAULT and -OP_UNVAULT, that add consensus support for a specialized covenant. -These opcodes allow users to enforce a delay period before designated coins may -be spent to an arbitrary destination, with the exception of a prespecified -"recovery" path. At any time prior to final withdrawal, the coins can be spent to -the prespecified path. +OP_VAULT_RECOVER, that add consensus support for a specialized +covenant. These opcodes, in conjunction with +OP_CHECKTEMPLATEVERIFY +([https://github.com/bitcoin/bips/blob/master/bip-0119.mediawiki BIP-0119]), +allow users to enforce a delay period before designated coins may be spent to +an arbitrary destination, with the exception of a prespecified "recovery" path. +At any time prior to final withdrawal, the coins can be spent to the +prespecified path. === Motivation === @@ -80,7 +86,7 @@ timelocked coins for perpetuity or relying on a trusted third party. == Goals == -[[File:bip-VAULT/vaults-Basic.png|frame|center]] +[[File:bip-0345/vaults-Basic.png|frame|center]] Vaults in Bitcoin have been discussed formally since 2016 ([http://fc16.ifca.ai/bitcoin/papers/MES16.pdf MES16]) and informally since [https://web.archive.org/web/20160220215151/https://bitcointalk.org/index.php?topic=511881.0 2014]. The value of @@ -116,7 +122,7 @@ destinations, and fee management are all fixed. Funds must flow through a fixed intermediary to their final destination. Batch operations, which may be vital for successful recovery during fee spikes or short spend delay, are not possible. -[[File:bip-VAULT/withdrawal-comparison.drawio.png|frame|center]] +[[File:bip-0345/withdrawal-comparison.drawio.png|frame|center]] Having a "general" covenant mechanism that can encode arbitrary transactional state machines would allow us to solve these issues, but at the cost of complex @@ -149,74 +155,45 @@ This proposal is designed to be compatible with any future sighash modes (e.g. < == Design == -=== State machine === +In typical usage, a vault is created by encumbering coins under a +taptree [https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki (BIP-341)] +containing at least two leaves: one with an OP_VAULT-containing script that +facilitates the expected withdrawal process, and leaf another with +OP_VAULT_RECOVER which ensures the coins can be recovered +at any time prior to withdrawal finalization. -[[File:bip-VAULT/opvault-flow.drawio.png|frame|center]] +The rules of OP_VAULT ensure the timelocked, interruptible +withdrawal by allowing a spending transaction to replace the +OP_VAULT tapleaf with a prespecified script template, allowing for +some parameters to be set at spend (trigger) time. All other leaves in the +taptree must be unchanged, which preserves the recovery path as well as any +other spending conditions originally included in the vault. -The vault has a number of stages, some of them optional: - -* '''vault transaction''': encumbers some coins with an OP_VAULT script invocation. - -* '''trigger transaction''': spends one or more OP_VAULT inputs into an OP_UNVAULT output which carries forward the same recovery and delay parameters, along with a commitment to the proposed withdrawal target outputs. This publicly broadcasts the intent to withdraw to some specific set of outputs. This transaction may have an additional output which allocates some of the vault balance into a partial revault, which simply encumbers the revaulted portion of the value into the same scriptPubKey of the originating OP_VAULT output(s). - -* '''withdrawal transaction''': spends OP_UNVAULT trigger inputs into a compatible set of final withdrawal outputs per the target hash, after the trigger inputs have matured per the spend delay. The only authorization for this spend (aside from the relative timelock) is the content hash of the withdrawal outputs. - -* '''recovery transaction''': spends one or more OP_VAULT or OP_UNVAULT inputs, which can be done at any time prior to withdrawal confirmation, to the prespecified recovery path. This transaction can optionally require a witness satisfying a specified ''recovery authorization'' script, an optional scriptPubKey gating the initiation of recovery. The use of recovery authorization has certain trade-offs discussed later. - - -=== Parameters === - - - -The recovery parameters dictate both where funds can be swept to during a -recovery, and what kind of authorization (if any) is needed to initiate a -recovery. It is specified in the form - - -[] - - -The first component commits to the destination that vault funds can be swept to -at any point prior to the finalization of a withdrawal. - -The recovery scriptPubKey would usually correspond to a spending script that is -inconvenient to exercise but highly secure. - -The second component, the recovery authorization scriptPubKey, is optional. It -is a raw scriptPubKey that, if specified, must be satisfied to allow the input -to be recovered. The benefit of using this parameter will be discussed later. -If this component is not given, the de facto "authorization" is the reveal of -the preimage, i.e. the recovery path. +These tapleaf replacement rules, described more precisely below, ensure a +timelocked withdrawal, where the timelock is fixed by the original +OP_VAULT parameters, to a fixed set of outputs (via +OP_CHECKTEMPLATEVERIFY'''Why is OP_CHECKTEMPLATEVERIFY (BIP-119) relied upon for this proposal?''' During the withdrawal process, the proposed final destination for value being withdrawn must be committed to. OP_CTV is the simplest, safest way to commit the spend of some coins to a particular set of outputs. An earlier version of this proposal attempted to use a simpler, but similar method, of locking the spend of coins to a set of outputs, but this method introduced txid malleability.
Note that if some other method of locking spends to a particular set of outputs should be deployed, that method can be used in the OP_VAULT with no changes.
) which is chosen when the withdrawal +process is triggered. -Vaults which share the same recovery path can always be swept in batch operations, -which is an important practical aspect of managing large numbers of vaults. +While OP_CHECKTEMPLATEVERIFY is used in this proposal as the +preferred method to bind the proposed withdrawal to a particular set of final +outputs, OP_VAULT is composable with other (and future) opcodes to +facilitate other kinds of withdrawal processes. - +[[File:bip-0345/opvault.drawio.png|frame|center]] -The spend delay dictates the duration of blocks or time which must -elapse for the trigger OP_UNVAULT output to be claimable into the -withdrawal target outputs. Encoded as the least significant 23 bits of a -[https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki BIP-0068] style -relative locktime. -'''Trigger key''' +=== Transaction types === -The trigger key, committed to with , is used to -authorize the ''trigger transaction'' - an on-chain declaration to attempt a -withdrawal to a certain set of target outputs. +The vault has a number of stages, some of them optional: -This functions as the "normal" spending key, but if an attacker obtains access -to this key, the outcome is not catastrophic: any withdrawal attempt can be -interrupted (within the spend delay) and swept to the recovery path. +* '''vault transaction''': encumbers some coins into a Taproot structure that includes at least one OP_VAULT leaf and one OP_VAULT_RECOVER leaf. -The trigger key can be an arbitrary scriptPubKey so long as it represents a -valid witness program. OP_VAULT outputs which have the same -recovery params and spend delay can be spent into the same -OP_UNVAULT output for a batched withdrawal process. +* '''trigger transaction''': spends one or more OP_VAULT-tapleaf inputs into an output which is encumbered by a timelocked withdrawal to a fixed set of outputs, chosen at trigger time. This publicly broadcasts the intent to withdraw to some specific set of outputs.

The trigger transaction may have an additional output which allocates some of the vault balance into a partial "revault," which simply encumbers the revaulted portion of the value into the same scriptPubKey as the OP_VAULT-containing input(s) being spent. - +* '''withdrawal transaction''': spends the timelocked OP_CHECKTEMPLATEVERIFY trigger inputs into a compatible set of final withdrawal outputs per the CTV hash, after the trigger inputs have matured per the spend delay. Timelocked CTV transactions are the motivating usage of OP_VAULT, but any script template can be specified during the creation of the vault. -An arbitrary set of target withdrawal outputs that is specified as a parameter to OP_UNVAULT as a 32 byte tagged hash. The preimage is a list of destination output scriptPubKeys and amounts. If the trigger remains uncontested -- if it isn't swept to recovery before the spend delay elapses -- the vaulted funds may be spent into a compatible set of target outputs. +* '''recovery transaction''': spends one or more OP_VAULT_RECOVER-tapleaf inputs to the prespecified recovery path, which can be done at any point before the withdrawal transaction confirms. Each input can optionally require a witness satisfying a specified ''recovery authorization'' script, an optional script prefixing the OP_VAULT_RECOVER fragment. The use of recovery authorization has certain trade-offs discussed later. === Fee management === @@ -241,267 +218,144 @@ management mechanisms. == Specification == The tapscript opcodes OP_SUCCESS187 (0xbb) and -OP_SUCCESS188 (0xbc) are claimed to implement the -OP_VAULT and OP_UNVAULT rules, respectively. +OP_SUCCESS188 (0xbc) are constrained with new rules +to implement OP_VAULT and OP_VAULT_RECOVER, +respectively. === OP_VAULT evaluation === -==== Witness program ==== - When evaluating OP_VAULT (OP_SUCCESS187, 0xbb), the expected format of the stack, shown top to bottom, is: - - - + + +[ n leaf-update script data items ... ] + + where -* is a 32 byte tagged hash of the scriptPubKey used to authorize the spend of this output into an OP_UNVAULT trigger outputBecause the trigger scriptPubKey is committed to using a hash, witness version upgradeability for the trigger key is preserved. -** tagged_hash("VaultTriggerSPK", ), per BIP-0340. -** If this value is not 32 bytes, script execution when spending this output MUST fail and terminate immediately. +* is a data push of 0 or more bytes containing a script fragment. +** In conjunction with the leaf-update data items, it dictates the tapleaf script in the output taptree that will replace the one currently executing. -* is a CScriptNum-encoded number (up to 4 bytes) -** It is interpreted as the least significant 23 bits of a [https://github.com/bitcoin/bips/blob/master/bip-0068.mediawiki BIP-0068] relative timelock. +* is a CScriptNum-encoded number indicating how many leaf-update script items should be popped off the stack. ** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. ** If this value is less than 0, script execution when spending this output MUST fail and terminate immediately. +** If fewer than + 2 items are on the stack, script execution when spending this output MUST fail and terminate immediately. -* is a variable length data push, consisting of two components: -*# a 32 byte tagged hash, the ''recovery sPK hash''Because the recovery scriptPubKey is committed to with a hash, witness version upgradeability is preserved., committing to the scriptPubKey which coins may be recovered to -*#* tagged_hash("VaultRecoverySPK", ) from the [https://github.com/bitcoin/bips/blob/master/bip-0340/reference.py BIP-0340 reference code]. -*# 0 or more bytes that optionally specify a scriptPubKey that needs to be satisfied to authorize the recovery transaction, referred to as . -** If is less than 32 bytes, script execution when spending this output MUST fail and terminate immediately. - -==== Witness stack ==== - -After the witness program is parsed, it must be determined whether this input -is being spent towards a recovery. +* The following stack items are popped off the stack and prefixed as push-data arguments to the to construct the expected tapleaf replacement script. +** If there are fewer than + 2 items on the stack, script execution when spending this output MUST fail and terminate immediately. -Witness stack shown top to bottom: - - - -[other potential witness stack items ...] - - -where - -* is an integer indicating which output, if any, is a recovery output. -** If this value cannot be decoded as a CScriptNum and cast to an integer, script execution MUST fail and terminate immediately. -** If this value is less than -1, script execution MUST fail and terminate immediately. -** If this value is greater than or equal to 0, this spend is a recovery transaction and this value denotes the recovery output that corresponds to this vault input. -* The parse of the other stack items depends on whether or not this is a recovery spend. - -==== OP_VAULT evaluation for recovery spend ==== +* is a CScriptNum-encoded number indicating the index of the output which, in conjunction with an optional revault output, carries forward the value of this input, and has an identical taptree aside from the currently executing leaf. +** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. +** If this value is less than 0 or is greater than or equal to the number of outputs, script execution when spending this output MUST fail and terminate immediately. -* If the recovery output does not have an nValue greater than or equal to this input's amount, the script MUST fail and terminate immediately. -* (Deferred'''What is a deferred check and why does this proposal require them for correct script evaluation?''' A deferred check is a validation check that is executed only after all input scripts have been validated, and is based on aggregate information collected during each input's EvalScript run.

Currently, the validity of each input is (usually) checked concurrently across all inputs in a transaction. Because this proposal allows batching the spend of multiple vault inputs into a single recovery or withdrawal output, we need a mechanism to ensure that all expected values per output can be summed and then checked. This necessitates the introduction of an "aggregating" set of checks which can only be executed after each input's script is evaluated. Note that similar functionality would be required for batch input validation or cross-input signature aggregation.
) if the recovery output does not have an nValue equal to the sum of all OP_VAULT/OP_UNVAULT inputs with a corresponding recovery sPK hash, the transaction validation MUST fail.'''How do recovery transactions pay for fees?''' If the recovery is unauthorized, fees are attached either via CPFP with an ephemeral anchor or as inputs which are solely spent to fees (i.e. no change output). If the recovery is authorized, fees can be attached in any manner, e.g. unrelated inputs and outputs or CPFP via anchor. +* is a CScriptNum-encoded number optionally indicating the index of an output which, in conjunction with the trigger output, carries forward the value of this input, and has an identical scriptPubKey to the current input. +** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. +** If this value is greater than or equal to the number of outputs, script execution when spending this output MUST fail and terminate immediately. -The stack may now have 0 or more elements. Any items on the stack will be used to verify the witness program, if any. +After the stack is parsed, the following validation checks are performed: -* If is not null: -** If VerifyWitnessProgram(, , ...) fails, the script MUST fail and terminate immediately. -** (This validates that the recovery has been authorized.) +* Let the output designated by be called ''triggerOut''. +* If the scriptPubKey of ''triggerOut'' is not a witness program of the same version as the currently executing script, script execution MUST fail and terminate immediately. +* Let the script constructed by taking the and prefixing it with minimally-encoded data pushes of the leaf-update script data items be called the ''leaf-update-script''. +** The leaf-update data items will be in the same order in the ''leaf-update-script'' as they appeared on the stack. +* If the scriptPubKey of ''triggerOut'' is not a taptree that is identical to that of the current input, but with the current leaf script substituted for ''leaf-update-script'', script execution when spending this output MUST fail and terminate immediately. +** Note: the parity bit of the resulting taproot is allowed to vary. +* Let the output designated by (if the index value is non-negative) be called ''revaultOut''. +* If the scriptPubKey of ''revaultOut'' is not equal to the scriptPubKey of the input being spent, script execution when spending this output MUST fail and terminate immediately. +* If the sum of the amounts of ''triggerOut'' and ''revaultOut'' (if any) are not greater than or equal to the value of this input, script execution when spending this output MUST fail and terminate immediately. +* (Deferred'''What is a deferred check and why does this proposal require them for correct script evaluation?''' A deferred check is a validation check that is executed only after all input scripts have been validated, and is based on aggregate information collected during each input's EvalScript run.

Currently, the validity of each input is (usually) checked concurrently across all inputs in a transaction. Because this proposal allows batching the spend of multiple vault inputs into a single recovery or withdrawal output, we need a mechanism to ensure that all expected values per output can be summed and then checked. This necessitates the introduction of an "aggregating" set of checks which can only be executed after each input's script is evaluated. Note that similar functionality would be required for batch input validation or cross-input signature aggregation.
) the nValue of ''triggerOut'', plus the nValue of ''revaultOut'' if one exists, must equal the sum of all vault inputs which cite it as their corresponding trigger output. If these values are not equal, the script MUST fail and terminate immediately. If none of the conditions fail, a single true value (0x01) is left on the stack. -==== OP_VAULT evaluation for withdrawal trigger ==== - -Else, if it has been determined that the spend is not within a recovery -transaction, it must be evaluated for eligibility as a withdrawal trigger -spend. - -===== Witness stack ===== - -There must be at least 4 items on the stack (shown top to bottom): - - - - - - [...] - - -If the witness stack consists of fewer than four items the script MUST fail and -terminate immediately. - -(Note: in practice, the witness stack will have included the other items necessary to reveal -a witness v1 (or greater) script-path spend, per [https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#user-content-Constructing_and_spending_Taproot_outputs BIP-0341]. This is demonstrated in detail in [[#Transaction examples|the transaction examples section]].) - -The items on the stack must be validated as follows: - -* is a CScriptNum of up to 4 bytes. -** It indicates the vout index of this input's corresponding OP_UNVAULT output. -*** Validation rules for this output are described below. -** If this value does not decode as a valid CScriptNum value, the script MUST fail and terminate immediately. -** If this value does not correspond to a valid output in the spending transaction, the script MUST fail and terminate immediately. - -* is a 32 byte data push. -** It is the hash of the proposed withdrawal target output set, defined by target_outputs_hash(outputs) below. Note that this value is duplicated here.'''Why, when spending an OP_VAULT output into a trigger, does the target hash need to be duplicated on the witness stack?''' The target hash exists in the OP_UNVAULT output script, likely behind a taproot pubkey. Its presence is required on the witness stack also so that the expected taproot pubkey for the OP_UNVAULT output can be constructed for comparison. -** If this value is not 32 bytes, the script MUST fail and terminate immediately. - -* is a variable length data push. -** It must be the scriptPubKey that is the preimage to the specified in the spent OP_VAULT input. -** If this value does not tagged-hash to supplied by the OP_VAULT parameter, the script MUST fail and terminate immediately. -*** Verify tagged_hash("VaultTriggerSPK", ) == -** If this value does not correspond to a valid witness program, the script MUST fail and terminate immediately. - -* the remaining elements serve as the witness stack to satisfy the witness program. -** If VerifyWitnessProgram(, , ...) fails, the script MUST fail and terminate immediately. -** (This validates that the withdrawal trigger has been authorized.) - -===== Transaction outputs validation ===== - -Once the contents of the witness stack have been parsed and validated, the transaction outputs must be checked. - -First, we must check for a ''revault output'': an output in the trigger transaction whose -scriptPubKey exactly matches that of the OP_VAULT input being -spent. Its presence is optional. - -For each vault input citing a particular , the output -located at vout[] (the "trigger output") must: - -* have as its scriptPubKey a witness program with a single OP_UNVAULT tapscript, having the internal x-only key 0x0250929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0, per the NUMS point mentioned in [https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki#constructing-and-spending-taproot-outputs BIP-0341].'''Why must the OP_UNVAULT taproot use a predefined NUMS point as its internal key?''' This ensures that an OP_UNVAULT trigger output is verifiable as expected. It also ensures that it is spendable only by the conditions of the vault. -** If the witness program has a version less than 1, the script MUST fail and terminate immediately. -** If the witness program has a version greater than 1, the script MUST succeed to enable upgradeability. -** If the witness program has a version of 1 and the scriptPubKey of the output does not match the expected scriptPubKey, as computed by creating a taproot output using the cited NUMS point and a single tapscript spend condition of the form
OP_UNVAULT,
the script MUST fail and terminate immediately. -** Witness versions greater than 1 are allowed for upgradeability. - -* If there does not exist a revault output in the transaction for this input: -** (deferred) the nValue of the trigger output must equal the sum of all vault inputs which cite it as their corresponding trigger output. -*** If these values are not equal, the script MUST fail and terminate immediately. -* else (if there does exist a revault output for this input): -** (deferred) the nValues of the trigger output and the revault output must sum to the sum of all vault inputs which both -*** cite this trigger output as the trigger-vout-idx and -*** have a scriptPubKey identical to the revault output's. -** If these values are not equal, the script MUST fail and terminate immediately. - -If none of the conditions above results in a failure of the script interpreter, the -stack will consist of a single true value (0x01). - -The above amount check can be expressed in Python as: - - - -spending_tx: CTransaction -vault_inputs: [CTxIn] = [inp for inp in spending_tx.vin if inp.is_OP_VAULT] - -"Where we'll accumulate the expected totals for each vault input." -vault_totals_for_outputs: dict[(int, int), int] = defaultdict(0) - -"Build the expected totals." -for vault_in in vault_inputs: - maybe_revault_idx = find_revault_for_vault(vault_in) - vault_total_for_outputs[(vault_in.trigger_vout_idx, maybe_revault_idx)] += vault_in.nValue - - -"Check the expected totals against outputs." -for (out_idx, maybe_revault_idx), expected_amount in vault_totals_for_outputs.items(): - total = spending_tx.vout[out_idx].nValue - - if maybe_revault_idx: - total += spending_tx.vout[maybe_revault_idx] - - if total != expected_amount: - FAIL_AND_TERMINATE_SCRIPT() - - -def find_revault_for_vault(vault_in) -> int: - """Find the index of a revault output for a particular vault input, if one exists.""" - for i, out in enumerate(spending_tx.vout): - if out.scriptPubKey == vault_in.scriptPubKey: - return i - return None - - -=== OP_UNVAULT evaluation === - -==== Witness program ==== +=== OP_VAULT_RECOVER evaluation === -When evaluating OP_UNVAULT (OP_SUCCESS188, -0xbc), the witness program is pushed onto the stack for the -following result (stack shown top to bottom): +When evaluating OP_VAULT_RECOVER (OP_SUCCESS188, +0xbb), the expected format of the stack, shown top to bottom, is: -OP_UNVAULT (*) being evaluated - - - + + where -* is validated exactly as described in [[#witness-program|the above OP_VAULT section]]. -* is validated exactly as described in [[#witness-program|the above OP_VAULT section]]. -* is a 32 byte data push. -** If it is not equal to 32 bytes, the script MUST fail and terminate immediately. - - -==== Check for recovery ==== - -A check is performed to determine if this input is being spent within the context of -a recovery transaction, exactly as in [[#check-for-recovery|the OP_VAULT evaluation described above]]. - - -==== OP_UNVAULT evaluation for recovery spend ==== - -This is identical to the [[#op_vault-evaluation-for-recovery-spend|OP_VAULT case described above]]. - - -==== OP_UNVAULT evaluation for withdrawal ==== - -When spending an OP_UNVAULT input into a withdrawal target, no witness stack is required. - -* is used to check whether the withdrawal of the input has matured. -** If the input's relative timelock check, as described in [https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki BIP-0112] (using this value as "the top item on the stack") fails, the script MUST fail and terminate immediately. -*** The same CheckSequence() code path is used as for [https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki BIP-0112]. - -* The transaction outputs are then checked to verify that the withdrawal outputs are as expected. -** If target_outputs_hash(spending_tx.vout) != per the algorithm defined below, the script MUST fail and terminate immediately. +* is a 32-byte data push. +** If this is not 32 bytes in length, script execution when spending this output MUST fail and terminate immediately. +* is a CScriptNum-encoded number indicating the index of the recovery output. +** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. +** If this value is less than 0 or is greater than or equal to the number of outputs, script execution when spending this output MUST fail and terminate immediately. - -def target_outputs_hash(vout: [CTxOut]) -> bytes: - return hash256(b"".join(serialize_txout(out) for out in vout)) +After the stack is parsed, the following validation checks are performed: -def serialize_txout(txo: CTxOut) -> bytes: - spk: bytes = txo.scriptPubKey - return struct.pack(" +* Let the output at index be called ''recoveryOut''. +* If the scriptPubKey of ''recoveryOut'' does not have a tagged hash equal to (tagged_hash("VaultRecoverySPK", recoveryOut.scriptPubKey) == recovery-sPK-hash, where tagged_hash() is from the [https://github.com/bitcoin/bips/blob/master/bip-0340/reference.py BIP-0340 reference code]), script execution when spending this output MUST fail and terminate immediately. +* If ''recoveryOut'' does not have an nValue greater than or equal to this input's amount, the script MUST fail and terminate immediately. +* (Deferred) if ''recoveryOut'' does not have an nValue equal to the sum of all OP_VAULT_RECOVER-spent inputs with a corresponding recovery-sPK-hash, the transaction validation MUST fail.'''How do recovery transactions pay for fees?''' If the recovery is unauthorized, fees are attached either via CPFP with an ephemeral anchor or as inputs which are solely spent to fees (i.e. no change output). If the recovery is authorized, fees can be attached in any manner, e.g. unrelated inputs and outputs or CPFP via anchor. -If the above conditions do not fail, a single true value (0x01) is pushed to the stack. +If none of the conditions fail, a single true value (0x01) is left on the stack. == Policy changes == In order to prevent possible pinning attacks, recovery transactions must be replaceable. -* When validating an OP_VAULT/OP_UNVAULT input being spent towards a recovery, the script must FAIL (by policy, not consensus) and terminate immediately if both'''Why are recovery transactions required to be replaceable?''' In the case of unauthorized recoveries, an attacker may attempt to pin recovery transactions by broadcasting a "rebundled" version with a low fee rate. Vault owners must be able to overcome this with replacement. In the case of authorized recovery, if an attacker steals the recovery authorization key, the attacker may try to pin the recovery transaction during theft. Requiring replaceability ensures that the owner can always raise the fee rate of the recovery transaction, even if they are RBF rule #3 griefed in the process. +* When validating an OP_VAULT_RECOVER input being spent, the script must FAIL (by policy, not consensus) and terminate immediately if both'''Why are recovery transactions required to be replaceable?''' In the case of unauthorized recoveries, an attacker may attempt to pin recovery transactions by broadcasting a "rebundled" version with a low fee rate. Vault owners must be able to overcome this with replacement. In the case of authorized recovery, if an attacker steals the recovery authorization key, the attacker may try to pin the recovery transaction during theft. Requiring replaceability ensures that the owner can always raise the fee rate of the recovery transaction, even if they are RBF rule #3 griefed in the process. *# the input is not marked as opt-in replaceable by having an nSequence number less than 0xffffffff - 1, per [https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki BIP-0125], and *# the version of the recovery transaction has an nVersion other than 3. -In order to prevent pinning attacks in the case of unauthorized recovery, the output structure of unauthorized recovery -transaction is limited. +If the script containing OP_VAULT_RECOVER is 34 bytes or less34 bytes is the length of a recovery script that consists solely of OP_VAULT_RECOVER., let +it be called "unauthorized," because there is no script guarding the recovery +process. In order to prevent pinning attacks in the case of unauthorized +recovery - since the spend of the input (and the structure of the +transaction) is not authorized by a signed signature message - the output structure of +unauthorized recovery transaction is limited. -* If (as determined from ) is null, the recovery transaction MUST (by policy) abide by the following constraints: +* If the recovery is unauthorized, the recovery transaction MUST (by policy) abide by the following constraints: ** If the spending transaction has more than two outputs, the script MUST fail and terminate immediately. -** If the spending transaction has two outputs, and the output not the recovery output is not an ephemeral anchor, the script MUST fail and terminate immediately.'''Why can unauthorized recoveries only process a single recovery path?''' Because there is no signature required for unauthorized recoveries, if additional outputs were allowed, someone observing a recovery in the mempool would be able to rebundle and broadcast the recovery with a lower fee rate. +** If the spending transaction has two outputs, and the output which is not ''recoveryOut'' is not an [https://github.com/instagibbs/bips/blob/ephemeral_anchor/bip-ephemeralanchors.mediawiki ephemeral anchor], the script MUST fail and terminate immediately.'''Why can unauthorized recoveries only process a single recovery path?''' Because there is no signature required for unauthorized recoveries, if additional outputs were allowed, someone observing a recovery in the mempool would be able to rebundle and broadcast the recovery with a lower fee rate. == Implementation == -A sample implementation is available [https://github.com/jamesob/bitcoin/tree/2023-01-opvault here], with an associated [https://github.com/bitcoin/bitcoin/pull/26857 pull request]. +A sample implementation is available on bitcoin-inquisition [https://github.com/jamesob/bitcoin/tree/2023-01-opvault-inq here], with an associated [https://github.com/bitcoin-inquisition/bitcoin/pull/21 pull request]. + +== Applications == -== End use == +The specification above, perhaps surprisingly, does not cover how a relative timelocked withdrawal process with a fixed target is implemented. The tapleaf update semantics specified in OP_VAULT as well as the output-based authorization enabled by OP_VAULT_RECOVER can be used to implement a vault, but they are incomplete without two other pieces: -=== Creating an OP_VAULT output === +* a way to enforce relative timelocks, like OP_CHECKSEQUENCEVERIFY, and +* a way to enforce that proposed withdrawals are ultimately being spent to a precise set of outputs, like OP_CHECKTEMPLATEVERIFY. + +These two pieces are combined with the tapleaf update capabilities of +OP_VAULT to create a vault, described below. + +=== Creating a vault === In order to vault coins, they must be spent into a witness v1'''Can OP_VAULT be used with a future witness version (greater than 1)?''' Yes, however use of yet to be defined witness versions is discouraged, since such a usage makes the coins spendable by anyone. scriptPubKey -that contains a Tapscript spending condition of the form +that contains a taptree of the form - OP_VAULT +tr(, + leaves = { + recover: + OP_VAULT_RECOVER, + + trigger: + OP_CHECKSIGVERIFY (i) + 2 $leaf-update-script-body OP_VAULT, (ii) + + ... [ possibly other leaves ] + } +) +where +* $leaf-update-script-body is, for example, OP_CHECKSEQUENCEVERIFY OP_DROP OP_CHECKTEMPLATEVERIFY. +** This is one example of a trigger script, but ''any'' script fragment can be used, allowing the creation of different types of vaults. For example, you could use OP_CHECKSEQUENCEVERIFY OP_DROP OP_CHECKSIG to do a time-delayed transfer of the coins to another key. This also future-proofs OP_VAULT for future scripting capabilities. +* The script fragment in (i) is called the "trigger authorization," because it gates triggering the withdrawal. This can be done in whatever manner the wallet designer would like. +* The script fragment in (ii) is the incomplete OP_VAULT invocation - it will be completed once the rest of the parameters (the CTV target hash, trigger vout index, and revault vout index) are provided by the trigger transaction witness. Typically, the internal key for the vault taproot output will be specified so that it is controlled by the same descriptor as the recovery path, which @@ -510,24 +364,84 @@ output to the recovery path. This has the potential advantage of recovering the coin without ever revealing it was a vault. Otherwise, the internal key can be chosen to be an unspendable NUMS point to -force tapscript execution of the OP_VAULT specification. +force execution of the taptree contents. + +=== Triggering a withdrawal === + +To make use of the vault, and spend it towards some output, we construct a spend +of the above tr() output that simply replaces the "trigger" leaf with the +full leaf-update script (in this case, a timelocked CTV script): + + +Witness stack: + +- (-1 if none) +- +- +- +- [ "trigger" leaf script contents ] +- [ taproot control block prompting a script-path spend to "trigger" leaf ] + +Output scripts: + +[ + tr(, + leaves = { + recover: + OP_VAULT_RECOVER, <-- unchanged + + trigger: + + OP_CHECKSEQUENCEVERIFY OP_DROP OP_CHECKTEMPLATEVERIFY <-- changed per the + leaf-update + rules of OP_VAULT + ... [ possibly other leaves ] + } + ), + + [ optional revault output with the + same sPK as the original vault output ], +] + + +OP_VAULT has allowed the taptree to be transformed so that the trigger leaf +becomes a timelocked CTV script, which is what actually facilitates the announced +withdrawal. The withdrawal is interruptible by the recovery path because the +"recover" leaf is preserved exactly from the original taptree. + +Note that the CTV hash is specified at spend time using the witness stack, and +"locked in" via the OP_VAULT spend rules which assert its existence in the output. + +The vault funds can be recovered at any time prior to the spend of the +timelocked CTV script by way of a script-path spend using the "recover" leaf. === Recovery authorization === -When configuring a vault, the user must decide if they want to have the recovery process gated by the optional recovery authorization scriptPubKey. The choice is left to the user because it entails trade-offs. +When configuring a vault, the user must decide if they want to have the +recovery process gated by a script fragment prefixing the +OP_VAULT_RECOVER instruction in the "recover" leaf. Its use +entails trade-offs. ==== Unauthorized recovery ==== -Unauthorized recovery simplifies vault use in that recovery never requires additional information aside from the location of the vault outpoints and the recovery path - the "authorization" is simply the reveal of the recovery path. +Unauthorized recovery simplifies vault use in that recovery never requires additional information aside from the location of the vault outpoints and the recovery path - the "authorization" is simply the reveal of the recovery path, i.e. the preimage of . But because this reveal is the only authorization necessary to spend the vault coins to recovery, the user must expect to recover all such vaults at once, since an observer can replay this recovery (provided they know the outpoints). -Additionally, unauthorized recovery across multiple distinct recovery paths cannot be batched, and fee control is more constrained: because the output structure is limited for unauthorized recovery, fee management relies either on inputs which are completely spent to fees or the use of the optional ephemeral anchor and package relay. +Additionally, unauthorized recovery across multiple distinct recovery paths +cannot be done in the same transaction, and fee control is more constrained: +because the output structure is limited for unauthorized recovery, fee +management relies either on inputs which are completely spent to fees or the +use of the optional ephemeral anchor and package relay. + +These limitations are to avoid pinning attacks. ==== Authorized recovery ==== -With authorized recovery, the user must keep track of an additional piece of information: how to solve the recovery authorization scriptPubKey when recovery is required. If this key is lost, the user will be unable to initiate the recovery process for their coins. If an attacker obtains the recovery key, they may grief the user during the recovery process by constructing a low fee rate recovery transaction and broadcasting it (though they will not be able to pin because of the replaceability requirement on recovery transactions). +With authorized recovery, the user must keep track of an additional piece of information: how to solve the recovery authorization script fragment when recovery is required. + +If this key is lost, the user will be unable to initiate the recovery process for their coins. If an attacker obtains the recovery key, they may grief the user during the recovery process by constructing a low fee rate recovery transaction and broadcasting it (though they will not be able to pin because of the replaceability requirement on recovery transactions). However, authorized recovery configurations have significant benefits. Batched recoveries are possible for vaults with otherwise incompatible recovery parameters. Fee management is much more flexible, since authorized recovery transactions are "free form" and unrelated inputs and outputs can be added, potentially to handle fees. @@ -542,24 +456,36 @@ recovery path key itself. === Address reuse and recovery === When creating a vault, four factors affect the resulting P2TR address: -# The internal key (likely belonging to the recovery wallet) -# The recovery parameters -# The spend delay -# The trigger scriptPubKey - -Aside from the spend delay, the end user has the option of varying the other three parameters along descriptors in order to avoid reusing vault addresses without affecting key management. - -Worth noting is that when using unauthorized recovery, the reveal of the recovery scriptPubKey will allow any observer to initiate the recovery process for any vault with matching recovery params, provided they are able to locate the vault outpoints. As a result, it is recommended to expect that '''all outputs sharing an identical unauthorized should be recovered together'''. - -This situation can be avoided with a comparable key management model by varying the generation of each vault's recovery scriptPubKey along a single descriptor, but note that (when configured for unauthorized recovery), this will prevent batched recovery. - -==== Recommendation: vary the internal key ==== - -The recommended mode of use is to keep recovery parameters identical across vaults which should be recovered in batch, but vary the internal key for each vault output along a single descriptor so that no address reuse is necessary. +# The internal pubkey (likely belonging to the recovery wallet) +# The recovery leaf +# The trigger leaf +# Any other leaves that exist in the taptree + +The end user has the option of varying certain contents along descriptors in +order to avoid reusing vault addresses without affecting key management, e.g. +the trigger authorization pubkeys. + +Note that when using unauthorized recovery, the reveal of the +recovery scriptPubKey will allow any observer to initiate the recovery process +for any vault with matching recovery params, provided they are able to locate +the vault outpoints. As a result, it is recommended to expect that +'''all outputs sharing an identical unauthorized should be recovered together'''. + +This situation can be avoided with a comparable key management model by varying +the generation of each vault's recovery scriptPubKey along a single descriptor, +but note that this will prevent recovering multiple separate vaults into a single +recovery output. + +Varying the internal pubkey will prevent batching the trigger of multiple vault +inputs into a single trigger output; consequently it is recommended that users +instead vary some component of the trigger leaf script if address reuse is +undesirable. Users could vary the trigger pubkey along a descriptor, keeping +the recovery path and internal-pubkey the same, which both avoids reusing +addresses and allows batched trigger and recovery operations. ==== Recommendation: generate new recovery addresses for new trigger keys ==== -If using unauthorized recovery, it is recommended that you do not share literal recovery paths +If using unauthorized recovery, it is recommended that you do not share recovery scriptPubKeys across separate trigger keys. If one trigger key is compromised, that will necessitate the (unauthorized) recovery of all vaults with that trigger key, which will reveal the recovery path preimage. This means that an observer might be able to initiate recovery for vaults controlled by an uncompromised @@ -567,33 +493,36 @@ trigger key. ==== Fee management ==== -Fees can be managed in a variety of ways, but it's worth noting that both trigger and recovery transactions must preserve the total value of vault inputs, so vaulted values cannot be repurposed to pay for fees. This does not apply to the withdrawal transaction, which can allocate value arbitrarily. - -In the case of vaults that use recovery authorization, all transactions can "bring their own fees" in the form of unrelated inputs and outputs. These transactions are also free to specify ephemeral anchors, once the related relay policies are deployed. This means that vaults using recovery authorization have no dependence on the deploy of v3 relay policy. - -In the case of vaults that do not use recovery authorization, the recovery transaction relies on the use of either fully-spent fee inputs or an ephemeral anchor output. This means that vaults which do not use recovery authorization are essentially dependent on v3 transaction relay policy being deployed. +Fees can be managed in a variety of ways, but it's worth noting that both +trigger and recovery transactions must preserve the total value of vault +inputs, so vaulted values cannot be repurposed to pay for fees. This does not +apply to the withdrawal transaction, which can allocate value arbitrarily. -==== Mixing input types ==== - -OP_VAULT/OP_UNVAULT outputs can be spent -into a recovery transaction together. Script execution works identically for -both types of outputs. - -[[File:bip-VAULT/batch-sweep.drawio.png|frame|center]] +In the case of vaults that use recovery authorization, all transactions can +"bring their own fees" in the form of unrelated inputs and outputs. These +transactions are also free to specify ephemeral anchors, once the related relay +policies are deployed. This means that vaults using recovery authorization have +no dependence on the deploy of v3 relay policy. +For vaults using unauthorized recovery, the recovery +transaction relies on the use of either fully-spent fee inputs or an ephemeral +anchor output. This means that vaults which do not use recovery authorization +are essentially dependent on v3 transaction relay policy being deployed. === Batching === ==== During trigger ==== -OP_VAULT outputs with the same recovery-params and spend-delay can -be triggered into the same OP_UNVAULT output, creating a batched -withdrawal trigger. This is allowed regardless of the - values of each input, allowing the trigger keys -to differ. +OP_VAULT outputs with the same taptree, aside from slightly +different trigger leaves, can be batched together in the same withdrawal +process. Two "trigger" leaves are compatible if they have the same +OP_VAULT arguments. + +Note that this allows the trigger authorization -- the script prefixing the +OP_VAULT invocation -- to differ while still allowing batching. Trigger transactions can act on multiple incompatible OP_VAULT -input sets, provided each set has a suitable associated OP_UNVAULT +input sets, provided each set has a suitable associated ''triggerOut'' output. Since SIGHASH_DEFAULT can be used to sign the trigger @@ -602,141 +531,68 @@ facilitate fee management or the batch withdrawal of incompatible vaults. ==== During withdrawal ==== -During final withdrawal, multiple unrelated OP_UNVAULT outputs can -be used towards the same withdrawal transaction provided that they share -identical parameters. This facilitates -batched withdrawals. +During final withdrawal, multiple trigger outputs can be used towards the same +withdrawal transaction provided that they share identical + parameters. This facilitates batched +withdrawals. ==== During recovery ==== -OP_VAULT/OP_UNVAULT outputs with the same recovery -scriptPubKey hash can be recovered into the same output. +OP_VAULT_RECOVER outputs with the same +can be recovered into the same output. Recovery-incompatible vaults which have authorized recovery can be recovered in -the same transaction, so long as each set (grouped by recovery scriptPubKey -hash) has a suitable associated recovery output. This means that unrelated -recoveries controlled by the same owner can benefit from sharing common fee -management. +the same transaction, so long as each set (grouped by +) has an associated ''recoveryOut''. This allows +unrelated recoveries to share common fee management. === Watchtowers === -The value of vaults is contingent upon having monitoring in place that will alert the owner when unexpected spends are taking place. This can be done in a variety of ways, with varying degrees of automation and trust in the watchtower. +The value of vaults is contingent upon having monitoring in place that will +alert the owner when unexpected spends are taking place. This can be done in a +variety of ways, with varying degrees of automation and trust in the +watchtower. -In the maximum-trust case, the watchtower can be fully aware of all vaulted coins and has the means to initiate the recovery process if spends are not pre-reported to the watchtower. +In the maximum-trust case, the watchtower can be fully aware of all vaulted +coins and has the means to initiate the recovery process if spends are not +pre-reported to the watchtower. -In the minimum-trust case, the user can supply a probabilistic filter of which coins they wish to monitor; the watchtower would then alert the user if any coins matching the filter move, and the user would be responsible for ignoring false positives and handling recovery initiation. +In the minimum-trust case, the user can supply a probabilistic filter of which +coins they wish to monitor; the watchtower would then alert the user if any +coins matching the filter move, and the user would be responsible for ignoring +false positives and handling recovery initiation. === Script descriptors === Script descriptors for vault-related outputs will be covered in a subsequent BIP. - == Deployment == -TBD +Activation mechanism is to be determined. + +This BIP should be deployed concurrently with BIP-0119 to enable full use of vaults. == Backwards compatibility == -OP_VAULT and OP_UNVAULT replace, respectively, the witness v1-only opcodes OP_SUCCESS187 and OP_SUCCESS188 with -stricter verification semantics. Consequently, scripts using those opcodes which previously were valid will cease to be valid with this change. +OP_VAULT and OP_VAULT_RECOVER replace, respectively, +the witness v1-only opcodes OP_SUCCESS187 and OP_SUCCESS188 with stricter +verification semantics. Consequently, scripts using those opcodes which +previously were valid will cease to be valid with this change. -Stricter verification semantics for an OP_SUCCESSx opcode are a soft fork, so existing software will be fully functional without upgrade except for mining and block validation. +Stricter verification semantics for an OP_SUCCESSx opcode are a soft fork, so +existing software will be fully functional without upgrade except for mining +and block validation. Backwards compatibility considerations are very comparable to previous -deployments for OP_CHECKSEQUENCEVERIFY and OP_CHECKLOCKTIMEVERIFY (see [https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki BIP-0065] -and [https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki BIP-0112]). +deployments for OP_CHECKSEQUENCEVERIFY and OP_CHECKLOCKTIMEVERIFY (see +[https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki BIP-0065] and +[https://github.com/bitcoin/bips/blob/master/bip-0112.mediawiki BIP-0112]). == Rationale == -== Transaction examples == - - -=== Basic creation and withdrawal === - - - -Recovery Taproot: tr( - sPK = 5120cafd90c7026f0b6ab98df89490d02732881f2f4b5900856358dddff4679c2ffb, - internal_pubkey = c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5) - -Trigger Taproot: tr( - sPK = 5120418c46636d9e1a683f58e35b42336e776fdcc3b2d4e39e7a0bf1ab0716e3c5fa, - internal_pubkey = f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9) - -Spend delay: 10 - -Vault Taproot: tr( - sPK = 5120062eb40e358106ea4f39bcac8ce046e44b84e5c0cf8799bd3d08f9ffb4afeb7a, - internal_pubkey = c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5, - merkle_root = 11765541441f95f7af87fc19fcc1c09a1f5b05514d130320e4dfe6d729690230, - leaves = - - opvault: [ - push(5eb59117ddf962d44e11da5ce76c699cd9e6af53764795600543f02960b66023) - 10 - push(523882cb06ae65b1c2ba6e2009c0bf94e3d93ffe74470b354f854d335d9936e2) - OP_VAULT - ] (version=192), -) - - -"Initial vaulting" - -CTransaction 83b4308ccaa83eeb95316050fe2bfd1b027e285ddf31b0bd69762ec113140126: (nVersion=2) - vin: - - [0] CTxIn(prevout=COutPoint(hash=b4ba2b24be456aacaf743be5fe5de25eb3ebebb52f3faf75aecf45921a810101 n=0) scriptSig= nSequence=0) - vout: - - [0] Coin(4999990000, sPK=[1 push(062eb40e358106ea4f39bcac8ce046e44b84e5c0cf8799bd3d08f9ffb4afeb7a)]) - witnesses: - nLockTime: 0 - - -"Trigger" - -CTransaction e0844e873c4319222ebc407b0aa8f385c8a036e3145289d87750d5b895a88b33: (nVersion=2) - vin: - - [0] CTxIn(prevout=COutPoint(hash=83b4308ccaa83eeb95316050fe2bfd1b027e285ddf31b0bd69762ec113140126 n=0) scriptSig= nSequence=0) - vout: - - [0] Coin(4999990000, sPK=[1 push(9a15dca153a8651b610a02f3a92df3ada3cd45fd7f6183c7b2c1bc333bed1e63)]) - witnesses: - - [0] - - [0.0] [push(bdb4b3f6af17c93308af5ea689b33425497e388a0075f4311540e50d4d3d76f068ab645603333929e5ac62ecc125fc98a053aff53f65b0cffaaeef31efd415ff)] - - [0.1] [1 push(418c46636d9e1a683f58e35b42336e776fdcc3b2d4e39e7a0bf1ab0716e3c5fa)] - - [0.2] [push(c707f3e01b67c9dac06ad15cf0800cc07278a0a1c4f54cb92457ee5c0d84519a)] - - [0.3] [push()] - - [0.4] [ - push(5eb59117ddf962d44e11da5ce76c699cd9e6af53764795600543f02960b66023) - 10 - push(523882cb06ae65b1c2ba6e2009c0bf94e3d93ffe74470b354f854d335d9936e2) - OP_VAULT - ] - - [0.5] [push(c0c6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5)] - nLockTime: 0 - - -"Withdrawal" - -CTransaction 9595af9728de3ae9ca6110c040ad34f02f9db8b610296f99618354b99d5ec395: (nVersion=2) - vin: - - [0] CTxIn(prevout=COutPoint(hash=e0844e873c4319222ebc407b0aa8f385c8a036e3145289d87750d5b895a88b33 n=0) scriptSig= nSequence=10) - vout: - - [0] Coin(1666663333, sPK=[push() push(c42e7ef92fdb603af844d064faad95db9bcdfd3d)]) - - [1] Coin(1666663333, sPK=[push() push(4747e8746cddb33b0f7f95a90f89f89fb387cbb6)]) - - [2] Coin(1666663334, sPK=[push() push(7fda9cf020c16cacf529c87d8de89bfc70b8c9cb)]) - witnesses: - - [0] - - [0.0] [ - push(5eb59117ddf962d44e11da5ce76c699cd9e6af53764795600543f02960b66023) - 10 - push(c707f3e01b67c9dac06ad15cf0800cc07278a0a1c4f54cb92457ee5c0d84519a) - OP_UNVAULT - ] - - [0.1] [push(c150929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0)] - nLockTime: 0 - - == References == * [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-February/012470.html [bitcoin-dev] Bitcoin Vaults (2016)] From a0b433471dfa4adfb39844274bf52159e4574cf6 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Thu, 23 Mar 2023 13:23:08 -0400 Subject: [PATCH 15/31] fixup! rename vaults BIP --- bip-vaults.mediawiki => bip-0345.mediawiki | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename bip-vaults.mediawiki => bip-0345.mediawiki (100%) diff --git a/bip-vaults.mediawiki b/bip-0345.mediawiki similarity index 100% rename from bip-vaults.mediawiki rename to bip-0345.mediawiki From a6452eaf1a7fca69746f73931852b038c708123e Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Thu, 23 Mar 2023 13:31:22 -0400 Subject: [PATCH 16/31] fixup! add TLUV references --- bip-0345.mediawiki | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bip-0345.mediawiki b/bip-0345.mediawiki index 72f3f4fe5..a5ffa08ff 100644 --- a/bip-0345.mediawiki +++ b/bip-0345.mediawiki @@ -167,7 +167,9 @@ withdrawal by allowing a spending transaction to replace the OP_VAULT tapleaf with a prespecified script template, allowing for some parameters to be set at spend (trigger) time. All other leaves in the taptree must be unchanged, which preserves the recovery path as well as any -other spending conditions originally included in the vault. +other spending conditions originally included in the vault. This is similar to +the TAPLEAF_UPDATE_VERIFY design that was proposed +[https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-September/019419.html in 2021]. These tapleaf replacement rules, described more precisely below, ensure a timelocked withdrawal, where the timelock is fixed by the original @@ -598,6 +600,7 @@ deployments for OP_CHECKSEQUENCEVERIFY and OP_CHECKLOCKTIMEVERIFY (see * [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-February/012470.html [bitcoin-dev] Bitcoin Vaults (2016)] * [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-February/015793.html [bitcoin-dev] Simple lock/unlock mechanism (2018)] * [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-April/017755.html [bitcoin-dev] On-chain vaults prototype (2020)] +* [https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-September/019419.html [bitcoin-dev] TAPLEAF_UPDATE_VERIFY covenant opcode (2021)] * [https://arxiv.org/abs/2005.11776 Custody Protocols Using Bitcoin Vaults (2020)] * [https://jameso.be/vaults.pdf Vaults and Covenants (2023)] From e08f6ad4dfed1ca67de9983d375a93d1481d1644 Mon Sep 17 00:00:00 2001 From: Greg Sanders Date: Tue, 28 Mar 2023 11:51:21 -0400 Subject: [PATCH 17/31] few word changes --- bip-0345.mediawiki | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/bip-0345.mediawiki b/bip-0345.mediawiki index a5ffa08ff..2cac3de42 100644 --- a/bip-0345.mediawiki +++ b/bip-0345.mediawiki @@ -239,22 +239,22 @@ When evaluating OP_VAULT (OP_SUCCESS187, where -* is a data push of 0 or more bytes containing a script fragment. -** In conjunction with the leaf-update data items, it dictates the tapleaf script in the output taptree that will replace the one currently executing. +* is a minimally-encoded data push of a serialized script. In conjunction with the leaf-update data items, it dictates the tapleaf script in the output taptree that will replace the one currently executing. +** Otherwise, script execution MUST fail and terminate immediately. -* is a CScriptNum-encoded number indicating how many leaf-update script items should be popped off the stack. +* is an up to 4-byte CScriptNum-encoded number indicating how many leaf-update script items should be popped off the stack. ** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. ** If this value is less than 0, script execution when spending this output MUST fail and terminate immediately. ** If fewer than + 2 items are on the stack, script execution when spending this output MUST fail and terminate immediately. -* The following stack items are popped off the stack and prefixed as push-data arguments to the to construct the expected tapleaf replacement script. +* The following stack items are popped off the stack and prefixed as minimally-encoded push-data arguments to the to construct the expected tapleaf replacement script. ** If there are fewer than + 2 items on the stack, script execution when spending this output MUST fail and terminate immediately. -* is a CScriptNum-encoded number indicating the index of the output which, in conjunction with an optional revault output, carries forward the value of this input, and has an identical taptree aside from the currently executing leaf. +* is an up to 4-byte CScriptNum-encoded number indicating the index of the output which, in conjunction with an optional revault output, carries forward the value of this input, and has an identical taptree aside from the currently executing leaf. ** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. ** If this value is less than 0 or is greater than or equal to the number of outputs, script execution when spending this output MUST fail and terminate immediately. -* is a CScriptNum-encoded number optionally indicating the index of an output which, in conjunction with the trigger output, carries forward the value of this input, and has an identical scriptPubKey to the current input. +* is an up to 4-byte CScriptNum-encoded number optionally indicating the index of an output which, in conjunction with the trigger output, carries forward the value of this input, and has an identical scriptPubKey to the current input. ** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. ** If this value is greater than or equal to the number of outputs, script execution when spending this output MUST fail and terminate immediately. @@ -264,8 +264,8 @@ After the stack is parsed, the following validation checks are performed: * If the scriptPubKey of ''triggerOut'' is not a witness program of the same version as the currently executing script, script execution MUST fail and terminate immediately. * Let the script constructed by taking the and prefixing it with minimally-encoded data pushes of the leaf-update script data items be called the ''leaf-update-script''. ** The leaf-update data items will be in the same order in the ''leaf-update-script'' as they appeared on the stack. -* If the scriptPubKey of ''triggerOut'' is not a taptree that is identical to that of the current input, but with the current leaf script substituted for ''leaf-update-script'', script execution when spending this output MUST fail and terminate immediately. -** Note: the parity bit of the resulting taproot is allowed to vary. +* If the scriptPubKey of ''triggerOut'' does not match that of a taptree that is identical to that of the currently evaluated input, but with the leaf script substituted for ''leaf-update-script'', script execution when spending this output MUST fail and terminate immediately. +** Note: the parity bit of the resulting taproot output is allowed to vary, so both values for the new output must be checked. * Let the output designated by (if the index value is non-negative) be called ''revaultOut''. * If the scriptPubKey of ''revaultOut'' is not equal to the scriptPubKey of the input being spent, script execution when spending this output MUST fail and terminate immediately. * If the sum of the amounts of ''triggerOut'' and ''revaultOut'' (if any) are not greater than or equal to the value of this input, script execution when spending this output MUST fail and terminate immediately. @@ -287,7 +287,7 @@ where * is a 32-byte data push. ** If this is not 32 bytes in length, script execution when spending this output MUST fail and terminate immediately. -* is a CScriptNum-encoded number indicating the index of the recovery output. +* is an up to 4-byte CScriptNum-encoded number indicating the index of the recovery output. ** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. ** If this value is less than 0 or is greater than or equal to the number of outputs, script execution when spending this output MUST fail and terminate immediately. From 8bad703ed8391a735e9d1adba2ba92d89a0b06e7 Mon Sep 17 00:00:00 2001 From: Greg Sanders Date: Tue, 28 Mar 2023 12:30:36 -0400 Subject: [PATCH 18/31] why n-pushes --- bip-0345.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0345.mediawiki b/bip-0345.mediawiki index 2cac3de42..d6d00c36f 100644 --- a/bip-0345.mediawiki +++ b/bip-0345.mediawiki @@ -242,7 +242,7 @@ where * is a minimally-encoded data push of a serialized script. In conjunction with the leaf-update data items, it dictates the tapleaf script in the output taptree that will replace the one currently executing. ** Otherwise, script execution MUST fail and terminate immediately. -* is an up to 4-byte CScriptNum-encoded number indicating how many leaf-update script items should be popped off the stack. +* is an up to 4-byte CScriptNum-encoded number indicating how many leaf-update script items should be popped off the stack. '''Why only prepending with data pushes?''' Prepending the leaf-update-script-body with opcodes opens up the door to prepending OP_SUCCESSX opcodes, to name a single issue only, side-stepping the validation that was meant to be run by the committed script. ** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. ** If this value is less than 0, script execution when spending this output MUST fail and terminate immediately. ** If fewer than + 2 items are on the stack, script execution when spending this output MUST fail and terminate immediately. From 8bf5b869e5840fc5564e01f62bdbabc8b8ffcab2 Mon Sep 17 00:00:00 2001 From: Greg Sanders Date: Tue, 28 Mar 2023 12:39:03 -0400 Subject: [PATCH 19/31] remove vestigial reference in applications section --- bip-0345.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0345.mediawiki b/bip-0345.mediawiki index d6d00c36f..d23571d96 100644 --- a/bip-0345.mediawiki +++ b/bip-0345.mediawiki @@ -336,7 +336,7 @@ These two pieces are combined with the tapleaf update capabilities of === Creating a vault === -In order to vault coins, they must be spent into a witness v1'''Can OP_VAULT be used with a future witness version (greater than 1)?''' Yes, however use of yet to be defined witness versions is discouraged, since such a usage makes the coins spendable by anyone. scriptPubKey +In order to vault coins, they must be spent into a witness v1 scriptPubKey that contains a taptree of the form From 29345a10f0e991e8f223beb9a92984e767911ac2 Mon Sep 17 00:00:00 2001 From: Greg Sanders Date: Tue, 28 Mar 2023 12:42:48 -0400 Subject: [PATCH 20/31] Be explicit about tapleaf version forwarding --- bip-0345.mediawiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bip-0345.mediawiki b/bip-0345.mediawiki index d23571d96..c0baeb212 100644 --- a/bip-0345.mediawiki +++ b/bip-0345.mediawiki @@ -261,7 +261,7 @@ where After the stack is parsed, the following validation checks are performed: * Let the output designated by be called ''triggerOut''. -* If the scriptPubKey of ''triggerOut'' is not a witness program of the same version as the currently executing script, script execution MUST fail and terminate immediately. +* If the scriptPubKey of ''triggerOut'' is not a witness program of the same version and same tapleaf version as the currently executing script, script execution MUST fail and terminate immediately. * Let the script constructed by taking the and prefixing it with minimally-encoded data pushes of the leaf-update script data items be called the ''leaf-update-script''. ** The leaf-update data items will be in the same order in the ''leaf-update-script'' as they appeared on the stack. * If the scriptPubKey of ''triggerOut'' does not match that of a taptree that is identical to that of the currently evaluated input, but with the leaf script substituted for ''leaf-update-script'', script execution when spending this output MUST fail and terminate immediately. From 0b0674c546eba07583da87d029f42a5da551af42 Mon Sep 17 00:00:00 2001 From: Greg Sanders Date: Tue, 28 Mar 2023 15:08:03 -0400 Subject: [PATCH 21/31] few fixups --- bip-0345.mediawiki | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/bip-0345.mediawiki b/bip-0345.mediawiki index c0baeb212..2276bd15e 100644 --- a/bip-0345.mediawiki +++ b/bip-0345.mediawiki @@ -17,20 +17,19 @@ == Introduction == -This BIP proposes new tapscript opcodes, OP_VAULT and -OP_VAULT_RECOVER, that add consensus support for a specialized -covenant. These opcodes, in conjunction with +This BIP proposes two new tapscript opcodes that add consensus support for a specialized +covenant: OP_VAULT and OP_VAULT_RECOVER. These opcodes, in conjunction with OP_CHECKTEMPLATEVERIFY ([https://github.com/bitcoin/bips/blob/master/bip-0119.mediawiki BIP-0119]), allow users to enforce a delay period before designated coins may be spent to an arbitrary destination, with the exception of a prespecified "recovery" path. At any time prior to final withdrawal, the coins can be spent to the -prespecified path. +recovery path. === Motivation === -The hazard of custodying Bitcoin is well known. Users of Bitcoin must go to +The hazard of custodying Bitcoin is well-known. Users of Bitcoin must go to significant effort to secure their private keys, and hope that once provisioned their custody system does not yield to any number of evolving and 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. ==== Example uses ==== -An individual custodying Bitcoin uses the common "single signature and -passphrase" configuration with a hardware wallet. They are concerned about the +A common configuration for an individual custodying Bitcoin is a "single signature and +passphrase" with a hardware wallet. They are concerned about the risk associated with relying on a single manufacturer for key management as well as physical access to the hardware, so they generate a new key that is 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 basis works in the same way it did prior to vaulting - aside from the spend delay. -The recovery key could be any number of things: a 2-of-3 multisig with keys +The recovery key could be any Bitcoin script policy: a 2-of-3 multisig with keys that live on different devices, a 3-of-5 with socially distributed keys, a Taproot construction that incorporates one of these methods along with a 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. ===== Provable timelocks ===== -This proposal provides a solution to the +This proposal provides a mitigation to the [https://web.archive.org/web/20230210123933/https://xkcd.com/538/ "$5 wrench attack."] By setting the spend delay to, say, a week, and using as the recovery path a script that enforces a longer relative timelock, the owner of the vault can @@ -148,7 +147,7 @@ The design goals of the proposal are: * '''dynamic fee management''' that, like dynamic targets, defers the specification of fee rates and source to unvault time rather than vault creation time. These goals are accompanied by basic safety considerations (e.g. not being -vulnerable to pinning) and a desire for concision, both in terms of the number +vulnerable to mempool pinning) and a desire for concision, both in terms of the number of outputs created as well as script sizes. This proposal is designed to be compatible with any future sighash modes (e.g. SIGHASH_GROUP) 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 OP_VAULT ensure the timelocked, interruptible withdrawal by allowing a spending transaction to replace the OP_VAULT tapleaf with a prespecified script template, allowing for some parameters to be set at spend (trigger) time. All other leaves in the -taptree must be unchanged, which preserves the recovery path as well as any +taptree must be unchanged in the destination output, which preserves the recovery path as well as any other spending conditions originally included in the vault. This is similar to the TAPLEAF_UPDATE_VERIFY design that was proposed [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 coins matching the filter move, and the user would be responsible for ignoring false positives and handling recovery initiation. -=== Script descriptors === +=== Output descriptors === -Script descriptors for vault-related outputs will be covered in a subsequent BIP. +Output descriptors for vault-related outputs will be covered in a subsequent BIP. == Deployment == From 7112f308b356cdf0c51d917dbdc1b98e30621f80 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Mon, 17 Apr 2023 09:40:57 -0400 Subject: [PATCH 22/31] minor wording updates --- bip-0345.mediawiki | 65 +++++++++++++++++++++++----------------------- 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/bip-0345.mediawiki b/bip-0345.mediawiki index 2276bd15e..4005d11a5 100644 --- a/bip-0345.mediawiki +++ b/bip-0345.mediawiki @@ -44,34 +44,35 @@ usable for custodians of any size with minimal complication. ==== Example uses ==== -A common configuration for an individual custodying Bitcoin is a "single signature and -passphrase" with a hardware wallet. They are concerned about the -risk associated with relying on a single manufacturer for key management as -well as physical access to the hardware, so they generate a new key that is -highly secure, but would be impractical for daily use. For example the key -could be generated in some analog fashion, or on an old computer (with added -entropy) that is then destroyed, with the private key replicated only in paper -form. Or the key could be a 2-of-3 multisig using devices from different -manufacturers. Perhaps the key is geographically distributed. - -This individual can use OP_VAULT to make use of the highly secure +A common configuration for an individual custodying Bitcoin is "single +signature and passphrase" using a hardware wallet. A user with such a +configuration might concerned about the risk associated with relying on a +single manufacturer for key management, as well as physical access to the +hardware. + +This individual can use OP_VAULT to make use of a highly secure key as the unlikely recovery path, while using their existing signing procedure -as the withdrawal trigger key, with a configured spend delay of 1 day. They can -run software on their mobile device that monitors the blockchain for spends of -the vault outpoints. +as the withdrawal trigger key with a configured spend delay of e.g. 1 day. + +The recovery path key can be of a highly secure nature that might otherwise +make it impractical for daily use. For example, the key could be generated in +some analog fashion, or on an old computer that is then destroyed, with the +private key replicated only in paper form. Or the key could be a 2-of-3 +multisig using devices from different manufacturers. Perhaps the key is +geographically or socially distributed. -If the vaulted coins move in an unexpected way, the user can immediately sweep -them to the highly secure recovery path, but spending the coins on a daily -basis works in the same way it did prior to vaulting - aside from the spend -delay. +Since it can be any Bitcoin script policy, the recovery key can include a +number of spending conditions, e.g. a time-delayed fallback to an "easier" +recovery method, in case the highly secure key winds up being ''too'' highly +secure. -The recovery key could be any Bitcoin script policy: a 2-of-3 multisig with keys -that live on different devices, a 3-of-5 with socially distributed keys, a -Taproot construction that incorporates one of these methods along with a -time-delayed fallback to an "easier" recovery method, in case the highly secure -key winds up being ''too'' highly secure. +The user can run software on their mobile device that monitors the blockchain +for spends of the vault outpoints. If the vaulted coins move in an unexpected +way, the user can immediately sweep them to the recovery path, but spending the +coins on a daily basis works in the same way it did prior to vaulting (aside +from the spend delay). -Institutional custodians of Bitcoin would likely use vaults in similar fashion. +Institutional custodians of Bitcoin may use vaults in similar fashion. ===== Provable timelocks ===== @@ -157,7 +158,7 @@ This proposal is designed to be compatible with any future sighash modes (e.g. < In typical usage, a vault is created by encumbering coins under a taptree [https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki (BIP-341)] containing at least two leaves: one with an OP_VAULT-containing script that -facilitates the expected withdrawal process, and leaf another with +facilitates the expected withdrawal process, and another leaf with OP_VAULT_RECOVER which ensures the coins can be recovered at any time prior to withdrawal finalization. @@ -192,9 +193,9 @@ The vault has a number of stages, some of them optional: * '''trigger transaction''': spends one or more OP_VAULT-tapleaf inputs into an output which is encumbered by a timelocked withdrawal to a fixed set of outputs, chosen at trigger time. This publicly broadcasts the intent to withdraw to some specific set of outputs.

The trigger transaction may have an additional output which allocates some of the vault balance into a partial "revault," which simply encumbers the revaulted portion of the value into the same scriptPubKey as the OP_VAULT-containing input(s) being spent. -* '''withdrawal transaction''': spends the timelocked OP_CHECKTEMPLATEVERIFY trigger inputs into a compatible set of final withdrawal outputs per the CTV hash, after the trigger inputs have matured per the spend delay. Timelocked CTV transactions are the motivating usage of OP_VAULT, but any script template can be specified during the creation of the vault. +* '''withdrawal transaction''': spends the timelocked, destination-locked trigger inputs into a compatible set of final withdrawal outputs (per, e.g., a CHECKTEMPLATEVERIFY hash), after the trigger inputs have matured per the spend delay. Timelocked CTV transactions are the motivating usage of OP_VAULT, but any script template can be specified during the creation of the vault. -* '''recovery transaction''': spends one or more OP_VAULT_RECOVER-tapleaf inputs to the prespecified recovery path, which can be done at any point before the withdrawal transaction confirms. Each input can optionally require a witness satisfying a specified ''recovery authorization'' script, an optional script prefixing the OP_VAULT_RECOVER fragment. The use of recovery authorization has certain trade-offs discussed later. +* '''recovery transaction''': spends one or more vault inputs via OP_VAULT_RECOVER tapleaf to the prespecified recovery path, which can be done at any point before the withdrawal transaction confirms. Each input can optionally require a witness satisfying a specified ''recovery authorization'' script, an optional script prefixing the OP_VAULT_RECOVER fragment. The use of recovery authorization has certain trade-offs discussed later. === Fee management === @@ -208,7 +209,7 @@ Providing dynamic fee management is critical to the operation of a vault, since But dynamic fee management can introduce [https://bitcoinops.org/en/topics/transaction-pinning/ pinning vectors]. Care has been taken to avoid unnecessarily introducing these vectors when using the new -content-based spending policies that this proposal introduces. +destination-based spending policies that this proposal introduces. Originally, this proposal had a hard dependency on reformed transaction nVersion=3 policies, including ephemeral anchors, but it has since been revised @@ -262,7 +263,7 @@ After the stack is parsed, the following validation checks are performed: * Let the output designated by be called ''triggerOut''. * If the scriptPubKey of ''triggerOut'' is not a witness program of the same version and same tapleaf version as the currently executing script, script execution MUST fail and terminate immediately. * Let the script constructed by taking the and prefixing it with minimally-encoded data pushes of the leaf-update script data items be called the ''leaf-update-script''. -** The leaf-update data items will be in the same order in the ''leaf-update-script'' as they appeared on the stack. +** Note: the leaf-update data items will be in the same order in the ''leaf-update-script'' as they appeared on the stack. * If the scriptPubKey of ''triggerOut'' does not match that of a taptree that is identical to that of the currently evaluated input, but with the leaf script substituted for ''leaf-update-script'', script execution when spending this output MUST fail and terminate immediately. ** Note: the parity bit of the resulting taproot output is allowed to vary, so both values for the new output must be checked. * Let the output designated by (if the index value is non-negative) be called ''revaultOut''. @@ -303,7 +304,7 @@ If none of the conditions fail, a single true value (0x01) is left In order to prevent possible pinning attacks, recovery transactions must be replaceable. -* When validating an OP_VAULT_RECOVER input being spent, the script must FAIL (by policy, not consensus) and terminate immediately if both'''Why are recovery transactions required to be replaceable?''' In the case of unauthorized recoveries, an attacker may attempt to pin recovery transactions by broadcasting a "rebundled" version with a low fee rate. Vault owners must be able to overcome this with replacement. In the case of authorized recovery, if an attacker steals the recovery authorization key, the attacker may try to pin the recovery transaction during theft. Requiring replaceability ensures that the owner can always raise the fee rate of the recovery transaction, even if they are RBF rule #3 griefed in the process. +* When validating an OP_VAULT_RECOVER input being spent, the script MUST fail (by policy, not consensus) and terminate immediately if both'''Why are recovery transactions required to be replaceable?''' In the case of unauthorized recoveries, an attacker may attempt to pin recovery transactions by broadcasting a "rebundled" version with a low fee rate. Vault owners must be able to overcome this with replacement. In the case of authorized recovery, if an attacker steals the recovery authorization key, the attacker may try to pin the recovery transaction during theft. Requiring replaceability ensures that the owner can always raise the fee rate of the recovery transaction, even if they are RBF rule #3 griefed in the process. *# the input is not marked as opt-in replaceable by having an nSequence number less than 0xffffffff - 1, per [https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki BIP-0125], and *# the version of the recovery transaction has an nVersion other than 3. @@ -325,7 +326,7 @@ A sample implementation is available on bitcoin-inquisition [https://github.com/ == Applications == -The specification above, perhaps surprisingly, does not cover how a relative timelocked withdrawal process with a fixed target is implemented. The tapleaf update semantics specified in OP_VAULT as well as the output-based authorization enabled by OP_VAULT_RECOVER can be used to implement a vault, but they are incomplete without two other pieces: +The specification above, perhaps surprisingly, does not specifically cover how a relative timelocked withdrawal process with a fixed target is implemented. The tapleaf update semantics specified in OP_VAULT as well as the output-based authorization enabled by OP_VAULT_RECOVER can be used to implement a vault, but they are incomplete without two other pieces: * a way to enforce relative timelocks, like OP_CHECKSEQUENCEVERIFY, and * a way to enforce that proposed withdrawals are ultimately being spent to a precise set of outputs, like OP_CHECKTEMPLATEVERIFY. @@ -335,7 +336,7 @@ These two pieces are combined with the tapleaf update capabilities of === Creating a vault === -In order to vault coins, they must be spent into a witness v1 scriptPubKey +In order to vault coins, they can be spent into a witness v1 scriptPubKey that contains a taptree of the form From cb50446a65cb8504499e1ebded22539188612bb3 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Wed, 14 Jun 2023 16:36:43 -0400 Subject: [PATCH 23/31] fixup! add and clarify deferred checks This change makes the amount being revaulted (if any) explicit to avoid issues surfaced by AJ Towns (e.g. multiple compatible vault inputs duplicating triggers and revaults to confuse the old deferred check logic). Pseudocode is also provided for the deferred checks, and their inline validation description has been changed to be more faithful to the implementation - we make mention of queueing deferred checks, and then later describe the algorithm used to aggregate and perform them. --- bip-0345.mediawiki | 73 +++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 69 insertions(+), 4 deletions(-) diff --git a/bip-0345.mediawiki b/bip-0345.mediawiki index 4005d11a5..b7692ebe8 100644 --- a/bip-0345.mediawiki +++ b/bip-0345.mediawiki @@ -235,6 +235,7 @@ When evaluating OP_VAULT (OP_SUCCESS187, [ n leaf-update script data items ... ] + where @@ -258,6 +259,11 @@ where ** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. ** If this value is greater than or equal to the number of outputs, script execution when spending this output MUST fail and terminate immediately. +* is an up to 7-byte CScriptNum-encoded number indicating the number of satoshis being revaulted. +** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. +** If this value is not greater than or equal to 0, script execution when spending this output MUST fail and terminate immediately. +** If this value is non-zero but is negative, script execution when spending this output MUST fail and terminate immediately. + After the stack is parsed, the following validation checks are performed: * Let the output designated by be called ''triggerOut''. @@ -268,8 +274,11 @@ After the stack is parsed, the following validation checks are performed: ** Note: the parity bit of the resulting taproot output is allowed to vary, so both values for the new output must be checked. * Let the output designated by (if the index value is non-negative) be called ''revaultOut''. * If the scriptPubKey of ''revaultOut'' is not equal to the scriptPubKey of the input being spent, script execution when spending this output MUST fail and terminate immediately. -* If the sum of the amounts of ''triggerOut'' and ''revaultOut'' (if any) are not greater than or equal to the value of this input, script execution when spending this output MUST fail and terminate immediately. -* (Deferred'''What is a deferred check and why does this proposal require them for correct script evaluation?''' A deferred check is a validation check that is executed only after all input scripts have been validated, and is based on aggregate information collected during each input's EvalScript run.

Currently, the validity of each input is (usually) checked concurrently across all inputs in a transaction. Because this proposal allows batching the spend of multiple vault inputs into a single recovery or withdrawal output, we need a mechanism to ensure that all expected values per output can be summed and then checked. This necessitates the introduction of an "aggregating" set of checks which can only be executed after each input's script is evaluated. Note that similar functionality would be required for batch input validation or cross-input signature aggregation.
) the nValue of ''triggerOut'', plus the nValue of ''revaultOut'' if one exists, must equal the sum of all vault inputs which cite it as their corresponding trigger output. If these values are not equal, the script MUST fail and terminate immediately. +* Implemetation recommendation: if the sum of the amounts of ''triggerOut'' and ''revaultOut'' (if any) are not greater than or equal to the value of this input, script execution when spending this output SHOULD fail and terminate immediately. +** Amount checks are ultimately done with deferred checks, but this check can help short-circuit obviously invalid spends. +* Queue a deferred check'''What is a deferred check and why does this proposal require them for correct script evaluation?''' A deferred check is a validation check that is executed only after all input scripts have been validated, and is based on aggregate information collected during each input's EvalScript run.

Currently, the validity of each input is (usually) checked concurrently across all inputs in a transaction. Because this proposal allows batching the spend of multiple vault inputs into a single recovery or withdrawal output, we need a mechanism to ensure that all expected values per output can be summed and then checked. This necessitates the introduction of an "aggregating" set of checks which can only be executed after each input's script is evaluated. Note that similar functionality would be required for batch input validation or cross-input signature aggregation.
that ensures the satoshis for this input's nValue minus are included within the output nValue found at . +* Queue a deferred check that ensures satoshis, if non-zero, are included within the output's nValue found at . +** These deferred checks could be characterized in terms of the pseudocode below (in ''Deferred checks'') as
TriggerCheck(input_amount, , , ). If none of the conditions fail, a single true value (0x01) is left on the stack. @@ -295,11 +304,66 @@ After the stack is parsed, the following validation checks are performed: * Let the output at index be called ''recoveryOut''. * If the scriptPubKey of ''recoveryOut'' does not have a tagged hash equal to (tagged_hash("VaultRecoverySPK", recoveryOut.scriptPubKey) == recovery-sPK-hash, where tagged_hash() is from the [https://github.com/bitcoin/bips/blob/master/bip-0340/reference.py BIP-0340 reference code]), script execution when spending this output MUST fail and terminate immediately. -* If ''recoveryOut'' does not have an nValue greater than or equal to this input's amount, the script MUST fail and terminate immediately. -* (Deferred) if ''recoveryOut'' does not have an nValue equal to the sum of all OP_VAULT_RECOVER-spent inputs with a corresponding recovery-sPK-hash, the transaction validation MUST fail.'''How do recovery transactions pay for fees?''' If the recovery is unauthorized, fees are attached either via CPFP with an ephemeral anchor or as inputs which are solely spent to fees (i.e. no change output). If the recovery is authorized, fees can be attached in any manner, e.g. unrelated inputs and outputs or CPFP via anchor. +** Implementation recommendation: if ''recoveryOut'' does not have an nValue greater than or equal to this input's amount, the script SHOULD fail and terminate immediately. +* Queue a deferred check that ensures the nValue of ''recoveryOut'' contains the entire nValue of this input.'''How do recovery transactions pay for fees?''' If the recovery is unauthorized, fees are attached either via CPFP with an ephemeral anchor or as inputs which are solely spent to fees (i.e. no change output). If the recovery is authorized, fees can be attached in any manner, e.g. unrelated inputs and outputs or CPFP via anchor. +** This deferred check could be characterized in terms of the pseudocode below as RecoveryCheck(, input_amount). If none of the conditions fail, a single true value (0x01) is left on the stack. +=== Deferred check evaluation === + +Once all inputs for a transaction are validated per the rules above, any +deferred checks queued MUST be evaluated. + +The Python pseudocode for this is as follows: + + +class TriggerCheck: + """Queued by evaluation of OP_VAULT (withdrawal trigger).""" + input_amount: int + revault_amount: int + trigger_vout_idx: int + revault_vout_idx: int + + +class RecoveryCheck: + """Queued by evaluation of OP_VAULT_RECOVER.""" + input_amount: int + vout_idx: int + + +def validate_deferred_checks(checks: [DeferredCheck], tx: Transaction) -> bool: + """ + Ensure that all value from vault inputs being triggered or recovered is preserved + in suitable output nValues. + """ + # Map to hold expected output values. + out_map: Dict[int, int] = defaultdict(lambda: 0) + + for c in checks: + if isinstance(c, TriggerCheck): + out_map[c.trigger_vout_idx] += (c.input_amount - c.revault_amount) + + if c.revault_amount > 0: + out_map[c.revault_vout_idx] += c.revault_amount + + elif isinstance(c, RecoveryCheck): + out_map[c.vout_idx] += c.input_amount + + for (vout_idx, amount_sats) in out_map.items(): + if tx.vout[vout_idx].nValue != amount_sats: + return False + + return True + + +If the above procedure, or an equivalent, returns false, script execution MUST fail and terminate +immediately. + +This ensures that all compatible vault inputs can be batched into shared +corresponding trigger or recovery outputs while preserving their entire input value. + + == Policy changes == In order to prevent possible pinning attacks, recovery transactions must be replaceable. @@ -377,6 +441,7 @@ full leaf-update script (in this case, a timelocked CTV script): Witness stack: +- - (-1 if none) - - From e2ff23b3f07215450e75779f7f944d24660a9d47 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Wed, 28 Jun 2023 12:06:35 -0400 Subject: [PATCH 24/31] fiuxp! allow larger trigger/recovery output amounts Allow trigger/recovery output nValues to exceed the amounts supplied by constituent vault inputs. This allows future compatibility for e.g. trigger collateral. --- bip-0345.mediawiki | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bip-0345.mediawiki b/bip-0345.mediawiki index b7692ebe8..1447346b1 100644 --- a/bip-0345.mediawiki +++ b/bip-0345.mediawiki @@ -351,7 +351,9 @@ def validate_deferred_checks(checks: [DeferredCheck], tx: Transaction) -> bool: out_map[c.vout_idx] += c.input_amount for (vout_idx, amount_sats) in out_map.items(): - if tx.vout[vout_idx].nValue != amount_sats: + # Trigger/recovery value can be greater than the constituent vault input + # amounts. + if tx.vout[vout_idx].nValue < amount_sats: return False return True From 4aae726be9610a675b362e66f539ce0d5f903a5f Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Fri, 1 Sep 2023 10:12:38 -0400 Subject: [PATCH 25/31] fixup! fix off-by-one and revault-idx malleability Co-authored-by: sanket1729 --- bip-0345.mediawiki | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bip-0345.mediawiki b/bip-0345.mediawiki index 1447346b1..87e084cc6 100644 --- a/bip-0345.mediawiki +++ b/bip-0345.mediawiki @@ -246,10 +246,9 @@ where * is an up to 4-byte CScriptNum-encoded number indicating how many leaf-update script items should be popped off the stack. '''Why only prepending with data pushes?''' Prepending the leaf-update-script-body with opcodes opens up the door to prepending OP_SUCCESSX opcodes, to name a single issue only, side-stepping the validation that was meant to be run by the committed script. ** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. ** If this value is less than 0, script execution when spending this output MUST fail and terminate immediately. -** If fewer than + 2 items are on the stack, script execution when spending this output MUST fail and terminate immediately. +** If there are fewer than 3 items following the items on the stack, script execution when spending this output MUST fail and terminate immediately. In other words, after popping , there must be at least 3 + items remaining on the stack. * The following stack items are popped off the stack and prefixed as minimally-encoded push-data arguments to the to construct the expected tapleaf replacement script. -** If there are fewer than + 2 items on the stack, script execution when spending this output MUST fail and terminate immediately. * is an up to 4-byte CScriptNum-encoded number indicating the index of the output which, in conjunction with an optional revault output, carries forward the value of this input, and has an identical taptree aside from the currently executing leaf. ** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. @@ -258,6 +257,7 @@ where * is an up to 4-byte CScriptNum-encoded number optionally indicating the index of an output which, in conjunction with the trigger output, carries forward the value of this input, and has an identical scriptPubKey to the current input. ** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. ** If this value is greater than or equal to the number of outputs, script execution when spending this output MUST fail and terminate immediately. +** If this value is negative and not equal to -1, script execution when spending this output MUST fail and terminate immediately.'''Why is -1 the only allowable negative value for revault-vout-idx?''' A negative revault index indicates that no revault output exists; if this value were allowed to be any negative number, the witness could be malleated (and bloated) while a transaction is waiting for confirmation. * is an up to 7-byte CScriptNum-encoded number indicating the number of satoshis being revaulted. ** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. From 014b832e07d3be3c6aff1230d560fcf7032f0495 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Fri, 29 Sep 2023 09:17:32 -0400 Subject: [PATCH 26/31] BIP-345: add sigops cost of 60 --- bip-0345.mediawiki | 1 + 1 file changed, 1 insertion(+) diff --git a/bip-0345.mediawiki b/bip-0345.mediawiki index 87e084cc6..e63e0a287 100644 --- a/bip-0345.mediawiki +++ b/bip-0345.mediawiki @@ -266,6 +266,7 @@ where After the stack is parsed, the following validation checks are performed: +* Decrement the per-script sigops budget (see [https://github.com/bitcoin/bips/blob/master/bip-0342.mediawiki#user-content-Resource_limits BIP-0342]) by 60'''Why is the sigops cost for OP_VAULT set to 60?''' To determine the validity of a trigger output, OP_VAULT must perform an EC multiplication and hashing proportional to the length of the control block in order to generate the output's expected TapTweak. This has been measured to have a cost in the worst case (max length control block) of roughly twice a Schnorr verification. Because the hashing cost could be mitigated by caching midstate, the cost is 60 and not 100.; if the budget is brought below zero, script execution MUST fail and terminate immediately. * Let the output designated by be called ''triggerOut''. * If the scriptPubKey of ''triggerOut'' is not a witness program of the same version and same tapleaf version as the currently executing script, script execution MUST fail and terminate immediately. * Let the script constructed by taking the and prefixing it with minimally-encoded data pushes of the leaf-update script data items be called the ''leaf-update-script''. From eb3fb727c31dd348a63992d22a35558e031174f9 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Mon, 9 Oct 2023 14:07:19 -0400 Subject: [PATCH 27/31] BIP-0345: restrict trigger output to v1 witness Co-authored-by: Antoine Poinsot --- bip-0345.mediawiki | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bip-0345.mediawiki b/bip-0345.mediawiki index e63e0a287..73b265e5d 100644 --- a/bip-0345.mediawiki +++ b/bip-0345.mediawiki @@ -46,7 +46,7 @@ usable for custodians of any size with minimal complication. A common configuration for an individual custodying Bitcoin is "single signature and passphrase" using a hardware wallet. A user with such a -configuration might concerned about the risk associated with relying on a +configuration might be concerned about the risk associated with relying on a single manufacturer for key management, as well as physical access to the hardware. @@ -268,7 +268,7 @@ After the stack is parsed, the following validation checks are performed: * Decrement the per-script sigops budget (see [https://github.com/bitcoin/bips/blob/master/bip-0342.mediawiki#user-content-Resource_limits BIP-0342]) by 60'''Why is the sigops cost for OP_VAULT set to 60?''' To determine the validity of a trigger output, OP_VAULT must perform an EC multiplication and hashing proportional to the length of the control block in order to generate the output's expected TapTweak. This has been measured to have a cost in the worst case (max length control block) of roughly twice a Schnorr verification. Because the hashing cost could be mitigated by caching midstate, the cost is 60 and not 100.; if the budget is brought below zero, script execution MUST fail and terminate immediately. * Let the output designated by be called ''triggerOut''. -* If the scriptPubKey of ''triggerOut'' is not a witness program of the same version and same tapleaf version as the currently executing script, script execution MUST fail and terminate immediately. +* If the scriptPubKey of ''triggerOut'' is not a version 1 witness program, script execution MUST fail and terminate immediately. * Let the script constructed by taking the and prefixing it with minimally-encoded data pushes of the leaf-update script data items be called the ''leaf-update-script''. ** Note: the leaf-update data items will be in the same order in the ''leaf-update-script'' as they appeared on the stack. * If the scriptPubKey of ''triggerOut'' does not match that of a taptree that is identical to that of the currently evaluated input, but with the leaf script substituted for ''leaf-update-script'', script execution when spending this output MUST fail and terminate immediately. From c2cec65937881131bcaa45b52de6e1fbce5433d5 Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Wed, 3 Jan 2024 15:33:50 -0500 Subject: [PATCH 28/31] fixup! rename `n-pushes` -> `push-count` --- bip-0345.mediawiki | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/bip-0345.mediawiki b/bip-0345.mediawiki index 73b265e5d..2bcf7bd4a 100644 --- a/bip-0345.mediawiki +++ b/bip-0345.mediawiki @@ -231,8 +231,8 @@ When evaluating OP_VAULT (OP_SUCCESS187, - -[ n leaf-update script data items ... ] + +[ leaf-update script data items ... ] @@ -243,12 +243,12 @@ where * is a minimally-encoded data push of a serialized script. In conjunction with the leaf-update data items, it dictates the tapleaf script in the output taptree that will replace the one currently executing. ** Otherwise, script execution MUST fail and terminate immediately. -* is an up to 4-byte CScriptNum-encoded number indicating how many leaf-update script items should be popped off the stack. '''Why only prepending with data pushes?''' Prepending the leaf-update-script-body with opcodes opens up the door to prepending OP_SUCCESSX opcodes, to name a single issue only, side-stepping the validation that was meant to be run by the committed script. +* is an up to 4-byte CScriptNum-encoded number indicating how many leaf-update script items should be popped off the stack. '''Why only prepending with data pushes?''' Prepending the leaf-update-script-body with opcodes opens up the door to prepending OP_SUCCESSX opcodes, to name a single issue only, side-stepping the validation that was meant to be run by the committed script. ** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. ** If this value is less than 0, script execution when spending this output MUST fail and terminate immediately. -** If there are fewer than 3 items following the items on the stack, script execution when spending this output MUST fail and terminate immediately. In other words, after popping , there must be at least 3 + items remaining on the stack. +** If there are fewer than 3 items following the items on the stack, script execution when spending this output MUST fail and terminate immediately. In other words, after popping , there must be at least 3 + items remaining on the stack. -* The following stack items are popped off the stack and prefixed as minimally-encoded push-data arguments to the to construct the expected tapleaf replacement script. +* The following stack items are popped off the stack and prefixed as minimally-encoded push-data arguments to the to construct the expected tapleaf replacement script. * is an up to 4-byte CScriptNum-encoded number indicating the index of the output which, in conjunction with an optional revault output, carries forward the value of this input, and has an identical taptree aside from the currently executing leaf. ** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. @@ -269,7 +269,7 @@ After the stack is parsed, the following validation checks are performed: * Decrement the per-script sigops budget (see [https://github.com/bitcoin/bips/blob/master/bip-0342.mediawiki#user-content-Resource_limits BIP-0342]) by 60'''Why is the sigops cost for OP_VAULT set to 60?''' To determine the validity of a trigger output, OP_VAULT must perform an EC multiplication and hashing proportional to the length of the control block in order to generate the output's expected TapTweak. This has been measured to have a cost in the worst case (max length control block) of roughly twice a Schnorr verification. Because the hashing cost could be mitigated by caching midstate, the cost is 60 and not 100.; if the budget is brought below zero, script execution MUST fail and terminate immediately. * Let the output designated by be called ''triggerOut''. * If the scriptPubKey of ''triggerOut'' is not a version 1 witness program, script execution MUST fail and terminate immediately. -* Let the script constructed by taking the and prefixing it with minimally-encoded data pushes of the leaf-update script data items be called the ''leaf-update-script''. +* Let the script constructed by taking the and prefixing it with minimally-encoded data pushes of the leaf-update script data items be called the ''leaf-update-script''. ** Note: the leaf-update data items will be in the same order in the ''leaf-update-script'' as they appeared on the stack. * If the scriptPubKey of ''triggerOut'' does not match that of a taptree that is identical to that of the currently evaluated input, but with the leaf script substituted for ''leaf-update-script'', script execution when spending this output MUST fail and terminate immediately. ** Note: the parity bit of the resulting taproot output is allowed to vary, so both values for the new output must be checked. From 327025b369ea5c1623e7695e4b7b79d4a79e733e Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Wed, 3 Jan 2024 16:11:50 -0500 Subject: [PATCH 29/31] fixup! misc. feedback from AJ and twhit223 --- bip-0345.mediawiki | 48 +++++++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/bip-0345.mediawiki b/bip-0345.mediawiki index 2bcf7bd4a..d57610b79 100644 --- a/bip-0345.mediawiki +++ b/bip-0345.mediawiki @@ -243,26 +243,27 @@ where * is a minimally-encoded data push of a serialized script. In conjunction with the leaf-update data items, it dictates the tapleaf script in the output taptree that will replace the one currently executing. ** Otherwise, script execution MUST fail and terminate immediately. -* is an up to 4-byte CScriptNum-encoded number indicating how many leaf-update script items should be popped off the stack. '''Why only prepending with data pushes?''' Prepending the leaf-update-script-body with opcodes opens up the door to prepending OP_SUCCESSX opcodes, to name a single issue only, side-stepping the validation that was meant to be run by the committed script. -** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. -** If this value is less than 0, script execution when spending this output MUST fail and terminate immediately. -** If there are fewer than 3 items following the items on the stack, script execution when spending this output MUST fail and terminate immediately. In other words, after popping , there must be at least 3 + items remaining on the stack. +* is an up to 4-byte minimally encoded CScriptNum indicating how many leaf-update script items should be popped off the stack. '''Why only prefix with data pushes?''' Prefixing the leaf-update-script-body with opcodes opens up the door to prefix OP_SUCCESSX opcodes, to name a single issue only, side-stepping the validation that was meant to be run by the committed script. +** If this value does not decode to a valid CScriptNum, script execution MUST fail and terminate immediately. +** If this value is less than 0, script execution MUST fail and terminate immediately. +** If there are fewer than 3 items following the items on the stack, script execution MUST fail and terminate immediately. In other words, after popping , there must be at least 3 + items remaining on the stack. * The following stack items are popped off the stack and prefixed as minimally-encoded push-data arguments to the to construct the expected tapleaf replacement script. -* is an up to 4-byte CScriptNum-encoded number indicating the index of the output which, in conjunction with an optional revault output, carries forward the value of this input, and has an identical taptree aside from the currently executing leaf. -** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. -** If this value is less than 0 or is greater than or equal to the number of outputs, script execution when spending this output MUST fail and terminate immediately. +* is an up to 4-byte minimally encoded CScriptNum indicating the index of the output which, in conjunction with an optional revault output, carries forward the value of this input, and has an identical taptree aside from the currently executing leaf. +** If this value does not decode to a valid CScriptNum, script execution MUST fail and terminate immediately. +** If this value is less than 0 or is greater than or equal to the number of outputs, script execution MUST fail and terminate immediately. -* is an up to 4-byte CScriptNum-encoded number optionally indicating the index of an output which, in conjunction with the trigger output, carries forward the value of this input, and has an identical scriptPubKey to the current input. -** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. -** If this value is greater than or equal to the number of outputs, script execution when spending this output MUST fail and terminate immediately. -** If this value is negative and not equal to -1, script execution when spending this output MUST fail and terminate immediately.'''Why is -1 the only allowable negative value for revault-vout-idx?''' A negative revault index indicates that no revault output exists; if this value were allowed to be any negative number, the witness could be malleated (and bloated) while a transaction is waiting for confirmation. +* is an up to 4-byte minimally encoded CScriptNum optionally indicating the index of an output which, in conjunction with the trigger output, carries forward the value of this input, and has an identical scriptPubKey to the current input. +** If this value does not decode to a valid CScriptNum, script execution MUST fail and terminate immediately. +** If this value is greater than or equal to the number of outputs, script execution MUST fail and terminate immediately. +** If this value is negative and not equal to -1, script execution MUST fail and terminate immediately.'''Why is -1 the only allowable negative value for revault-vout-idx?''' A negative revault index indicates that no revault output exists; if this value were allowed to be any negative number, the witness could be malleated (and bloated) while a transaction is waiting for confirmation. -* is an up to 7-byte CScriptNum-encoded number indicating the number of satoshis being revaulted. -** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. -** If this value is not greater than or equal to 0, script execution when spending this output MUST fail and terminate immediately. -** If this value is non-zero but is negative, script execution when spending this output MUST fail and terminate immediately. +* is an up to 7-byte minimally encoded CScriptNum indicating the number of satoshis being revaulted. +** If this value does not decode to a valid CScriptNum, script execution MUST fail and terminate immediately. +** If this value is not greater than or equal to 0, script execution MUST fail and terminate immediately. +** If this value is non-zero but is negative, script execution MUST fail and terminate immediately. +** If this value is zero but is not -1, script execution MUST fail and terminate immediately. After the stack is parsed, the following validation checks are performed: @@ -270,12 +271,11 @@ After the stack is parsed, the following validation checks are performed: * Let the output designated by be called ''triggerOut''. * If the scriptPubKey of ''triggerOut'' is not a version 1 witness program, script execution MUST fail and terminate immediately. * Let the script constructed by taking the and prefixing it with minimally-encoded data pushes of the leaf-update script data items be called the ''leaf-update-script''. -** Note: the leaf-update data items will be in the same order in the ''leaf-update-script'' as they appeared on the stack. -* If the scriptPubKey of ''triggerOut'' does not match that of a taptree that is identical to that of the currently evaluated input, but with the leaf script substituted for ''leaf-update-script'', script execution when spending this output MUST fail and terminate immediately. +* If the scriptPubKey of ''triggerOut'' does not match that of a taptree that is identical to that of the currently evaluated input, but with the leaf script substituted for ''leaf-update-script'', script execution MUST fail and terminate immediately. ** Note: the parity bit of the resulting taproot output is allowed to vary, so both values for the new output must be checked. * Let the output designated by (if the index value is non-negative) be called ''revaultOut''. -* If the scriptPubKey of ''revaultOut'' is not equal to the scriptPubKey of the input being spent, script execution when spending this output MUST fail and terminate immediately. -* Implemetation recommendation: if the sum of the amounts of ''triggerOut'' and ''revaultOut'' (if any) are not greater than or equal to the value of this input, script execution when spending this output SHOULD fail and terminate immediately. +* If the scriptPubKey of ''revaultOut'' is not equal to the scriptPubKey of the input being spent, script execution MUST fail and terminate immediately. +* Implementation recommendation: if the sum of the amounts of ''triggerOut'' and ''revaultOut'' (if any) are not greater than or equal to the value of this input, script execution SHOULD fail and terminate immediately. This ensures that (at a minimum) the vaulted value for this input is carried through. ** Amount checks are ultimately done with deferred checks, but this check can help short-circuit obviously invalid spends. * Queue a deferred check'''What is a deferred check and why does this proposal require them for correct script evaluation?''' A deferred check is a validation check that is executed only after all input scripts have been validated, and is based on aggregate information collected during each input's EvalScript run.

Currently, the validity of each input is (usually) checked concurrently across all inputs in a transaction. Because this proposal allows batching the spend of multiple vault inputs into a single recovery or withdrawal output, we need a mechanism to ensure that all expected values per output can be summed and then checked. This necessitates the introduction of an "aggregating" set of checks which can only be executed after each input's script is evaluated. Note that similar functionality would be required for batch input validation or cross-input signature aggregation.
that ensures the satoshis for this input's nValue minus are included within the output nValue found at . * Queue a deferred check that ensures satoshis, if non-zero, are included within the output's nValue found at . @@ -296,15 +296,15 @@ When evaluating OP_VAULT_RECOVER (OP_SUCCESS188, where * is a 32-byte data push. -** If this is not 32 bytes in length, script execution when spending this output MUST fail and terminate immediately. -* is an up to 4-byte CScriptNum-encoded number indicating the index of the recovery output. -** If this value does not decode to a valid CScriptNum, script execution when spending this output MUST fail and terminate immediately. -** If this value is less than 0 or is greater than or equal to the number of outputs, script execution when spending this output MUST fail and terminate immediately. +** If this is not 32 bytes in length, script execution MUST fail and terminate immediately. +* is an up to 4-byte minimally encoded CScriptNum indicating the index of the recovery output. +** If this value does not decode to a valid CScriptNum, script execution MUST fail and terminate immediately. +** If this value is less than 0 or is greater than or equal to the number of outputs, script execution MUST fail and terminate immediately. After the stack is parsed, the following validation checks are performed: * Let the output at index be called ''recoveryOut''. -* If the scriptPubKey of ''recoveryOut'' does not have a tagged hash equal to (tagged_hash("VaultRecoverySPK", recoveryOut.scriptPubKey) == recovery-sPK-hash, where tagged_hash() is from the [https://github.com/bitcoin/bips/blob/master/bip-0340/reference.py BIP-0340 reference code]), script execution when spending this output MUST fail and terminate immediately. +* If the scriptPubKey of ''recoveryOut'' does not have a tagged hash equal to (tagged_hash("VaultRecoverySPK", recoveryOut.scriptPubKey) == recovery-sPK-hash, where tagged_hash() is from the [https://github.com/bitcoin/bips/blob/master/bip-0340/reference.py BIP-0340 reference code]), script execution MUST fail and terminate immediately. ** Implementation recommendation: if ''recoveryOut'' does not have an nValue greater than or equal to this input's amount, the script SHOULD fail and terminate immediately. * Queue a deferred check that ensures the nValue of ''recoveryOut'' contains the entire nValue of this input.'''How do recovery transactions pay for fees?''' If the recovery is unauthorized, fees are attached either via CPFP with an ephemeral anchor or as inputs which are solely spent to fees (i.e. no change output). If the recovery is authorized, fees can be attached in any manner, e.g. unrelated inputs and outputs or CPFP via anchor. ** This deferred check could be characterized in terms of the pseudocode below as RecoveryCheck(, input_amount). From de9ef59307f5d94883eefd2c6691c67d358d915a Mon Sep 17 00:00:00 2001 From: James O'Beirne Date: Wed, 3 Jan 2024 16:12:17 -0500 Subject: [PATCH 30/31] fixup! remove unused diagram --- bip-0345/batch-sweep.drawio.png | Bin 62296 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 bip-0345/batch-sweep.drawio.png diff --git a/bip-0345/batch-sweep.drawio.png b/bip-0345/batch-sweep.drawio.png deleted file mode 100644 index 8f142545793e10484148d50abffc7066a4510c2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62296 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%0Df84U&UeU(b*=co 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
}q2Cf7sc+g>-iR9ziC6tq28_xtBz|^ttE5Zs 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 Date: Fri, 23 Feb 2024 15:15:32 -0500 Subject: [PATCH 31/31] BIP-0345: add copyright --- bip-0345.mediawiki | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bip-0345.mediawiki b/bip-0345.mediawiki index d57610b79..a6ead3158 100644 --- a/bip-0345.mediawiki +++ b/bip-0345.mediawiki @@ -26,6 +26,10 @@ an arbitrary destination, with the exception of a prespecified "recovery" path. At any time prior to final withdrawal, the coins can be spent to the recovery path. +=== Copyright === + +This document is licensed under the 3-clause BSD license. + === Motivation ===