主页 > 官网imtoken安卓版 > 警惕区块链:比特币的陷阱和风险

警惕区块链:比特币的陷阱和风险

官网imtoken安卓版 2023-02-19 07:34:46

编者按

近期,“比特币”投资频频出现在各大媒体平台。 管理的细微处存在巨大的安全隐患。

比特币背后的区块链技术使用加密来防止系统被篡改。 然而,作为一种加密货币,比特币显然不足以做到防篡改。 如何抵御攻击,避免双重支付,防止交易记录不一致导致的服务失败,需要多角度的安全论证。

相比之下,比特币使用区块链技术的时间最长。 从2009年到现在,除了程序bug,比特币没有经历过系统停止或数据回滚(rollback)。 但也有论文指出,由于比特币协议的设计和运行,极有可能出现不当支付、数据篡改、系统关闭等问题。

比特币存在什么样的漏洞,是否有改正计划,如何评估区块链的安全性? 让我们来看看与区块链安全相关的四项理论成果。

微小的算力攻击巨大的区块链——“Selfishmining(自私挖矿)”

比特币采用一种共识算法——“工作量证明”。 一般来说,只要恶意节点的算力没有达到整体的50%,区块链就无法被控制。 令人惊讶的是,即使算力低于50%,恶意节点也能“摇树”,控制区块链的生成。 这种方法就是“自私挖矿(selfish mining)”。

按照正常的挖矿方式,比特币的产生频率与节点算力成正比。 然而,使用自私挖矿策略,最终的结果将远远超过你拥有的计算资源。 从理论上讲,只要你拥有整体算力的41%,控制区块链生成的概率就高达50%。

比特币技术安全性差吗_比特币代币发放技术_比特币技术团队

自私节点发现新区块后,并不会立即公开广播,而是隐藏该区块的存在。 这样,当其他节点还在寻找原区块的时候,已经可以挖到下一个区块了。 如果你幸运地找到了一个新区块,那么就广播前一个区块的存在。

当其他人努力挖矿时,自私节点不断寻找新的区块,因此它们的链越来越长(图 8-1)。

比特币代币发放技术_比特币技术安全性差吗_比特币技术团队

图 8-1 自私挖矿

攻击者采用这种策略,拥有超过33%的整体算力,实际产生的区块远超这个数字。 也就是说,持有41%资源的节点能够出块的概率超过50%。

目前,我们还没有很好的解决自私挖矿问题。 我们必须认识到,控制区块链不一定要有一半以上的算力,更低的值是完全可行的。

“快付”比特币双重支付问题及对策

比特币的交易信息(transaction)以区块的形式记录,比特币支付需要经过比特币网络(区块链)的认可。 根据系统要求,从发送交易记录到获得权限平均需要10分钟。

另外,为了确认区块的合法性,在交易通过后,交易者需要等待至少5个区块连接。 一般情况下,从交易完成到确认需要1小时左右。

比特币代币发放技术_比特币技术团队_比特币技术安全性差吗

正常消费时,客户可能连10分钟都不愿意等,更别说1小时了,所以系统在一般交易中多采用“快捷支付”的方式。 店铺确认交易信息并验证数字签名后,不再确认是否存在重复支付,直接默认支付已完成。

对于快捷支付的漏洞,我们来看看具体的攻击方式。

付款人使用比特币(UTXO)在Fastpayment店铺进行支付(汇款),同时将等额款项汇入另一个账户(合作伙伴的账户或自己的其他账户),这样店铺确认的交易信息将失效。 在不消耗比特币的情况下获得商品或服务是“双重支付攻击”的一种表现。 由于这种攻击利用了比特币的交易传输协议漏洞,所以其成功率非常高。

攻击的成立需要两个先决条件。 一种是攻击者(付款人)可以直接向商店发送交易,另一种是通过“辅助节点”辅助攻击。

假设攻击者的交易信息为“Tv”,同时向辅助节点发送“Ta”交易请求。 辅助节点排除店铺周边节点群范围,直接向其他节点发送信息,“Ta”后来居上,较早传播。 收到交易“Tv”后,收到“Ta”消息的节点会作为不当交易取消,自然也就不会广播“Tv”。

与交易“Tv”相比,后发起的“Ta”被存储在区块中的概率更高,“Tv”交易无效(图8-2)。

比特币代币发放技术_比特币技术团队_比特币技术安全性差吗

图 8-2 辅助节点的双花供给

这种攻击的可怕之处在于,它不仅让商店遭受损失,而且对于其他节点来说,它们根本无法发现不当行为。

比特币代币发放技术_比特币技术团队_比特币技术安全性差吗

在目前的比特币系统中比特币技术安全性差吗,同时接收“Ta”和“Tv”的节点数量非常有限。 先接收“Ta”,则“Tv”失效; 先收到“Tv”,然后“Ta”失效,不会传播到其他节点,所以大多数节点无法获得双重支付的证据。

