一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

区块链权限管理方法和区块链系统与流程

2021-12-01 02:16:00 来源:中国专利 TAG:


1.本技术涉及区块链技术,具体地,涉及一种区块链权限管理方法和区块链系统。


背景技术:

2.区块链技术是一种多方共同维护的账本技术,由共识机制、密码算法、网络路由、合约脚本等多种技术融合组成,具有分布式可信、难篡改、多方维护等技术特点。这些技术特点使得区块链被认为是互联网普及以来最具颠覆性的技术之一,受到全球各方的高度关注。
3.联盟链通常需要一个中心化的证书颁发机构(certificate authority,ca)服务器负责权限的控制,降低了区块链天然的分布式信任机制所带来的可靠性,而公有链开放的特性,导致非法交易非常容易滋生。


技术实现要素:

4.本技术实施例中提供了一种区块链权限管理方法和区块链系统,以解决上述技术问题。
5.根据本技术实施例的一个方面,提供了一种区块链权限管理方法,应用于区块链系统,所述方法包括:第一节点接收针对第二节点的节点操作请求,所述第一节点为所述区块链系统中角色信息为节点管理者的一个区块链节点,所述第二节点的节点类型为超级节点、骨干节点或服务节点;所述第一节点针对所述节点操作请求进行投票,以及向所述区块链系统中的其他节点管理者发送第一投票请求,所述第一投票请求用于请求所述节点管理者对所述节点操作请求进行投票;所述第一节点获得所有节点管理者对所述节点操作请求的投票结果及该投票结果对应的投票签名,将所获得的投票结果及投票签名打包成第一区块,将所述第一区块广播到所述区块链系统中;所述区块链系统中的每个区块链节点,验证所述第一区块中的每个投票结果及对应的投票签名,若均通过验证,则将所述第一区块同步至本地账本中;若所述第一区块中半数以上的投票结果为投票通过,则所述第一节点响应所述节点操作请求。
6.根据本技术实施例的另一个方面,提供了一种区块链系统,所述区块链系统包括第一节点,所述第一节点为所述区块链系统中角色信息为节点管理者的一个区块链节点;所述第一节点,包括接收模块、投票模块、打包模块和节点操作执行模块;每个区块链节点包括验签模块;所述接收模块用于接收针对第二节点的节点操作请求,所述第二节点的节点类型为超级节点、骨干节点或服务节点;
所述投票模块用于针对所述节点操作请求进行投票,以及向所述区块链系统中的其他节点管理者发送第一投票请求,所述第一投票请求用于请求所述节点管理者对所述节点操作请求进行投票;所述打包模块用于获得所有节点管理者对所述节点操作请求的投票结果及该投票结果对应的投票签名,将所获得的投票结果及投票签名打包成第一区块,将所述第一区块广播到所述区块链系统中;每个区块链节点的验签模块用于验证所述第一区块中的每个投票结果及对应的投票签名,若均通过验证,则将所述第一区块同步至本地账本中;所述节点操作模块用于当所述第一区块中半数以上的投票结果为投票通过,则响应所述节点操作请求。
7.本技术实施例提供的方案中,利用区块链系统天然的分布式信任机制实现灵活的权限管理,相较于中心化ca可信度更高。相较于公有链,采用权限管理而非完全开放的机制,能够更好地避免非法交易的滋生。
附图说明
8.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:图1示出了本技术实施例中提供的一种区块链权限管理方法的流程示意图之一;图2是本技术实施例提供的区块链权限管理方法的流程示意图之二;图3是本技术实施例提供的区块链权限管理方法的流程示意图之三;图4是本技术实施例提供的区块链权限管理方法的流程示意图之四;图5是本技术实施例提供的区块链权限管理方法的流程示意图之五;图6是本技术实施例提供的第一区块链系统与第二区块链系统的架构关系示意图;图7是本技术实施例提供的区块链权限管理方法的流程示意图之六;图8是图7所示步骤s701的一种子步骤示意图;图9是图7所示步骤s701的另一种子步骤示意图;图10是图7所示步骤s702的一种子步骤示意图;图11是图7所示步骤s702的另一种子步骤示意图;图12是本技术实施例提供的区块链系统的一种功能模块示意图。
具体实施方式
9.发明人经过研究还发现,联盟链通常需要一个中心化的证书颁发机构(certificate authority,ca)服务器来负责权限的控制,降低了区块链天然分布式信任的机制所带来的可靠性,而公有链完全开放的特性,则导致其非常容易滋生非法交易。
10.针对上述情形,本技术实施例提出一种区块链权限管理方法和区块链系统,可以利用区块链系统天然的分布式信任机制,实现灵活的权限管理,一方面相较于中心化ca更为可靠,另一方面,采用权限管理而非完全开放的机制,可以在一定程度上避免非法交易的滋生。
11.首先对本技术实施例提出的区块链系统进行介绍。本技术实施例提出的区块链系统,在创建之初,设置有6种角色和4种系统管理智能合约。这6种角色分别是链创建者、节点管理者、合约管理者、参数管理者、角色管理者以及普通用户。这4种系统管理智能合约分别是系统节点管理合约、系统合约管理合约、系统参数管理合约以及系统权威角色管理合约。
12.本技术实施例中,链创建者,也可以称为链管理者(chain manager),其可以由所述区块链系统中的区块链节点投票选举确定,所有的链创建者组成了一个委员会,用于对所述节点管理者、所述合约管理者、所述参数管理者以及所述角色管理者进行管理。具体地,可以通过委员会的内部投票机制来管理前述四种管理者名单的更新。
13.可选地,链创建者的数据结构可以如下表1所示:表1上述表1中,chain_manager表示链管理者,string表示的是相应字段的数据为字符串类型,上述的块存储位置表示的是链创建者的相关信息在区块链中的存储位置。
14.所述节点管理者用于更新所述系统节点管理合约,以及针对节点操作请求进行投票,即拥有审核和剔除节点的投票权利。本实施例中,节点管理者的数据结构可以如下表2所示。
15.表2上述表2中,node_manager表示节点管理者,块存储位置表示的是节点管理者的相关信息在区块链中的存储位置。
16.所述合约管理者用于更新所述区块链系统中的系统合约管理合约,以及对针对所
述区块链系统中任一智能合约的合约审核请求进行投票。合约管理者的数据结构可以如下表3所示。
17.表3上述表3中,contract_manager表示合约管理者,块存储位置表示的是合约管理者的相关信息在区块链上的存储位置。
18.所述参数管理者用于更新所述区块链系统中的系统参数管理合约,以及对系统升级请求进行投票。参数管理者的数据结构可以如下表4所示。
19.表4上述表4中,parameter_manager表示参数管理者,块存储位置表示的是所述参数管理者的相关信息在区块链上的存储位置。
20.所述角色管理者用于更新所述区块链系统中的系统权威角色管理合约,以及对节点权威角色认证请求进行投票。所述角色管理者的数据结构可以如下表5所示。
21.表5上述表5中,role_manager表示角色管理者,块存储位置表示的是角色管理者的相关信息在区块链上的存储位置。
22.所述普通用户用于在所述区块链系统中发布交易和智能合约,可以理解,每个普通用户都必须具有唯一的用户id。普通用户的数据结构如下表6所示。
23.表6上述表6中,user_manager表示的是用户管理者,即普通用户。其中,块存储位置表示的是相应普通用户的相关信息在区块链上的存储位置。
24.关于上述的4种系统管理智能合约,将通过下文的方法步骤进行介绍。
25.请参照图1,其中示出了本技术实施例提供的区块链权限管理方法,可以应用于本技术实施例提供的区块链系统,该方法可以包括图1所示的步骤。
26.s101,第一节点接收针对第二节点的节点操作请求,所述第一节点为所述区块链系统中角色信息为节点管理者的一个区块链节点,所述第二节点的节点类型为超级节点、骨干节点或服务节点。
27.示例性地,区块链系统中可能有多个节点管理者,而第一节点只是这多个节点管理者中的一个。第二节点则可以是区块链系统中的区块链节点,此时,所述节点操作请求可以用于请求区块链系统中的节点管理者对第二节点进行更新、删除或举报。此外,第二节点也可以是区块链系统之外的节点,此时,所述节点操作请求可以用于请求区块链系统中的节点管理者对第二节点进行创建。
28.可选地,所述节点操作请求可以包括为了调用系统节点管理合约而提交的信息,具体可以包括待调用的第一合约名称、所述第二节点的节点类型、第一操作以及提交账户。例如下表7所示。
29.表7值得说明的是,区块链系统中每一个角色信息为节点管理者的区块链节点上均部署有所述系统节点管理合约,换句话说,每个节点管理者上都部署有所述系统节点管理合约。
30.上表7中,第一合约名称是所述区块链系统中的系统节点管理合约的名称。第一操作是针对第二节点的待执行操作,可以理解,当待执行操作是创建操作、删除操作、更新操作时,节点操作请求可以是第二节点发送给第一节点的,当待执行操作是举报操作时,节点操作请求通常是不同于第二节点的其他节点(区块链节点或非区块链节点)发送给第一节点的。
31.对应地,s101可以通过以下方式实现:第一节点通过本节点上部署的所述系统节点管理合约,向所述其他节点管理者发送第一投票请求,其中,所述其他节点管理者用于通过所述系统节点管理合约对所述节点操作请求进行投票。
32.s102,所述第一节点针对所述节点操作请求进行投票。
33.实施过程中,第一节点作为节点管理者需要给出针对所述节点操作者的投票结果及对应的投票签名。
34.s103,所述第一节点向所述区块链系统中的其他节点管理者发送第一投票请求,所述第一投票请求用于请求所述节点管理者对所述节点操作请求进行投票。
35.可以理解,本实施例中,对于s102和s103的执行顺序是没有限制的,即两者可以按照任意顺序一前一后执行,也可以并行执行。
36.其他节点管理者是指区块链系统中除第一节点之外的所有节点管理者。第一投票请求中也携带有上述的待调用的第一合约名称、所述第二节点的节点类型、第一操作以及提交账户。当所述其他节点管理者收到所述第一投票请求之后,可以对第一投票请求中携带的信息进行审查,若审查通过,则可以返回表征通过的投票结果,以及对该投票结果的投票签名;若审查不通过,则可以返回表征不通过的投票结果,以及对该投票结果的投票签名。
37.s104,所述第一节点获得所有节点管理者对所述节点操作请求的投票结果及该投
票结果对应的投票签名,将所获得的投票结果及投票签名打包成第一区块,将所述第一区块广播到所述区块链系统中。
38.这里的所有节点管理者包括第一节点自身以及所述其他节点管理者。
39.s105,所述区块链系统中的每个区块链节点,验证所述第一区块中的每个投票结果及对应的投票签名,若均通过验证,则将所述第一区块同步至本地账本中。
40.本实施例中,区块链节点对于投票结果的验证可以是投票结果是否是预设格式的数据,即是否表征通过和不通过其中一者。区块链节点对于投票签名的验证,可以是通过相应节点管理者的公钥对节点管理者提供的投票签名进行验证。值得说明的是,区块链节点除了验证第一区块中的投票结果和投票签名进行验证之外,还可以对第一区块的区块头中的信息进行验证。
41.本地账本是指区块链节点上维护的区块链副本。当第一区块中所有的投票结果和投票签名通过一区块链节点的验证,且第一区块的区块头也通过该区块链节点的验证的情况下,该区块链节点可以将所述第一区块追加到本地维护的区块链副本的末尾。
42.s106,若所述第一区块中半数以上的投票结果为投票通过,则所述第一节点响应所述节点操作请求。
43.在第一区块通过验证后,可以统计其中表征通过的投票结果的数量,若占第一区块中投票结果总量的一半以上,则可以确定允许对第二节点执行所述节点操作请求,此时,可以由第一节点响应所述节点操作请求。
44.通过上述设计,在区块链系统中提供了节点操作管理的完善机制,且该机制具有一定的分布式特性,相较于联盟链具有更优的去中心化特点,相较于公有链则更容易避免非法交易的滋生。
45.可选地,上述的s106具体可以通过如下方式实现:第一节点通过所述系统节点管理合约,针对所述第二节点执行所述第一操作,并将所述第二节点的节点信息广播至所述区块链中。
46.上述的第二节点的节点信息包括所述第二节点的节点类型、节点名称、节点地址、角色信息、节点状态及各所述节点管理者对所述节点操作请求的投票签名,例如可以如下表8所示。
47.表8上述表8中,投票签名集合(signature_sum)即为各所述节点管理者对所述节点操作请求的投票签名所组成的集合。第二节点的角色信息可以是上文提及的6种角色中的任意一者。
48.容易理解地,当节点操作请求中的第一操作是创建操作或更新操作时,第二节点的节点状态可以是未失效;当该第一操作是删除操作或举报操作时,第二节点的节点状态可以是失效。本实施例对此没有限制。
49.可选地,当所述第一操作是创建操作时,在第一节点通过系统节点管理合约,针对所述第二节点执行所述第一操作之后,所述区块链权限管理方法还可以包括图2所示的步骤。
50.s201,第二节点向所述区块链系统中的链创建者发送第二投票请求,所述第二投票请求包括所述第二节点的角色信息,用于请求所述链创建者针对所述第二节点的角色信息进行投票。
51.s202,所述区块链系统中的目标链创建者收集所有链创建者针对所述第二节点的角色信息的投票结果及对应的投票签名,在所有投票结果及对应的投票签名验证通过的情况下,基于所有投票结果在所述区块链系统中设置所述第二节点的角色信息。
52.如前文所述的,链创建者具有对节点管理者、合约管理者、参数管理者和角色管理者的管理权限,可以通过内部投票机制更新这四种管理者的名单。
53.因此,本实施例中,在第二节点的角色信息为上述的节点管理者、合约管理者、参数管理者和角色管理者之一的情况下,第二节点可以执行s701和s702,以实现对所述第二节点的角色信息的相应管理。
54.可选地,s202中,基于所有投票结果在所述区块链系统中设置所述第二节点的角色信息可以通过如下方式实现:若所述第二节点的角色信息为节点管理者、合约管理者、参数管理者及节点角色管理者中的任意一者,且所有投票结果中半数以上的投票结果为投票通过,则将所述第二
节点的角色信息更新至所述区块链系统中相应的管理者名单。
55.可选地,本技术实施例提供的区块链权限管理方法还可以包括图3所示的步骤。
56.s301,第三节点确定待操作智能合约,向所述区块链节点中的所述合约管理者发送针对所述待操作智能合约的合约审核请求。
57.其中,所述第三节点为所述区块链系统中角色信息为普通用户的区块链节点。
58.所述合约审核请求包括第三节点为了调用系统合约管理合约而提交的信息,具体可以包括待调用的第二合约名称、所述待操作智能合约的合约类型、所述待操作智能合约的合约内容、第二操作及所述第三节点的账户。例如下表9所示。
59.表9上表9中,所述第二合约名称是所述区块链系统中的系统合约管理合约的名称,它表征的是为了处理合约审核请求而需要调用的智能合约。所述合约类型是指待操作智能合约的合约类型,例如可以是金融相关的智能合约,也可以是存证相关的智能合约。
60.所述第二操作是针对所述待操作智能合约的待执行操作,可以是创建操作、更新操作、删除操作或举报操作。所述第三节点的账户即合约审核请求的提交账户。
61.s302,第四节点通过所述系统合约管理合约,收集各所述合约管理者对所述合约审核请求的投票结果及对应的投票签名,并将所获得的投票结果及对应的投票签名打包成第二区块,并将所述第二区块广播至所述区块链系统中。
62.其中,第四节点是所述区块链系统中角色信息为所述合约管理者的一个区块链节点。例如,区块链系统中可能存在多个合约管理者,而第四节点只是这个多个合约管理者中一个。s302中的各所述合约管理者,包括第四节点自身以及第四节点之外的其他合约管理者。
63.由此可见,区块链系统中的系统合约管理合约,具有审核或剔除区块链系统中智能合约的权限。
64.s303,所述区块链系统中的每个区块链节点,验证所述第二区块中的每个投票结果及对应的投票签名,若均通过验证,则将所述第二区块同步至本地账本中。
65.关于s303的实现过程可以参照上文对s105的详细描述,其原理相似,在此不再赘述。
66.s304,若所述第二区块中半数以上的投票结果为投票通过,则所述第四节点对所
述待操作智能合约执行所述第二操作,并将所述待操作智能合约的合约信息广播至所述区块链系统中。
67.其中,所述待操作智能合约的合约信息可以包括所述待操作智能合约的合约类型、合约名称、合约地址、合约功能描述、合约状态以及各所述合约管理者对所述合约审核请求的投票签名,具体可以如下表10所示。
68.表10可以理解,上表10中,投票签名集合(signature_sum)即为各所述合约管理者对所述合约审核请求的投票签名所组成的集合。
69.可选地,本技术实施例提供的区块链权限管理方法还可以包括图4所示的步骤。
70.s401,第五节点接收所述区块链系统中的所述链创建者发送的系统升级请求。
71.所述第五节点为所述区块链系统中角色信息为参数管理者的一个区块链节点。例如,区块链系统中存在多个参数管理者,第五节点只是这多个参数管理者中的一个。
72.所述系统升级请求可以包括所述第五节点为了调用系统参数管理合约而提交的信息,具体可以包括待调用的第三合约名称、待调整的目标参数类型、参数数值以及发送所述系统升级请求的所述链创建者的账户。例如下表11所示。
73.表11上述表11中,所述第三合约名称为所述区块链系统中的系统参数管理合约的合约名称。参数类型是指待更新的参数类型,例如可以包括区块大小、交易大小等。
74.s402,所述第五节点通过所述系统参数管理合约,获得所述区块链系统中的各所述参数管理者对所述系统升级请求的投票结果及对应的投票签名,将所获得的投票结果及对应的投票签名打包成第三区块,并将所述第三区块广播至所述区块链系统中。
75.值得说明的是,s402中的各所述参数管理者包括第五节点自身以及除了第五节点之外的其他参数管理者。第三区块中包括所有参数管理者的投票结果及对应投票签名。
76.s403,所述区块链系统中的每个区块链节点,验证所述第三区块中的每个投票结果及对应的投票签名,若均通过验证,则将所述第三区块同步至本地账本中。
77.关于s403的实现过程,可以参照上文对s105的详细描述,两者原理类似,在此不再赘述。
78.s404,若所述第三区块中半数以上的投票结果为投票通过,则所述第五节点基于所述系统升级请求升级所述区块链系统,以将所述区块系统的所述目标参数类型的取值更新为所述参数数值,并将升级后的所述区块链系统的区块链参数广播到所述区块链系统中。
79.上述的区块链参数可以包括所述目标参数类型的取值、系统状态以及各所述参数管理者对所述系统升级请求的投票签名。以目标参数类型包括区块大小和交易大小为例,该区块链参数可以如下表12所示。
80.表12上表12中,投票签名集合(signature_sum)即为各所述参数管理者对所述系统升级请求的投票签名组成的集合。
81.基于图4所示流程,可以看出系统参数管理合约可以由链创建者触发,并响应于链创建者的触发而发起投票机制,基于投票结果启动区块链系统升级。
82.可选地,本技术实施例提供的区块链权限管理方法还可以包括图5所示的步骤。
83.s501,第六节点接收第七节点发送的权威角色认证请求。
84.其中,所述第六节点是所述区块链系统中角色信息为角色管理者的区块链节点,所述第七节点为用于发布证书的任一权威机构节点。
85.所述权威角色认证请求可以包括为调用系统权威角色管理合约而提交的信息,具体可以包括待调用的第四合约名称、所述第七节点的角色类型、所述第七节点的公钥、第三操作及所述第七节点的账户,所述第四合约名称为所述区块链系统中的系统权威角色管理合约。例如下表13所示。表13上表13中,所述第四合约名称为所述区块链系统中的系统权威角色管理合约的名称。可以理解,所述区块链系统中角色信息为角色管理者的区块链节点上均部署有所述系统权威角色管理合约。所述第三操作是针对所述角色类型的所述第七节点的待执行操作,具体可以是创建操作、更新操作、举报操作或删除操作。所述第七节点的角色类型例如可以是金融节点、学校节点或质检节点等,本实施例对此没有限制。
86.s502,所述第六节点通过所述系统权威角色管理合约,收集各所述角色管理者对所述权威角色认证请求的投票结果及对应的投票签名,并将所获得的投票结果及对应的投票签名打包成第四区块,并将所述第四区块广播至所述区块链系统中。
87.这里的各所述角色管理者包括第六节点自身以及除了第六节点之外的其他所有角色管理者。
88.s503,所述区块链系统中的每个区块链节点,验证所述第四区块中的每个投票结果及对应的投票签名,若均通过验证,则将所述第四区块同步至本地账本中。
89.关于s503的实现过程,具体可以参照上文对s105的详细描述,在此不再赘述。
90.s504,若所述第四区块中半数以上的投票结果为投票通过,则所述第六节点对所述角色类型的所述第七节点执行所述第三操作,并将所述角色类型的所述第七节点的权威
角色信息广播到所述区块链系统中。
91.可选地,所述第七节点的权威角色信息可以包括所述第七节点的角色类型、所述公钥、所述第七节点的账户的地址、所述第七节点的角色信息描述、所述角色类型的所述第七节点的角色状态以及各所述角色管理者对所述权威角色认证请求的投票签名。具体可以如下表14所示。
92.表14上述表14中,账户地址是指所述角色类型的所述第七节点的账户地址。所述投票签名集合(signature_sum)即为各所述角色管理者对所述权威角色认证请求的投票签名组成的集合。
93.通过图5所示流程,可以看出系统权威角色管理合约并不等同于区块链系统中的超级节点、骨干节点和服务节点,而是具有监管功能的角色认证。这里的角色类型包括金融审核节点、质量检测节点、学校节点等权威机构节点。这些权威机构节点可以用于发布证书。
94.本技术实施例中,在区块链系统中部署上述任意一种系统管理合约的流程可以是,由链创建者(即链管理者)初始化系统级合约(上述4种中的任一者),再由预定义的角色管理者制定合约规则并对该合约规则进行签名,然后将所获得的系统级合约部署到相应的区块链节点上。
95.通过本技术实施例提供的上述的区块链权限管理方法及系统,可以实现具有一定分布式信任机制的灵活的权限管理,相较于中心化ca更加可靠,而又可以比完全开放的公有链更加能够阻止非法交易的滋生。
96.进一步地,在一些场景中区块链系统之间可能会进行跨链交易。一种典型的跨链交易方式是公证人方式,这种方式需要预先设置产生交易的两个区块链系统具有共同信任的机构或节点,这些机构或节点组成公证人联盟用于处理跨链交易。但是,发明人研究发现,现有的公证人联盟通常都是预先设置好、固定不变的,在这种情况下,公证人联盟一方面受到攻击的可能性非常大,另一方面作恶的可能性也比较高。
97.基于此,本技术实施例在上述提供的4种节点角色的基础上,针对跨链交易场景增
加了一种角色,即公证人,并提供了用于动态确定两个存在跨链交易的区块链系统之间的公证人联盟的方法。对应地,请参照图6,本实施例提供的上述区块链系统可以作为第一区块链系统100与第二区块链系统200通信,所述第一区块链系统包括多个第八节点,例如110、120、130。所述第八节点是同时属于第一区块链系统100和第二区块链系统200的区块链节点。例如,图6所示的第八节点110、120、130既是第一区块链系统100中的区块链节点,又是第二区块链系统200中的区块链节点。
98.应当理解,第一区块链系统100和第二区块链系统200中,除了上述的第八节点,分别还可以包括其他区块链节点。
99.为了动态确定第一区块链系统100和第二区块链系统200的公证人联盟,本技术实施例提供的区块链权限管理方法还可以包括图7所示的步骤,具体描述如下。
100.s701,基于在第一区块链系统和/或第二区块链系统的数字货币资产,通过权益证明机制在所述多个第八节点中确定目标节点,将确定的每个所述目标节点的角色信息设置为公证人。
101.其中,每个第八节点分别在第一区块链系统100和第二区块链系统200中持有一定数量的数字货币资产。示例性地,每个第八节点在第一区块链系统100持有一定数量的第一资产,在第二区块链系统200持有一定数量的第二资产。
102.一种实施方式中,s701可以通过图8所示的步骤实现:s701

