首页 / 币资讯

PoW共识机制的51%算力攻击(pow共识算法)

发布时间:2022-12-16 10:43:26
欧意最新版本

欧意最新版本

欧意最新版本app是一款安全、稳定、可靠的数字货币交易平台。

APP下载  官网地址

很多朋友在找帮企客时都会咨询PoW共识机制的51%算力攻击和pow共识算法,这说明有一部分人对这个问题不太了解,您了解吗?那么什么是pow共识算法?接下来就由小编带大家详细了解一下吧!

区块链中的工作量证明机制(POW)是什么?

比特币挖矿采用工作量证明机制,是什么意思呢?

工作量证明(Proof of Work,简称POW)是共识机制的一种,可简单理解为一份证明,证明你做过一定量的工作,即我通过查看工作结果就能知道你完成了指定量的工作。

比特币挖矿采用的就是工作量证明机制,比特币网络通过调节计算难度,保证每次竞争记账都需要全网矿工计算约10分钟,才能算出一个满足条件的结果。该结果即“区块头”里包含的随机数。

工作量证明是指,如果矿工找到了一个满足条件的结果,我们便可以认为全网矿工完成了指定难度系数的工作量。获得记账权的几率取决于矿工工作量占比全网的比例,如果占比30%,那么获得记账权的几率也是30%。所以提高工作量占比才能提高竞争力,才能获得更多新诞生的比特币!

以太坊技术系列-以太坊共识机制

区块链的特点之一是去中心化。也就是节点会分布在各个地方组成分布式系统。各个节点需要对1个问题达成一致,理想情况下,只需要同步状态即可。

如上图所示 B节点将a=1= a=2的状态同步给  ACDE四个节点,这时系统中状态变为a=2, 但如果其中有恶意节点 AE 收到通知后把a=1=a=3修改为错误的节点,这个时候大家的状态就不一致了,此时需要共识机制使系统中得到1个唯一正确的状态。

如上面说到分布式系统存在恶意节点导致系统中状态不一致的情况有1个比较著名的虚拟问题-拜占庭将军问题。

拜占庭将军问题是指,N个将军去攻打一座城堡,如果大于一定数量的将军同时进攻则可以攻打成功,如果小于则进攻失败。将军中可能存在叛徒。

这个时候有2种情况

1.如果2个叛徒都在BCDE中,那么共识算法需要让其余2个将军听从A的正确决策进攻城堡。

2.如果A是1个叛徒,共识算法需要让BCDE中剩余的3个忠诚将军保持一致。

这个问题有很多种解法,大家有兴趣可以自行查阅(推荐学习PBFT),我们重点来看看以太坊中目前正在使用的Nakamoto 共识和将要使用的 Casper Friendly Finality Gadget共识是如何解决拜占庭将军问题的。

说到Nakamoto共识和Casper Friendly Finality Gadget共识可能大家不太熟悉,但他们的部分组成应该都比较熟悉-POW(工作量证明)和POS(权益证明)。

POW或POS称之为Sybil抗性机制,为什么需要Sybil抗性机制呢,刚刚我们说到拜占庭将军问题,应该很容易看出恶意节点越多,达成正确共识的难度也就越大,Sybil攻击就是指1个攻击者可以伪装出大量节点来进行攻击,Sybil抗性是指抵御这种攻击能力。

POW通过让矿工或验证者投入算力,POS通过让验证者质押以太坊,如果攻击者要伪装多个节点攻击则必将投入大量的算力或资产,会导致攻击成本高于收益。在以太坊中保障的安全性是除非攻击者拿到整个系统51%算力或资产否则不可能进攻成功。

在解决完Sybil攻击后,通过选取系统中的最长链作为大家达成共识的链。

很多人平时为了简化将pow和pos认为是共识机制,这不够准确,但也说明了其重要作用,我们接下来分析pow和pos。

通过hash不可逆的特性,要求各个矿工不停地计算出某个值的hash符合某一特征,比如前多少位是000000,由于这个过程只能依赖不停的试错计算hash,所以是工作量证明。计算完成后其他节点验证的值符合hash特征非常容易验证。验证通过则成为成为合法区块(不一定是共识区块,需要在最长链中)。

以太坊中的挖矿算法用到2个数据集,1个小数据集cache,1个大数据集DAG。这2个数据集会随着区块链中区块增多慢慢变大,初始大小cache为16M DAG为1G。

我们先来看这2个数据集的生成过程

cache生成规则为有1个种子随机数seed,cache中第1个元素对seed取hash,后面数组中每个元素都是前1个元素取hash获得。

