当前位置:第一POS网 > pos机知识点 >

将poa和pos共识机制结合

浏览:132 发布日期:2023-04-29 00:00:00 投稿人:佚名投稿

1、区块链共识算法――(四)PoA共识(Proof of Activity)

PoA共识(Proof of Activity)也称为活动证明,其结合了PoW工作量证明与PoS权益证明的特点并进行了相应扩展,PoA共识具有更为复杂的记账节点选取,同时有更为公平的奖励机制。

PoA活动证明,主要的优势是利用公平的激励措施保证节点保持在线状态,调动节点积极性,线上矿工即使不挖矿也有一定的概率获取收益。大大提高了全网维护质量。

step1:每个矿工先利用自身算力通过工作量证明机制后得出nonce并生成一个空区块头,这个区块头除了没有交易信息数据外其他数据与正常区块一致。

step2:最先生成空区块的节点广播全网节点,全网节点接收到消息后,将此区块的hash值与上一区块的hash值进行拼接,然后加上n个固定后缀值进行再hash,最后得出n个值作为输入,进入follow-the-satoshi程序,然后可输出n个随机权益持有者。

step3:前n-1个随机权益持有者对空区块进行签名,第n个随机权益持有者即为获取到记账权的节点,他将在空区块的基础上添加交易数据与签名。

step4:第n个随机权益持有者将打包好的区块广播全网,全网节点接收到区块后进行验证,验证成功后上链。

step5:产生空区块的矿工与第n个随机权益持有者以及前n-1个已签名的随机权益持有者共享交易费奖励。

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

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

POW算法 : https://www.jianshu.com/p/b23cbafbbad2
POS算法 : https://blog.csdn.net/wgwgnihao/article/details/80635162

POA算法相比于其他算法可以改进网络拓扑,维持在线节点比例,需求更少的交易费同时减少共识算法过程中的能量损耗。
POA算法需求的网络中同样包含两类节点,矿工和普通参与者,其中普通参与者不一定一直保持在线。POA算法首先由矿工构造区块头,由块头选出N个币,这N个币的所有者参与后续的校验和生成块的过程。
从这里可以看到POA算法不仅与算力有关,后续的N个参与者的选举则完全由参与者在网络中所拥有的币的总数量决定。拥有越多币的参与者越有机会被选为N个后续的参与者。而后续N个参与者参与的必要条件是这N个参与者必须在线,这也是POA命名的由来,POA算法的维护取决于网络中的活跃节点(Active)。

POA算法的一个理想的基本流程是,类似于POW协议,矿工构造出一个符合难度要求的块头,通过矿工得到的块头计算衍生出N个币的编号,从区块链中追溯可以得到这几个币目前所述的参与者。矿工将这个块头发送给这N个参与者,其中前N-1个参与者对这个块进行校验和签名,最后第N个参与者校验并将交易加入到该块中,将这个区块发布出去,即完成一个区块的出块。
一个理想过程如下图所示:

在实际运行中,无法保证网络上所有参与者都在线,而不在线的参与者则无法进行校验和签名,这个无法被校验和签名的块头则会被废弃。
即在实际运行中,应该是一个矿工构造出块头后广播给各个参与者签名,同时继续重新构造新的块头,以免上一个块头衍生的N个参与者存在有某一个没有在线,而导致块头被废弃。
因此,在这种情况下,一个块是否被确认不仅与矿工的计算能力有关同时也与网络上的在线比例有关。
与纯POW相比,在与比特币(POW)同样10分钟出一个块的情况下,POA由于会有参与者不在线而产生的损耗,因此,10分钟内矿工可以构造的块的数量会更多,即块头的难度限制会降低,那么矿工在挖矿过程中会造成的能量损耗也会降低。
与纯POS相比,可以看到POA的出块流程并不会将构造区块过程中的相关信息上链,可以明显减少区块链上用于维护协议产生的冗余信息的量。

本节对上诉协议中一些参数设置进行分析

