一种区块链系统中的共识方法、装置与流程
- 国知局
- 2024-11-21 11:44:15
本说明书实施例属于区块链,尤其涉及一种区块链系统中的共识方法、装置。
背景技术:
1、区块链系统中,不同参与方通过部署的节点(node)可以建立一个分布式的区块链网络。利用链式区块结构构造的去中心化(或称为多中心化)的分布式账本,保存于分布式的区块链网络中的每个节点(或大多节点上,如共识节点)上。这样的区块链系统需要解决去中心化(或多中心化)的多个节点上各自的账本数据的一致性和正确性的问题。每个节点上都运行着区块链程序,在一定容错需求的设计下,通过共识(consensus)机制保证所有忠诚节点具有相同的交易,从而保证所有忠诚节点对相同交易的执行结果一致,并将交易及执行结果打包生成区块。
2、当前主流的共识协议包括:工作量证明(proof of work,pow)、股权证明(proofof stake,pos)、委任权益证明(delegated proof of stake,dpos)、实用拜占庭容错(practical byzantine fault tolerance,pbft)协议,蜜獾拜占庭容错(honeybadgerbft)协议、hotstuff协议,等等。
3、其中,以上列举的各种共识协议中,既包括异步共识协议,也包括非异步共识协议。例如,honeybadgerbft算法就是一种较为常见的异步(asynchronous)共识协议。
4、与同步共识协议不同的是,异步共识协议可以在异步网络中运行,在异步网络中节点间的消息可以被任意延迟,但最终会到达。而且,在异步共识协议中,所有共识节点都是对等的,不再有主节点和备份节点之分,每一个共识节点都可以发起共识提议,来尝试构造区块。
5、例如,以honeybadgerbft共识协议为例,honeybadgerbft共识协议可以支持以区块标识来发起共识提议,区块链系统中参与共识的所有的共识节点,都可以有机会通过在发起的共识提议中携带一个区块标识,来向与该区块标识对应的区块发起共识提议。
6、然而,由于异步共识协议中每个共识节点都有机会发起共识提议,并且发起的共识提议能否共识通过的概率很大程度上通常取决于提议节点在发起共识提议时的提议速度和通讯效率;因此,如果部分提议节点发起共识提议的速度相对较慢或者网络存在延迟,就有可能导致发起的共识提议无法及时的达成共识,从而影响区块链系统的稳定性。
技术实现思路
1、本说明书提出一种区块链系统中的共识方法,所述区块链系统中的共识节点运行的共识协议为异步共识协议;所述方法应用于所述区块链系统中的任一参与共识的共识节点,所述方法包括:
2、收集已由所述区块链系统中的共识节点共识通过的共识提议;其中,所述共识提议包括由本共识节点发起的与本轮共识对应的共识提议,以及由所述区块链系统中的其它共识节点发起的与本轮共识对应的共识提议;
3、确定收集到的已共识通过的共识提议的数量是否达到quorum个;
4、如果收集到的已共识通过的共识提议的数量是否达到quorum个,基于收集到的quorum个共识提议生成与本轮共识对应的区块,并在本地保存所述区块,以触发区块链系统向与该区块中包含的各个共识提议对应的提议节点分别发放虚拟资源。
5、可选的,所述区块链上部署了用于发放虚拟资源的智能合约;
6、基于收集到的quorum个共识提议生成与本轮共识对应的区块,包括:
7、在本地基于收集到的quorum个共识提议生成与本轮共识对应的区块,并在所述区块中添加用于发起针对所述智能合约的合约调用交易.
8、可选的,所述合约调用交易为所述区块中包含的最后一笔交易。
9、可选的,所述智能合约为由与所述区块链系统对应的区块链服务平台的运营方部署在所述区块链中的系统智能合约;相应的,所述合约调用交易为用于发起针对所述系统智能合约的合约调用交易.
10、可选的,所述合约调用交易不包含交易发送者信息。
11、可选的,所述在本地保存所述区块,以触发区块链系统向该区块中包含的各个共识提议对应的提议节点分别发放虚拟资源,包括:
12、在本地的保存所述区块,并执行所述区块中包含的所述合约调用交易,以发起针对所述区块链上部署的所述智能合约的合约调用,向与该区块中包含的各个共识提议对应的提议节点分别发放虚拟资源。
13、可选的,与所述区块链系统对应的区块链服务平台上部署了用于发放虚拟资源的服务接口;
14、在本地保存所述区块,以触发区块链系统向该区块中包含的各个共识提议对应的提议节点分别发放虚拟资源,包括:
15、在本地保存所述区块,以触发与所述区块链系统对应的区块链服务平台进一步调用所述服务接口,向该区块中包含的各个共识提议对应的提议节点分别发放虚拟资源。
16、可选的,所述异步共识协议为基于区块标识来发起共识提议的共识协议;相应的,所述共识提议包含待共识的目标区块的区块标识;以及,共识节点针对该目标区块提议的交易列表;
17、确定收集到的已共识通过的共识提议的数量是否达到quorum个,包括:
18、统计收集到的已共识通过的共识提议中,包含所述目标区块的区块标识的共识提议的数量;
19、确定统计出的所述数量是否达到quorum个。
20、可选的,所述异步共识协议为honeybadgerbft共识协议。
21、可选的,所述异步共识协议为基于发起共识提议的时刻对应的时间戳来发起共识提议的共识协议;相应的,所述共识提议包含发起共识提议的时刻对应的时间戳;以及,共识节点提议的交易列表;
22、确定收集到的已共识通过的共识提议的数量是否达到quorum个,包括:
23、统计收集到的已共识通过的共识提议中,包含的所述时间戳位于与待共识的目标区块对应的时间戳范围之内的共识提议的数量;
24、确定统计出的所述数量是否达到quorum个。
25、可选的,所述异步共识协议为mytumbler共识协议。
26、可选的,所述区块链系统为支持运行异步共识协议的公链系统。
27、可选的,所述区块中包含的各个共识提议携带基于提议节点的私钥生成的签名;
28、所述在本地保存所述区块,以触发区块链系统向与该区块中包含的各个共识提议对应的提议节点分别发放虚拟资源,包括:
29、在本地保存所述区块,以触发区块链系统基于维护的公钥对与该区块中包含的各个共识提议携带的签名进行验证,并在所述签名验证通过后,向与所述公钥对应的提议节点分别发放虚拟资源。
30、本说明书还提出一种区块链系统中的共识方法,所述区块链系统中的共识节点运行的共识协议为异步共识协议;所述区块链系统中参与共识的共识节点中预先指定了负责生成区块的目标共识节点;所述方法应用于所述目标共识节点,所述方法包括:
31、收集已由所述区块链系统中的共识节点共识通过的共识提议;其中,所述共识提议包括所述区块链系统中的各个共识节点发起的与本轮共识对应的共识提议;
32、确定收集到的已共识通过的共识提议的数量是否达到quorum个;
33、如果收集到的已共识通过的共识提议的数量是否达到quorum个,基于收集到的quorum个共识提议生成与本轮共识对应的区块,将所述区块发送至所述区块链系统中的各个共识节点进行保存,以触发区块链系统向与该区块中包含的各个共识提议对应的提议节点分别发放虚拟资源。
34、本说明书还提出一种区块链系统中的共识方法,所述区块链系统中的共识节点运行的共识协议为异步共识协议;所述区块链系统中参与共识的共识节点中预先指定了负责生成区块的目标共识节点;所述方法应用于所述区块链系统中除了所述目标共识节点以外的任一参与共识的共识节点,所述方法包括:
35、接收所述目标共识节点下发的与本轮共识对应的区块;其中,所述区块为所述目标共识节点在确定收集到的已共识通过的共识提议的数量达到quorum个的情况下,基于收集到的quorum个已共识通过的共识提议生成的区块;其中,所述共识提议包括所述区块链系统中的各个共识节点发起的与本轮共识对应的共识提议;
36、在本地保存所述区块,以触发区块链系统向与该区块中包含的各个共识提议对应的提议节点分别发放虚拟资源。
37、本说明书还提出一种区块链系统中的共识装置,所述区块链系统中的共识节点运行的共识协议为异步共识协议;所述装置应用于所述区块链系统中的任一参与共识的共识节点,所述装置包括:
38、第一收集模块,收集已由所述区块链系统中的共识节点共识通过的共识提议;其中,所述共识提议包括由本共识节点发起的与本轮共识对应的共识提议,以及由所述区块链系统中的其它共识节点发起的与本轮共识对应的共识提议;
39、第一确定模块,确定收集到的已共识通过的共识提议的数量是否达到quorum个;
40、第一保存模块,如果收集到的已共识通过的共识提议的数量是否达到quorum个,基于收集到的quorum个共识提议生成与本轮共识对应的区块,并在本地保存所述区块,以触发区块链系统向与该区块中包含的各个共识提议对应的提议节点分别发放虚拟资源。
41、本说明书还提出一种区块链系统中的共识装置,所述区块链系统中的共识节点运行的共识协议为异步共识协议;所述区块链系统中参与共识的共识节点中预先指定了负责生成区块的目标共识节点;所述装置应用于所述目标共识节点,所述装置包括:
42、第二收集模块,收集已由所述区块链系统中的共识节点共识通过的共识提议;其中,所述共识提议包括所述区块链系统中的各个共识节点发起的与本轮共识对应的共识提议;
43、第二确定模块,确定收集到的已共识通过的共识提议的数量是否达到quorum个;
44、发送模块,如果收集到的已共识通过的共识提议的数量是否达到quorum个,基于收集到的quorum个共识提议生成与本轮共识对应的区块,将所述区块发送至所述区块链系统中的各个共识节点进行保存,以触发区块链系统向与该区块中包含的各个共识提议对应的提议节点分别发放虚拟资源。
45、本说明书还提出一种区块链系统中的共识装置,所述区块链系统中的共识节点运行的共识协议为异步共识协议;所述区块链系统中参与共识的共识节点中预先指定了负责生成区块的目标共识节点;所述装置应用于所述区块链系统中除了所述目标共识节点以外的任一参与共识的共识节点,所述装置包括:
46、接收模块,接收所述目标共识节点下发的与本轮共识对应的区块;其中,所述区块为所述目标共识节点在确定收集到的已共识通过的共识提议的数量达到quorum个的情况下,基于收集到的quorum个已共识通过的共识提议生成的区块;其中,所述共识提议包括所述区块链系统中的各个共识节点发起的与本轮共识对应的共识提议;
47、第二保存模块,在本地保存所述区块,以触发区块链系统向与该区块中包含的各个共识提议对应的提议节点分别发放虚拟资源。
48、上述实施例中,通过在运行异步共识协议的区块链系统中引入激励机制,可以利用异步共识协议支持让所有共识节点都可以发起共识提议的特点,向发起的共识提议已经共识通过的共识节点发放虚拟资源,一方面,由于发起的共识提议能否共识通过的概率很大程度上取决于提议节点的提议速度和通讯效率,因此通过这种方式,可以避免让那些提议速度和通讯效率均无法满足要求的无作为的共识节点也能够拿到作为激励的虚拟资源;另一方面,由于只有发起的共识提议成功的共识通过,并且成功的被添加到新生成的区块中的共识节点,因此通过这种方式,可以激励各个共识节点不断的优化节点自身的提议速度和通讯效率,从可以从根本上推动运行异步共识协议的区块链系统,能够不断的朝着系统健康的方向可持续性的进行发展,进而可以提升区块链系统的稳定性与鲁棒性。
本文地址:https://www.jishuxx.com/zhuanli/20241120/332642.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表