文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

区块链的共识算法,你学会了吗?

2024-11-29 23:54

关注

在区块链中,共识机制用于保证网络上的所有节点都同意网络的当前状态和交易的真实性,这对于维护区块链的安全性和完整性至关重要,图1展示了区块链共识过程的基础模型。不同的区块链平台使用不同的算法,例如POW、POS或POB等,以在网络上的节点之间达成共识。一个好的共识算法可以保持区块链网络的活跃,为整个网络提供源源不断的有效算力,而设计不佳的算法则可能导致整个网络在受到攻击时很容易瘫痪。共识算法可以分为:非拜占庭容错算法与拜占庭容错算法,基于DAG和混合算法,在本次报告中主要介绍拜占庭容错算法。

图1 区块链共识过程的基础模型

拜占庭容错算法(Byzantine Fault Tolerance,BFT)是一类分布式系统中用于处理节点故障和恶意行为的算法。该算法的目标是确保在存在节点错误或恶意行为的情况下,系统仍能够达成一致的共识。BFT的概念起源于拜占庭将军问题,其机制的目的是通过一种集体决策过程来防范系统故障,该过程考虑了正确节点和故障节点的输入,旨在最小化故障节点的影响。本报告主要介绍了pBFT、POW、POS、POB、POC、POA、DPOS共识算法。

1、Practical Byzantine fault‑tolerant (pBFT)

实用拜占庭容错算法 (pBFT) 是 Barbara Liskov 和 Miguel Castro 在 1999年提出的一种共识算法[1],解决了原始拜占庭容错算法效率不高的问题,将算法复杂度由指数级降低到多项式级,使得拜占庭容错算法在实际系统应用中变得可行。  

pBFT可以在保证活性和安全性的前提下提供(n-1)/3的容错性, 其中 n 为节点总数,即只要恶意节点的最大数量小于或等于系统中所有节点的三分之一,pBFT 系统就可以正常运行。在启用 pBFT 的系统中,节点按顺序排序,其中一个节点为主节点,其他节点为辅节点。主节点在每次视图期间都会发生更改,并且如果经过了预定义的时间而没有主节点向辅节点广播请求,则可以通过视图更改协议替换主节点。

pBFT共识分为五个阶段,如图2所示,其中C为发送请求端,0123为服务端,3为宕机的服务端,具体步骤如下:

请求阶段(request): 请求端C发送请求到主节点,这里主节点是0;

预准备阶段(pre-prepare):服务端0收到C的请求后进行广播,扩散至服务端123;

准备阶段(prepare): 服务端123收到后记录并再次广播,1->023,2->013,3因为宕机无法广播;

提交阶段(commit): 服务端0123节点在Prepare阶段,若收到超过一定数量的相同请求,则进入Commit阶段,广播Commit请求;

回复(reply): 0123节点在Commit阶段,若收到超过一定数量的相同请求,则对C进行反馈。

图2 PBFT 算法流程


pBFT首次提出在异步网络环境下使用状态机副本复制协议,该算法可以工作在异步环境中,并且通过优化在早期算法的基础上把响应性能提升了一个数量级以上。但该算法仅仅适用于permissioned systems 且通信复杂度使得系统性能随着网络规模的增加而下降。

2、Proof of work (PoW)

图片

图3 POW算法流程


PoW的优点是完全去中心化 ,节点自由进出;只要破坏者算力不超过网络总算力的50%,交易状态就能达成一致。PoW 的缺点是挖矿造成大量资源浪费;矿池算力高度集中;达成共识周期较长(每秒最多7笔交易);还存在自私挖矿攻击的风险。

3、Proof of stake (PoS)

PoS 共识算法因其节能特性而被认为是 PoW 有前途的替代方案。PoS 由系统中具有最高权益而非最高算力的节点获得记账权[3]。相对于PoW中 Nonce 字段的大搜索空间而言, PoS 将搜索空间限制在一个计算量可接受的范围; 除此外,PoS 中还引入了“币龄”作为权益,即:

图片

竞争出块记账前,拥有权益的节点将自己的权益放入PoS机制中,同时身份变为验证者,PoS机制根据验证者下注的多少,选出一个记账者进行出块记账。选择算法综合使用候选者的股权(持有的加密货币数量)和其他因素(如币龄和随机化),以确保网络上所有节点之间的公平性。其中一个因素是币龄,它是候选节点成为验证者的时间。节点担任验证者的时间越长,被选为记账者的机会就越大。另一个因素是随机块选择,其中验证器是根据最低哈希值和最高权益的组合来选择的。具有这些因素的最佳加权组合的节点成为新的记账者。如果选出的记账者在一段时间内没有记账,PoS机制重新选择记账节点,当出块完成,开始进入下一轮的记账。

PoS缩短了共识达成的时间,降低了PoW机制的资源浪费。但是破坏者对网络攻击成本低,存在“无利害关系“(Nothing at stake)”攻击问题,且共识受少数富裕账户支配,缺乏公正性。

图4 POS算法流程

