Published on: 2015-11-03T05:32:18+00:00
A strategy for the safe use of Bitcoin involves creating an informational BIP (Bitcoin Improvement Proposal). The guidelines for this proposal include increasing transaction version numbers when possible, considering transactions with unknown/large version numbers as unsafe to use with locktime, and providing reasonable notice before implementing changes. Non-opt-in changes should only be made to protect the network's integrity. Transactions that can be validated without overburdening the network are considered safe to use, even if they are non-standard. However, an OP_CAT script that requires terabytes of RAM to validate is not considered "reasonable." While these guidelines have generally been well-received, there may be disagreements over what constitutes "protecting the integrity of the network" and "reasonable notice. "Gavin Andresen shared his opinion on the guidelines, agreeing with them but noting potential disagreements over what constitutes "reasonable notice" and "protects the integrity of the network." He suggested that if Bitcoin were perfect, any valid transaction would remain valid until spent regardless of protocol changes. However, there are cases where this guarantee cannot be met, and it is difficult to determine if these cases pose a real problem in practice. To address these issues, he proposed implementing non-pathological backward compatibility and treating unhandled cases as bugs until triggered.On November 1, 2015, Tier Nolan discussed guidelines for Bitcoin transaction version numbers. According to the guidelines, version numbers will be increased when possible, but transactions with unknown or large version numbers should not be used with locktime. Non-opt-in changes will only be made to protect the network's integrity, and reasonable notice must be given before implementing any changes. Locked transactions that can be validated without burdening the network are considered safe, even if they are non-standard. However, an OP_CAT script requiring terabytes of RAM to validate is deemed unreasonable. Gavin Andresen responded positively to these guidelines but acknowledged potential disagreements over "reasonable notice. "In a Bitcoin-dev mailing list, Tier Nolan suggested giving at least one year's notice to prevent people from losing their money. It was also noted that bitcoin nodes can validate blocks going back to the genesis block, preserving old consensus rules in current code bases. While validating input scripts according to past consensus rules is feasible, handling output may be more challenging. It was proposed that if every consensus rule change had been accompanied by a version number bump, old versions could have been phased out without invalidating signed-but-unbroadcast transactions.The term "locked transaction" may refer to a P2SH output. Justus Ranvier raised concerns about OP_CAT scripts in the UTXO set and the possibility of locked transactions paying to such scripts with lost private keys, potentially making outputs unspendable. There were discussions on preventing rule changes that permanently disable spendability of outputs and the question of who should decide Bitcoin usage standards. Miners were identified as the decision-makers, not developers. Additionally, the question of how close Bitcoin developers want to sail towards being administrators of a virtual currency was posed.The threshold of reasonableness for OP_CAT scripts, which require terabytes of RAM to validate, was discussed in a Bitcoin-dev thread. Concerns were raised about the presence of such scripts in the UTXO set, worth approximately $5 billion. The need to justify not changing the meaning of someone else's outputs and the role of Bitcoin developers as administrators of a virtual currency were debated. It was highlighted that miners have the power to collectively vote on disabling specific UTXOs and changing acceptance rules.Rusty Russell emphasized the importance of clear notification and non-standard transaction invalidation in the future. He suggested that surpassing the benchmark of "reasonable certainty" would involve adding redundancies like OP_CHECKSIG and widespread notification of change. Gavin Andresen raised questions about the requirement of validating one-megabyte transactions under new rules, expressing concern about the potential confiscation of funds in cases where expensive-to-validate transactions with lockTime exist. The benchmark for "reasonable certainty" was proposed as a transaction that would never have been generated by any known software.The author questioned the definition of "short-term changes to the Bitcoin protocol" as a moderation rule and raised the question of whether any one-megabyte transaction valid under existing rules should also be valid under new rules. Arguments were presented regarding expensive-to-validate transactions with lockTime in the future and the unlikelihood of such transactions existing. It was suggested that the requirement should only apply to valid 100,000-byte transactions under old consensus rules. Gavin Andresen implemented BIP101/Bitcoin XT with support for any "non-attack" 1MB transaction.
Updated on: 2023-08-01T16:47:10.879812+00:00