一种基于规则的区块链网络自动许可加入方法与流程

文档序号:17125813发布日期:2019-03-16 00:24阅读:441来源:国知局
一种基于规则的区块链网络自动许可加入方法与流程

本发明涉及区块链网络的加入,尤其涉及一种基于规则的区块链网络自动许可加入方法。



背景技术:

区块链本质上是一个账本,当一个行为开始发生,则可以产生一个区块,其完整生命周期就会被详细记录下来形成链。这个账本是在网络上进行多方复制,所以也叫作分布式账本。区块链网络按照开放程度分为三类:公有链、私有链以及联盟链。公有链大部分采用匿名参与的方式,可以随意加入区块链网络,但是由于缺少许可制度,无法确定加入成员的身份;少部分采取许可加入方式的公有链、私有链、联盟链,需要经过中心认证、许可之后才能加入区块链网络;这一类需要通过许可加入的区块链通过一个治理模型来认证申请者身份,并以此授权申请者加入区块链网络。

相关技术中,区块链网络的认证许可常常使用一个或多个中心化的注册认证机构。然而,中心化的注册认证机构会影响许可认证的中立性与权威性。具体来说,申请加入节点通常需要获得认证中心颁发的证书用于区块链网络中的身份证明,身份证明的可信度取决于也仅取决于认证中心的权威性。如果支持多个认证中心的区块链网络,那么申请加入节点所依据的权威性不同,就会导致身份证明的可信度不同。此外,对于一个区块链网络来说,还需要其他准入条件。相关技术中,一个新的申请加入节点加入,通常需要和区块链网络中多个各成员节点进行商议,时间成本过高、效率过低,并且随着申请加入节点的增加,商议各成员节点也会逐步增加,商议的时间成本会变得更高。



技术实现要素:

本发明要解决的技术问题在于克服相关技术中存在的中心化注册认证机构权威性不同导致申请加入节点身份证明可行度差异化的问题,并且解决区块链联盟各成员节点就申请加入节点进行审核的程序繁杂性的问题。

为解决上述问题,本发明提供一种基于规则的区块链网络自动许可加入方法,该自动加入方法包括:

1)部署一个智能合约;

2)公开发布调用该智能合约需要提供的信息;

3)智能合约被申请加入区块链的节点调用,并要求申请加入的节点提供信息;

4)智能合约被区块链网络中的各成员节点依照预设规则自动执行,自动触发共识机制;

5)智能合约记录并计算共识机制结果;

6)智能合约验证符合共识结果的申请加入节点信息的合法性,根据验证结果决定能否加入区块链网络。

其中,步骤1)中的部署是指已经加入区块链的各成员节点设定智能合约规则内容和规则数量,形成智能合约,是区块链技术领域制定智能合约的常见技术手段。而智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议,智能合约以信息化方式传播、验证或执行合同的计算机协议。共识机制是独立于智能合约的底层框架,即智能合约选取n个各成员节点,通知n个各成员节点进行审核,单个各成员节点审核将同意的信息保存在区块链账本中。共识机制结果是根据共识机制产生的两种结果,要么大于等于预设比例,要么小于预设比例。

进一步地,为了增强各成员节点规则制定的权威性,智能合约由区块链网络中的各成员节点设置独立审核规则和规则数量,该独立审核规则由自己修改。

进一步地,为了使申请加入节点了解智能合约审核规则的要求,智能合约提供对外公开规则的接口,用于申请加入的节点查询请求规则。

进一步地,为了体现申请加入节点设置规则的灵活性,智能合约还包括各成员节点设置智能合约独立审核规则的步骤。

进一步地,在所述智能合约独立审核规则的步骤中,智能合约采用各成员节点自动审核申请加入的节点提供的信息,多个成员节点平分百分比,获得分值,若分值大于等于预设分值,则智能合约请求唯一标识,触发共识机制。智能合约由多个成员节点自动审核用户请求信息,同时记录分值,根据所得分值,智能合约判断申请加入节点能否触发共识机制:若分值大于等于预设数值,申请加入节点触发共识机制,若分值小于预设数值,申请加入节点被拒绝。采用这样的方法,可以减少对一个或者多个中心化注册认证机构的依赖,从而进一步增强申请加入节点身份证明的可信度。

进一步地,该各成员节点自动审查申请加入节点提供的信息时,预设分值可以为67。

进一步地,为了决定申请加入节点能否加入区块链执行步骤4)中的共识机制时,智能合约根据当时区块链联盟各成员节点数量情况,选取n个成员节点,并向n个成员节点发送n个通知:收到通知的每个成员节点审核申请加入节点是否满足条件,各成员节点若认为申请加入节点符合条件,则将同意的信息记录在区块链账本中,如果各成员节点认为申请加入节点不符合条件,则记录不同意的信息;区块链账本记录的同意信息如果等于大于预设比例,智能合约生成邀请码发送给申请加入节点,如果小于预设比例,智能合约通知申请加入节点。采用这样的方法,降低区块链的多个各成员节点审核申请加入节点的时间成本,简化审核程序,从而进一步提高加入区块链的效率。

这里的区块链账本指的是记录行为的区块链,可以在网络上进行多方复制。

进一步地,为了体现区块链成员节点是否同意申请加入节点加入的多数意见,共识机制中的预设比例为n/2。

进一步地,为了验证区块链成员节点通过共识机制进行表决的申请加入节点信息合法性,智能合约计算申请加入节点通过共识机制,生成邀请码,将邀请码的hash值保存在区块链网络中,并与申请加入节点的初始信息相关联,智能合约将加密邀请码信息返还给智能合约各成员节点,各申请加入节点用初始私钥解密数据,并用邀请码、根证书请求区块链网络,区块链网络调用智能合约,对比验证账本数据中的初始信息和各成员节点发送的信息:若通过,则申请加入节点加入区块链。

