2025年POC共识机制详解

POC共识机制详解POC 共识机制详解 原文链接 https niels wang 2019 06 02 POC more 什么是 POC 共识 首先什么是区块链中的共识机制 能够确保分布式节点维护数据一致性的机制就是共识机制 比较成熟的共识机制有 POW POS DPOS PBFT 等等

大家好,我是讯享网,很高兴认识大家。

POC共识机制详解

原文链接:https://niels.wang/2019/06/02/POC/#more

什么是POC共识

首先什么是区块链中的共识机制?能够确保分布式节点维护数据一致性的机制就是共识机制。比较成熟的共识机制有POW、POS、DPOS、PBFT等等。
POC是NULS独创的一种整合了DPOS和POS优点并加入了信用机制的一种新的共识机制,他的全称是Proof Of Credit,信用共识机制。和DPOS相比,POC的节点选举机制更灵活,去中心化成度更高,和POS相比效率更高,算法更简单清晰。
NULS希望创造一种高效的、去中心化的、全民参与的、公平的、全民收益的共识机制,POC就是这样诞生的。下面就从两个方面详细介绍一下POC的运行方式。

共识节点选举

如何创建节点

POC中参与区块打包和验证的节点,叫做共识节点。为了避免共识节点被大户完全控制,POC设计了一个更开放的节点选举方式。
首先,任何人都可以创建节点,因为POC节点的门槛足够低,只要锁定20000NULS以上的保证金,就可以创建一个节点,为了避免节点数量太少,POC限制了节点保证金的区间,只接受2w-20w的保证金,超出或者小于这个区间的保证金不能创建节点,交易一旦确认保证金将被锁死,不能再参与交易,直至停止节点后解锁。
每个节点都不需要堆外暴露自己的服务器位置,网络中人知道有这样一个节点,但并不能把节点和ip地址关联起来,这极大的降低了节点被针对性攻击的可能性,保证了节点的安全。
创建节点需要设置几个参数,如下:

创建地址:拥有停止节点的权限,需要妥善保管账户私钥。 打包地址:POC共识中每个区块都需要出块人签名,打包地址就是用来签名的地址,必须存在运行的节点中。 奖励地址:用于接收节点参与共识的奖励,不填时默认是创建地址相同。 节点名称:节点名称不允许直接设置,而是会自动选择创建地址的别名来作为节点名称。当创建地址没有别名时,会截取节点id的最后8个字符作为节点名称。节点名称可以用于搜索。 保证金金额:需要创建节点中存在足够的NULS来做保证金,最少2w最多20w个NULS。保证金和委托金额一样有共识收益。 佣金比例:节点可以接受任何账户的委托,节点会从委托人收益中抽取一部分佣金,比如佣金比例设置为10%,则会从委托人收益中收取10%作为节点的奖励 

讯享网

节点如何参与共识

委托

任何人都可以去参与委托,POC目前设置的门槛是2000个NULS起步,这是一个基本运行参数,可以通过社区治理方式进行修改,委托之后委托人就可以参与共识奖励的分配,获得相应的收益。委托的金额在交易生效一刻锁死,不能进行任何交易,直至节点停止解锁或者主动撤销委托退出共识,撤销后将停止收益的分配(有轮次延迟)。委托者随时可以通过退出共识操作,撤回自己委托的NULS。

如何停止节点

轮次

这里引入一个“轮次”的概念,POC的区块提交方式是以轮次的方式进行的,从创世块开始,按照共识节点格式来计算轮次,比如节点又a,b,c三个,出块间隔是10s,创世块时间是1970-00-00 00:00:00,则第一轮的时间就是1970-00-00 00:00:10至1970-00-00 00:00:40,依次类推。

出块顺序

每一轮的出块顺序使用伪随机的方式动态计算的,具体算法是把所有的节点的打包地址,解析为字节码,在字节码之前拼接本轮次的开始时间的时间戳,然后对拼接后的结果进行Hash256的摘要计算,最后对摘要进行排序,得到本轮所有节点的出块顺序。之后按照计算的结果每隔10s轮流出块。

红黄牌机制

区块链的共识机制必须考虑恶意节点存在的情况,在POC的设计中,理论上,只要恶意节点少于50%,就不能影响网络的安全性,在这个基础上,POC总结了一些对非正常行为的惩罚措施,以惩戒恶意或者低能的节点,就是红黄牌机制。


讯享网

黄牌

红牌

红牌是惩罚作恶节点的终极方式,节点收到红牌后,将退出共识会议(有轮次延迟),不再获取共识奖励,不再参与区块打包。节点的保证金将锁定60天,在这60天中保证金不能参与任何交易。节点的创建地址从收到红牌惩罚起,就被剥夺了创建节点的权利,永远不能作为创建地址来创建节点了。目前红牌惩罚主要惩罚两个恶意行为:

  1. 节点离线,当节点信用值降至-1时,节点将收到红牌惩罚,
  2. 尝试分叉,当一个节点在一个高度打包出两个不同的区块时,认为节点在尝试分叉,如果100轮内存在3次尝试分叉行为,节点将收到红牌惩罚。
    注:尝试分叉很多时候是因为节点维护人员将打包地址导入了两个不同的钱包中,两个钱包都认为自己是节点,进行出块导致的。

信用值的计算逻辑

如何计算收益

  • 首先计算本轮全部共识奖励之和
讯享网sum(reward) = Na * 本轮节点数量 

每个节点根据节点权重来划分各自应得的比例,用节点自己的权重除以所有节点的权重之和,就是自己节点本轮所占节点的比例,计算方式如下:

weight(node) = (保证金+接受的委托总额)* CreateVal reward(node) = sum(reward) * weight(node)/(weight(0)+…+weight(n)) 

谈一谈通胀

因为POC和通胀是息息相关的,所以这里简单介绍一下NULS的通胀机制(最近社区中在讨论减少通胀的提案,这里只谈之前的通胀方案)。
NULS每年最大通胀金额为定额的500wNULS,第一年不超过总量的5%,第二年不超过总量的4.761%,比例逐年递减。
上面有两个词“最大”和“不超过”,为什么不确定的说一个数字?因为当一个节点应该出块,却没有出块时,在计算收益时,其他节点会计算该节点的权重,并未该节点预留了份额,但因为节点没有出块,会导致这份通胀没有人领取,就是取消了,所以500w只是理论值,实际的通胀要更少。

信用值和收益的关系

首先完美的状态是每个节点的信用值为1,此时各个节点按照保证金和委托金额来分配本轮的共识奖励,一分付出一分回报,很公平。当有一个节点信用值低于1的时候,此节点的权重下降,但其他节点权重不变,导致此节点占比下降,所以收益下降。此时因为此节点的权重下降,其他节点的权重不变,所以占比上升,收益也会上升。所以节点的信用值,直接影响收益,需要谨慎对待。

如何选择节点进行委托?

  1. 共识中排在前面
  2. 信用高排在前面
  3. 可以委托金额高的排在前面
    4.已经不可再委托的排在最后

如何操作?

参考:操作指南

小讯
上一篇 2025-03-25 15:07
下一篇 2025-01-25 09:25

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/117037.html