1,由第三智能合约在第一区块链系统和第二区块链系统中周期性地发布公证人竞选通知。
103.s701

2,每个第八节点收到所述公证人竞选通知后,可以计算满足如下表达式(1)的随机数n:
ꢀꢀ
(1)其中,h表示哈希函数,表示公证人竞选通知,表示第八节点存储的公证人竞选通知记录,对应地,表示当前收到的公证人竞选通知,表示第八节点存储的上一次公证人竞选通知记录。target为预设值,coinage表示第八节点的币龄,即第八节点当前持有的货币资产数量与持有时间的乘积。具体地,由于本实施例中的第八节点同时属于第一区块链系统100和第二区块链系统200,因此,第八节点可能同时在第一区块链系统100和第二区块链系统200中持有数字货币资产。基于此,每个第八节点的coinage可以通过以下表达式(2)获得: (2)其中,表示第八节点在第一区块链系统100中持有的数字货币资产的数量,表示第八节点持有第一区块链系统100中的该数字货币资产的时间,则可以表示第八节点在第一区块链系统100中的币龄(在此称为“第一币龄”)。表示第八节点在第二区块链系统200中持有的数字货币资产的数量,表示第
八节点持有第二区块链系统200中的该数字货币资产的时间,则可以表示第八节点在第二区块链系统200中的币龄(在此称为“第二币龄”)。
104.本实施例中,第八节点的第一币龄和第二币龄可以预先配置有权重,第一币龄对应第一权重(即),第二币龄对应第二权重(即)。和之和为1,其具体取值可以根据需要灵活设置。例如,可以均为0.5;又如,第一区块链系统100和第二区块链系统200中的数字货币资产是可以按照价值进行兑换的,可以按照两种数字货币资产的兑换关系,确定一个第八节点持有的第一区块链系统100的数字货币资产与第二区块链系统200的数字货币资产之间的价值比例,按照该价值比例设置上述的和。
105.具体而言,可以将一个第八节点持有的第二区块链系统200的数字货币资产的数量(即),按价值兑换关系转换成第一区块链系统100中数字货币资产的数量(如, )。然后,计算该第八节点持有的第一区块链系统100中数字货币资产的数量(即)与之和,将设置为,将设置为。
106.s701

3,将最先计算出随机数n的第一数量个第八节点确定为目标节点。
107.其中,第一数量可以为预先设置的公证人节点的数量,其小于或等于第八节点的数量。
108.在另一种实施方式中,s701可以通过如图9所示的步骤实现:s701

4,基于在第一区块链系统中的数字货币资产,通过权益证明机制在所述多个第八节点中确定出至少一个目标节点。
109.s701

5,基于在第二区块链系统中的数字货币资产,通过权益证明机制在所述多个第八节点中确定出至少一个目标节点。
110.示例性地,第三智能合约可以周期性地触发公证人竞选,以使第一区块链系统100中的各区块链节点通过实用拜占庭容错机制,从各第八节点中确定出币龄最大的第二数量个候选节点。类似地,第二区块链系统200中的各区块链节点也可以从各第八节点中,确定出所述第二数量个候选节点。
111.然后,一种实现方式是,将第一区块链系统100和第二区块链系统200中分别确定出的候选节点中相同的节点,作为目标节点。其中,第二数量大于或等于第一数量,但小于或等于第八节点的数量。
112.另一种实现方式是,将第一区块链系统100和第二区块链系统200各自确定的候选节点均确定为目标节点。其中,第二数量小于或等于第一数量。
113.可以理解,在此实施方式中,第一区块链系统100或第二区块链系统200中的区块链节点可以通过如下表达式(3)计算每个第八节点持有的数字货币资产的币龄: (3)在通过上述任一实施方式确定第一数量个目标节点后,可以通过前文描述的节点角色管理合约将当前的公证人节点的角色信息中表征公证人的信息删除,即取消当前公证人节点的公证人资格,然后,再将所确定的所述第一数量个目标节点的角色信息分别设置
为公证人,从而得到新的第一数量个公证人节点。
114.s702,由多个公证人节点组成的公证人联盟对所述第一区块链系统和所述第二区块链系统之间的跨链支付账单进行处理,所述公证人节点是指角色信息为公证人的第八节点。
115.可以理解,s702中的多个公证人节点可以是上述的第一数量个公证人节点,所述第一数量个公证人节点组成所述公证人联盟。
116.所述公证人联盟可以对第一区块链系统100和第二区块链系统200之间的跨链支付账单进行处理。可选地,在一种实施方式中,如图10所示,s702可以包括如下步骤:s702

1,在所述第一区块链系统生成由多个所述公证人节点多重签名的第一钱包,在第二区块链系统生成由多个所述公证人节点多重签名的第二钱包。
117.s702

2,在所有所述公证人节点均检测到向所述第一钱包进行数字货币资产转移的第一账单产生时,在所述第二钱包中激活与所述第一账单中记载的第一资产数量相应的第二资产,并在所述第二区块链系统中生成由多个所述公证人节点多重签名的第二账单,将所述第二资产转移至客户端指定的所述第二区块链系统中的资产接收地址。
118.其中,客户端可以是发起跨链支付的用户所使用的客户端。
119.s702

3,在所有所述公证人节点均检测到向所述第二钱包进行数字货币资产转移的第三账单产生时,且所述第三账单与所述第二账单关联且所述第三账单中转移的数字货币资产与所述第二资产相符时,在所述第一区块链系统中生成由多个所述公证人节点多重签名且与所述第一账单关联的第四账单,将所述第一资产转移至所述客户端指定的所述第一区块链系统中的资产接收地址。
120.另一种实施方式中,s702可以通过图11所示的步骤实现:s702

4,在确定出多个所述目标节点时,激活预先部署在所述第一区块链系统的第一智能合约,通过所述第一智能合约通知需要从所述第一区块链系统向所述第二区块链系统进行数字货币资产转移的客户端将支付账单的资产接收地址配置为所述第一区块链系统中预设的第一钱包。
121.s702

