主页 > imtoken钱包官方网站 > 浅析基于POW共识机制的比特币网络安全性

浅析基于POW共识机制的比特币网络安全性

imtoken钱包官方网站 2023-01-17 06:49:35

比特币的安全性是一个值得研究的大问题。就目前而言,比特币的安全性非常好,经过十年的运行,系统已经变得比哈尔芬尼接受中本聪的第一笔比特币支付时更加稳定。接受一无所知。对于各种可能的攻击形式,我们在这里只描述它们的目的、方法和比特币的应对策略。关于技术实现的细节,我们建议您参考一些更专业的书籍。

程晓勇 清华大学互联网产业研究院研究员

沈玉石 国家千人计划评审专家、清华大学互联网产业研究院研究员

黄景磊 清华大学金融协会会长

比特币的安全性是一个值得研究的大问题。就目前而言,比特币的安全性非常好,经过十年的运行,系统已经变得比哈尔芬尼接受中本聪的第一笔比特币支付时更加稳定。接受一无所知。对于各种可能的攻击形式,我们在这里只描述它们的目的、方法和比特币的应对策略。关于技术实现的细节,我们建议您参考一些更专业的书籍。

(1)双花

前面提到了双花攻击。总而言之,当攻击者没有绝对的算力时,其他矿工会因为激励机制而放弃双花交易及其区块,导致攻击者蒙受损失。在掌握了绝对算力之后,比特币中打包区块的过程并不是“赢者通吃”的过程,只是概率更高。当然,从概率的角度来看,保持较高的几率确实使双重交易成功(即使比特币接收者等待 6 个区块来支付商品或服务),但维持计算能力的成本太高。而当其他节点意识到攻击正在发生时,他们会因为安全性崩溃而放弃比特币系统,这将打击比特币的价值并减少双重支出的好处。追求利润的矿工不会那样做。

(2)女巫攻击

女巫攻击是指黑客恶意创建大量节点造成混乱,因为在比特币中女巫攻击只是创建自然身份,而比特币赋予每个自然身份相同的权利:贡献算力获得比特币,自由使用。创建更多的节点既不会增加计算能力,也不会赋予节点更大的特权,所以女巫攻击是徒劳的。此外,基于交易的分布式账本还避免了女巫攻击导致存储崩溃的情况。

(3)窃取比特币

比特币技术分析软件_比特币的安全性基于什么技术_比特币代币发放技术

只有当私钥泄露时才会发生盗窃,但这已经在比特币系统之外。毕竟,比特币使用自然身份作为节点,不能保证当用户受到威胁或诱骗泄露其私钥时,其真实的社会身份将得到验证。如果用户的私钥没有丢失,哈希函数的性质告诉我们,盗窃是不可能的。当然,拥有 SHA-256 并不能让我们高枕无忧。它也有可能被不断增长的计算能力打破,但至少需要一些时间。

(4)黑名单攻击

这是一种理论上的攻击方法。例如比特币的安全性基于什么技术,拥有全网0.01%算力的矿工声明他不会将地址A的交易输入区块,并且不会接受任何包含地址A交易的区块。有了这么小的计算能力似乎并没有改变其他节点的行为,让我们从概率的角度来考虑。如果另一个矿工命中一个包含A地址交易的区块,其区块下次被扩展的概率只有99.99%;并且如果它没有命中包含A地址的交易,如果它拥有一个区块被挖掘,那么被识别的概率将是100%。如果矿工进入A交易获得的交易手续费小于整个区块的收益乘以0.01%,他的理性选择是不将这笔交易放入区块,所以最终的 A 笔交易是真实的,没有矿工愿意闯入区块。A相当于被比特币列入黑名单,不能再使用比特币。不过这种攻击也有一个前提,就是A需要让绝大多数矿工知道这个想法,难度很大。另外,如果发生这样的攻击,也会损害比特币的安全,进而影响比特币的价值。对于依靠挖矿收入来支撑电费的矿工来说,这也是不可接受的。这种攻击还有一个前提,就是A需要让绝大多数矿工知道这个想法,难度很大。另外,如果发生这样的攻击,也会损害比特币的安全,进而影响比特币的价值。对于依靠挖矿收入来支撑电费的矿工来说,这也是不可接受的。这种攻击还有一个前提,就是A需要让绝大多数矿工知道这个想法,难度很大。另外,如果发生这样的攻击,也会损害比特币的安全,进而影响比特币的价值。对于依靠挖矿收入来支撑电费的矿工来说,这也是不可接受的。

(5)分叉攻击

有一定算力的人可以这样做,连续播放两个区块不发布,然后在第一个区块已经发布,第二个区块没有发布的时候直接发布两个区块,这样就发布了两个区块. 区块所在的链成为最长的链并被延长。第一个发布的块成为“孤块”并被丢弃。不过这个好处不大,概率很低。即使矿工拥有全网 10% 的算力,这样做的机会也只有 1%。在剩下的 99% 概率下,矿工要承担开采这两个区块的成本,这显然得不偿失。