DAG生成规则为 找到cache中对应的元素后 根据元素中的值计算出下次要寻找的下标,循环256次后获得cache中最终需要的元素值进行hash计算得到DAG中元素的值。

然后我们再看看矿工如何进行挖矿以及轻节点如何验证

矿工挖矿的过程为,选择Nonce值映射到DAG中的1个item,通过item中的值计算出下次要找的下标,循环64次,得到最终item,将item中的值hash计算得到结果,结果和target比较,符合条件

则证明挖到区块,如果不符合则更换nonce继续挖矿。矿工在挖矿过程中需要将1G的DAG读取到内存中。

轻节点验证过程和矿工挖矿过程基本一致,

将块头里面的Nonce值映射到DAG中的1个item,然后通过cache数组计算出该item的值,通过item中的值计算出下次要找的下标,循环64次,得到最终item,将item中的值hash计算得到结果,结果和target比较,符合条件则验证通过。轻节点在验证过程中不需要将1G的DAG读取到内存中。每次用到DAG的item值都使用cache进行计算。

以太坊为什么需要这2个不同大小的数组进行辅助hash运算呢,直接进行hash运算会有什么问题?

如果只是进行重复计算会导致挖矿设备专业化,减少去中心化程度。因为我们日常使用的计算机内存和计算力是都需要的,如果挖矿只需要hash运算,挖矿设备则会设计地拥有超高算力,但对内存可以缩小到很小甚至没有。所以我们选用1G的大内存增加对内存访问的频率,增加挖矿设备对内存访问需求,从而更接近于我们日常使用的计算机。

我们看看在Nakamoto共识是如何解决拜占庭将军问题的。首先看看区块链中的拜占庭将军问题是什么?

区块链中需要达成一致的是哪条链为主链,虽然采用了最长链原则,但由于分叉问题,还是会带来拜占庭将军问题。

本来以太坊pow目标是抵抗51%以下的攻击,但如上图如果恶意节点沿着自己挖出的区块不断挖矿,由于主链上有分叉存在,恶意节点不需要达到51%算力就可以超过主链进而成为新的主链,为此以太坊使用了ghost协议给上图中的B1和C1也分配出块奖励,尽快合并到主链中,这样主链长度(按照合并后的总长度算,长度只是抽象概念,以太坊中按照区块权重累加)还是大于恶意节点自己挖矿的。

网络中的用户通过质押一定数量的以太坊成为验证者。每次系统从这些验证者从随机选择出区块创建者,其余验证者去验证创建出的区块是否合法。验证者会获得出块奖励,没有被选中的区块不进行验证则会被扣除一定质押币,如果进行错误验证则会被扣除全部质押币。

如上图,权益证明在每隔一定区块的地方设置一个检查点,对前面的区块进行验证,2/3验证者通过则验证通过,验证通过则该区块所在链成为最长合法链(不能被回滚)。

我们简化地只分析了权益证明本身,在以太坊中权益证明较为复杂的点在于和分片机制结合在一起时的运行流程,这部分会在后面单独将分片机制的一篇文章中详述。

本篇文章主要讨论了共识机制是解决分布式系统中的拜占庭将军问题,以及分析了以太坊中的共识机制一般包括最长链选择和一种sybil抗性机制(pow或pos)。重点分析了pow和pos的流程以及设计思想。后续将开始重点讨论智能合约的部分。

矿机没有算力了怎么办?

如果矿机没有算力或者算力骤减,建议先检查矿机,如果是网速或者硬件可以维修的,可以送与卖方维修,以尽快速度将矿机复工。若是不可抗拒的物理伤害,那矿友们只能忍痛处理减少损失,然后再购买相应的矿机。

算力是网币网络处理能力的度量单位。即为计算机计算哈希函数输出的速度。比特币网络必须为了安全目的而进行密集的数学和加密相关操作。 例如,当网络达到10Th/s的哈希率时,意味着它可以每秒进行10万亿次计算。

安全性威胁是区块链迄今为止所面临的最重要的问题。其中,基于PoW 共识过程的区块链主要面临的是51% 攻击问题,即节点通过掌握全网超过51%的算力,就有能力成功篡改和伪造区块链数据。

算力是衡量在一定的网络消耗下生成新块的单位的总计算能力。每个硬币的单个区块链随生成新的交易块所需的时间而变化。

算力为大数据的发展提供坚实的基础保障,大数据的爆发式增长,给现有算力提出了巨大挑战。互联网时代的大数据高速积累,全球数据总量几何式增长,现有的计算能力已经不能满足需求。