5,通过所述第一智能合约检测到向所述第一钱包进行数字货币资产转移的第一账单产生时,触发在所述公证人联盟中通过实用拜占庭容错机制对所述第一账单进行验证并向所述第二区块链系统公布验证结果。
122.s702

6,通过预先部署在第二区块链系统的第二智能合约检测到在所述公证人联盟中对所述第一账单验证完成时,在所述第二区块链系统的预设的第二钱包中激活与所述第一账单中记载的第一资产数量相对应的第二资产,并在所述第二区块链系统中生成第二账单,将所述第二资产转移至所述客户端指定的所述第二区块链系统中的资产接收地址。
123.s702

7,在通过所述第二智能合约检测到向所述第二钱包进行数字货币资产转移的第三账单产生时,且所述第三账单与所述第二账单关联且所述第三账单中转移的数字货币资产是否与所述第二资产相符时,触发在所述公证人联盟中通过实用拜占庭容错机制对所述第三账单进行验证并向所述第一区块链系统公布验证结果。
124.s702

8,在通过所述第一智能合约检测到在所述公证人联盟中对所述第三账单验证完成时,在所述第一区块链系统中与所述第一账单关联的第四账单,将所述第一资产转移至所述客户端指定的所述第一区块链系统的资产接收地址。
125.通过上述设计,可以实现第一区块链系统100和第二区块链系统200的跨链支付交易。
126.可选地,本技术实施例中,是由区块链节点将多个账单打包成一个区块发布到第一区块链系统100或第二区块链系统200中,对于所确定的第一区块链系统100和第二区块链系统200之间的每个跨链支付账单,可以先检测发起该跨链支付账单的客户端中是否存在所述公证人节点,若是,则不对该跨链支付账单进行处理。这样,可以避免公证人节点恶意发起跨链支付交易并作恶。
127.值得说明的是,对于其他并非由部署有公证人节点的客户端发起、或是并非由部署有公证人节点的客户端接收的跨链支付账单,当前公证人联盟仍可以进行处理。
128.请参照图12,是本技术实施例还提供一种区块链系统1200的功能模块示意图,其中包括第一节点1210,第一节点1210是所述区块链系统中角色信息为节点管理者的一个区块链节点。第一节点1210包括接收模块1211、投票模块1212、打包模块1213以及节点操作执行模块1214。除了第一节点1210之外,区块链系统1200还可以包括其他的区块链节点,例如图12中示例性示出的区块链节点1209,区块链节点1209包括验签模块1209

