火星链 火星链
Ctrl+D收藏火星链
首页 > Uniswap > 正文

BIP:比特币软分叉激活史(上)

作者:

时间:1900/1/1 0:00:00

软分叉激活指的是一个比特币全节点开始增设一个或多个共识规则的瞬间。这种转换会在节点之间产生协调风险。所以开发者多年来花了相当多的力气来创建和提升软分叉激活机制,以尽可能降低出问题的概率。

软分叉使得网络整体上可以切换到使用新的共识规则,即使不是每个节点都接受这些规则。不过,每当不同的节点使用不同的共识规则,就有某个区块被一些接受但被另一些节点拒绝的风险(它违反了非统一的规则),导致共识错误(链分裂),最终可能出现资金的多重支付以及比特币系统安全性信誉的损失。这是激活机制尝试缓解的主要问题。

新的软分叉激活提议通常被设计成避免之前的软分叉已经遭遇的问题,所以本节尝试概述之前比较著名的软分叉激活尝试。

这个已知最早的软分叉在 Bitcoin 软件 0.1.6 版本中实现(发布于 2009 年 11 月),硬编码在区块高度 31000 处激活,实际发生时间是 2009 年 11 月 22 日。在大部分开发工作都是由中本聪完成时,这种硬编码激活高度的方法至少还用在了另一个早期的软分叉中。

在中本聪离开比特币之后,合并到比特币的第一个软分叉代码是?BIP12?OP_EVAL。本来计划是使用一个?硬编码时间?和在支持变更的算力占比少于 50% 时手动干预的方法。引自 BIP12:

安永:意识到QuadrigaCX冷钱包中比特币被转移,仍未找到相关私钥:12月21日消息,QuadrigaCX破产受托人安永会计师事务所周二发布声明称,已经“意识到”QuadrigaCX冷钱包里的比特币(BTC)被转移至其它地址。上周末,超过100枚与QuadrigaCX相关的比特币从冷钱包中转出,总价值约为170万美元,其中许多资金已经流入不同的钱包。

安永证实并没有发起这些交易。声明中称,安永公司以法院指定监管人和破产受托人的身份与管理层和其他人合作,以收回转移至这些钱包中的比特币。然而尽管进行了详细调查,仍无法找到与冷钱包相关的私钥。

作为Quadriga债权人律师的加拿大律师事务所Miller Thomson也在网站发表了类似声明。安永于2019年2月初首次宣布,它“无意中”将比特币发送至其无法访问的Quadriga冷钱包,失去了对这些比特币的控制。此后这些地址的比特币一直处于冻结状态,直到上周五,所有五个地址的比特币在美国东部时间下午6点52分至7点14分之间流出。(CoinDesk)[2022/12/21 21:57:19]

[...] 新的客户端和矿工将解释 OP_EVAL 为一个 no-op,直至 2012 年 2 月 1 日。在此之前,支持的矿工可以将 “OP_EVAL” 字样写在自己生产的区块里面,方便我们计算支持的算力占比。如果在 2012 年1 月 15 日之前没有超过 50% 的算力支持这一变更,激活将会推迟,直到有超过 50% 的算力支持 OP_EVAL(如果显然大部分算力都不会激活这一升级,则升级会被取消)。

比特币自托管公司Casa完成2100万美元融资,Acrew Capital领投:5月10日消息,比特币自托管公司Casa完成2100万美元融资,Acrew Capital领投,Positive Sum Ventures、Naval Ravikant等参投。同时,Casa推出Casa API,将帮助Swan Bitcoin和Choice IRA等企业在批准贷款或进行退休投资时验证其客户的财务身份。Casa将使用该笔资金为签名钱包产品添加金融身份功能。Casa于2021年2月完成400万美元种子轮融资。(CoinDesk)[2022/5/10 3:04:45]

手动干预可能是有必要的,因为?OP_EVAL?在激活代码合并之后、推出之前,被发现有一个严重的漏洞。虽然这个 bug 被修复了,一些开发者担心这个强大的新操作码可能会有其它问题,所以人们就放弃了这次软分叉。

人们提出了多个替代?OP_EVAL?的简化提案(见 BIP13/16、17、18?和?19,还有其它想法)。而 BIP13/16 支付给脚本哈希值(P2SH)获得了大部分开发者的支持。P2SH 使用了 跟 OP_EVAL 一样的激活机制。最初计划的激活时间是 2012 年 3 月 1 日,但到了 2 月 15 开票日,在最后 100 个区块中,只有不到 50% 的矿工表示他们会在 3 月之前执行 BIP16 规则。这导致了一个 “相当长的替代链”(链分裂),因为一些仍然在 3 月 1 日实行 BIP16 的 矿工拒绝了来自多数矿工(不实行新规则)的区块。第二次开票日是在几千个区块之后,3 月 15 日;这一次它获得了足够多的支持。所以开发者在 3 月 30 放出了?Bitcoin 0.6.0,将激活时间设在了 4 月 1 日。