算力计算收益是什么?

计算基金收益无法精确计算,只能估算,也没有公式可以套用基金涨跌目前只能参考基金网站的估值,但估值经常会有误差,有时误差还较大。

安全性威胁是区块链迄今为止所面临的最重要的问题。其中,基于PoW 共识过程的区块链主要面临的是51% 攻击问题,即节点通过掌握全网超过51%的算力就有能力成功篡改和伪造区块链数据。

以比特币为例,据统计中国大型矿池的算力已占全网总算力的60%以上,理论上这些矿池可以通过合作实施51%攻击。

区块链相关:

早期的比特币区块链采用高度依赖节点算力的工作量证明(Proof of work, PoW) 机制来保证比特币网络分布式记账的一致性。随着区块链技术的发展和各种竞争币的相继涌现,研究者提出多种不依赖算力而能够达成共识的机制,例如点点币首创的权益证明(Proof of stake,PoS) 共识和比特股创的授权股份证明机制(Delegated proof of stake,DPOS) 共识机制等。

比特币区块链系统的安全性和不可篡改性是由PoW 共识机制的强大算力所保证的,任何对于区块数据的攻击或篡改都必须重新计算该区块以及其后所有区块的SHA256难题,并且计算速度必须使得伪造链长度超过主链。

这种攻击难度导致的成本将远超其收益。据估计,截止到2016年1月,比特币区块链的算力已经达到800 000 000 Gh/s,即每秒进行8*10^18次运算,超过全球Top500 超级计算机的算力总和。

比特币现金会发生51%算力攻击吗

比特币现金不会发生51%算力攻击。51%算力攻击理论上是存在的,但实际上,很难行得通。原因如下:目前,还没有单个矿工能占到BCC全网的50%以上;51%攻击是一种技术活,操作起来难度大;51%攻击的成本和收益不对称,51%攻击会导致交易双花,但交易平台大部分都已经实行了严格的实名认证机制,无法进行及时的变现;一旦有矿工有能力发动51%攻击,其它大区块支持者会把算力切到BCC上,阻止51%攻击的发生;51%攻击会造成网络暂时的混论,但不是致命的,还会让攻击者变得声名狼藉。

Decred:一场链上治理实验

Decred的起源要追溯到两个时间点:2013年4月Bitcointalk论坛上发布了一篇晦涩的帖子,2013年5月一篇博客文章介绍了比特币全节点实现的替代方案,被称为btcd。后来这两位幕后发帖人很快联手创建出了Decred——一种内置治理系统的加密货币。除了链上治理系统之外,Decred还混合了PoW和PoS共识机制。

2013年4月3日,一位名为TradeFortress的Bitcointalk用户发布了一个主题为“想创造一个能真正做出改变的山寨币吗?”的帖子。另一位化名tacotime的用户在帖子中表示他对开发山寨币很感兴趣,但“只是需要有时间编码的人。”

四天后,tacotime在Bitcointalk论坛上开始了一个名为Memcoin2(一种混合PoW和PoS系统的加密货币)的项目开发。伴随着他的Bitcointalk帖子发布,Adam Mackenzie发表了一份白皮书,解释此系统是“通过参与式投票让货币资源的掌控以民主的形式交至用户手中。”该系统为Decred的发展奠定了基础。

大约在同一时间,开发者兼企业家Jacob Yocom-Piatt正在开发btcd,这是比特币全节点实现的最初替代方案,部分由比特币创始人中本聪开发。

Yocom-Piatt是Conformal Systems的首席执行官兼创始人,Conformal Systems是一家专注于隐私和安全解决方案的开源软件工程公司,Conformal Systems团队多年来一直密切关注着比特币。2013年1月该团队决定将比特币移植到自己的操作系统中。在移植过程中,Conformal Systems遇到了一些麻烦,决定开发比特币替代品,所以该团队继续开发btcd。2013年10月,Conform Systems公发了btcd测试。Btcd后来更名为BTCSUITE。

2013年底,tacotime与另一位Bitcointalk用户“_ingsoc”共同讨论Memcoin2(MC2)项目(曾短暂更名为Netcoin)的发展和成长。随后_ingsoc与Conformal Systems联络讨论MC2项目。

2014年2月,tacotime发布了一篇帖子,宣布Conformal Systems已决定支持MC2的开发。tacotime还探讨了代币销售或预挖矿的可能性,以资助MC2的未来发展。Conformal Systems不久后便更名为Company 0,并与tacotime合作开发MC2,不久后该项目更名为Decred。

