当前位置: 首页 > news >正文

区块链的三种共识机制——PoW、PoS和DPoS原理

区块链的核心是去中心化网络的信任机制,而共识机制是实现这一目标的关键。共识机制可分为两个阶段:(1)提出共识内容(2)对内容达成共识(遵循最长链原则)。三种主流的共识机制主要有工作量证明PoW(Proof of Work),权益证明PoS(Proof of Stake),委托权益证明机制DPoS(Delegate Proof of Work),除了了解其基本内容,还需要学习其技术实现。

一、工作量证明(PoW)

PoW这个概念是1993年提出的,最早的用途不是用来实现加密货币的,而是用来防止垃圾邮件的。人们开始在使用电子邮件的时候会收到垃圾邮件的骚扰,如果发送垃圾邮件没有成本,那么发送一百万封电子邮件是很轻松的。所以人们想到了如果让每一封邮件发送时都有一个微小的成本,那么鉴于成本,垃圾邮件就会被很大程度遏制了。而PoW就是为了服务这个目的而产生的。基本过程就是邮件接收方先广播一道题出去,邮件发送方在发邮件时必须附带上这道题的答案,这样邮件才会被接受,否则就会被认为是垃圾邮件。

同理我们引入PoW机制下的哈希函数,实际上就是如何用哈希函数给计算机出题,由于计算机的解题速度很快,因此出的题目对于计算机“有挑战性”,我们知道哈希函数最大的特点是如果输入的数据哪怕有微小的区别,输出的结果也会完全不同,这点保证了无法通过输出结果去反向运算输入,也没有办法缩小输入的可能性范围,另一方面,如果输入相同则运算得到的输出哈希一定相同。这一点保证了任何人都可以在一瞬间内验证最终的哈希值是否正确。

比特币系统的一个众所周知的特点,就是很多矿工参与挖矿,但是每十分钟网络上产生的比特币却不是所有矿工均分的,而是谁先抢到记账权,就把所有的比特币奖励给谁。记账权的抢夺就是计算能力的比拼。比特币的PoW机制,宏观上就是要达成的就是判定哪个矿工的运算能力最强。这道题用到了哈希函数,但是系统要的答题结果也就是所谓的PoW,不是哈希函数的输出,而是输入。

为什么会这样设置呢?因为从输入计算哈希输出,是一个非常直白的过程,计算机很擅长这样的工作,不能明显地体现出矿工之间计算能力的差异,而且系统必须要给全网广播一个超级大的数,这样才能比拼计算能力,涉及到网速等延迟问题,也不是很公平。所以比特币系统的做法是反过来,给全网广播一个哈希值,让大家消耗自身算力尝试不同的随机数(nonce)找到它的输入。因为前面提到的哈希函数独特的特点,矿工们要想找到输入,只能每次选一个数不断尝试瞎蒙,运算它的输出和系统广播的哈希值对比,如果不符合,换下一个数继续,这显然是一个概率问题,在相同的时间内谁能尝试的次数多,大概率他会首先拿到正确的输入,这就是PoW的基本原理了。

当然在实际中,比特币系统是每十分钟记账一次,也就是需要所有矿工每十分钟比一次,但是在十分钟内想计算出一个精确哈希值的输入是根本不可能的。所以系统每次给定的是一个哈希值范围。具体规则就是,只要保证运算出的哈希值小于某个特定的数值,就认为提交的PoW是正确的,也就是说矿工们要尽力找到哈希值前几位0越多越好(哈希值越小)对应的输入。多年来矿工们的算力也有了很大提高,但是为什么比特币系统还是能保证算出PoW的时间大致保证在十分钟左右呢?答案就是系统可以通过调整0的个数来改变出题难度,虽然矿工们算力提高了,但是题也变得更难,所以需要花费的解题时间就会保持相对稳定。最快得到结果的矿工会把把自己的结果发送到全网(提交新创建的区块),其他矿工都会验证结果是否符合有效,如果有效,则每个节点都在自己的区块链数据副本中添加这个有效区块,开始新处理新的交易数据,努力创建新区块。如果无效,则会被丢弃,矿工们继续做手头工作。

PoW共识的优点就是安全性高,随着有效区块的不断积累,恶意节点需要极高的算力(超过总体的51%)来完成双花攻击,成本高昂。也存在着消耗算力和电力大的缺点。

二、权益证明(PoS)

在PoW中通过消耗大量的算力来争夺记账权,但是在每一轮共识中,只有一个节点得到了记账权,其他节点的相当于是“陪跑”,算了被浪费了。而权益证明PoS于2013年首次提出被应用到了PeerCoin系统中,可以解决资源浪费的问题。

PoS 通过持有代币的数量和时间(即“权益”)决定记账权,​​权益越高,被选中验证交易的概率越大。

具体的技术实现是每个节点在每一轮共识中只需要计算一次Hash,当拥有的权益越多,满足Hash目标的机会越大,获得记账权的机会越大。可以说,PoS是一个资源节省的共识协议。PeerCoin定义的权益除了与代币数量有关,引入了币龄(Coin Age),100个代币持有两天,币龄为200,因此持有的代币数量越多,时间越长,获得记账权的机会越大。

