主页 > 下载imtoken钱包官方 > [41] 比特币通货膨胀漏洞和双重支出

[41] 比特币通货膨胀漏洞和双重支出

下载imtoken钱包官方 2023-08-03 05:11:12

[41] 比特币通货膨胀漏洞和双重支出

2018 年 9 月 18 日,Bitcoin Core 开发团队发布了比特币客户端 0.16.3 版本。 官博说明新版本修复了一个可能导致客户端程序崩溃的漏洞(CVE-2018-17144),强烈建议所有0.14.0~0.16.2用户立即升级。

808比特币创始人颜万卫 炮制比特币风险大_比特币不存在双花问题对吗_比特币存在的意义及价值

808比特币创始人颜万卫 炮制比特币风险大_比特币不存在双花问题对吗_比特币存在的意义及价值

Bitcoin Core 0.16.3更新通知(高亮背景为本文作者添加)

808比特币创始人颜万卫 炮制比特币风险大_比特币存在的意义及价值_比特币不存在双花问题对吗

利用这个DoS(denial of service,拒绝服务攻击)漏洞可以暂时瘫痪比特币网络的大部分节点,延迟出块时间,但攻击者不会获得直接收益,而且攻击成本也相当高,需要能量为了挖矿产生一个算力区块,放弃至少12.5 BTC的挖矿收益(目前价值8万多美元),生成一个特殊构造的区块才有效。 只要被攻击节点重启客户端并连接到非攻击节点,比特币网络就可以恢复运行。 一旦挖出一个有效的新区块,之前的攻击就失效了。

然而,事情并没有那么简单。

比特币存在的意义及价值_808比特币创始人颜万卫 炮制比特币风险大_比特币不存在双花问题对吗

0.16.3 版还修复了一个相关的、更严重的通货膨胀漏洞(也编号为 CVE-2018-17144)。 可用于增发BTC,突破2100万的总量上限,也可能导致比特币意外分叉。 这是比特币自诞生以来出现的第二个通货膨胀漏洞(上一个是八年前修复的整数溢出问题CVE-2010-5139)。 为了减少负面影响,Core开发团队特意低调处理。 在公告中,只提到了拒绝服务的后果。 同时,他们迅速督促各大矿池及相关公司更新软件。 通货膨胀脆弱性的细节在延迟两天后才向公众披露。 0.15.x 到 0.16.2 版本的客户端受此错误影响,将错误地接受包含双花交易的块。

所谓“双花”是指重复使用同一个余额(UTXO),不一定只用一次。 有多种形式的双花攻击。 最常提到的类型是跨块。 例如,A区块包含A到B的转账交易,但B区块包含A到C的冲突转账,即使A区块先被确认,在重组过程中也可能被B区块取代,成为过时的孤块块(见)。 这种跨区块双花攻击不会影响流通货币总量,因为主链在任何时候都可能只包含 A 和 B 区块之一。 比如你账户里还有100元,但是你同时给两个人写了100元的支票。 他们会被蒙在鼓里一段时间,但最终银行不可能兑现这两张支票。

比特币不存在双花问题对吗_808比特币创始人颜万卫 炮制比特币风险大_比特币存在的意义及价值

另一种罕见的双重支出形式是在同一区块的同一笔交易中多次引用同一未支出余额。 比如你原本有一个价值1个BTC的UTXO,在交易的输入部分重复填写,然后转入自己的另一个地址,就可以凭空构造一个价值2个BTC的UTXO,赚取1 BTC 白送(不考虑交易费)。 比如复制一张100元的优惠券,连同原版一起赠送,如果对方没有注意到序号,就会蒙受损失。 这种双花攻击在比特币历史上是闻所未闻的,因为一般情况下是不可能成功的,而且从第一个版本开始客户端就会检查交易输入,确保没有重复的UTXO。 然而,2017 年添加到比特币核心版本 0.14 的性能优化(PR 9049)忽略了代码路径并埋下了一个会导致程序崩溃的 DoS 漏洞。 后来在0.15版本的代码重构中,一个断言语句的一个小改动导致了一个大错误,使得UTXO在同一个交易中被复用。 (详细的代码分析可以参考Jimmy Song的文章@jimmysong/bitcoin-core-bug-cve-2018-17144-an-analysis-f80d9d373362。)

这个漏洞理论上可以破坏比特币的发行机制,造成无限制的通货膨胀。 乍一听很吓人,但实际上并不会造成致命危险。 因为首先,非矿工用户广播的双花交易会被其他节点果断拒绝,这是无害的。 攻击者必须是矿工并投入足够的算力才能挖出包含双花交易的无效区块。 全网广播后,0.14系列节点会崩溃; 旧版本和一些非核心客户端将拒绝确认该块; 版本 0.15 到 0.16.2 中的节点将接受它。 这种混乱的发生势必会立即引起社区的警觉和开发者的修补。 如果发生分叉,绝大部分节点肯定会放弃包含双花交易的链,使得攻击者高成本生成的币无处可去。

比特币存在的意义及价值_808比特币创始人颜万卫 炮制比特币风险大_比特币不存在双花问题对吗

从攻击者的角度来看,直接利用该漏洞进行双花攻击很可能会造成损失。 但他们可以利用高杠杆提前在衍生品市场做空比特币期货,发动攻击后引发市场恐慌性抛售,低点平仓套利(见 )。 这种操作也是有风险的,因为如果开发团队、矿工、社区配合默契,大概率可以快速修复错误,币价不一定会大幅下跌。 当然,还有一种可能是攻击者不在乎短期的经济利益,只想干掉比特币。 这种政治风险一直存在,而且有更便宜有效的攻击手段,所以大概率没有必要搞双花攻击。

总而言之比特币不存在双花问题对吗比特币不存在双花问题对吗,CVE-2018-17144是比特币近年来罕见的严重安全漏洞。 幸运的是,补丁和升级都很顺利,目前还没有人成功利用它。 再次提醒我们,软件开发要做到滴水不漏是多么的困难。 区块链软件具有极高的安全性要求。 即使是以保守着称的 Bitcoin Core 开发团队在代码审查和自动化测试方面仍有改进的空间。