随着Company 0和tacotime致力于Decred的开发,Yocom-Piatt也继续致力于他的比特币全节点实现——btcsuite。在与比特币社区合作的两年半时间里,Yocom-Piatt注意到他曾在2015年的两篇博文“比特币面临的最大挑战”和“比特币迭代”中表达了对比特币生态系统的治理结构、资金和“利益冲突”的担忧。他强调了开发团队和矿工之间的冲突以及导致内斗的扩展性讨论。他还发布了Decred定位帖子。

2015年12月12日,Decred作为一种“开放的、进步的、自筹资金的加密货币问世,并将社区治理系统集成到其区块链中。”Company 0还宣布了代币总供应量为2100万枚,预挖矿8%,其中4%即41.5万美元投入到协议开发中。为了防止在项目早期阶段权力过于集中,Company 0宣布将剩余4%以免费空投的形式发放给早期社区成员。2015年12月15日至2016年1月18日,Decred向近3000名参与者空投了84万枚Decred代币。大约在这个时候,tacotime发布了最后一个关于Decred的公开帖子,随后与一些人开发了隐私币项目Monero,就消失匿迹了。

2016年2月8日,Decred主网、Decred宪法(constitution)正式上线。宪法为Decred及其社区制定了一套规则和指导原则。

自推出其主网以来,Decred缓慢攀升至CoinMarketCap排行榜,它经历过网络哈希算力的大幅增强,也看到过选民(stakers)的权益稳步增加,还推出了其网络提案系统politeia。该项目最近还宣布,它正在将基金的控制权移交给利益相关者,巩固其对社区治理的信念。

Decred试图解决的问题

(1)纯POW和POS系统的弱点

Decred的工作量证明(PoW) 权益证明(PoS)的混合共识机制试图解决纯PoW和PoS系统中的一些缺陷。

在纯PoW系统中,网络的安全性依赖于超过50%的矿工必须是诚实的这个事实。如果这个事实被打破,恶意参与者可以双花交易,审查交易,并发起其他攻击,使网络不可靠。加密生态系统最近遭受了51%的攻击,以太网经典、Verge和比特币黄金等网络均受其影响。

此外,PoW系统没有正式结构来解决共识争议。因此,在这些网络上发生共识失败和链分裂是十分有可能的。

PoS系统有两个主要缺陷:无利害关系理论和远程攻击理论。

1)PoS系统中的选民受到激励,在网络的多个分叉上进行投票,因为验证多个分叉在技术上不需要花费任何成本。这是因为在PoW系统中,能量消耗是一场零和游戏——在多个分叉上分散算力并不能提高PoW矿工挖块的几率。这是无关紧要的理论。

2)除此之外还有远程攻击理论。在这种攻击下,拥有网络1%选票的恶意参与者会创建一个并行分叉,扩展分叉,并生成比主链更多的块。如果选择此攻击者的1%选票来验证交易,攻击者会选择在其扩展分叉上构建区块,使主链上的所有区块无效。

(2)筹资

自开源软件社区出现以来,资金开源软件(OSS)开发一直是人们关注的主要问题。OSS深受公地悲剧和搭便车效应的困扰。由于OSS是免费使用的,用户就没有动力付钱给开发人员来维护软件。因此,许多OSS开发人员(在本例中指的是区块链开发人员)很难在保持可持续生活方式的同时,花时间去免费开发OSS软件。由于大量资金被锁定在区块链网络中,软件维护不善可能导致这些资金的流失。

Decred的工作原理

(1)共识

Decred利用混合PoW和PoS的共识模型,即传统PoW矿工创建区块,PoS矿工验证区块。Decred区块奖励从每块大约31.19 DCR开始,每6144块按100/101系数减产一次,区块奖励在以下三个实体中分配:

60%分配给PoW矿工,30%分配给验证区块的PoS选民,10%分配给Decred基金。

为了在网络上投票,PoS矿工参与由Decred核心开发人员开发的新型投票系统。

(2)投票

Decred的投票系统本质上是一个彩票系统,用于决定哪些选民可以验证区块。每个选票所有者都有权投票并验证区块。为了维持选民稳定的补贴回报,Decred制定了一个针对40960选票总量的权益难度算法。据Decred称,“如果票池规模变得过大或过小,会极大地改变利益相关者和网络之间的社会契约,破坏投票平均时间、过期选票百分比和回报率的可预测性。”为维持这一目标票池大小,如果票池增大,票价必须上涨;如果票池减小,票价必须降低。