1。
129.接收模块1211用于接收针对第二节点的节点操作请求,所述第二节点的节点类型为超级节点、骨干节点或服务节点。
130.投票模块1212用于针对所述节点操作请求进行投票,以及向所述区块链系统中的其他节点管理者发送第一投票请求,所述第一投票请求用于请求所述节点管理者对所述节点操作请求进行投票。
131.打包模块1213用于获得所有节点管理者对所述节点操作请求的投票结果及该投票结果对应的投票签名,将所获得的投票结果及投票签名打包成第一区块,将所述第一区块广播到所述区块链系统中。
132.区块链系统1200中的每个区块链节点的验签模块(如区块链节点1209中的验签模块1209

1),用于验证第一区块中的每个投票结果及对应的投票签名,若均通过验证,则将所述第一区块同步至本地账本中。
133.第一节点1210中的节点操作执行模块1214用于当所述第一区块中半数以上的投票结果为投票通过,则响应所述节点操作请求。
134.可选地,所述节点操作请求包括待调用的第一合约名称、所述第二节点的节点类型、第一操作以及提交账户,所述第一合约名称为所述区块链系统中的系统节点管理合约的名称,所述区块链系统中角色信息为节点管理者的区块链节点上部署有所述系统节点管理合约,所述第一操作为针对所述第二节点的待执行操作。
135.可选地,所述投票模块1212具体用于:通过所述系统节点管理合约向所述其他节点管理者发送第一投票请求,其中,所述其他节点管理者用于通过所述系统节点管理合约对所述节点操作请求进行投票。
136.所述节点操作执行模块1214通过如下方式响应所述节点操作请求:通过所述系统节点管理合约,针对所述第二节点执行所述第一操作,并将所述第二节点的节点信息广播至所述区块链中;其中,所述第二节点的节点信息包括所述第二节点的节点类型、节点名称、节点地址、角色信息、节点状态及各所述节点管理者对所述节点操作请求的投票签名。
137.可选地,所述第一操作为创建操作、更新操作、删除操作或举报操作;当所述第一操作为创建操作或更新操作时,所述第二节点的节点状态为未失效;当所述第一操作为删除操作或举报操作时,所述第二节点的节点状态为失效。
138.可选地,所述第二节点的角色信息为链创建者、节点管理者、合约管理者、参数管理者、角色管理者以及普通用户中的任意一者。
139.所述链创建者由所述区块链系统中的区块链节点投票选举确定,用于对所述节点管理者、所述合约管理者、所述参数管理者以及所述角色管理者进行管理;所述节点管理者用于更新所述系统节点管理合约,以及针对节点操作请求进行投票;所述合约管理者用于更新所述区块链系统中的系统合约管理合约,以及对针对所述区块链系统中任一智能合约的合约审核请求进行投票;所述参数管理者用于更新所述区块链系统中的系统参数管理合约,以及对系统升级请求进行投票;所述角色管理者用于更新所述区块链系统中的系统权威角色管理合约,以及对节点权威角色认证请求进行投票;所述普通用户用于在所述区块链系统中发布交易和智能合约。
140.可选地,当第一操作为创建操作时,在所述第一节点1210通过所述系统节点管理合约,针对所述第二节点执行所述第一操作之后,第二节点成为区块链系统1200中的区块链节点。对应地,区块链系统1200还可以包括第二节点,第二节点还可以包括投票模块。
141.第二节点中的投票模块用于向所述区块链系统中的链创建者发送第二投票请求,所述第二投票请求包括所述第二节点的角色信息,用于请求所述链创建者针对所述第二节点的角色信息进行投票。
142.区块链系统1200中的目标链创建者,用于收集所有链创建者针对所述第二节点的角色信息的投票结果及对应的投票签名,在所有投票结果及对应的投票签名验证通过的情况下,基于所有投票结果在所述区块链系统中设置所述第二节点的角色信息。
143.所述目标链创建者基于所有投票结果在所述区块链系统中设置所述第二节点的角色信息的方式可以是:若所述第二节点的角色信息为节点管理者、合约管理者、参数管理者及节点角色管理者中的任意一者,且所有投票结果中半数以上的投票结果为投票通过,则将所述第二节点的角色信息更新至所述区块链系统中相应的管理者名单。
144.可选地,区块链系统1200还可以包括第三节点和第四节点,第三节点是区块链系统1200中角色信息为普通用户的区块链节点,第四节点为所述区块链系统1200中角色信息为所述合约管理者的一个区块链节点。
145.第三节点可以包括合约审核请求模块,第四节点包括合约审核模块和合约操作模块。
146.合约审核请求模块用于确定待操作智能合约,向所述区块链节点中的所述合约管理者发送针对所述待操作智能合约的合约审核请求,所述合约审核请求包括待调用的第二合约名称、所述待操作智能合约的合约类型、所述待操作智能合约的合约内容、第二操作及所述第三节点的账户,所述第二合约名称是所述区块链系统中的系统合约管理合约的名称,所述第二操作是针对所述待操作智能合约的待执行操作。
147.合约审核模块用于通过所述系统合约管理合约,收集各所述合约管理者对所述合约审核请求的投票结果及对应的投票签名,并将所获得的投票结果及对应的投票签名打包
成第二区块,并将所述第二区块广播至所述区块链系统1200中。
148.区块链系统1200中的每个区块链节点的验签模块,用于验证所述第二区块中的每个投票结果及对应的投票签名,若均通过验证,则将所述第二区块同步至本地账本中。
149.合约操作模块用于当所述第二区块中半数以上的投票结果为投票通过,则对所述待操作智能合约执行所述第二操作,并将所述待操作智能合约的合约信息广播至所述区块链系统1200中。
150.可选地,所述合约信息包括所述待操作智能合约的合约类型、合约名称、合约地址、合约功能描述、合约状态以及各所述合约管理者对所述合约审核请求的投票签名。
151.可选地,区块链系统1200还可以包括第五节点。第五节点可以是所述区块链系统中角色信息为参数管理者的一个区块链节点。
152.第五节点可以包括接收模块、参数更新模块和系统升级模块。
153.第五节点的接收模块用于接收区块链系统1200中的链创建者发送的系统升级请求,所述系统升级请求包括待调用的第三合约名称、待调整的目标参数类型、参数数值以及发送所述系统升级请求的所述链创建者的账户,所述第三合约名称为所述区块链系统中的系统参数管理合约的名称,所述区块链系统中角色信息为参数管理者的区块链节点上均部署有所述系统参数管理合约。
154.参数管理模块用于通过所述系统参数管理合约,获得所述区块链系统中的各所述参数管理者对所述系统升级请求的投票结果及对应的投票签名,将所获得的投票结果及对应的投票签名打包成第三区块,并将所述第三区块广播至所述区块链系统中。
155.区块链系统1200中的每个区块链节点的验签模块,用于验证所述第三区块中的每个投票结果及对应的投票签名,若均通过验证,则将所述第三区块同步至本地账本中。
156.参数更新模块用于当所述第三区块中半数以上的投票结果为投票通过,基于所述系统升级请求升级所述区块链系统,以将所述区块系统的所述目标参数类型的取值更新为所述参数数值,并将升级后的所述区块链系统的所述目标参数类型的取值、系统状态以及各所述参数管理者对所述系统升级请求的投票签名广播到所述区块链系统中。
157.可选地,区块链系统1200还可以包括第六节点。第六节点是所述区块链系统中角色信息为角色管理者的区块链节点。
158.第六节点包括权威角色认证模块、投票模块以及权威角色操作模块。
159.权威角色认证模块用于接收第七节点发送的权威角色认证请求,所述第七节点为用于发布证书的任一权威机构节点,所述权威角色认证请求包括待调用的第四合约名称、所述第七节点的角色类型、所述第七节点的公钥、第三操作及所述第七节点的账户,所述第四合约名称为所述区块链系统中的系统权威角色管理合约的名称,所述区块链系统中角色信息为角色管理者的区块链节点上均部署有所述系统权威角色管理合约,所述第三操作是针对所述角色类型的所述第七节点的待执行操作。
160.第六节点的投票模块用于通过所述系统权威角色管理合约,收集各所述角色管理者对所述权威角色认证请求的投票结果及对应的投票签名,并将所获得的投票结果及对应的投票签名打包成第四区块,并将所述第四区块广播至所述区块链系统中。
161.区块链系统1200中的每个区块链节点的验签模块,用于验证所述第四区块中的每个投票结果及对应的投票签名,若均通过验证,则将所述第四区块同步至本地账本中。
162.权威角色操作模块用于当所述第四区块中半数以上的投票结果是投票通过,则对所述角色类型的所述第七节点执行所述第三操作,并将所述角色类型的所述第七节点的权威角色信息广播到所述区块链系统中。
163.所述权威角色信息包括所述角色类型、所述公钥、所述第七节点的账户的地址、所述第七节点的角色信息描述、所述角色类型的所述第七节点的角色状态以及各所述角色管理者对所述权威角色认证请求的投票签名。
164.可选地,所述区块链系统1200可以作为第一区块链系统与第二区块链系统通信,所述第一区块链系统包括多个第八节点,所述第八节点是同时属于所述第一区块链系统和所述第二区块链系统的区块链节点。
165.第一区块链系统和/或第二区块链系统中的区块链节点包括:公证人确定模块,用于基于在所述第一区块链系统和/或所述第二区块链系统的数字货币资产,通过权益证明机制在所述多个第八节点中确定目标节点,将确定的每个所述目标节点的角色信息设置为公证人。
166.跨链交易模块,用于通过由多个公证人节点组成的公证人联盟对所述第一区块链系统和所述第二区块链系统之间的跨链支付账单进行处理,所述公证人节点是指角色信息为公证人的第八节点。
167.公证人确定模块具体可以用于:基于在所述第一个区块链系统中的数字货币资产,通过权益证明机制在所述多个第八节点确定出至少一个目标节点;基于在所述第二区块链系统中的数字货币资产,通过权益证明机制在所述多个第八节点中确定出至少一个目标节点。
168.可选地,在一种实施方式中,跨链交易模块具体可以用于:在所述第一区块链系统生成由多个所述公证人节点多重签名的第一钱包,在第二区块链系统生成由多个所述公证人节点多重签名的第二钱包;在所有所述公证人节点均检测到向所述第一钱包进行数字货币资产转移的第一账单产生时,在所述第二钱包中激活与所述第一账单中记载的第一资产数量相应的第二资产,并在所述第二区块链系统中生成由多个所述公证人节点多重签名的第二账单,将所述第二资产转移至客户端指定的所述第二区块链系统中的资产接收地址。
169.在此实施方式中,跨链交易模块具体还可以用于:在所有所述公证人节点均检测到向所述第二钱包进行数字货币资产转移的第三账单产生时,且所述第三账单与所述第二账单关联且所述第三账单中转移的数字货币资产与所述第二资产相符时,在所述第一区块链系统中生成由多个所述公证人节点多重签名且与所述第一账单关联的第四账单,将所述第一资产转移至所述客户端指定的所述第一区块链系统中的资产接收地址。
170.在另一种实施方式中,跨链交易模块具体可以用于:在确定出多个所述目标节点时,激活预先部署在所述第一区块链系统的第一智能合约,通过所述第一智能合约通知需要从所述第一区块链系统向所述第二区块链系统进行数字货币资产转移的客户端将支付账单的资产接收地址配置为所述第一区块链系统中预设的第一钱包;
通过所述第一智能合约检测到向所述第一钱包进行数字货币资产转移的第一账单产生时,触发在所述公证人联盟中通过实用拜占庭容错机制对所述第一账单进行验证并向所述第二区块链系统公布验证结果;通过预先部署在第二区块链系统的第二智能合约检测到在所述公证人联盟中对所述第一账单验证完成时,在所述第二区块链系统的预设的第二钱包中激活与所述第一账单中记载的第一资产数量相对应的第二资产,并在所述第二区块链系统中生成第二账单,将所述第二资产转移至所述客户端指定的所述第二区块链系统中的资产接收地址。
171.在此实施方式中,跨链交易模块具体还可以用于:在通过所述第二智能合约检测到向所述第二钱包进行数字货币资产转移的第三账单产生时,且所述第三账单与所述第二账单关联且所述第三账单中转移的数字货币资产是否与所述第二资产相符时,触发在所述公证人联盟中通过实用拜占庭容错机制对所述第三账单进行验证并向所述第一区块链系统公布验证结果;在通过所述第一智能合约检测到在所述公证人联盟中对所述第三账单验证完成时,在所述第一区块链系统中与所述第一账单关联的第四账单,将所述第一资产转移至所述客户端指定的所述第一区块链系统的资产接收地址。
172.可选地,第一区块链系统和/或第二区块链系统中的区块链节点还可以包括检测模块。
173.检测模块可以用于:检测发起所述第一区块链系统和所述第二区块链系统之间的所述跨链支付账单的客户端中是否存在所述公证人节点;若存在,则不对该跨链支付账单进行处理。
174.应当理解,上述功能模块的详细实现方式与前文描述的对应方法步骤的实现方式相同,具体可以参照前文对于对应方法步骤的描述,在此不再赘述。
175.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
176.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
177.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
178.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或
其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
179.尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。
180.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献