主页 > imtoken钱包苹果下载 > POA(Proof of Activity)区块链共识算法

POA(Proof of Activity)区块链共识算法

imtoken钱包苹果下载 2023-11-18 05:10:52

1 概述

POA(Proof of Activity)算法是一种区块链共识算法。 其基本原理是结合POW(Proof of work)和POS(Proof of stake)算法的特点进行工作。 POW算法和POS算法的具体内容可以参考:

战俘算法:

POS算法:

与其他算法相比,POA算法可以改善网络拓扑结构,保持在线节点比例,需要较少的交易费用,降低共识算法过程中的能耗。

POA算法需要的网络还包括两类节点比特币共识算法,矿工和普通参与者,普通参与者不一定一直在线。 POA算法首先由矿工构造一个区块头,从区块头中选出N个币,这N个币的所有者参与后续的验证和区块生成过程。

从这里可以看出,POA算法不仅仅与算力有关,后续N个参与者的选举完全由参与者在网络中拥有的币总数决定。 拥有更多硬币的参与者有更好的机会被选为 N 个后续参与者。 后续N个参与者参与的必要条件是这N个参与者必须在线,这也是POA命名的由来。 POA算法的维护依赖于网络中的活跃节点(Active)。

2 基本原则 2.1 理想的基本流程

POA算法的一个理想的基本流程是,类似于POW协议,矿工构建一个满足难度要求的区块头,N个币的数量由矿工计算得到的区块头得出,这些可以从区块链上追溯。 当前硬币中描述的参与者。 矿工将这个区块头发送给N个参与者,其中前N-1个参与者验证并签署区块,最后第N个参与者验证并将交易添加到区块中,并将区块发布出去,即完成块的块生成。

一个理想的流程如下图所示:

比特币挖矿的算法_比特币算法原理_比特币共识算法

一个理想的POA流程示意图

2.2 实际过程

在实际运行中,无法保证全网参与者都在线,离线参与者无法进行验证和签名,无法验证和签名的区块头将被丢弃。

也就是说,在实际操作中,应该是矿工构建区块头并广播给各个参与者签名,同时继续重构新的区块头,从而避免N个中的那个上一个区块头派生的参与者不在线,导致区块头被封。 弃。

因此,在这种情况下,一个区块是否被确认不仅与矿工的算力有关,还与全网在线率有关。

与纯POW相比,在比特币(POW)每10分钟出一个块的情况下,POA会因为参与者离线而产生损失,因此矿工在10分钟内可以构建的区块数量会更多,即区块的难度上限会降低,矿工在挖矿过程中造成的能量损失也会减少。

与纯POS相比,可以看出POA的出块过程在构建区块的过程中不上传相关信息,可以显着减少区块链上为维护协议而产生的冗余信息量。

3 协议分析

本节分析申诉协议中的一些参数设置

3.1 参会人数N的设定

矿工构建区块头后,选择检查区块头和区块构建的N个参与者的数量,类似于比特币中选择每个区块的出块时间。 比特币选择 10 分钟作为每个区块的预期区块时间,并通过动态调整难度来适应它。

这里,N的取值也可以是选定的值,也可以是动态调整的。 动态调整需要更复杂的协议内容,这可能导致区块链的数据膨胀,复杂的协议也增加了攻击者攻击的可能性。 此外,也没有办法证明动态调整能带来什么好处。 在后续分析(4安全分析)中取N=3的值静态调整比较合适。

3.2 激励机制

从上面的描述可以看出,除了矿工之外,还有N个从区块头衍生出来的币主在构建新的区块。 在构建新区块后,这些参与者也应该得到一定的激励,以保持参与者在线。

矿工和参与者之间的不成比例与参与者的在线状态有关。 给予参与者的激励与他们保持在线的积极性密切相关。 在线的参与者越多,网络的稳定性就越好。 因此,当网络上没有足够的在线参与者时,可以提高参与者的激励分享比例,从而激励更多的参与者上线。

如何判断当前参会者在线状态? 当最后第 N 个参与者构建区块时,可以将构建但丢弃的区块头添加到区块中。 如果丢弃的区块头数量过多,说明在线用户数过少,需要调整分享比例。

同时,还需要考虑第 N 个参与者和其他参与者的份额。 第 N 个参与者需要将交易添加到区块中,即需要维护 UTXO 池。 同时,第 N 个参与者也需要添加丢弃的区块头。 在新建的街区中。

为了鼓励其将丢弃的区块头添加到新构建的区块中,可以根据添加的区块头适当添加小额激励。 虽然添加更多的区块头可以增加下一轮的份额比例,但应该足以激励参与者将未使用的区块头添加到区块中(参与者不可能为了增加份额而添加更多的区块头,每个区块头都意味着矿工的工作量)。

如果参与者不维护 UTXO 池,则不能构造区块,但可以参与前 N-1 的签名。 因此,为了激励参与者维护 UTXO 池,作为最后一个构建区块的参与者,必须给予更多的激励,比如是其他参与者的两倍。

3.3 委托机制

由3.2的描述可知,用户必须在线并维护UTXO池才能获得尽可能多的收益。 这种机制必然会导致部分用户将自己的账户委托给中心化机构。 该机构始终在线并为用户维护账户比特币共识算法,参与区块建设,并在被选为区块建设参与者时获得收益。 最后,该机构将收益分成某种形式。

如前所述,参与者必须使用自己的密钥进行签名,委托给某个组织后,该组织可以使用这个密钥进行签名和构建区块,也可以使用这个密钥来消费用户的财产。 这里可以使用成本有限的密钥。 这把钥匙有两个作用,一个是消耗账户中的部分财产,另一个是将所有财产转入指定账户。 此密钥可在托管期间使用。 在收到部分财产被花掉的通知后,您可以立即将所有财产转移到自己的另一个账户中,以确保财产安全。

4 安全分析

从上面的分析可以看出,POA的安全性与攻击者拥有的算力和攻击者拥有的权益有关。假设攻击者拥有在线权益

x

, 那么攻击者的算力需要达到其他所有算力的算力

{(\frac{1}{x}-1)}^N

实现分叉的次数。假设攻击者的总持股比例为

y

,网络中诚实用户的在线比例为

p

, 那么攻击者的算力需要达到其他所有算力的算力

{((\frac{1}{y}-1) p)}^N

次实现攻击。

攻击分析表如下:

比特币挖矿的算法_比特币算法原理_比特币共识算法

攻击分析

5 结论

从以上分析可以看出,与其他算法相比,POA算法可以改善网络拓扑结构,保持在线节点比例,需要较少的交易费用,降低共识算法过程中的能耗。 同时,PoA协议的攻击成本高于比特币的纯PoW协议。

参考:活动证明:通过股权证明扩展比特币的工作证明