要“购买”选票,用户需要竞标。如果他们的出价被接受,其DCR就会被锁定,并获得选票作为回报。在PoW矿工挖完一个区块之后,随机选择五张选票来验证该区块中包含的交易——这五张选票中的其中三张必须达成共识,才能验证区块并将其放入Decred区块链中。验证完区块的选票会被销毁,选票拥有者也会收到选票原始价格加上验证区块的区块奖励。每增加一个新区块到Decred区块链,就会产生20张新选票,用于新一轮竞标。这些选票以公开拍卖形式出售。新选票需要经过256个区块的成熟期才有资格被选中投票。如果某张选票没有被选中,或者选中了但在40960个区块后没有进行投票,那么其拥有者会收到DCR退款,而且没有奖励。据Decred称,“鉴于目标池大小为40960张选票,任何给定的门票都有99.5%的机会在142天内投票。”

PoW矿工创建区块,PoS矿工投票决定是否接受或拒绝区块,一旦某个区块被接受,必须有五分之三的选票验证区块为有效,该区块中包含的投票和交易由下一个PoW矿工打包。与传统的PoW模型相比,Decred的混合模型增加了额外的安全层。攻击者不仅要获得PoW的51%哈希算力,还得达到总投票数的37%。

此外,由于选票竞价的公开拍卖性质,攻击者购买选票所产生的需求将提高选票价格,从而使攻击成本越来越高。

(3)治理及Politeia

Decred的核心提案是自治协议和货币网络。其治理体系的一个重要组成部分是共识规则投票过程。为了在Decred中实现软件更改,该协议实施两个阶段投票过程:每2016个区块(约1周)一个权益版本间隔(SVI)和每8064个区块(约4周)一个规则变更间隔(RCI)。

投票过程的第一步是满足网络升级的门槛,对于工作量证明POW,1000个最近的区块中至少有95%必须有最新的区块版本。对于权益证明POS,单个SVI中75%的已投投票必须有最新的投票版本。

投票过程的第二步是投票。根据Decred,有五种可能的投票结果:

1)如果RCI内所有选票中有超过90%是“弃权”选票,议案投票仍然在下一个RCI中有效。

2)如果RCI内的所有非弃权票未达到75%是“是”或“否”多数门槛,议案投票仍然在下一个RCI有效。

3)如果RCI内所有非弃权票的75%支持议案(“是”),则议案被视为锁定,共识变更将激活在投票通过后8064个区块。

4)如果RCI内所有非弃权票的75%都反对议案(“否”),议案就会失败,并且共识变更将不会启动。

5)如果议案在其投票期限内没有达到75%的多数投票,议案将过期,并且共识变更将不会启动。

为了Decred软件的非共识变更治理,Decred开发团队于2018年10月推出了Politeia提案系统。据Decred称,“Politeia是一个用于存储版本化和时间戳的链下数据的系统。Politeia创建了一个公开提案和投票记录,包括Decred的资金使用、政策决定、争议解决等。

关于Politeia的提案流程如下:

用户支付0.1 DCR费用提交提案管理员筛选提案,删除非法或垃圾邮件内容提案在Politeia上公开显示2016个区块后投票窗口打开拥有选票的任何钱包都可以投票表决区块是否有效至少有20%选票投票表决提案是否通过至少有60%选票投票表决提案通过如果投票通过,则获得Decred基金,执行交易如果投票被拒绝,用户可以再试一次。

结论

Decred是混合共识模型和链上治理的一项有趣实验。尽管没有网络对该模型进行过大规模测试,但Decred的混合模型比传统的PoW和PoS系统更为安全。Decred的治理模型使用户能够在他们拥有既得利益的网络的未来发展中拥有发言权。虽然尚不清楚混合共识模型和链上治理是否是正确实现,但Decred的这项实验值得关注。

Decred名字的来源于Company 0和tacotime之间的头脑风暴会议。他们在讨论“去中心化信贷”时脑中浮现了这个名字。

这种模型的弱点是十分主观的。纯PoW网络的一些成员认为,非结构化的治理系统会导致更小的攻击向量。

目前已经有多种方案来解决这类问题,包括罚款和时间戳。

想要获取更多区块链项目资讯,欢迎点击 本文出处 了解更多哦~

相信经过帮企客小编对PoW共识机制的51%算力攻击和pow共识算法的介绍,你对PoW共识机制的51%算力攻击了解更加地透彻了,感谢你对我们地支持与关注!

免责声明:本文为转载,非本网原创内容,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。

如有疑问请发送邮件至:bangqikeconnect@gmail.com