在矿工构造出块头后对块头进行校验和区块构造的N个参与者的数量选定比较类似于比特币中每一个块的出块时间的选取。比特币中选择了10分钟作为每一个块的期望出块时间并通过动态调节难度来适应。
这里N的取值同样可以选择选定值或者动态调节。动态调节需要更加复杂的协议内容,同时可能会带来区块链的数据膨胀,而复杂的协议也增加了攻击者攻击的可能性。另外暂时没有办法证明动态调节可以带来什么好处。静态调节在后续的分析(4 安全分析)中可以得到N=3的取值是比较合适的。

从上面的描述可以看到,构造新的区块的除了矿工还有从块头中衍生出来的N个币所有者。在构造出一个新的区块后,这些参与者同样应该收到一定的激励,以维持参与者保持在线状态。
矿工与参与者之间的非配比例与参与者的在线状态相关。给予参与者的激励与参与者保持在线状态的热情密切相关,越多参与者保持在线状态,能更好地维持网络的稳定。因此,可以在网络上在线参与者不够多的时候,提高参与者得到的激励分成比例,从而激发更多的参与者上线。
如何确定当前参与者的在线情况呢?可以最后第N个参与者构造区块时,将构造出来但是被废弃的块头加入到区块中,如果被丢弃的块头数量过多,说明在线人数过低,应当调节分成比例。
同时最后第N个参与者与其他参与者的分成同样需要考虑,第N个参与者需要将交易加入区块中,即需要维护UTXO池,同时第N个参与者还需要将被丢弃的块头加入新构建的区块中。
为了激励其将废弃区块头加入新构建的区块中,可以按照加入的区块头,适当增加一点小的激励。虽然加入更多的区块头,可以在下一轮的时候增加分成的比例,应当足够激励参与者往区块中加入未使用的块头了(这里参与者不可能为了增加分成而更多地加入区块头,每一个区块头都意味着一位矿工的工作量)。
一个参与者如果没有维护UTXO池则无法构造区块,但是可以参与前N-1个的签名,因此为了激励参与者维护UTXO池,作为最后一个构造区块的参与者,必须给予更多的激励,比如是其他参与者的两倍。

从3.2的描述中可以知道一个用户必须在线且维护UTXO池才可能尽可能地获得利益。这种机制势必会导致一些用户将自己的账户托管给一个中心化的机构。这个机构一直保持在线,并为用户维护其账户,在被选为构造区块的参与者时参与区块的构建并获取利益。最后该机构将收益按照某种形式进行分成。
上面说到参与者必须用自己的密钥进行签名,而托管给某个机构后,这个机构在可以用这个密钥签名构造区块的同时,也有可能使用这个密钥消费用户的财产。这里可以采用一种有限花销的密钥,这个密钥有两个功能,一个是将账户中的部分财产消费出去,另一个是将所有财产转移到一个指定账户。在托管的时候可以使用这个密钥,在被通知部分财产被花费后可以立即将所有财产转移到自己的另一个账户下,以保证财产的安全。

从上面的分析可以看到,POA的安全性与攻击者所拥有的算力和攻击者所拥有的股权有关。假设攻击者拥有的在线股权占比为 ,则攻击者的算力需要达到其他所有算力的 倍才能达成分叉。假设攻击者股权总占比为 ,网络中诚实用户的在线比例为 ,则攻击者的算力需要达到其他所有算力的 倍才能达成攻击。
攻击的分析表格如下:

从上文的分析可以看到,POA算法相比于其他算法可以改进网络拓扑,维持在线节点比例,需求更少的交易费同时减少共识算法过程中的能量损耗。同时,PoA协议的攻击成本要高于比特币的纯PoW协议。

参考文献:Proof of Activity: Extending Bitcoin’s Proof of Work via Proof of Stake

3、生态协议AEP推出了什么共识机制?

AEP推出 PoA+PoS 的共识机制,PoA 决定了上层结构(主链币),PoS 决定了Token 的属性。AEP并不过份追求去中心化,而是强调有效和适度去中心化。

4、区块链共识算法――(二)PoS共识(Proof of Stake)

2011 年 7 月, 一 位 名 为 Quantum Mechanic 的 数 字 货 币 爱 好 者 在 比 特 币 论 坛 首次提出了权益证明 PoS 共识算法. 随后, Sunny King 在 2012 年 8 月发布的点点币 (Peercoin, PPC) 中首次实现. PoS 由 系统中具有最高权益而非最高算力的节点获得记账 权, 其中权益体现为节点对特定数量货币的所有权, 称为币龄或币天数 (Coin days)

PoS是考虑到PoW的最大缺陷:浪费资源而提出的,简单来说就是 谁的权益大,谁说了算 。

PoS共识机制(Proof of Stake 权益证明)通过权益记账的方式,解决效率低下、资源浪费、节点一致性等问题。

各个节点需要满足一定的条件(如抵押一定的代币)才能成为验证节点(权益提高),系统通过算法在其中选择一部分作为出块节点(矿工),每隔一段时间重新选择,算法会保证完全随机,不可被操控。只有出块节点才能进行数据处理,争夺记账权。

权益主要由权益因子决定,可以是持币数量,也可以是币龄及两者的结合。

以太坊在之后很有可能会改用PoS进行共识,其更加符合以太坊高效率的特点。

5、PoT基于信任的共识机制方案

姓名:胡娟

学号:20021110092

转自:https://mp.weixin.qq.com/s/lA4qc1iA44HH5biH7TrFvg

【嵌牛导读】区块链的核心是无信任的领导选举机制,在无需第三方或可信方的监督下,实现了匿名节点之间共识的达成。目前工作量证明(PoW)和权益证明(PoS)是集中讨论的两种共识机制。PoW依赖于计算能力的证明,伴随着巨大的资源浪费。PoS通过依赖系统中拥有的加密货币的数量来解决问题。无论哪种方式,都受区块链系统经济基础的限制,这迫使那些不含加密货币的区块链应用程序只能求助于“许可”的设置,有效地使系统集中化。然而,对于无加密货币的非许可链能够为众多新兴应用领域(如教育、医疗)提供安全的、自治的P2P结构服务,在这些领域中,对等节点之间存在一定的信任基础。这为评估对等节点之间的信任并将其作为达成共识的基础创造了可能性。

【嵌牛鼻子】PoT,PoW,PoS

【嵌牛正文】

PoW 是十分昂贵的

他是一种“难度值”控制资源消耗的机制。难度值是随系统计算能力来调整级别的,随着节点和事务的增加,难度值不可避免的增加。除了高昂的成本外,还容易受到中心化陷阱的影响,即一小部分算力强大/有钱的节点最终控制了整个系统。例如比特币上的采矿池现象和垄断了系统的巨型挖矿数据中心。

当前,相比PoW在能耗上有更优表现的替代方案被人们持续关注,然而大多数建议的替代方案要么依赖于特殊物理硬件的所有权,要么权衡系统的去中心化采用许可链的方案,后者是使用拜占庭协议(PBFT)的变体。PoW目前合理的替代方案是PoS(Proof-of-Stake),PoS中区块领导者是根据其在区块链系统中持有的资产数量来被选择的。该方法背后的博弈论前提是,对拥有加密货币的节点,持有最大份额的节点有兴趣对系统进行服务,来保持他的可信度和价值,从而激励他们按照协议行事。与PoW相比,PoS承诺提供更加明晰和便宜的共识机制,但他需要将区块链系统与加密货币捆绑在一起。并造成了“你拥有越多你控制的越多”或“你拥有的越多,你越合理拥有领导权”这样富人越来越富的心态,导致系统进一步向中心化转变。

使用信任去修补区块链

 信任证明PoT,当网络中出现更多可信的对等点时,目标是最小化在PoW上花费的能量。也就是说,安装“您越受信任,您需要执行的工作就越少”的概念。“我们假设在应用场景中,区块链旨在在协作以实现共同目标的对等体之间提供去中心化的服务,并且可以在各方之间表达信任,例如在健康或教育领域。这与当前以自我为中心的金融区块链形成了鲜明的对比,在当前的金融区块链中,被选为区块领导者的唯一兴趣和博弈论动机是赚取加密货币。

 在PoT结构中,参与系统的每个节点都单独地表示对他认为可信任的其他节点的信任情况。这种信任不断地被广播,促使信任网络以去中心化的方式兴起,并存储在区块链中,为所有的参与者提供了一致性、防篡改的记录(view)。PoT机制在仍然使用PoW的同时,保证只有一小部分参与其中,从而大大降低了功耗成本。

协议描述和问题定义

