CN113726913B - 骨干节点接入方法和区块链系统 - Google Patents
骨干节点接入方法和区块链系统 Download PDFInfo
- Publication number
- CN113726913B CN113726913B CN202111297094.XA CN202111297094A CN113726913B CN 113726913 B CN113726913 B CN 113726913B CN 202111297094 A CN202111297094 A CN 202111297094A CN 113726913 B CN113726913 B CN 113726913B
- Authority
- CN
- China
- Prior art keywords
- node
- voting
- backbone
- blockchain system
- super
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1046—Joining mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/30—Decision processes by autonomous network management units using voting and bidding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
- H04L2209/463—Electronic voting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
一种骨干节点接入方法和区块链系统,方法包括:第一区块链系统的第一节点接收任一第二区块链系统的骨干节点的接入请求,确定投票节点,并请求投票节点针对接入请求进行投票,其中,投票节点为超级节点,第一节点和骨干节点为区块链节点;投票节点反馈投票结果;第一节点根据获得的投票结果确定批准接入请求后,确定第二节点,向第二节点发送锚定消息;第二节点基于锚定消息与骨干节点锚定,以使骨干节点接入第一区块链系统,骨干节点所在第二区块链系统成为第一区块链系统的从链系统,并且第一区块链系统成为骨干节点所在第二区块链系统的主链系统。本方法不仅保证了骨干节点有效安全接入,还保证了接入后该骨干节点所在从链系统的安全性。
Description
技术领域
本申请涉及区块链技术,具体地,涉及一种骨干节点接入方法和区块链系统。
背景技术
区块链技术是一种多方共同维护的账本技术,由共识机制、密码算法、网络路由、合约脚本等多种技术融合组成,具有分布式可信、难篡改、多方维护等技术特点。这些技术特点使得区块链被认为是互联网普及以来最具颠覆性的技术之一,受到全球各方的高度关注。
由节点构成的多层级区块链网络,涉及到节点的动态接入和退出,为了维护网络治理的公开性及网络服务的稳定性,需要骨干节点的自动接入机制,但目前并无成熟机制。例如,选择接入的区块链节点向全网广播接入请求,各节点进行投票,当投票满足预定义的条件时,全网同意该节点接入,并更新数据库信息,该骨干节点接入区块链网络。
发明内容
本申请实施例中提供了一种骨干节点接入方法和区块链系统,以实现骨干节点动态接入。
根据本申请实施例的第一个方面,提供了一种骨干节点接入方法,所述方法包括:
第一区块链系统中的第一节点接收任一第二区块链系统中的骨干节点的接入请求,确定所述第一区块链系统中的投票节点,并请求所述投票节点针对所述接入请求进行投票,其中,所述第一节点、所述投票节点以及所述骨干节点均为区块链节点;
所述投票节点反馈投票结果;
所述第一节点在根据获得的投票结果确定批准所述接入请求后,确定所述第一区块链系统中的第二节点,向所述第二节点发送锚定消息,所述锚定消息用于指示所述第二节点与所述骨干节点锚定;
所述第二节点基于所述锚定消息与所述骨干节点锚定,以使所述骨干节点接入所述第一区块链系统,所述骨干节点所在第二区块链系统成为所述第一区块链系统的从链系统,并且所述第一区块链系统成为所述骨干节点所在第二区块链系统的主链系统。
根据本申请实施例的第二个方面,提供了一种区块链系统,所述区块链系统包括第一区块链系统和至少一个第二区块链系统,所述第一区块链系统包括第一节点和投票节点,所述第二区块链系统包括骨干节点;
所述第一节点、所述投票节点以及所述骨干节点通过上述任一实施方式提供的方法进行交互,以使所述骨干节点接入所述第一区块链系统,所述骨干节点所在第二区块链系统成为所述第一区块链系统的从链系统,所述第一区块链系统为所述骨干节点所在第二区块链系统的主链系统。
本实施例中提供的方案中,第一区块链系统的第一节点接收第二区块链系统中骨干节点的接入请求后,确定第一区块链系统中的投票节点,并请求投票节点针对接入请求进行投票;投票节点反馈投票结果;第一节点根据获得的投票结果确定批准接入请求后,确定第一区块链系统中的第二节点,并向第二节点发送锚定消息,用以指示第二节点与骨干节点锚定;第二节点基于锚定消息与骨干节点锚定,以使骨干节点接入第一区块链系统,骨干节点所在第二区块链系统成为第一区块链系统的从链系统,并且第一区块链系统成为骨干节点所在第二区块链系统的主链系统。本方法不仅保证了骨干节点有效安全接入,还保证了接入后该骨干节点所在从链系统的安全性。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了本申请实施例提供的一种区块链系统的架构示意图;
图2示出了本申请实施例提供的一种骨干节点接入方法的流程示意图;
图3示出了本申请实施例提供的另一种骨干节点接入方法的流程示意图;
图4示出了本申请实施例提供的另一种区块链系统的架构示意图;
图5示出了本申请实施例提供的另一种骨干节点接入方法的流程示意图;
图6示出了图5所示步骤S306的子步骤示意图;
图7示出了本申请实施例提供的一种具体场景下的骨干节点接入方法流程图;
图8示出了本申请实施例中提供的采用骨干节点接入方法进行骨干节点接入之前的区块链系统架构示意图;
图9示出了本申请实施例中提供的采用骨干节点接入方法进行骨干节点接入之后的区块链系统架构示意图;
图10示出了本申请实施例提供的又一种骨干节点接入方法的流程示意图。
具体实施方式
由节点构成的多层级区块链网络,涉及到节点的动态接入和退出,为了维护网络治理的公开性及网络服务的稳定性,需要骨干节点的自动生成机制,但目前并无成熟机制。
基于此,本申请提供一种骨干节点生成方法,使得第二区块链系统中的骨干节点,可以接入第一区块链系统,并且骨干节点所在第二区块链系统可以成为第一区块链系统的从链系统,而第一区块链系统可以成为骨干节点所在第二区块链系统的主链系统。下面对该方案的内容进行详细介绍。
请参照图1,图1示出了本申请实施例提供的一种区块链系统100的架构示意图。该区块链系统100是一个主从链结构,即“1+N”主从链架构。具体的,如图1所示,该区块链系统包括一个第一区块链系统110和至少一个第二区块链系统,例如120A和120B。详细地,第一区块链系统包括1个第一节点和一个以上超级节点,例如,图1所示的第一区块链系统110包括第一节点111、超级节点112和超级节点113。每个第二区块链系统包括1个骨干节点和至少一个服务节点,例如图1所示场景中,第二区块链系统120A包括骨干节点120A-1、服务节点120A-2和120A-3,第二区块链系统120B包括骨干节点120B-1、服务节点120B-2和120B-3。
骨干节点可以与第一区块链系统的一个超级节点锚定,从而使骨干节点接入第一区块链系统,而骨干节点所在的第二区块链系统成为第一区块链系统的从链系统,第一区块链系统则成为骨干节点所在的第二区块链系统的主链系统。相应地,主链系统产生的区块链可以称为主链,任一从链系统产生的区块链则可以认为是从链。
其中,不同骨干节点锚定的超级节点不同。骨干节点,用于向主链系统的监管节点同步其所在从链系统的数据。从链系统通过该骨干节点与主链系统执行跨链交互过程。不同从链系统包括的骨干节点互不相同,或者,至少两个从链系统共用一个骨干节点。任意两个从链系统的结构相同,或者,不同。
1、主链系统
主链系统,即第一区块链系统,其基础功能为保证链群高效运行,服务功能为整个链群生态的健康发展保驾护航。如为整个链群结构提供公共服务,培育生态蓬勃发展;为各个区块链提供跨链交易平台及规范,促进数据共享、共融;为各行业提供托管服务,保证数据不可篡改和可恢复;提供可信认证,保证节点及其数据跨域可信性,拥有认证权限的节点对节点或标识提供认证服务;为各区块链提供监管服务和安全监测服务,确保整个链群结构中各节点合法合规性和运行安全性;主链对外开放应用服务,服务节点可自由进入或退出主链享受主链开放服务,促进企业能力提升。
主链系统中包括多个超级节点和1个监管节点。
1)超级节点
超级节点负责执行主链系统的共识,同时具备数据托管、跨链网关、资质审核、链群管理等功能;提供可信计算环境,基于可信计算硬件来运行预言机服务;获取外部数据,经过核验后可对外提供可信数据服务。
链群中所有节点可申请成为超级节点候选人,并拥有超级节点被选举权。
超级节点负责节点群建设,针对自由接入的服务节点数据同步权限进行管理,提升主链系统整体服务能力。
2)监管节点
监管节点负责对整个链群用户和节点数据、行为进行合法合规监管,并对违法违规行为进行处置,如关停服务、限制权限、控制流量、不可信用户标记等;同时,监管节点对超级节点和骨干节点等具有管理权限的节点进行资质审核和可信认证,确保关键节点的可信性。
本申请实施例中,主链系统具有基础功能和服务功能,其中基础功能包括但不限于:可插拔架构,高性能共识机制,高可靠智能合约,隐私保护,加密机制,自治理,同构异构链接入,激励机制。服务功能包括但不限于:数字身份,可信认证服务,多标识根区管理,标识注册解析,托管服务,公共服务,接口服务,跨链。
监管节点除了具有上述基础功能和服务功能之外,还具有但不限于如下功能:数据内容监管,节点行为监管,超级节点资质审核,骨干节点资质审核,应用违规处置,节点违规处置,超级节点认证,骨干节点认证。
超级节点除了具有上述基础功能和服务功能之外,还具有但不限于如下功能:公共数据管理,用户/节点身份认证,对外公共服务,节点群建设与管理,从链准入认证,链群管理,合约管理,可信计算环境,大数据分析,运行监测,主链共识,跨链网关,提供可信数据服务,基于可信硬件提供预言机服务。
通过主链的监管节点和超级节点,可以实现共享交互平台,监测监管服务,平等协作共治,生态建设运营。
2、从链系统
从链系统,可以是上述每个第二区块链系统,其基础功能是保证骨干节点下属从链系统高效运行,服务功能为从链系统业务正常开展、产业生态良性发展提供保障。例如:根据业务场景不同,从链支持其具体的个性化业务活动,并支持其独立执行共识。
第二区块链系统接入第一区块链系统,以成为从链系统的方式可以分为两种:一种是基于主链系统创建同构从链系统,另一种是现有异构区块链系统根据主链系统的接口规范开发接口接入主链系统。
从链系统接入需要向主链系统递交申请,并通过骨干节点与主链系统对接。
从链系统可使用整个链群的公共服务或资源,也可以根据需求部署个性化应用或智能合约,例如,可以根据骨干节点的信任级别,为骨干节点开放不同的数据查询权限,使得具有不同信任级别的骨干节点从主链系统订阅不同的服务。
从链系统可以为基础从链系统,也可以为区域性的从链系统,还可以为行业从链系统等。
本申请实施例中,从链系统可以包括一个骨干节点和多个服务节点。
1)骨干节点
骨干节点可以具有锚定主链系统、从链系统共识、从链系统监管、智能合约部署等功能。
其中,监管职责是由主链系统的监管节点指派地方监管部门参与监管活动。
从链系统可以通过骨干节点与主链系统执行跨链交互过程。
从链系统之间可以共用一个骨干节点,从链系统也可以各自包括一个骨干节点。
2)服务节点
执行具体业务活动,其权限由骨干节点统一分配管理。
除此之外,从链系统还可以包括共识节点,该共识节点仅用于进行共识。
本申请实施例中,从链系统也具有基础功能和服务功能,其中基础功能包括但不限于:可插拔架构,高性能共识机制,高可靠智能合约,隐私保护,加密机制,自治理,主链互联互通,激励机制。服务功能包括但不限于:数字身份,可信认证服务,多标识融合管理,标识注册解析,个性化定制服务,对外服务,接口服务,跨链。
骨干节点除了具有上述基础功能和服务功能之外,还具有但不限于如下功能:锚定主链系统,从链系统管理,从链系统中的节点权限管理,从链系统共识,对外提供服务,智能合约订制,可插拔组件配置,参与链群投票。
共识节点除了具有上述基础功能和服务功能之外,还具有但不限于如下功能:智能合约订制,同步从链系统数据,对外提供服务,从链共识,执行具体业务活动,参与链群投票。
服务节点除了具有上述基础功能和服务功能之外,还具有但不限于如下功能:参与投票链群,同步从链数据,智能合约订制,对外提供公共服务,使用链群公共服务,执行具体业务活动。
通过从链系统的骨干节点、共识节点和服务节点,可以实现业务自治,独立共识,服务订制,公共资源共享。
参见图2,其中示出了本申请一实施例提供的骨干节点接入方法的流程示意图,该方法可以应用于图1所示的区块链系统100中。下面对该方法包括的步骤进行阐述。
S101,第一区块链系统中的第一节点接收任一第二区块链系统中的骨干节点的接入请求,确定所述第一区块链系统中的投票节点,并请求所述投票节点针对所述接入请求进行投票,其中,所述投票节点是超级节点,第一节点和所述骨干节点均为区块链节点。
其中,骨干节点是当前未接入第一区块链系统110的骨干节点,其位于任一第二区块链系统中。例如图1所示,当第二区块链系统120A中的骨干节点120A-1为接入第一区块链系统110时,其可以向第一区块链系统110的第一节点111发送接入请求。第一节点111在接收到接入请求时,可以调用第一区块链系统110的投票节点名单,以确定第一区块链系统110中的投票节点。示例性地,本实施例中的投票节点均为超级节点。然后,第一节点可以向投票节点发起投票请求,以使各个投票节点分别反馈各自对接入请求的投票结果。
S102,所述投票节点反馈投结果。
投票节点响应于第一节点发起的投票请求,给出针对接入请求的投票结果,该投票结果可以通过直接或间接的方式反馈给第一节点。
S103,所述第一节点在根据获得的投票结果确定批准所述接入请求后,从所述第一区块链系统的各超级节点中确定第二节点,向所述第二节点发送锚定消息,所述锚定消息用于指示所述第二节点与所述骨干节点锚定。
其中,第二节点是指第一区块链系统中用于与骨干节点锚定的超级节点。
一种可选的实施方式中,第一节点可以在获得各个投票节点反馈的投票结果后,基于获得的所有投票结果确定是否批准所述接入请求。
另一种可选的实施方式中,第一节点可以基于在发起投票请求后预设时长内获得的投票结果,来确定是否批准所述接入请求。换言之,如果一个投票节点在超出预设时长之后还没有反馈投票结果,则视为其弃权。可以理解,这里的预设时长可以为视为针对接入请求的投票时间长度。
在确定批准所述接入请求之后,第一节点可以从第一区块链系统包括的各个超级节点中选择一者作为第二节点,并向所确定的第二节点发送锚定消息,该锚定消息可以包括第二节点的节点信息、骨干节点的节点信息以及表示锚定的指令。
S104,所述第二节点基于所述锚定消息与所述骨干节点锚定,以使所述骨干节点接入所述第一区块链系统,所述骨干节点所在第二区块链系统成为所述第一区块链系统的从链系统,且所述第一区块链系统成为所述骨干节点所在第二区块链系统的主链系统。
实施过程中,第二节点可以基于锚定消息确定参与锚定的节点包括本节点和骨干节点,进而将本节点与骨干节点锚定。可以理解,这里的锚定可以是指第二节点将本地账本同步给骨干节点,一个例子中,可以是将本地账本中的创世区块和后续区块中的可公开数据同步给骨干节点。本实施例对此没有限制。
当骨干节点与第二节点锚定之后,也就是当第二节点将本地账本同步给骨干节点之后,骨干节点即成为第一区块链系统中的一个区块链节点。换言之,骨干节点成功接入第一区块链系统,此时,骨干节点所在第二区块链系统成为第一区块链系统的从链系统,第一区块链系统成为骨干节点所在第二区块链系统的主链系统。
值得说明的是,图2所示流程中第一节点和投票节点所执行的步骤均可以由智能合约实现,这里的智能合约是由第一区块链系统中的监管节点发布并激活的。
通过图2所示方法,可以保证骨干节点有效安全接入主链系统,还可以保证接入后骨干节点所在从链系统的安全性。
请再次参照图1,本发明实施例的一种实施方式中,第一节点可以是第一区块链系统中的一个超级节点。例如图1所示的第一节点111可以是超级节点。这样,第一节点111在接收到骨干节点的接入请求时,可以和另外的超级节点112和113一起参与针对该接入请求的投票。下面结合此场景,对本申请一实施例提供的骨干节点接入方法的流程进行阐述,该骨干节点接入方法可以包括图3所示的步骤。
S201,第一区块链系统中的第一节点接收任一第二区块链系统中的骨干节点的接入请求。
本实施例的一种实施方式中,第一节点111可以是任意一个超级节点。本实施例的另一种实施方式中,考虑到第一区块链系统中的每个超级节点可以具有对应的生产时间段,每个超级节点可以在本节点对应的生产时间段内负责区块打包。因此,第一节点111可以是第一区块链系统中在当前生产时间段内负责区块打包的超级节点。
可选地,所述接入请求例如可以包括节点类型(Node_type)、节点拥有者(Node_owner)、节点ID(Node_ID)、账户地址(Address)、IP地址、公钥、签名等字段。前述字段的值可以是string类型。其中,节点类型可以是发送接入请求的骨干节点的类型,节点拥有者可以是发送接入请求的骨干节点的拥有者的身份信息,这里的拥有者例如可以是特定企业,对应地,节点拥有者对应的值可以是该特定企业的企业代码或组织机构代码。节点ID则可以是发送接入请求的骨干节点的ID,账户地址可以是该骨干节点的区块链账户地址。
实施过程中,关于第一节点接收接入请求的具体实现,可以参照上文对S101的描述,在此不再赘述。
S202,确定所述骨干节点是否接入过所述第一区块链系统。
本实施例中,可以针对首次接入的骨干节点和非首次接入的骨干节点设置不同的接入条件。这里的非首次接入的骨干节点,是指之前成功接入第一区块链系统后又退出的骨干节点。
示例性地,第一区块链系统中可以维护有第一骨干节点列表和第二骨干节点列表,当一个骨干节点(例如120A-1)成功接入后,可以将该骨干节点120A-1的节点信息添加到第一骨干节点列表中。当一个骨干节点(例如前述的120A-1)退出第一区块链系统时,从第一骨干节点列表中查找骨干节点120A-1的节点信息,如果查找到,从第一骨干节点列表中删除骨干节点120A-1的节点信息,并将骨干节点120A-1的节点信息添加到第二骨干节点列表中。这里的节点信息可以包括节点的身份信息,例如IP地址和/或公钥。
可以理解,为了减少第二骨干节点列表的数据量,可以定期清理第二骨干节点列表中的数据,比如,每间隔第一周期对第二骨干节点列表中添加时间满足条件的节点信息进行清理,这里的条件例如可以是添加时间与当前时间之间的间隔大于第二周期。其中,第二周期大于第一周期。举例来说,第一周期可以是一个周,第二周期可以是一个月,也就是每隔一个周对第二骨干节点列表内在一个月之前添加的节点信息进行清理。
在S202中,第一节点可以访问第二骨干节点列表,以确定当前接收的接入请求的发送节点的节点信息是否存在于该第二骨干节点列表中,若是,则确定该发送节点(即当前待接入的骨干节点)接入过第一区块链系统。若否,则进一步查找第一骨干节点列表,如果第一骨干节点列表中也不存在该发送节点的节点信息,则确定该发送节点没有接入过第一区块链系统。
S203,若所述骨干节点接入过所述第一区块链系统,则所述第一节点从所述骨干节点的历史记录中获取所述骨干节点的信誉值,并获取所述信誉值对应的投票率。
本实施例中,对于接入过第一区块链系统的骨干节点,其节点信息还可以包括骨干节点信誉值。换言之,接入过第一区块链系统后又退出的骨干节点,其信誉值可以作为节点信息的一部分存储在第二骨干节点列表中。
本实施例中,一个骨干节点的信誉值可以有不同的计算方式。
一种实施方式中,一个骨干节点的信誉值可以基于该骨干节点的活跃率a、被举报率v以及超时响应率r计算得到。示例性地,可以通过对骨干节点的活跃率a、被举报率v以及超时响应率r加权求和得到,其中,活跃率a的权重例如为1,被举报率v和超时响应率r的权重均为负数,且被举报率v和超时响应率r的权重之和为-1,比如被举报率v的权重为-0.4,超时响应率r的权重为-0.6。在此情况下,信誉值的计算式可以表示为:
信誉值=a-0.6v-0.4r,(1)
可选地,活跃率a=提交交易次数/超级节点共识总次数,提交交易次数可以是骨干节点在第一区块链系统中提交的交易次数。在第一区块链系统中,可能会发起多轮共识,由作为投票节点的超级节点进行投票以确定是否达成共识。对应地,超级节点共识总次数可以是第一区块链系统中的超级节点所进行的共识的总轮数。
可选地,被举报率v=被举报次数/总举报次数,其中,被举报次数可以是骨干节点被举报的次数,总举报次数可以是第一区块链系统中所有节点的被举报次数之和。可以理解,第一区块链系统中可以部署有用于记录和处理举报信息的智能合约。
可选地,超时响应率r=超时响应次数/总超时响应次数,其中,超市响应次数是指骨干节点发生的超时响应次数,总超时响应次数则可以是第一区块链系统中所有区块链节点的超时响应次数之和。
可选地,第一区块链系统中还可以设置有信誉值和投票率的对应关系,例如可以保存在账本中,又如可以保存在监管节点上。其中,信誉值和投票率的对应关系可以根据需要进行设置,例如,可以设置信誉等级和投票率的对应关系,从而按照信誉值所属信誉等级确定该信誉值对应的投票率。
基于上述的信誉值的表达式可以确定其取值处于[-1,1]内,一个例子中,可以按照信誉值的取值确定出信誉值的4个信誉等级,例如优、良、中、差。示例性地,如果信誉值处于,可以确定该信誉值的信誉等级为差(或不合格);如果信誉值处于,可以确定该信誉值的信誉等级为中;如果信誉值处于,可以确定该信誉值的信誉等级为良;如果信誉值处于,可以确定该信誉值的信誉等级为优。可以理解,前述设置的信誉等级的数量及每个信誉等级的设置条件,均为示例,并非用于限制本申请的保护范围。
信誉等级差对应的投票率可以是100%,换言之,如果一个接入过第一区块链系统又退出的骨干节点,其信誉等级为差,若其再次请求接入第一区块链系统,需获得所有投票节点的同意方能成功接入。
信誉等级中对应的投票率可以是60%,换言之,如果一个接入过第一区块链系统又退出的骨干节点,其信誉等级为中,若其再次申请接入第一区块链系统,需获得60%的投票节点的同意方能成功接入。此外,信誉等级为良的投票率可以是50%;信誉等级为优的投票率可以是50%,与此同时信誉等级为优的骨干节点,其再次申请接入第一区块链系统时,其接入请求的投票时间(例如,上述的预设时长)可以增加,例如可以延长一倍。
可以理解,上述的与各个信誉等级对应的投票率及附加条件,均为举例说明,并非用于限制本申请的保护范围。
另一种实施方式中,骨干节点的信誉值可以通过如下计算式获得:
信誉值=bytes_sent/(bytes_down+1),(2)
这里的信誉值也可以称为共享率,其中,bytes_sent可以表示骨干节点向第一区块链系统(即主链系统)提交的交易量;bytes_down可以表示骨干节点从第一区块链系统下载的交易量。基于上述表达式(2),当骨干节点只接受数据而不提交交易时,其信誉值会直线下降。
在此情况下,信誉值与投票率的对应关系可以是下文描述的表达式(3)。换言之,接入过第一区块链系统又退出后,其二次接入的投票率P可以通过如下表达式(3)获得:
其中,b表示信誉值。可以看出,当b降低时,二次接入的投票率P也会降低。
可选地,若所述骨干节点没有接入过所述第一区块链系统,则可以直接执行下文描述的S204-S209,其中,当步骤S207中的两个判断结果均为是时,第一节点可以确定批准所述接入请求,并进一步执行下文描述的S212-S213。
S204,确定所述第一区块链系统中的投票节点,并请求所述投票节点针对所述接入请求进行投票,其中,所述第一节点为超级节点,所述投票节点包括所述第一区块链系统中除所述第一节点之外的超级节点。
S205,所述投票节点反馈投票结果。
实施过程中,可以将第一区块链系统中除第一节点之外的至少部分(即部分或全部)超级节点都确定为投票节点,在此情况下,第一节点在接收到接入请求后,可以将接入请求转发给所确定的投票节点,以使投票节点反馈针对接入请求的投票结果。对应地,投票节点反馈的投票结果可以直接反馈给第一节点。
本申请实施例中,第一节点根据获得的投票结果确定是否批准接入请求,具体可以通过如下所示的S203-S210实现。
S206,所述第一节点根据获得的投票结果确定第一数量、第二数量和第三数量,并确定第一数量、第二数量和第三数量的和值,所述第一数量是同意所述骨干节点接入的投票结果的数量,所述第二数量是反对所述骨干节点接入的投票结果的数量,所述第三数量是未在预设时长内反馈的投票结果的数量(即,弃权的投票节点数量)。
其中,第一数量、第二数量和第三数量的和值表示的是参与投票的所有节点的数量。
S207,判断所述第一数量是否大于所述第二数量与所述第三数量之和,所述第一数量与所述第二数量之和是否大于所述第三数量。
S208,若所述第一数量与所述第二数量之和不大于所述第三数量,则所述第一节点重新请求所述投票节点针对所述接入请求进行投票。
实施过程中,如果弃权的投票节点数量过多,比如当弃权的投票节点数量大于未弃权的投票节点数量时,也就是弃权的投票节点数量大于表示同意的投票结果数量与表示反对的投票结果数量之和时,可以重新发起一轮投票。
S209,若所述第一数量与所述第二数量之和大于所述第三数量,并且若所述第一数量不大于所述第二数量与所述第三数量之和,则确定不批准所述接入请求,并设置所述骨干节点下一次发起所述接入请求的间隔周期。
其中,所述第一数量与所述第二数量之和大于所述第三数量表示的是弃权的投票节点数量较少,换言之,未弃权的投票节点数量满足要求。与此同时,如果表示同意的投票结果数量没有超过表示反对的投票结果数量与弃权的投票节点数量之和,则可以确定所述接入请求不被批准。可选地,此时还可以设置发送所述接入请求的骨干节点(即当前申请者)下一次发起接入请求的时间条件,例如可以设置所述间隔周期,当前申请者在该间隔周期之后重新发送的接入请求才可以被处理。
S210,若两个判断结果均为是,则进一步判断所述第一数量与所述和值的商是否达到所述投票率。
S211,若所述第一数量与所述和值的商达到所述投票率,则所述第一节点确定批准所述接入请求。
实施过程中,当未弃权的投票节点数量满足要求,同时表示同意的投票结果数量也满足要求时,如果当前申请者是首次申请接入的骨干节点,可以直接确定批准其接入请求,从而执行后续的S212和S213。如果当前申请者是非首次(如,二次、三次或更多次)申请接入的骨干节点,则可以进一步判断针对当前申请者的接入请求的投票结果,是否满足当前申请者的信誉值所对应的投票率,如果满足,则确定批准当前申请者的接入请求。
S212,所述第一节点从所述第一区块链系统的各超级节点中确定第二节点,向所述第二节点发送锚定消息,所述锚定消息用于指示所述第二节点与所述骨干节点锚定。
S213,所述第二节点基于所述锚定消息与所述骨干节点锚定,以使所述骨干节点接入所述第一区块链系统,所述骨干节点所在第二区块链系统成为所述第一区块链系统的从链系统,且所述第一区块链系统成为所述骨干节点所在第二区块链系统的主链系统。
其中, S212和S213的详细实现过程,与前述实施例中的S103和S104类似,具体可以参照前文描述,在此不再赘述。
通过本实施例提供的骨干节点接入方法,可以安全有效地实现骨干节点动态接入第一区块链系统,以使骨干节点所在第二区块链系统成为第一区块链系统的从链系统,而第一区块链系统成为骨干节点所在第二区块链系统的主链系统。此外,通过限制非首次申请接入的骨干节点的准入条件,可以为一些恶意的反复尝试接入的骨干节点增加障碍,从而进一步提高了骨干节点的接入过程的安全性。
可选地,本实施例中,当任一骨干节点成功接入第一区块链系统,并与目标超级节点锚定时,目标超级节点可以为该骨干节点生成一数字身份,所述数字身份可以包括如下骨干节点的如下信息:
Node_ID:节点ID,这个节点ID是全局唯一的;
Node_type:节点类型;
Node_owner:节点所有者;
Account:节点账户;
IP:节点的IP地址;
Publickey:节点公钥;
Key_type:公钥类型;
ChainID:骨干节点接入的从链系统的ID,可以理解,这里的ChainID可能有一个或多个,此ID可以用于提供链发现、链寻址的功能;
Chain_reputation:节点信誉值,节点信誉值可以由超级节点触发修改,其具体计算方式可以参照上文给出的多种计算方式。除此之外,考虑到骨干节点可以接入多个从链系统,而骨干节点接入的从链系统越多,表示它的可信度越高。基于此,骨干节点的信誉值可以通过如下计算式获得:
信誉值=骨干节点接入的从链系统的数量/全局从链系统数量 (4)
本实施例中,超级节点可以接收外部智能合约对于骨干节点的举报信息,每接收到针对骨干节点的一条举报信息,可以按照预设方式更新该骨干节点的信誉值。这里的预设方式例如可以是,按预设比例降低该骨干节点的信誉值,又比如可以是从骨干节点当前的信誉值中减去预设值,本实施例对此没有限制。
可选地,本实施例中,当有新的从链系统接入骨干节点时,骨干节点可以触发智能合约更新本节点的数字身份中的ChainID,具体而言,是在骨干节点的数字身份中增加所述新的从链系统的ChainID,以供其他从链系统发现该新的从链系统。并且,增加ChainID的动作可以自动触发骨干节点的信誉值的更新,具体计算方式可以如下式:
信誉值=骨干节点接入的从链系统的数量/全局从链系统数量-骨干节点作恶次数/全网作恶次数。
同时,超级节点具有剔除从链系统的权利,当一个从链系统被剔除时,从该从链系统所接入的骨干节点的数字身份中删除该从链系统的ChainID。
可选地,本实施例中,第一区块链系统中还可以部署有第一智能合约。对于任一需要接入第一区块链系统的骨干节点,该骨干节点可以提前第一时长向第一区块链系统发送举报验证请求,该举报验证请求携带有骨干节点的节点ID。第一区块链系统的任一超级节点接收到举报验证请求时,将该举报验证请求中的节点ID对应的骨干节点确定为目标骨干节点;从当前时刻起,在第一时长内通过第一智能合约周期性地从预设的权威服务器获取针对目标骨干节点的举报信息,并统计获取到的举报信息的数量,当该数量达到预设阈值时,将目标骨干节点的节点ID加入禁入名单。
进一步地,第一区块链系统中的超级节点在接收到接入请求时,可以先通过第一智能合约查询该接入请求携带的节点ID是否存在于禁入名单中,如果否,再请求所述第一区块链系统中的投票节点针对所述接入请求进行投票。
类似地,所述第一区块链系统可以部署有第二智能合约,第二智能合约用于针对已接入第一区块链系统的每个骨干节点,从所述权威机构服务器获取该骨干节点在当前时刻之前第二时长内的举报信息,并统计获取到的举报信息的数量,当该数量达到所述预设阈值时,将该骨干节点退出第一区块链系统。
值得说明的是,本实施例中的第一时长和第二时长可以相同,也可以不同。第一智能合约和第二智能合约可以是同一个智能合约,也可以是不同的智能合约,本实施例对此没有限制。
请再次参照图1,本发明实施例的另一种实施方式中,第一节点可以是第一区块链系统中的监管节点。例如图4所示,区块链系统200包括一个第一区块链系统210和两个第二区块链系统220A和220B。其中,第一区块链系统210包括监管节点211以及超级节点212、213和214,第二区块链系统220A包括骨干节点220A-1以及服务节点220A-2、220A-3、220A-4和220A-5,第二区块链系统220B包括骨干节点220B-1以及服务节点220B-2和220B-3。在此场景下,第一节点211接收到骨干节点的接入请求时,可以转发给作为投票节点的超级节点进行后续投票。
下面结合图4所示场景,对本申请另一实施例提供的骨干节点接入方法的流程进行阐述,该方法可以包括图5所示的步骤。
S301,第一区块链系统的监管节点接收任一第二区块链系统中的骨干节点的接入请求,所述骨干节点为区块链节点。
S302,所述监管节点确定所述第一区块链系统中的一个超级节点为验证节点,其余超级节点中的至少部分为投票节点。
本实施例中,监管节点可以充当上述实施例中的第一节点。骨干节点位于一个第二区块链系统中,第一区块链系统包括一个监管节点和至少一个超级节点,投票节点可以为第一区块链系统中的超级节点。一个例子中,可以将第一区块链系统中的一个超级节点确定为验证节点,而其余的所有超级节点确定为投票节点。另一个例子中,可以将第一区块链系统中的一个超级节点确定为验证节点,而将其余的超级节点中预设数量个超级节点确定为投票节点。本实施例对此没有限制。
S303,请求所述投票节点针对所述接入请求进行投票。
本实施例中,第一区块链系统可以响应于接入请求,而进行后续的锚定处理。这里的锚定处理可以理解为基于接入请求判断发送该接入请求的骨干节点(即当前申请者)是否满足接入条件,以及在确定当前申请者满足接入条件后,对其进行锚定。
这里的锚定处理可能涉及到由多个区块链节点(如监管节点、投票节点等)执行的操作,具体可以由部署在所述多个区块链节点上的智能合约实现。所述智能合约用于实现骨干节点锚定,可以由监管节点对该智能合约进行激活,进而通过该智能合约进行锚定以及将骨干节点接入全局网络。智能合约约定了骨干节点的接入条件,并提供与外界进行交互的能力,用以判断骨干节点提交信息的有效性,通过验证后将触发投票机制,向其他节点发起投票,收集投票结果,并将投票结果反馈给监管节点。
示例性地,由第一区块链系统中的任一超级节点在第一区块链系统上发布用于部署骨干节点的所述智能合约,监管节点部署所述智能合约后,激活所述智能合约。因此,本步骤中,第一区块链系统的监管节点接收骨干节点的接入请求后,可以基于所述智能合约实现S302和S303,即确定投票节点,并请求投票节点针对接入请求进行投票。
可选地,本实施例中,接入请求包括第一信息,第一信息可以包括如下一种或多种数据项的数据值:申请的节点类型、节点权限、申请的企业类型(如政府,或者,企业)、组织机构代码、申请人身份、联系方式、公钥、参数、服务地址。可以理解,第一信息是发送接入请求的骨干节点的相关信息,也就是申请接入第一区块链系统的骨干节点的相关信息。
进一步地,接入请求还可以加入该骨干节点(当前申请者)欲锚定的超级节点的标识信息。
然后,投票节点可以反馈投票结果,具体可以通过如下的S304-S306实现。
S304,投票节点生成第一投票结果,通过投票节点的私钥对第一投票结果签名,并将所述第一投票结果和获得的签名信息发送至所述验证节点。
S305,所述验证节点通过所述投票结果的公钥对所述签名信息进行验证,若验证通过则统计所述第一投票结果。
本实施例中,任意一个投票节点针对接入请求生成的投票结果,均可以视为第一投票结果。投票节点可以调用智能合约来验证接入请求是否符合预设接入条件,进而依据验证的结果来生成第一投票结果。
每个区块链节点具有一非对称密钥对,包括相互对应的私钥和公钥。投票节点作为一个区块链节点,也具有私钥和公钥。详细地,为了保证投票结果反馈的安全性,投票节点获得第一投票结果后,可以通过投票节点的私钥对第一投票结果进行签名,获得一签名信息。可以看出,可以看出,这里的签名信息与投票节点(超级节点)之间具有对应关系。投票节点可以将签名信息以及第一投票结果发送至验证节点。验证节点,可以通过投票节点的公钥对签名信息进行验证,若验证通过则对该签名信息所对应的第一投票结果进行统计。若验证不通过则不统计该签名信息对应的第一投票结果,或者,将该签名信息对应的第一投票结果统计为投票无效。
S306,验证节点基于统计的所述第一投票结果,向监管节点反馈第二投票结果,所述第二投票结果为批准所述接入请求或者不批准所述接入请求。
如上所述的,验证节点为超级节点,具体为非投票节点的一个超级节点。
在S306中,验证节点统计的第一投票结果为签名信息通过验证的第一投票结果。可以理解,验证节点统计的第一投票结果的数量小于或等于投票节点数量。本实施例中,第二投票结果可以是验证节点基于所统计的第一投票结果最终确定出的投票结果,其用于表征是否批准所述接入请求。
一种实施方式中,可以在所有投票节点的投票均有效,且所有投票结果中均允许骨干节点接入的情况下,验证节点向监管节点反馈的第二投票结果为批准接入请求,否则,验证节点向监管节点反馈的第二投票结果为不批准接入请求。在此例子中,相当于预设阈值为100%。
另一种实施方式中,S306可以通过图6所示子步骤实现。
S306-1,基于统计的第一投票结果,确定验证通过的投票结果中允许骨干节点接入的投票结果数量。
这里的骨干节点是指当前申请者,也就是发送接入请求的骨干节点。
S306-2,若允许所述骨干节点接入的投票结果数量与投票节点总数量的商达到预设阈值,则所述验证节点向所述监管节点反馈的第二投票结果为不批准所述接入请求。
S306-3,若允许所述骨干节点接入的投票结果数量与投票节点总数量的商没有达到所述预设阈值,则所述验证节点向所述监管节点反馈的第二投票结果为不批准所述接入请求。
上述预设阈值可以根据需要灵活设置。比如,可以是60%-70%之间的任意值,例如65%。本实施例对此没有限制。
本实施例中,验证节点向监管节点发送第二投票结果的同时,验证节点还可以发送验证通过的签名集合,也就是验证通过的签名信息所组成的集合,给监管节点。
S307,监管节点确定签名集合中的每个签名信息所对应的超级节点,从所确定的超级节点中确定一者作为第二节点。
如上所述的,每个签名信息与投票节点有对应关系,而投票节点都是超级节点。因此,监管节点可以首先确定签名集合中的每个签名信息所对应的超级节点。
若验证节点发送了验证通过的签名集合,则监管节点可以根据签名集合确定锚定的超级节点。如从签名集合中选择一个签名对应的超级节点为锚定的超级节点,也就是第二节点。或者,可以选择一个与骨干节点(当前申请者)位置最近,且其签名信息在签名集合中的超级节点为第二节点。或者,根据随机选举原则从签名集合中选择一个签名对应的超级节点为第二节点。
值得说明的是,一些情况下,骨干节点可能指定了希望锚定的超级节点,对应地,其发送的接入请求中包括该骨干节点欲锚定的超级节点的目标身份信息,则可以将接入请求中的目标身份信息所指示的超级节点作为第二节点。当接入请求中不包括目标身份信息时,可以按照上述方式确定第二节点,也可以直接从第一区块链系统包括的各超级节点中选择与骨干节点位置最近的超级节点作为第二节点;或者,根据随机选举原则从第一区块链系统中确定一个超级节点作为第二节点。
S308,监管节点向第二节点发送锚定消息,锚定消息用于指示第二节点与骨干节点锚定。
S309,第二节点基于锚定消息与骨干节点锚定,以使骨干节点接入第一区块链系统,该骨干节点所在第二区块链系统成为第一区块链系统的从链系统,并且第一区块链系统成为该第二节点所在第二区块链系统的主链系统。
可以理解,本申请实施例中任一超级节点与骨干节点的锚定,可以是该超级节点将第一区块链系统中的账本同步给骨干节点,以使骨干节点接入第一区块链系统。如此,骨干节点所在的第二区块链系统即可成为第一区块链系统的从链系统,而第一区块链系统可以成为第二区块链系统的主链系统。而通过选择与骨干节点位置最近的超级节点来与骨干节点锚定,可以加快账本同步过程,实现快速锚定。
另外,在第二节点基于锚定消息与骨干节点锚定之后,还可以进行验证,例如:
第二节点根据骨干节点的节点信息生成第二信息,将第二信息发送至监管节点。
其中,第二信息的数据项与第一信息相同。如第一信息包括申请的节点类型、节点权限、申请的企业类型、组织机构代码、申请人身份、联系方式。此时的第一信息中的数据值均为需要加入的数据值。第二信息也包括申请的节点类型、节点权限、申请的企业类型、组织机构代码、申请人身份、联系方式。此时的第二信息的数据值是实际后的真实数据值。
监管节点对比第二信息与第一信息相同数据项的数据值是否相同。
若相同,则说明实际接入的骨干节点与欲接入的骨干节点具有相同的节点信息,换言之,实际接入的骨干节点和欲接入的骨干节点相同。因此,骨干节点接入正确,则监管节点可以生成密钥对,将密钥对发送给骨干节点,并将第二信息以及骨干节点的节点信息在全网广播后,将骨干节点的监管权移交给第二节点。
其中,骨干节点的节点信息可以为:IP地址和/或公钥信息。
值得说明的是,上述密钥对并不发送给超级节点。该密钥对用于从链系统上数据传输的加密。因为骨干节点为从链系统中的节点,密钥对直接发送骨干节点,超级节点并不知晓该密钥对,会使得主链系统看不到从链系统中的数据内容,保证了从链系统中数据的安全。
此外,在一种实施方式中,骨干节点接入第一区块链系统后,也可以由监管节点生成对称公钥,并提供给骨干节点和特定的超级节点。骨干节点可以使用对称公钥对中的公钥进行非公开数据的加密传输,并将加密的非公开数据提交至第一区块链系统。在此情况下,只有上述特定的超级节点可以查看该非公开数据,而其他骨干节点或其他超级节点均不能查看。对应地,当骨干节点退出第一区块链系统时,特定超级节点将会舍弃该骨干节点的特定公钥。
在另一种实施方式中,可以由第一区块链系统中的超级节点生成群组对称密钥,所有超级节点之间可以通过群组对称密钥进行数据的加密传输。示例性地,以图3所示场景为例,超级节点213可以通过群组对称密码对需要传输给其他超级节点(如212和214)的第一数据进行加密,得到第二数据;然后在第一区块链系统210中发布第二数据,接收到第二数据的超级节点212和214均可通过群组对称密钥解密第二数据,获得第一数据。而第一区块链系统中的其他区块链节点则无法解密第二数据。
进一步地,当第一区块链系统中的任一超级节点退出,或者当任一超级节点接入第一区块链系统时,更新群组对称密钥。
进一步地,当任一骨干节点接入第一区块链系统,并与某一超级节点锚定后,锚定的超级节点可以基于当前的群组对称密钥,为该骨干节点派生出非对称密钥。该骨干节点可以通过锚定的超级节点派生的非对称密钥对需要传输的数据进行加密。第一区块链系统中的任一超级节点在接收到经非对称密钥加密的数据时,均可基于当前的群组对称密钥对该骨干节点发送的加密数据进行解密。可以理解,当一个超级节点使用更新前的群组对称密钥,解密经更新后的非对称密钥加密的数据时,无法解密成功,从而可以进一步确保数据传输的安全性,降低泄密的风险。
下面以图7为例,对本申请一实施例提供的骨干节点接入方法进行再次说明。
1、主链系统的监管节点上配置智能合约
该智能合约由任一超级节点在主链系统上发布,部署在监管节点上,该智能合约的功能为部署骨干节点。
只有监管节点有权限对该智能合约进行激活,进而锚定以及建骨干节点。
2、当从链系统上一个节点欲成为骨干节点,或者新从链系统接入时,其向监管节点发送接入请求。
3、监管节点接收到接入请求后,向投票节点发送该接入请求,以便在主链系统上进行投票。
示例性地,投票过程由投票节点和验证节点实现。
其中,验证节点是超级节点,投票节点是主链系统上的除验证节点外的所有超级节点。或者,投票节点是主链系统上除验证节点外的部分超级节点。
投票节点可以通过部署的相应的智能合约进行确定。
1)投票节点针对成为骨干节点的请求进行投票,加上该投票节点的签名。
如,投票节点审核骨干节点接入请求中的信息,根据智能合约中预定义的评审规则,评审是否符合规则,并进行投票。
2)投票节点投票后将投票结果发送给验证节点。
投票节点用节点的私钥签名投票结果,验证节点使用投票节点的公钥验证签名是否正确。
3)验证节点统计投票结果是同意的签名数量,如果该数量占反馈投票结果的总数量的比值大于预设阈值(如60%),则向监管节点反馈确认信息。
其中,该确认信息包括但不限于:投票结果,签名合集,网址,权限,可被监管信息,签名验证信息。
4、监管节点基于验证节点反馈的确认信息确定该节点是否可以成为骨干节点,如果确认可以,则监管节点进行签名确认,并把经过签名确认的信息发送给锚定的超级节点(锚定的超级节点可以为骨干节点申请锚定的超级节点,或者是随机选取的超级节点)。
例如,监管节点基于智能合约中预定义的骨干节点建设准则,和收集上来的签名信息,判断是否可以生成该骨干节点。
经过签名确认的信息可以为批准成为骨干节点的证书。
5、超级节点在接收到监管节点发送的确认信息之后,建设该骨干节点。
如提供骨干节点建设需要满足预定义的技术性能要求,并通过锚定的超级节点认证合格后,发布证书。
6、该骨干节点建立成功之后,该骨干节点向该超级节点发送建成后信息。
如通过评审机构的测试后,认为骨干节点建立成功,此时骨干节点向锚定的超级节点发送由评审机构颁发的性能合格证书。
7、超级节点将建成后信息发送给监管节点,监管节点对该信息进行核对,如果核对结果一致,则生成密钥对。
其中核对的过程为将建成后的骨干节点相关信息与申请建立时的骨干节点相关信息进行匹配,如申请建立时骨干节点相关信息描述了物理上建立多少个基站,建成信息中也描述了物理上建立多少个基站,如果两个基站数量相同,则认为匹配,如果不同,则认为不匹配。
8、监管节点将密钥对发送给该骨干节点,并将骨干节点的基本信息、IP地址、公钥信息在全网广播,计入账本。
此处,密钥对并不发送给超级节点。该密钥对用于从链系统上数据传输的加密。因为骨干节点为从链系统上的节点,密钥对直接发送骨干节点,超级节点并不知晓该密钥对,会使得主链系统上看不到从链系统中的数据内容,保证了从链数据的安全。
示例性地,上链的信息可以包括骨干节点的如下信息:节点类型、节点拥有者的身份信息、节点ID、账户地址、IP地址、状态字段、公钥、签名、信誉值、信誉值智能合约ID、投票签名等。前述信息均可以是string类型的信息。
9、监管节点将骨干节点的锚定及监管移交给超级节点。
下面图8为例,对本提案提供的方法进行举例说明:
1、主链系统的监管节点配置智能合约。
2、当新从链系统接入时,骨干节点向监管节点发送请求。
3、监管节点接收到请求后,向投票节点发送该请求,以便在主链系统上进行投票。
投票过程由投票节点和验证节点实现。
其中,验证节点是超级节点(如超级节点3),投票节点是主链系统上的所有节点(如投票节点1、投票节点2、投票节点4)。
1)投票节点1、投票节点2、投票节点4针对成为骨干节点的请求进行投票,加上该投票节点的签名。
2)投票节点1、投票节点2、投票节点投票后将投票结果发送给超级节点3。
3)超级节点3统计投票结果是同意的签名数量,如果该数量占反馈投票结果的总数量的比值大于预设阈值(如60%),则向监管节点反馈确认信息。
4、监管节点基于验证节点反馈的确认信息确定该节点是否可以成为骨干节点,如果确认可以,则监管节点进行签名确认,并把经过签名确认的信息发送给超级节点3。
5、超级节点3在接收到监管节点发送的确认信息之后,建设该骨干节点。
6、该骨干节点建立成功之后,该骨干节点向该超级节点3发送建成后信息。
7、超级节点3将建成后信息发送给监管节点,监管节点对该信息进行核对,如果核对结果一致,则生成密钥对。
8、监管节点将密钥对发送给该骨干节点。
9、监管节点将骨干节点的锚定及监管移交给超级节点3,形成如图9所示结构的区块链系统。
本实施例提供的方法,第一区块链系统的监管节点接收骨干节点的接入请求,确定投票节点,并请求投票节点针对接入请求进行投票,其中,骨干节点位于第二区块链系统,第一区块链系统包括一个监管节点和至少一个超级节点,投票节点为超级节点;投票节点向监管节点反馈投票结果;监管节点根据投票结果确定批准请求后,确定锚定的超级节点,向锚定的超级节点发送与骨干节点锚定的消息;锚定的超级节点基于消息与骨干节点锚定,以使骨干节点所在第二区块链系统成为第一区块链系统的从链系统,而第一区块链系统成为第二区块链系统的主链系统,本方法不仅保证了骨干节点有效安全生成,还保证了生成后该骨干节点所在从链系统的安全性。
请参照图10,其中示例性地示出了本申请另一实施例提供的骨干节点接入方法的流程示意图。下面对该方法包括的步骤进行介绍。
S401,第一区块链系统的监管节点接收任一第二区块链系统中的骨干节点的接入请求,将所述第一区块链系统中的超级节点均确定为投票节点,所述第一区块链系统包括一个监管节点和至少一个超级节点,所述骨干节点为区块链节点。
本实施例中,监管节点可以充当前述实施例中的第一节点。所述第一区块链系统中的每个超级节点具有对应的生产时间段,并用于在对应的生产时间段内进行区块打包。打包的区块可以被广播至第一区块链系统中其他所有超级节点,由其他所有超级节点对该区块进行确认,当第一区块链系统中2/3以上超级节点对该区块确认通过时,即可认为该区块是不可逆的,并将其添加到第一区块链系统所对应的区块链上。
在第一区块链系统中,各超级节点是从备用超级节点中选举产生的。各超级节点可以按照预设顺序分别在连续的多个时间段中进行区块打包(即产生区块)。以3个超级节点为例,3个超级节点可以按照预设顺序分别在连续的3个时间段内进行区块打包,例如超级节点2在时间段t1内进行区块打包,超级节点1在时间段t2内进行区块打包,超级节点3则在时间段t3内进行区块打包。
S402,所述监管节点查询所述第一区块链系统中的第一超级节点,将所述接入请求转发至所述第一超级节点,所述第一超级节点为所述第一区块链系统中用于在当前生产时间段内进行区块打包的超级节点。
S403,所述第一超级节点针对所述接入请求进行投票,获得第一投票结果。
S404,所述第一超级节点将所述接入请求添加至最新打包的目标区块的区块体内,并将添加有接入请求的目标区块广播至所述第一区块链系统中的第二超级节点,所述第二超级节点是所述第一区块链系统中除所述第一超级节点之外的超级节点。
实际应用中,第一超级节点也可以称为生产节点。示例性地,在上述的时间段t1内,超级节点2可以是第一超级节点,而其他超级节点均为第二超级节点。在上述的时间段t2内,超级节点1可以是第一超级节点,而其他超级节点均为第二超级节点。在上述的时间段t3内,超级节点3可以是第一超级节点,而其他超级节点均为第二超级节点。
由于一个超级节点打包的区块会被广播至其他超级节点进行确认,因此,本实施例中,可以从各超级节点中确定当前正用于打包区块的第一超级节点,进而将接入请求转发给第一超级节点,由第一超级节点将接入请求携带在所打包的目标区块中,并广播至其他超级节点(即第二超级节点)。
示例性地,接入请求可以作为一个交易数据被添加到目标区块的区块体中。具体地,接入请求可以作为目标区块的区块体中的第一个交易数据。可以理解,在向目标区块中插入接入请求时,目标区块中用于设置交易数据数量的字段可以不用修改,如此,当每个第二超级节点收到目标区块,从中识别并提取出接入请求后,可以将目标区块中的接入请求(第一个交易数据)删除,然后再进行对目标区块的确认,从而避免因为接入请求的插入而对目标区块的确认过程造成影响。可以理解,上述向目标区块插入接入请求,以及每个第二超级节点收到目标区块,从中提取出接入请求后,再将目标区块中第一个交易数据删除的操作,可以作为智能合约部署在第一区块链系统中。
基于上述流程,第一超级节点以及每个第二超级节点均可以获得接入请求,并对其进行投票。其中,第一超级节点的投票操作,与第一超级节点向目标区块插入接入请求的操作,可以并行执行。
可选地,接入请求中可以携带有预设标签,该预设标签与一智能合约关联,该智能合约中设置有针对骨干节点接入的验证机制,例如,骨干节点接入需要满足的预设接入条件,例如骨干节点的技术性能需要满足的条件等。
实施过程中,第一超级节点可以根据接入请求中的信息验证骨干节点是否满足所述预设接入条件,进而依据验证结果获得第一投票结果。如果骨干节点满足所述预设接入条件,则第一投票结果为通过,否则为不通过。
类似地,每个第二超级节点可以根据从目标区块中提取出的接入请求验证骨干节点是否满足所述预设接入条件,进而依据验证结果获得第二投票结果。如果骨干节点满足所述预设接入条件,则该第二投票结果为通过,否则为不通过。
S405,每个第二超级节点将针对所述接入请求的第二投票结果携带在针对所述目标区块的确认结果中返回给所述第一超级节点。
每个第二超级节点可以将获得的第二投票结果插入针对目标区块的确认结果的预设位置,并返回给第一超级节点。对应地,第一超级节点可以从获得的信息的所述预设位置截取出第二投票结果。
S406,所述第一超级节点将所述第一投票结果和各所述第二投票结果发送给所述监管节点。
本实施例中,第一超级节点在获得各第二投票结果后,可以将第一投票结果和各第二投票结果一并发送给监管节点。
S407,所述监管节点在所述第一投票结果和各所述第二投票结果中存在2/3的投票结果为通过时,批准所述接入请求。
一个例子中,假如第一投票结果和各第二投票结果加起来总共有21个投票结果,那当其中存在14个投票结果为通过时,则可以确定批准接入请求。
S408,所述监管节点在确定批准所述接入请求后,从第一区块链系统的各超级节点中确定第二节点,向所述第二节点发送锚定消息,所述锚定消息用于指示所述第二节点与所述骨干节点锚定。
S409,所述第二节点基于所述锚定消息与所述骨干节点锚定,以使所述骨干节点接入所述第一区块链系统,所述骨干节点所在第二区块链系统成为所述第一区块链系统的从链系统,并且所述第一区块链系统成为所述骨干节点所在第二区块链系统的主链系统。
本实施例中,S408和S409的实现过程与前述实施例中的S103和S104类似,具体可以参照对上述实施例的详细描述,在此不再赘述。
图10所示实施例,将骨干节点的接入验证融合到区块上链确认过程中,降低了恶意骨干节点接入的可能性,换言之,增加了骨干节点接入的安全性。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (18)
1.一种骨干节点接入方法,其特征在于,所述方法包括:
第一区块链系统中的第一节点接收任一第二区块链系统中的骨干节点的接入请求,确定所述第一区块链系统中的投票节点,并请求所述投票节点针对所述接入请求进行投票,其中,所述投票节点为超级节点,第一节点和所述骨干节点均为区块链节点;
所述投票节点反馈投票结果;
所述第一节点在根据获得的投票结果确定批准所述接入请求后,从所述第一区块链系统的各超级节点中确定第二节点,向所述第二节点发送锚定消息,所述锚定消息用于指示所述第二节点与所述骨干节点锚定;
所述第二节点基于所述锚定消息与所述骨干节点锚定,以使所述骨干节点接入所述第一区块链系统,所述骨干节点所在第二区块链系统成为所述第一区块链系统的从链系统,且所述第一区块链系统成为所述骨干节点所在第二区块链系统的主链系统。
2.根据权利要求1所述的方法,其特征在于,所述第一节点为所述第一区块链系统中的任一超级节点,所述投票节点包括所述第一区块链系统中除所述第一节点之外的超级节点。
3.根据权利要求2所述的方法,其特征在于,所述根据获得的投票结果确定批准所述接入请求,包括:
所述第一节点根据获得的投票结果确定第一数量、第二数量和第三数量,所述第一数量是同意所述骨干节点接入的投票结果的数量,所述第二数量是反对所述骨干节点接入的投票结果的数量,所述第三数量是未在预设时长内反馈的投票结果的数量;
若所述第一数量大于所述第二数量与所述第三数量之和,并且所述第一数量与所述第二数量之和大于所述第三数量,则确定批准所述接入请求。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述第一数量与所述第二数量之和小于所述第三数量,则所述第一节点重新请求所述投票节点针对所述接入请求进行投票。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述第一节点在确定不批准所述接入请求的情况下,设置所述骨干节点下一次发起所述接入请求的间隔周期。
6.根据权利要求3-5中任意一项所述的方法,其特征在于,在所述确定所述第一区块链系统中的投票节点之前,所述方法还包括:
确定所述骨干节点是否是接入过所述第一区块链系统;
若是,则从所述骨干节点的历史记录中获取所述骨干节点的信誉值,并获取所述信誉值对应的投票率;
在所述根据获得的投票结果确定第一数量、第二数量和第三数量之后,在所述确定批准所述接入请求之前,确定所述第一数量、所述第二数量与所述第三数量的和值,若所述第一数量与所述和值的商达到所述投票率,则确定批准所述接入请求。
7.根据权利要求6所述的方法,其特征在于,所述信誉值基于所述骨干节点的活跃率、被举报率以及超时响应率计算得到,其中,所述活跃率是所述骨干节点提交交易的次数与所述第一区块链系统中各超级节点的共识总次数的比值,所述被举报率是所述骨干节点的被举报次数与所述第一区块链系统中发生的总举报次数的比值,所述超时响应率是所述骨干节点的超时响应次数与所述第一区块链系统中的总超时响应次数的比值。
8.根据权利要求1所述的方法,其特征在于,所述第一节点为所述第一区块链系统中的监管节点,所述投票节点包括所述第一区块链系统中的至少部分超级节点。
9.根据权利要求8所述的方法,其特征在于,所述接入请求包括第一信息,所述第一信息包括如下一种或多种数据项的数据值:申请的节点类型、节点权限、申请的企业类型、组织机构代码、申请人身份、联系方式。
10.根据权利要求1所述的方法,其特征在于,所述确定所述第一区块链系统中的投票节点,包括:
确定所述第一区块链系统中的一个超级节点为验证节点,其余超级节点均为投票节点;或者,
确定所述第一区块链系统中的一个超级节点为验证节点,预设数量个其余超级节点为投票节点;
所述投票节点反馈投票结果,包括:
所述投票节点生成第一投票结果,通过所述投票节点的私钥对所述第一投票结果进行签名,并将所述第一投票结果和获得的签名信息发送至所述验证节点;
所述验证节点通过所述投票节点的公钥对所述签名信息进行验证,若验证通过则统计所述第一投票结果;
所述验证节点基于统计的所述第一投票结果,向所述第一节点反馈第二投票结果。
11.根据权利要求10所述的方法,其特征在于,所述验证节点基于统计的所述第一投票结果,向所述第一节点反馈第二投票结果,包括:
基于所述统计的第一投票结果,确定验证通过的投票结果中允许所述骨干节点接入的投票结果数量;
若允许所述骨干节点接入的投票结果数量与投票节点总数量的商达到预设阈值,则所述验证节点向所述第一节点反馈的第二投票结果为批准所述接入请求,否则,所述验证节点向所述第一节点反馈的第二投票结果为不批准所述接入请求。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
所述验证节点将一签名集合与所述第二投票结果一并反馈给所述第一节点,所述签名集合包括通过验证的各签名信息;
所述从所述第一区块链系统的各超级节点中确定第二节点,包括:
所述第一节点确定所述签名集合中的每个签名信息所对应的超级节点;
从所确定的各超级节点中确定与所述骨干节点位置最近的超级节点作为所述第二节点;或者,根据随机选举原则,从所确定的各超级节点中确定一者作为所述第二节点。
13.根据权利要求1所述的方法,其特征在于,所述确定第二节点,包括:
从所述第一区块链系统中确定与所述骨干节点位置最近的超级节点为所述第二节点;或者,
根据随机选举原则从所述第一区块链系统的各超级节点中确定所述第二节点。
14.根据权利要求9所述的方法,其特征在于,所述第二节点基于所述锚定消息与所述骨干节点锚定之后,所述方法还包括:
所述第二节点根据所述骨干节点的节点信息生成第二信息,将所述第二信息发送至所述第一节点;所述第二信息与第一信息具有相同的数据项;
所述第一节点对比第二信息与第一信息相同数据项的数据值是否相同;
若相同,则所述第一节点生成密钥对,将所述密钥对发送给所述骨干节点,并将第二信息以及骨干节点的节点信息在全网广播后,将所述骨干节点的监管权移交给所述第二节点;其中,所述骨干节点的节点信息为:IP地址和/或公钥信息。
15.根据权利要求8所述的方法,其特征在于,所述第一区块链系统中的每个超级节点具有对应的生产时间段,并用于在对应的生产时间段内进行区块打包;所述确定所述第一区块链系统中的投票节点,并请求所述投票节点针对所述接入请求进行投票,包括:
所述第一节点将所述第一区块链系统中的超级节点均确定为投票节点,并查询所述第一区块链系统中的第一超级节点,将所述接入请求转发至所述第一超级节点,所述第一超级节点为所述第一区块链系统中用于在当前生产时间段内进行区块打包的超级节点;
所述第一超级节点针对所述接入请求进行投票,获得第三投票结果;
所述第一超级节点将所述接入请求添加至最新打包的目标区块的区块体内,并将添加有接入请求的目标区块广播至所述第一区块链系统中的第二超级节点,所述第二超级节点是所述第一区块链系统中除所述第一超级节点之外的超级节点;
每个第二超级节点将针对所述接入请求的第四投票结果携带在针对所述目标区块的确认结果中返回给所述第一超级节点;
所述第一超级节点将所述第三投票结果和各所述第四投票结果发送给所述第一节点。
16.根据权利要求15所述的方法,其特征在于,所述接入请求中包含预设标签,所述第一区块链系统中的每个超级节点通过如下方式获得第三投票结果或第四投票结果:
根据所述预设标签,调用所述预设标签对应的智能合约,验证所述接入请求是否满足预设接入条件,并根据验证结果获得对应的投票结果。
17.根据权利要求15或16所述的方法,其特征在于,所述第一节点根据获得的投票结果确定批准所述接入请求,包括:
若所述第三投票结果和各所述第四投票结果中存在2/3的投票结果为通过,则所述第一节点确定批准所述接入请求。
18.一种区块链系统,其特征在于,所述区块链系统包括第一区块链系统和至少一个第二区块链系统,所述第一区块链系统包括第一节点和超级节点,所述第二区块链系统包括骨干节点;
所述第一节点、所述超级节点以及所述骨干节点通过权利要求1-17中任意一项所述的方法进行交互,以使所述骨干节点接入所述第一区块链系统,所述骨干节点所在第二区块链系统成为所述第一区块链系统的从链系统,所述第一区块链系统为所述骨干节点所在第二区块链系统的主链系统。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111297094.XA CN113726913B (zh) | 2021-11-04 | 2021-11-04 | 骨干节点接入方法和区块链系统 |
PCT/CN2022/097228 WO2023077796A1 (zh) | 2021-11-04 | 2022-06-06 | 骨干节点接入方法和区块链系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111297094.XA CN113726913B (zh) | 2021-11-04 | 2021-11-04 | 骨干节点接入方法和区块链系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113726913A CN113726913A (zh) | 2021-11-30 |
CN113726913B true CN113726913B (zh) | 2022-04-01 |
Family
ID=78686677
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111297094.XA Active CN113726913B (zh) | 2021-11-04 | 2021-11-04 | 骨干节点接入方法和区块链系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113726913B (zh) |
WO (1) | WO2023077796A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113726913B (zh) * | 2021-11-04 | 2022-04-01 | 中国信息通信研究院 | 骨干节点接入方法和区块链系统 |
CN117544472B (zh) * | 2024-01-08 | 2024-03-22 | 中国信息通信研究院 | 分布式网络的节点管理方法、装置、电子设备和存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106411503A (zh) * | 2016-11-28 | 2017-02-15 | 中国银行股份有限公司 | 区块链投票记账模式的记账方法及系统、投票及记账节点 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108280646A (zh) * | 2018-01-19 | 2018-07-13 | 中国科学院软件研究所 | 基于联盟链的区块链组链方法及区块链系统 |
CN110868308B (zh) * | 2018-08-28 | 2022-04-01 | 傲为有限公司 | 一种区块链网络接入方法及系统 |
CN111612613B (zh) * | 2019-02-26 | 2023-11-10 | 傲为有限公司 | 一种部署有中心化系统的区块链网络 |
CN111683118B (zh) * | 2020-05-16 | 2023-07-11 | 中信银行股份有限公司 | 基于区块链的共识方法、装置、主节点设备及从节点设备 |
CN111741114B (zh) * | 2020-06-24 | 2023-05-16 | 陈鹏 | 基于区块链的可监管跨链交互系统、方法及设备 |
CN113726913B (zh) * | 2021-11-04 | 2022-04-01 | 中国信息通信研究院 | 骨干节点接入方法和区块链系统 |
-
2021
- 2021-11-04 CN CN202111297094.XA patent/CN113726913B/zh active Active
-
2022
- 2022-06-06 WO PCT/CN2022/097228 patent/WO2023077796A1/zh unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106411503A (zh) * | 2016-11-28 | 2017-02-15 | 中国银行股份有限公司 | 区块链投票记账模式的记账方法及系统、投票及记账节点 |
Also Published As
Publication number | Publication date |
---|---|
WO2023077796A1 (zh) | 2023-05-11 |
CN113726913A (zh) | 2021-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110380858B (zh) | 用于处理区块链的游戏共识协议的方法和系统 | |
Brotsis et al. | On the suitability of blockchain platforms for IoT applications: Architectures, security, privacy, and performance | |
CN113742782B (zh) | 基于隐私保护的区块链访问权限控制方法和区块链系统 | |
Shammar et al. | A survey of IoT and blockchain integration: Security perspective | |
Tosh et al. | CloudPoS: A proof-of-stake consensus design for blockchain integrated cloud | |
Boukerch et al. | Trust-based security for wireless ad hoc and sensor networks | |
CN115210741B (zh) | 部分有序的区块链 | |
KR20200032086A (ko) | 안전한 액세스 제한 관리를 통해 분산된 블록 체인 데이터 구조 배포 | |
CN110599147A (zh) | 一种基于区块链的密文检索公平支付方法及系统 | |
Azad et al. | TrustVote: Privacy-preserving node ranking in vehicular networks | |
CN113726913B (zh) | 骨干节点接入方法和区块链系统 | |
Fotia et al. | Trust in edge-based internet of things architectures: state of the art and research challenges | |
US20230037932A1 (en) | Data processing method and apparatus based on blockchain network, and computer device | |
CN111191283A (zh) | 基于联盟区块链的北斗定位信息安全加密方法及装置 | |
CN113328997B (zh) | 联盟链跨链系统及方法 | |
CN114139203B (zh) | 基于区块链的异构身份联盟风险评估系统、方法及终端 | |
Xiao et al. | Decentralized spectrum access system: Vision, challenges, and a blockchain solution | |
CN112152778B (zh) | 一种节点管理方法、装置、及电子设备 | |
CN114363352B (zh) | 基于区块链的物联网系统跨链交互方法 | |
Le et al. | A lightweight block validation method for resource-constrained iot devices in blockchain-based applications | |
CN113783899B (zh) | 节点退出方法和区块链系统 | |
Mishra et al. | Blockchain regulated verifiable and automatic key refreshment mechanism for IoT | |
Bai et al. | Blockchain-based Authentication and Proof-of-Reputation Mechanism for Trust Data Sharing in Internet of Vehicles. | |
Quamara et al. | An In-depth Security and Performance Investigation in Hyperledger Fabric-configured Distributed Computing Systems | |
CN115987697A (zh) | 基于事件订阅机制的多层级情报数据共享方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |