主页 > imtoken官方版下载手机版 > 问我,问我社区,问我学院,专注于软硬件开发、测试和运维平台技术文章分享

问我,问我社区,问我学院,专注于软硬件开发、测试和运维平台技术文章分享

imtoken官方版下载手机版 2023-05-12 07:37:57

不管是工作量证明的PoW,权益证明的PoS,还是委托权益证明的DPoS,只要是在共识问题上,理论上都无法避免51%的攻击。 攻击者通过51%的可逆区块控制主网,造成双花。 本文将详细介绍PoW机制、51%攻击流程、安全解决方案。

背景知识

区块链作为一个去中心化的分布式公共数据存储系统,没有中央管理机构进行管理,而是由分布式节点使用密码学协议共同维护,每个节点维护整个系统。 账本的一致性必须通过底层的共识协议来保证。 区块链在不同的现实场景中有不同的实际用途,例如公有链、私有链和联盟链。 不同链使用的共识算法也不同,比如比特币使用的PoW共识和以太坊使用的PoW共识。 ,EOS采用DPoS共识,不同的共识算法涉及的安全性不同。

本文将详细介绍比特币和以太坊使用的 PoW 共识协议中的攻击风险。

PoW 共识机制

首先我们来看看什么是 PoW 共识协议。

从去中心化账本系统的角度来看,每个加入系统的节点都必须保存一个完整的账本,但是每个节点不能同时记账,因为节点处于不同的环境,接收的信息不同,所以需要有共识到达哪个节点有记账权。 比特币和以太坊区块链通过竞争记账解决了去中心化记账系统的一致性问题,即通过各节点的算力即“算力”来竞争记账权的机制。 记账权的过程就是“挖矿”。

但是,在去中心化的系统中,谁有权利决定竞争的结果呢? 比特币和以太坊区块链系统通过称为工作量证明 (PoW) 的共识机制工作。

PoW(Proof of Work),即“工作量证明”。 简单来说,PoW 是一种证明工作端已经完成了一定工作量的证明。 工作端需要做一定的难度才能得到一个结果,验证者通过结果检查工作端是否做了相应的工作。

疯狂比特币挖矿机概念股_案例分析题疯狂的比特币_比特币解的是什么题

在通过工作量证明共识的挖矿行为中,需要遵循三个规则:

例如,给定字符串“blockchain”,我们给出的工作量需求是,在这个字符串之后可以串联一个叫做nonce的整型值字符串,对串联后的字符串进行SHA256哈希运算,如果得到的哈希结果(表示为十六进制)以几个0开头,验证通过。 为了达到本次工作量证明的目的,我们需要不断递增nonce值,并对得到的新字符串进行SHA256哈希运算。

Hash(上一个Hash的值, 交易记录信息集合) = 29329385BNDH749Hash(上一个Hash的值, 交易记录信息集合, 随机数nonce) = 000029329385BNDH749

例如比特币中区块高度为512884的区块的Hash为:

000000000000000000188d44fd53064469b17c3590a0c4df8e90626d11e25a69

通过记账产生这个区块的工作量证明是16**18次哈希计算,计算量非常大。

51%攻击

简单介绍了通过记账和PoW打包区块的简单原理之后,回到我们的问题,什么是51%攻击,什么是双花攻击?

疯狂比特币挖矿机概念股_比特币解的是什么题_案例分析题疯狂的比特币

双花攻击,简单来说就是指通过多种支付方式发起一种代币的攻击,即同一种货币被多次花费。 发起双花攻击的方式有很多种,包括以下几种形式:

也就是说,如果攻击者掌握了全网50%以上的算力,就可以通过51%攻击实现双花。

51%攻击实施双花

这里我们只分析51%的攻击过程。

51%攻击,也称为多数攻击。 这种攻击是通过控制网络算力实现双花。 如果攻击者控制了全网50%以上的算力,他就可以在他控制算力的时间内反向出块,进行反向交易,实现双花。

在PoW共识协议中,区块链系统允许多条分叉链同时存在,每条链都可以声明自己是正确的,但区块链的设计理念中有一个最长效的原则:“无论在什么时候点,最长的链被认为是工作最多的主链。”

下面简单模拟一下51%攻击的过程:

如果有这样的攻击者,它故意将第一笔交易广播给一半网络,将第二笔交易广播给另一半网络,然后两边的两个矿工几乎同时获得记账权,各自记账的区块广播给所有人。 这时候你可以选择任何一本账本。 这时,原来的统一账本出现了分叉案例分析题疯狂的比特币,如下图所示:

案例分析题疯狂的比特币_比特币解的是什么题_疯狂比特币挖矿机概念股

账本分叉

接下来,如果下一个矿工选择在A的基础上继续记账,A分支会比B分支长。 根据区块链的规则,最长的分支将被认可,短的分支将被放弃。 会返回一个,只有一个交易有效,如下图:

更长链

此时A分行审核通过,相应的交易确认。 如果攻击者得到产品,他立即变身为矿工并获得连续两个记账权,然后将两个区块添加到B分支,如下图所示:

增加两个block

因此分支 B 成为批准的分支。 此时分支A被废弃,分支A中的事务不再建立。 攻击者在A分行的支付币种再次有效,但攻击者已经拿到了商品,至此成功完成了一次双花攻击。 .

问题是,当B支落后的时候,现实中想要强行超越A支是非常困难的,成功的概率很低。 很多,他追上来只是时间问题。 这就是上面提到的“51%攻击”。

比特币黄金51%攻击案例分析

比特币解的是什么题_疯狂比特币挖矿机概念股_案例分析题疯狂的比特币

在区块链的现实世界中,因51%攻击而导致的双花事件屡见不鲜。

比如比特币黄金(BTG币)的双花问题就是51%攻击。 攻击过程如下:

攻击者控制着比特币黄金网络超过 51% 的计算能力。 在控制算力期间,他在交易所向自己的钱包发送一定数量的BTG。 我们将此分支命名为分支 A。

同时,他将这些BTG发送到自己控制的另一个钱包中。 我们将这个分支命名为 B。

在分支 A 的交易被确认后,攻击者立即出售 BTG 以获取现金。 此时分支A成为主链。

然后,攻击者在B分支上挖矿,由于控制了51%以上的算力,攻击者获得记账权的概率很高,所以B分支的长度很快就超过了主链(即分支长度A),则B分支成为主链,A分支上的交易回滚,将数据恢复到上次正确的状态位置。

也就是说,分支A恢复到攻击者发起第一笔交易前的状态,攻击者兑换成现金的BTG又回到了自己手中。

实施攻击

比特币解的是什么题_案例分析题疯狂的比特币_疯狂比特币挖矿机概念股

最后,攻击者将这些BTG发送到自己的另一个钱包中。 如此一来,攻击者依靠51%以上的算力控制,实现了同一个token的“双花”。

根据本次攻击的区块链数据报告,攻击者成功逆转了22个区块。 此次攻击涉及的Bitcoin Gold地址已收到超过388,200个BTG。 假设所有这些交易都与双花有关,攻击者可能从交易所窃取了价值高达 1860 万美元的资金,参与攻击的比特币黄金记录如下图所示:

攻击者完成

除了Bitcoin Gold的双花问题,还有很多由51%攻击引起的双花攻击案例:

说说最近以太坊经典ETC的51%攻击。 据区块链安全情报显示,某地址以0x3ccc8f74开头的私有矿池算力出现较大波动。 这个私有矿池的算力目前占据了整个ETC。 63%的网络算力。 也就是说,矿池目前控制着ETC网络的大部分算力,这是51%攻击的先决条件。 本次攻击分析见coinbase文章。

文章称,1 月 5 日检测到第一次双花攻击,随后又发现了 8 次双花攻击,共涉及 88500 个 ETC(约合 46 万美元),但文章并未说明此次双花攻击的目标-spend 攻击是谁,谁发起了这次双花攻击。

总结

从以往的51%攻击案例来看,一旦51%攻击在实际场景中成为成熟的攻击手段,各条公链都需要小心了。 虽然通过51%攻击的代价很大案例分析题疯狂的比特币,但是小币种公链网络呢? 而且,就算没有超过50%的算力,也有成功的机会,只是概率很低。

不管是工作量证明的PoW,权益证明的PoS,还是委托权益证明的DPoS,只要是在共识问题上,理论上都无法避免51%攻击的情况,并且有可能是不同共识机制实现的各种其他问题,而熊市这段时间,算力下降,币价暴跌,主网相对更脆弱,更容易受到51%攻击问题。

51%攻击的解决方案主要有以下几种: