一种区块链共识方法及装置与流程
- 国知局
- 2024-08-02 14:14:10
本说明书涉及计算机,尤其涉及一种区块链共识方法及装置。
背景技术:
1、目前,常见的区块链共识算法一般有如下几种:工作量证明(proof of work,pow)、权益证明(proof of stake,pos)、空间证明(proof of space,pospace)等。
2、在工作量证明中,节点设备需要不断进行哈希计算,找到期望的随机数,以获取区块链中的新区块的记账权。由于工作量证明涉及大量的、无意义的哈希计算,同时非记账节点的算力无效,这会浪费大量的资源。
3、在空间证明中,节点设备需要通过下载文件占据硬盘空间,下载文件所占的硬盘空间越大,证明用户付出越多,以此提高获取区块链中的新区块的记账权的概率。由于下载的文件并无意义,这也会浪费大量的资源。
4、在权益证明中,容易形成具有高额资产的节点设备,该节点设备将拥有远高于其他节点设备的获取记账权的概率。并且,具有高额资产的节点设备的优势还会随着区块链的发展不断扩大,节点设备间的资产贫富差距难以弥补,容易出现恶意节点设备攻击长链的情况。
5、因此,需要一种克服上述缺陷的新的区块链共识方法。
技术实现思路
1、本说明书提供一种区块链共识方法、装置、电子设备及机器可读存储介质,以避免区块链中的各节点设备在共识过程中消耗大量资源,资产贫富差距难以弥补的问题。
2、本说明书采用下述技术方案:
3、本说明书提供了一种区块链共识方法,所述方法应用于所述区块链中的任一节点设备,包括:
4、根据交易数据生成候选区块,所述候选区块中的区块头包含有所述节点设备的活跃值,所述活跃值为基于与所述节点设备对应的用户完成设定的人类活动任务的活动证明计算得到的,用于表示所述用户参与所述人类活动任务的活跃度;
5、向其他节点设备广播所述候选区块,并接收其他节点设备广播的候选区块;
6、基于生成的本节点设备的候选区块的区块头中包含的活跃值以及接收的其他节点设备广播的候选区块的区块头中包含的活跃值,确定本节点设备是否取得记账权限;
7、如果是,将生成的本节点设备的候选区块,存储至所述区块链的分布式账本,并清零本节点设备的活跃值。
8、可选地,所述方法还包括:
9、如果否,将取得记账权限的其他节点设备的候选区块,存储至所述区块链的分布式账本,并清零取得记账权限的其他节点设备的活跃值。
10、可选地,所述区块链上部署了用于生成问题的第一智能合约、用于验证问题答案的第二智能合约,所述第一智能合约针对不同的节点设备生成不同的问题;
11、在根据交易数据生成候选区块之前,所述方法还包括:
12、发起针对所述第一智能合约的合约调用,以由所述第一智能合约随机生成针对所述节点设备的问题;
13、获取所述第一智能合约生成的针对所述节点设备的问题;
14、将针对所述节点设备的问题展示给与所述节点设备对应的用户,并将所述用户输入的问题答案作为调用参数发起针对所述第二智能合约的合约调用,以由所述第二智能合约验证所述用户输入的问题答案,并将验证结果存储至所述区块链的分布式账本;
15、获取所述区块链的分布式账本中存储的所述验证结果,基于所述验证结果确定所述节点设备的活跃值。
16、可选地,与所述第一智能合约对应的合约代码中定义了随机种子值的更新间隔;
17、发起针对所述第一智能合约的合约调用,以由所述第一智能合约随机生成针对所述节点设备的问题,包括:
18、发起针对所述第一智能合约的合约调用,以由所述第一智能合约确定当前轮次的随机种子值的存在时长是否超过所述随机种子值的更新间隔;如果否,根据当前轮次的随机种子值,随机生成针对所述节点设备的问题;如果是,根据当前轮次的随机种子值以及所述区块链的最新区块中的区块头包含有的时间戳,对当前轮次的随机种子值进行更新,得到下一轮次的随机种子值,并根据下一轮次的随机种子值,随机生成针对所述节点设备的问题。
19、可选地,所述问题包括:包含验证码的图像;所述问题答案包括:图像中包含的验证码的内容。
20、可选地,在根据交易数据生成候选区块之前,所述方法还包括:
21、获取所述节点设备所属的用户完成设定的人类活动任务的活动证明;
22、根据所述活动证明,确定所述节点设备的活跃值。
23、可选地,在向其他节点设备广播所述候选区块之前,所述方法还包括:
24、将所述候选区块中的区块头信息以及触发周期性计算的时刻对应的时间戳输入到单向函数中,计算所述候选区块的单向函数值;
25、根据在所述区块链中获取新区块的难度目标以及所述节点设备的活跃值,计算所述节点设备取得记账权限的期望难度值;
26、向其他节点设备广播所述候选区块,包括:
27、确定所述候选区块的单向函数值是否小于所述节点设备取得记账权限的期望难度值;如果是,向其他节点设备广播所述候选区块。
28、可选地,基于生成的本节点设备的候选区块的区块头中包含的活跃值以及接收的其他节点设备广播的候选区块的区块头中包含的活跃值,确定本节点设备是否取得记账权限,包括:
29、确定生成的本节点设备的候选区块的区块头中包含的活跃值是否大于接收的其他节点设备广播的候选区块的区块头中包含的活跃值;如果是,本节点设备取得记账权限;如果否,候选区块的区块头中包含的活跃值最大的其他节点设备取得记账权限。
30、可选地,在确定生成的本节点设备的候选区块的区块头中包含的活跃值是否大于接收的其他节点设备广播的候选区块区块头中包含的活跃值之前,所述方法还包括:
31、确定生成的本节点设备的候选区块的触发周期性计算的时刻对应的时间戳是否小于接收的其他节点设备广播的候选区块的触发周期性计算的时刻对应的时间戳;如果是,本节点设备取得记账权限;如果否,触发周期性计算的时刻对应的时间戳最小的其他节点设备取得记账权限。
32、本说明书提供了一种区块链共识装置,所述装置应用于所述区块链中的任一节点设备,包括:
33、生成模块,用于根据交易数据生成候选区块,所述候选区块中的区块头包含有所述节点设备的活跃值,所述活跃值为基于与所述节点设备对应的用户完成设定的人类活动任务的活动证明计算得到的,用于表示所述用户参与所述人类活动任务的活跃度;
34、广播模块,用于向其他节点设备广播所述候选区块,并接收其他节点设备广播的候选区块;
35、确定模块,用于基于生成的本节点设备的候选区块以及接收的其他节点设备广播的候选区块的区块头中包含的活跃值,确定本节点设备是否取得记账权限;
36、清零模块,用于如果是,将生成的本节点设备的候选区块,存储至所述区块链的分布式账本,并清零本节点设备的活跃值。
37、本说明书提供了一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
38、所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述区块链共识方法。
39、本说明书提供了一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述区块链共识方法。
40、本说明书采用的上述至少一个技术方案能够达到以下有益效果:
41、在本说明书提供的区块链共识方法中,基于生成的本节点设备的候选区块以及接收的其他节点设备广播的候选区块的区块头中包含的活跃值,确定本节点设备是否取得记账权限。如果是,将生成的本节点设备的候选区块,存储至区块链的分布式账本。本方法可以避免大量无意义的哈希计算,减少资源的浪费,并且,基于人类活动任务的活动证明计算得到的活跃值,可以避免各节点设备之间的贫富差距出现难以弥补的问题。
本文地址:https://www.jishuxx.com/zhuanli/20240801/242113.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表