PoT 描述的参与者的信任值是以去中心化的方式计算和协商的,这些信任值将表示为节点在系统中所持有的权重(stake),作为共识机制的基础。PoT的设计主要考虑了可验证性和独立性:

可验证性:一旦一个节点证明其有资格成为下一个领导者,所有的节点都可以验证这一声明。

独立性: 独立性声明领导者的被选举权与区块链有效性,可由任何节点使用公开可用的信息,无需他人协作的情况下进行验证。

为了实现以上的目标,需要解决两个主要问题:

1)定义一个去中心化的信任管理机制;

2)定义一个使用信任网络的共识协议。

1.去中心化信任管理(Decentralized trust management)

信任建立基于信任模型,这类工作在很多文献中已有。对于基于社区的信任,起始点通常是一个给定的信任网络,该网络编码系统中谁信任谁,它通常被建模为一个有向图,其中节点表示对等点(peer),边表示它们之间的信任关系。一个节点在网络中传入的链接越多,它就越可信。信任网络可以以多种形式出现,例如:

1)从社交网络中提取;

2)从底层系统中节点之间的交互推断而来;

3)被节点明确声明他们信任谁。

在公开链模型中,唯一可行的选择要么是跟踪区块链中节点之间交互的记录,要么设立一个信任网络,网络中每个节点在没饿过时期单独地声称他信任谁。前一种选择要求管理区块链系统的节点同时也是产生和记录事务的节点。

文章选择了后一种方案,每个节点通过广播信任关系宣布他们的信任节点,并由所有其他节点独立收集信息,形成信任网络。区块链区块大小的限制,使得PoT中区块链仅记录信任网络的哈希值。每个时期,当前的区块领导者是根据前一个阶段中达成一致的信任网络情况来选出来的。

2.基于信任的动态共识机制(Dynamics of a trust based consensus)

PoW尽管对能源的消耗十分巨大,但是在完全去中心化的系统中,PoW保持了良好的安全性和可操作性。更重要的是,提供了具有“保证时间窗口”的时钟功能,实现了新的块只有在前一个块出现后才能出现,允许分布式系统在不需要全局同步的情况下有效地工作。因此文章没有完全放弃PoW,而是信任等级越高的节点执行PoW时的难度值越低,信任等级越低则难度值越高。这将抑制不太受信任的节点加入PoW,使活跃的挖矿池被限制到更小的子集中。其中存在的风险是:1)可能会导致较小的信任子集中出现集中化的问题;2)难度值小的节点可能造成Sybil攻击。因此,PoT采用了以下的策略:

1)领导节点信任衰竭策略

节点根据他们获得的信任程度被分配到不同的小组。其成员根据可信等级对应的难度值进行挖矿,具有最高信任级别小组成员更有可能在区块链中挖到矿,这埋下了信任网络中顶层节点控制网络的隐患,造成“富人更富”的现象,同时其他的节点没有了升级的空间。衰竭策略会确保任何竞争到挖矿权的节点退回到低信任分区中。

2)新的信任关系采用阻尼策略

Sybil节点不能突然获得系统中的高信任等级,应当给诚实节点有足够的机会观察和控制恶意节点。在PoT中,引入了一种控制机制,通过对新的信任链路采用一种阻尼策略来控制新节点信任度量的过程,节点的信任等级与他们所保持存活的时间长短成正比增长。

PoT结构建立在两个主要机制上:

1) 衰退的信任机制,阻止区块领导者潜在的恶意行为,防止网络被一个小的顶层受信组织控制;

2) 网络信任机制演变的控制机制,阻止恶意节点信任等级的升级的速度,给予其他节点充分的时间去检测这样的行为。

区块链系统首先经历一个自力更生的阶段,通过对几个块仅实施纯PoW共识。在每

个新的区块中,网络中的节点(矿工)单独广播自己发出的信任关系。新节点加入产生新的信任关系,这种关系服从一种阻尼策略,将他们在系统中存活时间作为权重给他们分配。阻尼策略使得新节点使用新的信任关系来增强它们的信任级别变得更慢。自力更生阶段在协议定义的预设好的块数后结束。共识从此由PoW转变为PoT。

