比特币技术笔记(6)安全性

至此,一个基于大家互相遵守规则的比特币网络已经定义完毕。上文已经讨论,比特币的有效性依赖非对称加密的保障。

1.   51%攻击

1.1.   双重支付问题

在假设非对称加密难以破解的情况下,比特币的最大的风险就是双重支付的预防。但是,只要所有的计算节点都遵守既定规则,比特币网络将会非常稳定、有效的运行。那么对于故意造成双重支付的恶意攻击,比特币网络是否有足够的能力容错呢?

事实上区块链并不能100%杜绝双重支付。假设有一个攻击者希望使用比特币进行网络购物,同时利用双重支付撤回资金,需要做的是:先将自己有效的比特币支付给收款方A,收款方等待该笔交易被纳入到新的区块链中后,向攻击者寄送商品。待攻击者收货后,立即将已经使用的比特币重新支付给自己的另一个账户。这笔支付显然是无效的,因为网络中的大部分节点不会认可这笔交易。此时攻击者只能使用其他手段(网络渗透手段),控制比特币网络中超过51%的计算节点认可这笔新交易(通过创建新区块的方式认可),这就称为51%攻击。

1.2.  51%攻击与矿池

51%攻击的关键是控制比特币网络中的算力,而这并非没有可能。在比特币的挖矿网络中,有一种称为『矿池』的合作形式:大量计算节点分摊挖矿任务,共享挖矿收益。

由于成功的区块创建是小概率的随机事件,对任何一个节点而言,成功地创建区块的可能性微乎其微。为了能够获得稳定的收益,部分计算节点开展合作计算,形成『矿池』,来提高成功率,同时分摊区块激励。

当矿池形成相当的规模,聚集了比特币网络中超过51%的节点,这个矿池就会对现有的比特币网络的可靠性造成威胁。因此比特币网络中各大矿池的算力是监控其安全性的重要指标。

但需要注意的是,51%攻击只能影响未来的区块(交易),而几乎不能改变过去已经经过多次确认的区块(交易)。

1.3.  交易确认

作为比特币的收款方,为避免遭到『双重支付』和『51%攻击』的欺诈,最有效的手段是确保交易经过了多次区块确认。通常推荐等待超过6个区块之后再确认交易。

 

2.   高交易费与确认时间

一般一个区块需要10分钟时间产生,那么一个稳妥的交易确认需要等待近1个小时。因此在实际交易中使用比特币时,商家一般需要等待1小时来确认收款并发货。

比特币的每个区块只能包含不超过1Mb的数据,这限制了每次区块能够确认的交易数量。当未确认的交易数量远超过这一数量时,矿工会优先选择手续费更高的的交易进行确认。

随着比特币交易量逐渐增加,比特币的交易费用也在急剧增加。那些交易费过低的交易,可能很长时间都得不到确认,甚至永远也不能被验证。

如果遇到交易因为交易费过低而无法被验证的状况,可以采用的解决方案是利用『双重支付』,重新使用更高的交易费发起交易,但这一行为不被大多数比特币钱包所支持(毕竟这一行为违反规定)。另一个解决方案是收款人使用未确认的资金发起一笔给自己的交易,附带上更高的交易费用。矿工为了确认这笔高费率交易,必须连带确认其前置交易。

3.   遗失无法追回的私钥

在比特币网络中,私钥代表了比特币的所有权。泄漏私钥就意味着放弃这个私钥所关联的所有比特币。而且由于区块链去中心化的原因,这笔资金盗用无法向任何机构或个人申诉,因为这个账簿无法撤回,也无法篡改。

而且由于比特币的匿名性,这笔资金的去向无法追踪。因此个人比特币钱包的私钥可能是比特币网络中最为脆弱的部位。通过社会工程学手段盗取他人私钥,是对比特币网络最有效的攻击方法。

此外,如果任何一个人比特币钱包的私钥丢失,就意味着此钱包中的所有比特币消失于世。事实上这件事情一直在发生,也就意味着比特币不仅总量有限,而且还是逐渐递减的。这进一步加剧了比特币的通货紧缩。

4.   量子计算和LBC的威胁

比特币的另一个基础是非对称加密。这一技术在目前而言是几乎难以破解的,但随着量子计算的发展,比特币的安全性极有可能瓦解。但在目前看来还为时尚早。

除此以外,针对比特币的破解项目还包括Large Bitcoin Collider[1]。该项目试图将破解比特币的巨大工作量分摊给大量的电脑,由它们协作完成对比特币的破解。但该破解的计算量达到了2的160次方,目前看来破解的可能性也微乎其微。

尽管如此,我们仍需要随时关注密码学的最新进展,以确保比特币的技术还足够安全。

[1] https://lbc.cryptoguru.org/about

标签:

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据