不当交易是证明账户非法的有力证据。 希望在评价管理中得到广泛报道和运用。 “Bitcoin-XT(由 Bitcoin Core 开发者 Gavin Andresen 开发,以提高区块可扩展性)”向账户所有者提供关于双重支付信息披露、评估管理方法修订的意见。

如果所有信息都采用中继方式上传,网络承载大量信息,这就是“DoS(拒绝服务)”攻击,可能导致系统瘫痪。 Bitcoin-XT 限制单个 UTXO 只能交易两次,以避免这种风险。

由于矿工们的意见不一,Bitcoin-XT至今未能扩容区块,也没有被纳入比特币系统。 因此,Fastpayment店铺在结算时,店铺需承担重复支付的风险。

比特币 DoS 攻击和对策

有报道称,恶意使用比特币的交易和区块协议可以延迟特定节点的信息传播,从而减慢系统的信息传递,甚至可能导致系统停止,或出现双重支付等不当行为。

比特币在传输交易和区块信息时,首先传输的不是数据信息,而是一个叫做“Inventory Message”的哈希值。 节点收到信息后,如果哈希值未知,则向原节点请求数据信息,完成信息传播(图8-3)。 如果有人恶意使用manifest消息,很可能造成信息传播的延迟。

攻击方式存在于区块和交易传输协议之间(图8-4)。

比特币技术团队_比特币技术安全性差吗_比特币代币发放技术

比特币技术团队_比特币代币发放技术_比特币技术安全性差吗

图 8-3 节点间的信息传递

比特币技术团队_比特币代币发放技术_比特币技术安全性差吗

图8-4 信息传输延时原理

攻击节点向目标节点发送消息,攻击节点只对节点的区块头和区块数据的请求回复“ping”。 在超时前的 20 分钟内,攻击节点享有目标节点的功能,延迟区块的传播。 比特币连接数上限为126个,但通常只使用20个左右,攻击节点据此占用目标节点的空闲资源,甚至不断抢夺资源。

攻击节点利用交易节点的传输漏洞。 发送列表消息后,也是直到超时(两分钟)才回复“ping”,从而大大延迟了交易信息的传输。 此外,列表消息由队列管理。 只要队列被占用,攻击者就可以在超时后控制信息的传输,甚至可以在任意时间点拒绝传输交易信息。

如果和其他攻击配合使用的话,这次攻击的效果会成倍增加,这也是延迟发货的可怕之处。

如果结合自私挖矿,攻击者可以用很少的算力控制整个区块链。 有观点认为,只要拥有不低于34%的资源,就可以控制50%以上的区块,进而称霸区块链。

此外,这种交付可以无限期延迟,从而允许攻击者发起双花攻击。 如果攻击者攻击所有节点,比特币的服务将完全瘫痪。 攻击所需的计算机功率并不重要,只要它每 20 分钟可以发送 600 KB 即可。

比特币代币发放技术_比特币技术团队_比特币技术安全性差吗

针对上述问题,比特币开发者也在考虑应对攻击的对策比特币技术安全性差吗,如放弃列表信息、向区块头发送信息、改变现有协议等; 通过IP地址过滤信息发件人; 通过随机选择来管理发件人。 ……前面的对策(BIP 130)已经写入比特币0.12.0版本。

区块链安全评估结果备受期待

对于很多加密协议来说,虽然协议的安全性在理论上是有保证的,但是由于安装和运行环境的影响,仍然可能存在危险。 相比之下,比特币属于前一阶段,它满足什么条件才算安全,具体标准还在研究中。 接下来,我们将从工作量证明(POW)区块链入手,介绍分析协议的研究成果。

严格来说,论文中提到的哈希链的构成方式与比特币哈希链的构成方式并不相同。 在评估区块链时,可以从“Common Prefix(公共前缀)属性”和“Chain Quality(链质量)属性”两个方面进行评估,分析“POW成功概率”,意义深远。

在 POW 型区块链中,假设诚实矿工遵守协议的成功概率为 α,不遵守协议的矿工成功概率为 β。 人们已经知道了α和β的值。 论文认为,人们可以具体评估满足一定条件后区块链不分叉的概率(Common Prefix属性)和诚实矿工生成的区块进入区块链的概率(Chain Quality属性)。 即不合规方成功出块等情况对区块链产生可量化影响的程度。

有趣的是,在自私挖矿的情况下,不合规矿工的成功概率 β 可能高于 1/3,而 ChainQuality 属性也处于较低水平。 这个结果看似理所当然,但实际上是数学模型证明的巨大突破。

当我们分析原理和理清资源,仔细分析比特币的实际使用后,我们会发现其通信和数据管理的细微处存在着巨大的安全隐患。 作者希望未来更多的研究关注区块链的脆弱性和安全性,构建更加严谨的协议体系。

本文节选自东方出版社《酷刑区块链》一书

比特币技术安全性差吗_比特币技术团队_比特币代币发放技术

要想在未来的区块链时代取胜,不仅要吃透区块链的创新本质,更要清醒地把握前进道路上的困难和挑战。