MicroStrategy CEO:Tether消失不会影响比特币:有关Tether(USDT)的不确定性使一些市场参与者感到担忧,MicroStrategy首席执行官Michael Saylor对此表示,由于企业投资比特币的实际运作方式,Tether“完全无关紧要”。他补充称,Tether在大计划中无足轻重,“没有人在使用Tether”。Saylor称,Tether只是一个“成功的FUD(恐惧、不确定和怀疑)”,如果被去除,不会影响比特币。他认为,稳定币主要存在于需要进行结算的离岸交易所,而企业投资者用他们已拥有的美元储备来购买比特币。(Beincrypto)[2021/1/26 13:29:22]

P2SH 的激活完成后,人们发现可能出现多个交易共用同一个 txid 的情况。就其自身而言,这个 bug 只会导致尝试利用这个 bug 的用户的资金被销毁,但它也可以结合比特币的默克尔树构建中的一些奇怪的行为打破节点间的共识(见?CVE-2012-2459)。第一个修复这个漏洞的软分叉是 BIP30,它简单将使用同一个 txid 的后发交易标记为无效交易,如果前发交易还有没花费的输出的话。这个修复在开发团队中没有争议,因此在包含 P2SH 激活参数的?Bitcoin 0.6.0?中以硬编码时间的方式激活。

比特币狂热引全球黑客垂涎 韩国交易所再遭攻击破产:目前比特币市场前景正在蓬勃发展,希望从中牟利的犯罪行为也日渐增加。近期,比特币价格的大规模增长也推动了对加密数字货币的大肆宣传。几天前名韩国Youbit交易所遭到黑客攻击提交一份破产申请,现在全球虚拟货币的安全问题出现红灯。[2017/12/25]

虽然 BIP30 修复了 txid 重合导致的短期问题,比特币开发者知道这只是权宜之计,软件没理由每次收到一笔新交易都要搜索带有未花费输出的所有交易的索引。所以第二个解决方案开始提上日程,旨在消除让 txid 复制变成实用攻击向量的弱点。这就是?BIP34。对这一次更新,开发者使用了 类似于 BIP16 P2SH 的矿工投票方法,但这一次,准备好支持 EIP34 的矿工需要增加他们的区块的?nVersion?的数值。更重要的是,开发者自动化了比特币代码中新规则的实行,因此他们可以在等待矿工升级期间发布支持软分叉的软件。这个来自 BIP34 的规则用一个叫做?IsSUperMajority()?的函数实现了。最开始它包含了一个单项的激活阈值,达到了便开始实行 BIP34 的新共识规则:

韩国最大的地下商场620家商店支持比特币支付:韩国最大地下购物中心Goto商城与一家当地虚拟货币交易所达成协议,将使得其620家商户接受比特币。[2017/11/27]

75% 规则:如果最新的 1000 个区块中有 75% 是 vision2 或者更大的,就开始拒绝无效的 vision 2 区块

在这个功能的开发期间,人们决定加入第二项激活阈值,决定性地修复使用 BIP34 所要解决的问题:

95% 规则:如果最新的 1000 个区块中有 950 个都是 vision2 乃至更大的,就拒绝所有 vision 1 区块

拒绝旧版本区块这个规则的一个已知问题是,除非所有矿工都已经升级,每天都可能有几个无效区块产生(如果恰好是 95% 的矿工激活,每个区块都有 5% 的几率是无效的)。已经升级并执行 ISM 规则的节点会拒绝这些区块,但更老的节点和轻客户端不知道这个规则,所以会接受这些区块。这会让网络比普通情形更加依赖于不在无效块后面继续挖矿的矿工。

在 2014 年 9 月,Pieter Wuille?发现?OpenSSL 在处理不同平台的 DER 编码签名时存在分歧。这个可以被利用来,比如说,创建一个在 Linux 操作系统上可以通过验证但在 windows 操作系统上会失败的区块 —— 攻击者定点创造链分裂。Wuille 和其他几位开发者秘密开发了补丁,并致力于以软分叉激活,保证所有签名都使用同样的格式。BIP66 就是为这件事创建的,在公开宣传中,是作为移除比特币对 OpenSSL 依赖的一步(这个目标是真实的,最终在 2019 年得以实现)。在 BIP66 获得用户和开发者充分多的支持(许多人甚至不知道这个安全漏洞存在)之后,它使用与 BIP34 相同的 ISM 激活机制,将区块版本号递增为 v3,并要求达到 95% 的阈值后就拒绝 v2 和更低版本号的区块。