(6)匿名性和透明度

我们常说比特币既匿名又透明,这似乎是一个矛盾。事实上,这是对比特币两个不同维度的写照。匿名是指自然身份和社会身份的分离,透明是指自然身份在比特币系统中的每一笔交易的来龙去脉都向所有节点公开。这是分散系统中的权衡。节点需要公开一部分隐私,让其他节点相信并愿意帮助它记录交易。这包括交易的对象、金额、时间和频率。从这些信息中,我们或许可以推断出隐藏在自然身份背后的真实身份,因此会有混币交易、零币、零纸币等增强匿名性的改进方案。在真实生活中,我们可能会将社会身份和交易细节暴露给特定的中心化机构,因此我们对他们完全可见;在比特币世界中,自然身份是可见的,但社会身份不是。匿名性和透明度都是比特币去中心化的特征。

(7)关于“双花”安全证明

事实上,我们并不想涉及太多的数学计算比特币的安全性基于什么技术,但我们认为这个关于“双花”的安全证明真的很重要。它说明虽然“双花”实际上是可能的,但在概率上是不可能的。如果读者真的对数字不感兴趣,请跳过这一部分。

如果只考虑最简单的情况,算力攻击可以抽象为以下问题:区块链系统中的诚实人添加一个诚实块,我们称之为“成功事件”,结果需要加1 ; 如果攻击者增加了一个我们称之为“失败事件”的假块,则需要 -1 的结果。由于攻击者需要重新锻造一个区块,因此可以假设他们本质上是少一个区块,目标是赶上添加区块的诚实节点,从而自己成为最长的链。这与“赌徒破产论”颇为相似。假设一个赌徒一开始欠了一定的钱,但可以无限期地掷下去,如果尝试次数不限,则可以计算出赌徒最终收支平衡的概率。

比特币技术分析软件_比特币代币发放技术_比特币的安全性基于什么技术

假设p是诚实节点成功打包下一个区块的概率;q 是攻击者成功打包下一个块的概率;qz 是攻击者在 z 个块后最终赶上诚实节点的概率。

假设 p > q(否则区块链中的诚实算力会小于攻击算力,这在正常系统中不会发生),那么随着 z 的增加,概率呈指数下降。由于概率对攻击者不利,如果攻击者在早期无法靠运气赶上诚实节点,那么未来的机会就很渺茫。

所以,现在让我们想得更远一点。对于收款人来说,一笔交易打包到一个新的区块后,需要多长时间才能确认付款人不能更改交易?假设付款人是攻击者,他希望收款人相信他已经付款,但他稍后会将钱转给自己。一般来说,如果这种支付方式无效,系统会提醒收款人,所以付款人希望来不及发出提醒,比如当收款人已经兑现了服务后再谈。

攻击过程通常是这样的:收款人为交易生成一对新的密钥,然后在付款人准备好签署付款之前发送公钥。这可以防止付款人提前准备一系列有效的区块和工作量证明,以便能够即时执行交易。一旦要提取的交易被发送,付款人也会悄悄地创建一个平行链分支(篡改之前的交易)。

将交易添加到区块后,接收方必须等待 z 个区块。他不知道攻击者创建了多个区块,但假设诚实区块创建时间是平均区块创建时间,那么攻击者的可能进程将遵循具有期望值的泊松分布。

为了计算攻击者从现在开始仍然能够赶上正常链的概率,我们将他可能进行的每个步骤的泊松密度乘以他在该步骤之后可能赶上正常节点的概率:

为了避免对分布中的无穷小项求和,公式可以简化为:

比特币代币发放技术_比特币技术分析软件_比特币的安全性基于什么技术

转换为 C 语言代码:

运行代码后,我们可以看到随着z的增加,概率随着z的增加呈指数下降:

q=0.1

z=0 和=1.0000000

z=1 总和=0.2045873

z=2 和=0.0509779

z=3 和=0.0131722

z=4 和=0.0034552

比特币代币发放技术_比特币的安全性基于什么技术_比特币技术分析软件

z=5 和=0.0009137

z=6 和=0.0002428

z=7 和=0.0000647

z=8 和=0.0000173

z=9 和=0.0000046

z=10 总和=0.0000012

q=0.3

z=0 和=1.0000000

z=1 总和=0.1773523

z=2 和=0.0416605

比特币的安全性基于什么技术_比特币技术分析软件_比特币代币发放技术

z=3 和=0.0101008

z=4 和=0.0024804

z=5 和=0.0006132

z=6 和=0.0001522

z=7 和=0.0000379

z=8 和=0.0000095

z=9 和=0.0000024

z=10 总和=0.0000006

如果攻击者攻击成功的概率是有限的

由此可以看出,在攻击者的算力占比很低的情况下,等待超过6个区块可以实现非常安全的保证。即使攻击者的算力比例增加到一定程度,通过增加交易确认后扩展的区块数量,也可以将双花的风险限制在很小的比例。