PoS的优点是​​节能高效​​:无需大量计算,能耗降低99%以上;缺点就是存在​​“富人更富”问题​​:代币越多,收益越高,可能导致财富集中;
​​改进方案​​:以太坊2.0引入​​Casper协议​​,结合质押惩罚机制;Cardano采用分层PoS提升可扩展性。这里提到的一些前沿的技术先挖个坑,后面再补充。

三、委托权益证明机制(DPoS)

DPoS是由PoS演化而来的,持币用户通过抵押代币获得选票,以投票的方式选出若干的节点作为区块生产者,代表持币用户履行产生区块的义务。用户投票最多的若干节点成为出块节点,以EOX为代表是21个节点。在每一轮共识中,轮流选出一个出块节点产生区块,并广播给其他的出块节点进行验证。若节点在规定时间内无完成出块,或产生无效区块,就会被取消资格,取而代之的事重新投票选取新的出块节点。

 

值得一提的是,EOS初期的DPoS的共识方法才采用的是最长链共识,意味着与PoW一样区块没有绝对的最终性,交易的不可逆需要等待多个区块确认。在18年时,EOS使用拜占庭共识代替最长链共识,名为BFT-DPoS。 

优点是高吞吐量​​:区块生成速度快(EOS可达3000+ TPS);​​低延迟​​:适合高频交易场景

缺点是​​中心化争议​​:超级节点数量少,权力集中;贿选风险​​:代币大户可能操控选举。

四、三种共识对比

  1. ​公有链场景​​:注重去中心化与安全性时,PoW或PoS更合适;
  2. ​联盟链/高频应用​​:追求效率时,DPoS或PBFT更优;
  3. ​新兴方向​​:混合机制(如Hedera Hashgraph)或分片技术(如Zilliqa)正在探索更高性能的解决方案。

 

 

 

 

 

 

 



文章转载自:
http://autoimmunization.hyyxsc.cn
http://aerolite.hyyxsc.cn
http://benign.hyyxsc.cn
http://beach.hyyxsc.cn
http://chelate.hyyxsc.cn
http://canephorus.hyyxsc.cn
http://chaldaea.hyyxsc.cn
http://accelerograph.hyyxsc.cn
http://bscp.hyyxsc.cn
http://antineutrino.hyyxsc.cn
http://chromoplast.hyyxsc.cn
http://abn.hyyxsc.cn
http://backwardly.hyyxsc.cn
http://aiguille.hyyxsc.cn
http://allicin.hyyxsc.cn
http://catholicism.hyyxsc.cn
http://applausive.hyyxsc.cn
http://breslau.hyyxsc.cn
http://antimutagenic.hyyxsc.cn
http://beneficence.hyyxsc.cn
http://cavity.hyyxsc.cn
http://adnex.hyyxsc.cn
http://achroglobin.hyyxsc.cn
http://batracotoxin.hyyxsc.cn
http://arminianize.hyyxsc.cn
http://antiauthority.hyyxsc.cn
http://bullae.hyyxsc.cn
http://bangup.hyyxsc.cn
http://celtuce.hyyxsc.cn
http://caravel.hyyxsc.cn
http://www.dtcms.com/a/280558.html

相关文章:

  • [面试] js 数组面试题
  • LangChain智能体开发实战:从零构建企业级AI助手
  • Ubuntu18.04 系统重装记录
  • Flutter 入门指南:从基础到实战
  • 22.计算指定范围内数字的幂次和
  • 【深度学习优化算法】06:动量法
  • Apriori 原理:快速筛选频繁出现的症状组合
  • B/S架构系统角色与对应协议详解
  • 《C++模板高阶机制解析:非类型参数、特化设计与分离编译实践》
  • CG--类比推理
  • IPsec:网络层的加密盾牌与HTTPS的差异解析
  • 尚庭公寓-----day1----逻辑删除功能
  • URL 转静态 HTML 文件 API 数据接口
  • GaussDB 数据库字符编码与兼容模式
  • 华大单片机HC32L110烧录程序方法
  • QT链接ACCESS数据库
  • Oracle 索引实战教程
  • Rust基础[part4]_基本类型,所有权
  • 编译原理第一到三章(知识点学习/期末复习/笔试/面试)
  • 正则表达式使用示例
  • 【canal+mysql+example+数据验证测试】
  • 从 0 到 1 掌握 自研企业级分布式 ID 发号器
  • C 语言(二)
  • GaussDB 数据库架构师修炼(三) 集群管理概览
  • Kafka 4.0 技术深度解析
  • 现代CSS实战:用变量与嵌套重构可维护的前端样式
  • Go 错误处理全解析:从 error 到 panic
  • Go 包管理工具详解:安装与使用指南
  • 【轨物方案】当补贴退潮,光伏电站如何回归价值本质?
  • 上公网-从内网到公网