75% 的阈值在 2015 年 7 月 4 日达到,而 95% 阈值在区块高度 363725 处达成,所有的节点都运行?Bitcoin Core v0.10.0?乃至更高版本的软件(或者兼容的实现),开始实行新规则。不过,在区块高度 363731 处,一个没升级的矿工生产了一个没包含当前版本号的区块,在新的 ISM 激活规则下不是有效区块。但其他矿工都在这个无效区块后面继续生产,最终产生了一条带有 6 个无效区块的链。这意味着未升级的节点和许多轻客户端都会将第一个无效区块中的 96 笔交易当成积累了 6 个区块确认的交易,即使它们在当时还没获得过哪怕一个有效区块的确认。最终,开发者只能联系矿池运营者,让他们手动重启软件并回到有效的链上。这样的事件在第二天又重演了一次,使一些交易获得了三次无效的确认。幸运的是,这六个和三个区块中的所有常规交易,后来都打包到了有效区块内,意味着普通用户没有损失。

最初位于 363731 高度的无效区块就是仅仅因为使用旧的版本号而变成无效的、预计每天都有可能出现的约 5% 区块之一。而下一个区块是未升级矿工挖出的概率也是 5%,所以连续两个区块都是版本号取消区块的概率是 0.25%。给定 95% 的矿工都已升级,连续 6 个区块都是版本号无效区块的概率是 0.000002% —— 但罪魁祸首还不是极端坏运气。没有考虑到的是矿工可能会做 “无验证挖矿”,也就是矿工在收到一个新区块之后,不加验证,直接在后面继续生产,这样可以提高一点效率。虽然无验证挖矿软件理论上很容易就能处理无效区块版本号,这个功能在当时挖掘那五个区块的矿工所用的软件中还没有实现。最终,足够多的矿工升级了他们的无验证挖矿软件,或者升级了他们的节点,而 BIP66 激活相关的意外链分裂就此绝迹。

为了应对这些导致?2015 年 7 月出现分叉的问题,开发者加倍努力减少对无验证验证挖矿的需求,成果如?BIP152?压缩区块的中继以及?FIBRE?软件。开发者也开始思考一种更好的激活机制,也就是后面会提到的 BIP9 协议。

BIP66 严格 DER 软分叉之前,就有人提出要用软分叉为比特币增加一个新的操作码?OP_CHECKLOCKTIMEVERIFY?(CLTV),但因为修复 OpenSSL 漏洞而推迟了。这就体现了 ISM 机制使用递增版本号的另一个弱点 —— 一个矿工如果发出信号支持最新的提议(vision n)也就隐含地表示了支持之前所有的提议(如 vision n-1)。这就限制了使用 ISM 同时协调多个升级的能力。

不过,尽管 BIP 66 激活时出了一些问题,ISM 被再一次用到了推迟的?BIP65?的激活中。这一次就没有再出问题了。

标签:比特币BIPVALIP340亿比特币能提现吗bipt币合法VALASIP3价格

Uniswap热门资讯
NFT:金色DeFi日报 | Uniswap上线路由优化方案以降低交易成本

DeFi数据1.DeFi总市值:1290.4亿美元 DeFi总市值数据来源:Coingecko2.过去24小时去中心化交易所的交易量:37.

1900/1/1 0:00:00
区块链:央行温信祥:非法资金转移向非法币化转变 具体路径曝光

近日,人民银行支付结算司司长温信祥在“第十届中国支付清算论坛”上表示,支付行业正面临虚拟货币所带来的挑战.

1900/1/1 0:00:00
ITA:Vitalik:以太坊 ERC-4337 提案“将为钱包的设计打开创意之门”

tl;drVitalik Buterin 等人提议在无需对以太坊共识层协议作出更改的情况下引入“账户抽象”;如果 ERC-4337 成功实现,这将“为钱包的设计打开创意之门”.

1900/1/1 0:00:00
比特币:金色观察 | 孙正义卷土重来:押注NFT与加密支付

谈及软银及其创办人孙正义,人们并不陌生。孙正义领导的日本软银集团在全球进行了大量的投资,对雅虎和阿里巴巴的投资更是让他名声大噪。然而,神话缔造者也有败走麦城的时候.

1900/1/1 0:00:00
INU:Web3.0这个故事 要从《大教堂与市集》讲起

《The Cathedral and the Bazaar》(大教堂与市集)被誉为开源运动的「圣杯」,是作者 Eric Steven Raymond 所撰写的软件工程方法论.

1900/1/1 0:00:00
HER:过中秋来虎符抽盲盒 神秘大奖等您来领

人间良时总有亲朋美酒,共赏风月、音好花开。山水万重亦能锦书遥寄,天涯此时、月圆人安。值此中秋佳节,虎符特别推出“过中秋来虎符抽盲盒”系列活动,无论新老用户,参与活动即可获取盲盒抽取次数,神秘大奖.

1900/1/1 0:00:00