所述邀请码hash值,属于现有技术,是在智能合约过程中产生的唯一标识,区块链账本数据可查,唯一且不可篡改。

进一步地,为了完成申请加入节点的信息合法性的验证,申请加入的节点加入区块链网络时,申请公私钥和区块链网络各成员节点根公私钥,使用根私钥自签名方式生成含有公钥的证书,将证书、根公私钥和申请请求发送至智能合约中,智能合约将证书、根公私钥和申请请求保存至区块链账本中。

所述公私钥,属于现有技术,公钥负责信息加密,私钥负责信息解密;一般情况下,公钥是公开的,私钥是保密的;

所述证书,具体指x509证书,属于现有技术,是一种常用的证书格式,所有的证书都符合itu-tx.509国际标准,因此,理论上x509证书是一种应用创建的证书可以用于任何其他符合x509标准的应用。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

下面结合附图对本发明的具体实施方式做进一步详细的说明,其中:

图1是根据一示例性实施例示出的基于规则的区块链网络自动许可加入方法流程图;

图2是根据一示例性实施例示出的部署智能合约示意图;

图3是根据智能合约,审核成员节点示意图;

图4是大于等于预设分值后,智能合约触发共识机制的示意图;

图5是智能合约审核申请加入节点信息合法性后,加入区块链的示意图。

具体实施方式

为更容易理解本发明的优点、特征以及达到技术效果的技术方法将参照例示性实施例进行更详细地描述,且本发明可以不同形式来实现,故不应被理解为本发明仅限于此处所陈述的实施例,相反地,对本领域的技术人员,所提供的实施例将更加透彻与全面且完整地传达本发明的范畴,且本发明将以申请专利文件的权利要求确定保护范围。

以下结合附图对本申请进行进一步的说明。

如图2所示,本实施例为一个模拟申请加入商业联盟组成的联盟链的示例流程。联盟链中各成员节点以成员节点1、成员节点2、成员节点3、成员节点4来表示。在初始状下,需要在联盟各成员节点个数大于等于3的情况下建立联盟链。

联盟链中,已经加入的成员节点1、成员节点2、成员节点3、成员节点4制定对于申请节点的审核规则,譬如加入联盟链需要注册资金规模大于预设数额,或是加入联盟链需要在请求信息中包含统一社会信用代码等信息。联盟链制定的智能合约包含成员节点1规则、成员节点2规则、成员节点3规则和成员节点4四个规则,由成员节点1或成员节点2或成员节点3或成员节点4设置的独立审核规则只能由自己修改。当然,根据实际情况,单个成员节点1或成员节点2或成员节点3或成员节点4可以设置多条规则。联盟链智能合约可公开发布申请加入节点加入联盟链需要提供的信息,比如加入的参数要求,请求参数包括自身私钥对应的证书请求和相关公司信息、需要提供的冻结保证金证明等。此外,单个成员节点1或成员节点2或成员节点3或成员节点4可以弃权设置独立审核规则。

申请加入节点拟加入联盟链,以享受加入后联盟的相关政策,比如会员体系打通,同时积分通兑等相关业务。故此,申请加入节点以游客身份,向区块链联盟申请端口发出请求,申请联盟链游客公私钥和联盟链根公私钥,使用根公私钥自签名方式生成含有公钥的x509证书,并将根公钥和加入联盟链请求信息打包发送至用于申请加入的联盟链智能合约中。

如图3,示出了执行智能合约审核申请加入节点的过程。智能合约被联盟链网络中的成员节点调动,根据图2制定完成的联盟链智能合约的审核规则,对申请加入节点进行审核,审核结果以打分的方式呈现:若所获分数大于等于67分,则意味着申请加入节点能够通过加入联盟链智能合约的审核规则,触发共识机制;若所获分数小于67分,则意味着申请加入节点无法通过加入联盟链智能合约的审核规则,智能合约通知申请加入节点的申请请求被拒绝。

如图4,示出了申请加入节点触发共识机制的过程。若申请加入节点大于等于67分,共识机制被触发,智能合约根据当前区块链联盟各成员节点状态,选取n个联盟链成员节点作为审核者,向n个联盟链成员节点发送通知,当联盟各成员节点审核认为申请加入节点可以加入联盟链时,将同意的信息记录在当前的区块链账本中;当联盟各成员节点审核认为申请加入节点不可以加入联盟链时,将失败的信息记录在当前的区块链账本中。每次记录信息均会触发智能合约记录状态,当收集到足够多的同意信息后,智能合约验证申请加入节点获得的同意信息是否大于等于n/2:如果大于等于n/2,意味着大于等于一半的成员节点同意申请加入节点的申请,则其可以加入联盟;如果同意信息小于n/2,意味着少于一半的成员节点同意申请加入节点,则智能合约通知申请加入节点加入的请求被拒绝。

如图5,示出了智能合约验证成员节点合法性信息的过程。当大于等于n/2的成员节点同意申请加入节点加入联盟链,智能合约生成邀请码,将邀请码的hash值保存到区块链网络中,并与关联初始申请的公钥证书,并加密邀请码信息,返回给申请加入节点。申请加入节点获得该返回数据后,通过初始私钥解密以上数据,并将邀请码,根x509证书以申请加入联盟链网络请求的格式请求联盟链网络,联盟链网络调用智能合约,对比账本数据中的初始信息,验证请求数据的合法性。若智能合约通过申请加入节点信息合法性验证,则根据申请加入节点的请求证书,将申请加入节点添加到联盟成员中,重置配置区块,申请加入节点最终加入联盟链;若智能合约没有通过申请加入节点信息合法性验证,则通知申请加入节点加入的请求被拒绝。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1