每个信任分区的节点都会遵循对应的PoW的困难系数来挖矿,当使用对应困难值找到PoW的解决答案时,节点宣布他的块,其他节点验证并接受该块作为共识的一部分。如果同时有多个有效的块被广播,则规则是选择信任等级最高的发布的块。一旦一个块被附加到区块链中,那么块所有权所属的节点相对于初始信任值会呈指数衰减。

1. 信任网络(The trust network)

信任网络是由节点在网络中,通过主动声明信任连接所组成的。每个周期,信任网络都表示为一个加权图,节点是区块链网络中的节点,边上的权值代表节点的存活时长。周期t所在的信任网络为: ,其中

  :节点的集合,SKi和VKi是节点的密钥对;

  :关系边的集合,由节点vi来声明和签名的;

:函数,为每一条边计算权重值

2. 区块链部分(The Blockchain)

   定义1: 密码散列函数 , 有效的PoW区块被定义为一个三元组:

参数 :区块对应挖矿的难度值;

参数 :前一个区块的哈希值;

参数 :PoW工作的随机数答案;

参数 :事务的负载。

3. PoT协议(The PoT protocol)

PoT协议除了PoW中事务负载和区块头元数据外,还包含节点提交给区块的签名,以及区块所在时期信任网络的摘要。

        1)信任分区(Trust divisions)

对每个节点,使用连续弃权函数(waiverfunction)实现难度值与输入信任级别成反比。另一种方法是,节点被分配到符合一定信任范围的组,每个小组所有成员在相同难度水平挖矿。挖矿和广播的机制与PoW相同,但注意到网络中的任何节点都可以毫不含糊地、一致地与其他节点一起检索任何一个节点的信任值。

        2)信任衰退和恢复(Trust decay & recovery)

当节点vi在周期t时刻,获得了某一个区块的记账权后,它的信任值会进行一个与它在周期t初始时刻信任值成正比例的快速衰退和缓慢恢复的过程。以防止节点vi持续保持高的信任等级,从而产生Sybil攻击的隐患。这里引入了指数衰退函数:

N(0) 是时间0是衰减量的值, 是衰减常数。

在每一个周期t,信任衰减过程是由节点执行的,协议规则如下,衰减长度因子k,衰减常数 λ,当前周期t和当前区块链作为输入,从时间t开始对 k/λ 个区块,衰减对应记账权矿工的信任值。

3)对新边的阻尼策略(Damping new edges)

一个节点与其他节点信任连接的权值与他们所加入网络的时间成比例,防止节点过快地成为信任值最高的节点,分配规则如下:其中

4)PoT 有效区块(Valid PoT block)

SKt 是节点vt的签名, 是信任分区, 是 对应的难度等级,一个有效的PoT区块满足如下条件:

根据以上定义,总结PoT协议为,在每个周期 t开始时,假定网络中所有节点都知道共识区块链C的状态,包括对上一个周期 t-1信任图的信息。节点在t-1信任图上执行信任算法,然后应用信任衰退机制,衰减最近夺得区块记账权的节点的信任。矿工找到PoW难题的答案,就将答案连通区块 广播到网络中。如果这是一个有效的区块,其他节点验证后矿工将它附加到区块链C上。如果是非有效的,那么回退到步骤3),所有符合条件的节点继续试图找到难题的答案。

节点有可能同时监听到多个有效的区块,规定了此时接收最高信任节点发出的区块作为结果值。此外,网络延迟或连接网络的动态特性,不同的节点接收到不同的区块,此时会出现分叉现象,与PoW不同,采用信任最值得信赖的分支作为正确的主区块链。

论文出处:Leila Bahri, Sarunas Girdzijauskas. Trust Mends Blockchains: Living up to Expectations, 2019 IEEE 39th International Conference on Distributed Computing Systems (ICDCS)

转载请带上网址:http://www.pos-diy.com/posjitwo/122684.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 babsan@163.com 举报,一经查实,本站将立刻删除。
联系我们
订购联系:小莉
微信联系方式
地址:深圳市宝安区固戍联诚发产业园木星大厦

公司地址:深圳市宝安区固戍联诚发产业园木星大厦

举报投诉 免责申明 版权申明 广告服务 投稿须知 技术支持:第一POS网 Copyright@2008-2030 深圳市慧联实业有限公司 备案号:粤ICP备18141915号