4、Proof of burn (PoB)

在 "烧毁证明"(PoB)中,验证者通过 "烧毁 "货币或将其发送到一个永远无法取回的地址来表示自己愿意为了长期投资而承受短期的损失,以及获得在某个随机选择程序系统上进行挖矿的终生特权[4]。这一过程用于确定哪些验证者能够挖掘系统中的下一个区块。验证者可以使用本地社区的货币或比特币等替代链的货币,以增加被选中进行区块挖掘的机会。矿工烧掉的货币越多,被系统选中开采下一个区块的机会就越大。随着新区块的挖出,被烧毁币的能量会略有减少,从而产生一个通缩过程,即货币的总量会随着时间的推移而减少,从而有可能增加其价值。相比之下,数量随时间增加的加密货币往往会贬值。

PoB更环保,因为它并不强调硬件的功率或数量,货币销毁会永久减少被销毁的加密货币的供应,从而导致稀缺性和资产价值增加。虽然在硬件方面,PoB不需要像Pow那样多的资源,但它会破坏通过计算创建的硬币,这也是一种浪费。PoB中,由于销毁是最终的结果,没有任何保证可以收回烧毁的货币的全部价值,这增加了用户的风险。

5、Proof of capacity (PoC)

容量证明(PoC)是一种新的挖矿方法,目前在加密货币 Burstcoin 中使用[5]。空间容量证明利用的是计算机的硬盘空间大小而不是电脑的计算能力。硬盘的容量越大,可以储存在硬盘里的方案值就越多,矿工就越有机会匹配到其中所需要的哈希值,从而有更多的机会获得奖励。

PoC 通过在计算机上提供更多解决方案或“图”来增加矿工赢得挖矿竞争的机会。PoC由两个主要部分组成:绘图和挖矿

POC挖矿减少了大量的计算,同时避免了AISC化的矿机出现,大大降低了挖矿的门槛和矿工的成本。

6、Proof of activity (PoA)

活动证明(PoA)结合了PoW工作量证明与PoS权益证明的特点并进行了相应扩展[6],PoA共识具有更为复杂的记账节点选取,同时有更为公平的奖励机制。通过考虑矿工的利益,网络可以优先考虑那些对网络建设有长远利益的矿工,而不仅仅是那些拥有最强大计算资源的矿工。其具体步骤如下:

PoA 可以有效地平衡区块链的安全性和效率,但与纯 PoW 或 PoS 系统相比,PoA 的实施可能更复杂,安全性也可能更低。PoA因部分使用PoW和PoS而被诟病,但也防范了51%攻击的风险。

7、Delegate proof of stake (DPoS)

图片

大幅缩少参与验证和记账节点的数量,能达到秒级的共识验证;另外, 区块的产生不需要消耗算力, 相对于 PoS 更加节省能耗。但不合适完全去中心化的场景。

区块链技术的出现代表了数字货币经济时代的到来。但是区块链的共识机制仍然还面临一些挑战,区块链的共识机制还有可进步之处。只有做到各方面的平衡,通过之后的发展以及不断的更迭,才能设计出更加适合实际应用场景的共识机制。

参考文献

[1] Miguel Castro, Barbara Liskov, et al. Practical byzantine fault tolerance. In OsDI, volume 99, pages 173–186, 1999.

[2] Shixiong Jin, X Zhang, J Ge, HB Shi, Y Sun, M Li, YM Lin, and ZJ Yao. Overview of blockchain consensus algorithm. Journal of Information Security, 6(2):85–100, 2021.

[3] Chaya Ganesh, Claudio Orlandi, and Daniel Tschudi. Proof-of-stake protocols for privacy-aware blockchains. In Advances in Cryptology–EUROCRYPT 2019: 38th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Darmstadt, Germany, May 19–23, 2019, Proceedings, Part I 38, pages 690–719. Springer, 2019.

[4] Kostis Karantias, Aggelos Kiayias, and Dionysis Zindros. Proof-of-burn. In Financial Cryptography and Data Security: 24th International Conference, FC 2020, Kota Kinabalu, Malaysia, February 10–14, 2020 Revised Selected Papers 24, pages 523–540. Springer, 2020.

[5] Shubhani Aggarwal and Neeraj Kumar. Cryptographic consensus mechanisms. In Advances in Computers, volume 121, pages 211–226. Elsevier, 2021.

[6] Manpreet Kaur, Mohammad Zubair Khan, Shikha Gupta, Abdulfattah Noorwali, Chinmay Chakraborty, and Subhendu Kumar Pani. Mbcp: Performance analysis of large scale mainstream blockchain consensus protocols. IEEE Access, 9:80931–80944, 2021.

[7] Fan Yang, Wei Zhou, QingQing Wu, Rui Long, Neal N Xiong, and Meiqi Zhou. Delegated proof of stake with downgrade: A secure and efficient blockchain consensus algorithm with downgrade mechanism. IEEE Access, 7:118541–118555, 2019.

来源:中国保密协会科学技术分会内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