首页> 中国专利> 一种基于区块链的公证人选取方法及系统

一种基于区块链的公证人选取方法及系统

摘要

本申请提供了一种基于区块链的公证人选取方法及系统,在获知当前跨链操作类型后,查询链上历史记录得到与当前跨链操作类型一致的历史跨链操作,根据历史跨链操作中的历史节点数及历史公证人节点数中得出当前链的当前公证人节点数,根据当前公证人节点数从当前链的候选公证人中选取当前公证人节点作为见证当前跨链操作的节点,在得到当前公证人节点签名验证后,进行当前跨链业务的交易,所有当前公证人节点进行见证并记录跨链结果,其利用区块链节点中不可篡改的存证特性,从待进行跨链操作的链系统内部确定具有公信力的公证人节点,见证和记录相关的跨链业务交易,既实现了跨链业务的成功交易,又解决了在跨链交易时必须有可信第三方参与的问题。

著录项

  • 公开/公告号CN111090891A

    专利类型发明专利

  • 公开/公告日2020-05-01

    原文格式PDF

  • 申请/专利权人 卓尔智联(武汉)研究院有限公司;

    申请/专利号CN202010205493.8

  • 发明设计人 蔡天琪;邓承;

    申请日2020-03-23

  • 分类号

  • 代理机构北京集佳知识产权代理有限公司;

  • 代理人柳欣

  • 地址 430300 湖北省武汉市黄陂区盘龙城经济开发区汉口北大道88号汉口北国际交易中心D1区7层

  • 入库时间 2023-12-17 08:08:48

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-06-19

    授权

    授权

  • 2020-05-29

    实质审查的生效 IPC(主分类):G06F21/64 申请日:20200323

    实质审查的生效

  • 2020-05-01

    公开

    公开

说明书

技术领域

本申请涉及区块链跨链技术领域,尤其涉及一种基于区块链的公证人选取方法及系统。

背景技术

在区块链所面临的诸多问题中,区块链之间互通性极大程度的限制了区块链的应用空间。不论对于公有链还有私有链来看,跨链技术就是实现价值互联网的关键,它是把区块链从分散的孤岛中拯救出来的良药,是区块链向外拓展和连接的桥梁。

目前主流的跨链技术包括公证人机制(Notary schemes)、侧链/中继(Sidechains/relays)、哈希锁定(Hash-locking)和分布式私钥控制(Distributedprivate key control)。公证人机制作为跨链技术中的一种,其本质上是一种中介的方式,即,假设区块链A和区块链B本身是不能直接进行互操作的,他们之间可通过引入一个共同信任的第三方承担公证人角色,由这个共同信任的第三方进行跨链业务数据的验证和转发,从而灵活地支持各种不同结构的区块链之间的互操作。但是,在联盟链或公有链系统中,公证人角色的参与度并不由进行跨链的链系统来决定的,目前还未有从链系统内部选择公证人的方案。

发明内容

本申请提供了一种基于区块链的公证人选取方法及系统,目的在于实现由跨链系统内部选择公证人节点进行跨链业务交易的效果。

为了实现上述目的,本申请提供了以下技术方案:

一种基于区块链的公证人选取方法,包括以下步骤:

获取跨链交易双方的跨链信息,所述跨链信息包括当前待进行跨链操作的第一当前链的第一跨链类型和第二当前链的第二跨链类型,以及根据所述第一跨链类型和所述第二跨链类型得到的当前跨链操作类型,获取的所述第一当前链的第一当前节点数和所述第二当前链的第二当前节点数;

根据所述当前跨链操作类型查询链上历史记录,获得与所述当前跨链操作类型一致的跨链成功的历史跨链操作的历史跨链信息,并从所述历史跨链信息中获取所述历史跨链操作中与所述第一当前链对应的第一历史链的第一历史节点数及第一历史公证人节点数,以及与所述第二当前链对应的第二历史链的第二历史节点数及第二历史公证人节点数;

根据所述第一历史节点数、所述第一历史公证人节点数和所述第一当前节点数得到所述第一当前链的第一当前公证人节点数,根据所述第二当前节点数、所述第二历史公证人节点数和所述第二历史节点数得到所述第二当前链的第二当前公证人节点数;

从所述第一当前链中选取第一候选公证人节点,从所述第二当前链中选取第二候选公证人节点,并根据所述第一当前公证人节点数从所述第一候选公证人节点中选取第一当前公证人节点,根据所述第二当前公证人节点数从所述第二候选公证人节点中选取第二当前公证人节点;

当得到第一当前公证人节点和第二当前公证人节点签名验证后,所述第一当前链和所述第二当前链进行跨链操作,所有所述第一当前公证人节点和所述第二当前公证人节点对当前跨链操作进行见证,并记录跨链结果。

在其中一个实施例中,所述从所述第一当前链中选取第一候选公证人节点,从所述第二当前链中选取第二候选公证人节点的步骤,包括:

搜索所述第一当前链和所述第二当前链,将所述第一当前链中已成功见证过跨链操作的节点选取为第一见证公证人节点,将所述第二当前链中已成功见证过跨链操作的节点选取为第二见证公证人节点;

其中,所述第一候选公证人节点包括所述第一见证公证人节点,所述第二候选公证人节点包括所述第二见证公证人节点。

在其中一个实施例中,所述从所述第一当前链中选取第一候选公证人节点,从所述第二当前链中选取第二候选公证人节点的步骤,还包括:

遍历所述第一当前链和所述第二当前链,将所述第一当前链中信用度高的节点选取为第一信用公证人节点,将所述第二当前链中信用度高的节点选取为第二信用公证人节点,所述信用度的确定因素包括所述第一当前链和所述第二当前链中每个节点的历时时长、有无负面记录、交易频率;

其中,所述第一候选公证人节点包括所述第一信用公证人节点,所述第二候选公证人节点包括第二信用公证人节点。

在其中一个实施例中,在选取所述第一见证公证人节点、第二见证公证人节点、第一信用公证人节点、第二信用公证人节点之后,还包括:

将所述第一见证公证人节点按照其业务与所述当前跨链操作业务相关度在所述第一当前链中赋予第一链内权重值;

将所述第二见证公证人节点按照其业务与所述当前跨链操作业务相关度在所述第二当前链中赋予第二链内权重值;

其中,业务相关度越高链内权重值越大;

对所述第一信用公证人节点在所述第一当前链中赋予第三链内权重值,对所述第二信用公证人节点在所述第二当前链中赋予第四链内权重值;

其中,所述第三链内权重值小于所述第一链内权重值,所述第四链内权重值小于所述第二链内权重值。

在其中一个实施例中,所述当得到第一当前公证人节点和第二当前公证人节点签名验证后,所述第一当前链和所述第二当前链进行跨链操作,所有所述第一当前公证人节点和所述第二当前公证人节点对当前跨链操作进行见证,并记录跨链结果的步骤,包括:

对所述第一当前链赋予第一链间权重值,对所述第二当前链赋予第二链间权重值,所述第一链间权重值与所述第二链间权重值之和为预设链间值;

根据所述第一链间权重值、第一链内权重值计算所述第一当前公证人节点的第一公证权重值,或者根据所述第一链间权重值、第一链内权重值及第三链内权重值计算所述第一当前公证人节点的第一公证权重值;

根据所述第二链间权重值、第二链内权重值计算所述第二当前公证人节点的第二公证权重值,或者根据所述第二链间权重值、第二链内权重值及第四链内权重值计算所述第二当前公证人节点的第二公证权重值;

将已签名验证的第一当前公证人节点作为第一签名公证人节点,将已签名验证的第二当前公证人节点作为第二签名公证人节点,根据所述第一公证权重值和第二公证权重值计算所述第一签名公证人节点和所述第二签名公证人节点的签名权重值,当所述签名权重值满足预设公证值时,所述第一当前链和所述第二当前链进行跨链操作,所有所述第一当前公证人节点和所述第二当前公证人节点对当前跨链操作进行见证,并记录跨链结果;

其中,所述预设公证值为大于0且小于等于所述预设链间值的值。

本申请还提供一种基于区块链的公证人选取系统,包括:

跨链类型识别模块,用于获取跨链交易双方的跨链信息,所述跨链信息包括当前待进行跨链操作的第一当前链的第一跨链类型和第二当前链的第二跨链类型,以及根据所述第一跨链类型和所述第二跨链类型得到的当前跨链操作类型,获取的所述第一当前链的第一当前节点数和所述第二当前链的第二当前节点数;

历史公证人节点数获取模块,用于根据所述当前跨链操作类型查询链上历史记录,获得与所述当前跨链操作类型一致的跨链成功的历史跨链操作的历史跨链信息,并从所述历史跨链信息中获取所述历史跨链操作中与所述第一当前链对应的第一历史链的第一历史节点数及第一历史公证人节点数,以及与所述第二当前链对应的第二历史链的第二历史节点数及第二历史公证人节点数;

当前公证人节点数获取模块,用于根据所述第一历史节点数、所述第一历史公证人节点数和所述第一当前节点数得到所述第一当前链的第一当前公证人节点数,根据所述第二当前节点数、所述第二历史公证人节点数和所述第二历史节点数得到所述第二当前链的第二当前公证人节点数;

当前公正人节点选取模块,用于从所述第一当前链中选取第一候选公证人节点,从所述第二当前链中选取第二候选公证人节点,并根据所述第一当前公证人节点数从所述第一候选公证人节点中选取第一当前公证人节点,根据所述第二当前公证人节点数从所述第二候选公证人节点中选取第二当前公证人节点;

跨链操作见证记录模块,当得到第一当前公证人节点和第二当前公证人节点签名验证后,所述第一当前链和所述第二当前链进行跨链操作,所有所述第一当前公证人节点和所述第二当前公证人节点对当前跨链操作进行见证,并记录跨链结果。

在其中一个实施例中,所述当前公正人节点选取模块包括:

见证公证人节点选取单元,用于搜索所述第一当前链和所述第二当前链,将所述第一当前链中已成功见证过跨链操作的节点选取为第一见证公证人节点,将所述第二当前链中已成功见证过跨链操作的节点选取为第二见证公证人节点;

其中,所述第一候选公证人节点包括所述第一见证公证人节点,所述第二候选公证人节点包括所述第二见证公证人节点。

在其中一个实施例中,所述当前公证人节点选取模块还包括:

信用公证人节点选取单元,用于遍历所述第一当前链和所述第二当前链,将所述第一当前链中信用度高的节点选取为第一信用公证人节点,将所述第二当前链中信用度高的节点选取为第二信用公证人节点,所述信用度的确定因素包括所述第一当前链和所述第二当前链中每个节点的历时时长、有无负面记录、交易频率;

其中,所述第一候选公证人节点包括所述第一信用公证人节点,所述第二候选公证人节点包括第二信用公证人节点。

在其中一个实施例中,所述当前公正人节点选取模块还包括:

第一链内权重值赋予单元,用于在选取所述第一见证公证人节点之后,将所述第一见证公证人节点按照其业务与所述当前跨链操作业务相关度在所述第一当前链中赋予第一链内权重值;还用于在选取所述第二见证公证人节点之后,将所述第二见证公证人节点按照其业务与所述当前跨链操作业务相关度在所述第二当前链中赋予第二链内权重值;其中,业务相关度越高链内权重值越大;

第二链内权重值赋予单元,用于在选取所述第一信用公证人节点之后,对所述第一信用公证人节点在所述第一当前链中赋予第三链内权重值;其中,所述第三链内权重值小于所述第一链内权重值;还用于在选取所述第二信用公证人节点之后,对所述第二信用公证人节点在所述第二当前链中赋予第四链内权重值;其中,所述第四链内权重值小于所述第二链内权重值。

在其中一个实施例中,所述跨链操作见证记录模块包括:

链间权重值赋予单元,用于对所述第一当前链赋予第一链间权重值,对所述第二当前链赋予第二链间权重值,所述第一链间权重值与所述第二链间权重值之和为预设链间值;

公证权重值计算单元,用于根据所述第一链间权重值、第一链内权重值计算所述第一当前公证人节点的第一公证权重值,或者根据所述第一链间权重值、第一链内权重值及第三链内权重值计算所述第一当前公证人节点的第一公证权重值;还用于根据所述第二链间权重值、第二链内权重值计算所述第二当前公证人节点的第二公证权重值,或者根据所述第二链间权重值、第二链内权重值及第四链内权重值计算所述第二当前公证人节点的第二公证权重值;

签名验证单元,用于将已签名验证的第一当前公证人节点作为第一签名公证人节点,将已签名验证的第二当前公证人节点作为第二签名公证人节点,根据所述第一公证权重值和第二公证权重值计算所述第一签名公证人节点和所述第二签名公证人节点的签名权重值,当所述签名权重值满足预设公证值时,所述第一当前链和所述第二当前链进行跨链操作,所有所述第一当前公证人节点和所述第二当前公证人节点对当前跨链操作进行见证,并记录跨链结果;

其中,所述预设公证值为大于0且小于等于所述预设链间值的值。

本申请所述的基于区块链的公证人选取方法及系统,在获知当前跨链操作类型后,查询链上历史记录得到与当前跨链操作类型一致的历史跨链操作,根据历史跨链操作中的历史节点数及历史公证人节点数中得出当前链的当前公证人节点数,根据当前公证人节点数从当前链的候选公证人中选取当前公证人节点作为见证当前跨链操作的节点,在得到当前公证人节点签名验证后,进行当前跨链业务的交易,所有当前公证人节点进行见证并记录跨链结果,其利用区块链节点中不可篡改的存证特性,从待进行跨链操作的链系统内部确定具有公信力的公证人节点,见证和记录相关的跨链业务交易,既实现了跨链业务的成功交易,又解决了在跨链交易时必须有可信第三方参与的问题。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请一具体实施例的基于区块链的公证人选取方法的流程示意图;

图2为本申请另一具体实施例的基于区块链的公证人选取方法的流程示意图;

图3为本申请又一具体实施例的基于区块链的公证人选取方法的流程示意图;

图4为本申请一具体实施例的基于区块链的公证人选取系统的结构示意图;

图5为本申请实施例公开的电子设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

图1为本申请实施例提供的一种基于区块链的公证人选取方法,可以包括以下步骤:

S100,获取跨链交易双方的跨链信息,所述跨链信息包括当前待进行跨链操作的第一当前链的第一跨链类型和第二当前链的第二跨链类型,根据第一跨链类型和第二跨链类型得到的当前跨链操作类型,获取的第一当前链的第一当前节点数和第二当前链的第二当前节点数。

当跨链交易双发发起跨链交易时,交易双方所在的两个区块链系统的类型决定了跨链操作类型,比如:一个区块链系统为比特币系统,另一个区块链系统为莱特币系统,则跨链操作类型则为比特币-莱特币跨链操作类型;也可以为不同合约之间的跨链操作,比如:工作量证明机制(PoW)权益证明机制(PoS)的跨链操作,由此,确定当前将要进行跨链操作的两个链系统的类型便可确定跨链操作类型。

S200,根据当前跨链操作类型查询链上历史记录,获得与当前跨链操作类型一致的跨链成功的历史跨链操作的历史跨链信息,并从历史跨链信息中获取历史跨链操作中与第一当前链对应的第一历史链的第一历史节点数及第一历史公证人节点数,以及与第二当前链对应的第二历史链的第二历史节点数及第二历史公证人节点数。

由于跨链交易都会上链记录,且相关的见证节点(可以理解为历史公证人节点)也会进行签名确认,因此,只要查询链上历史记录,遍历当前链的所有节点历史记录,根据历史跨链交易记录及见证节点的签名便可很容易找到跨链操作类型相同或相似的跨链操作。由于目前相关链系统已进行过大量的跨链操作,且跨链操作通常是常见的链系统之间的跨链,所以基本上都可以找到与当前跨链操作类型一致的历史跨链操作。即便没有找到类型一致的历史跨链操作,也可根据待进行跨链的链系统的类型特征寻找相似特征的链系统的跨链操作,从而得到相关的历史跨链操作。

S300,根据第一历史节点数、第一历史公证人节点数和第一当前节点数得到第一当前链的第一当前公证人节点数,根据第二当前节点数、第二历史公证人节点数和第二历史节点数得到第二当前链的第二当前公证人节点数。

优选地,第一当前公证人节点数至少为1个,第二当前公证人节点数至少为1个,确保跨链交易双方所在当前链分别存在1个当前公证人节点,可保证跨链交易可靠性更高。

该过程是从类型一致的历史跨链操作中得到当前待进行跨链操作的链系统的公证人节点数的过程,从成功经验中学习,得到相应的第一当前公证人节点数和第二当前公证人节点数,其跨链成功的效率和质量也相对有保证。具体地,计算第一历史节点数和第一当前节点数的比例作为第一比例,根据第一历史公证人节点数和第一比例计算出第一当前公证人节点数,计算第二历史节点数和第二当前节点的比例作为第二比例,根据第二历史公证人节点数和第二比例计算出第二当前公证人节点数。值得说明的是,即便计算出的当前公证人节点数不到1个,也必须为当前链分配至少1个公证人节点。

此处需要说明的是,公证人节点数与链节点数成正比,即链节点数越多需要的公证人节点数也多,公证人节点数和链节点数之间可以成固定比例,比如:100个链节点有1个公证人节点,小于100个节点的可以新增一个公证人节点也可不新增一个公证人节点。但一般公证人节点数和链节点数据之间不是固定比例,而是根据公证人节点资质和公证效率需要动态调整公证人节点数和链节点数的比例,因为公证人节点数越多,公证的可信度更高,但达成共识的时间可能需要的就越久,此时需要在效率和可信度性之间进行平衡。比如:跨链操作需要3个公证人节点,待进行跨链的链系统A的节点数只有5个,其也至少需要1个公证人节点,待进行跨链的链系统B的节点数为10000个,可能也只能为其分配2个公证人节点。而通常成功跨链的跨链操作中,公证人节点数与链节点数之间的比例是比较成功和有参考性的,这里直接从跨链成功的历史跨链操作中得到当前跨链操作中所需的公证人节点数,简单可靠,可操作性和跨链成功概率高。

S400,从第一当前链中选取第一候选公证人节点,从第二当前链中选取第二候选公证人节点,并根据第一当前公证人节点数从所述第一候选公证人节点中选取第一当前公证人节点,根据第二当前公证人节点数从第二候选公证人节点中选取第二当前公证人节点。

第一候选公证人节点和第二候选公证人节点的选取与其所在链系统的数量和规模相关,链系统的数量和规模越大,候选公证人节点选取的所允许的数量也就越多,通常选择链系统中成功见证过跨链操作的节点作为候选公证人节点,也可根据跨链节点的主动要求或在待进行跨链操作的链系统规模较大时,成功见证过跨链操作的节点无法满足链系统所需的当前公证人节点数时,选择链系统中信用度高的节点作为候选公证人节点,以满足当前公证节点选取的需求。

具体地,在其中一个实施方式中,参见图2,步骤S400包括:S410,搜索第一当前链和第二当前链,将第一当前链中已成功见证过跨链操作的节点选取为第一见证公证人节点,将第二当前链中已成功见证过跨链操作的节点选取为第二见证公证人节点;其中,第一候选公证人节点包括第一见证公证人节点,第二候选公证人节点包括第二见证公证人节点。

进一步地,在其中一个实施方式中,步骤S400还包括,S430,遍历第一当前链和第二当前链,将第一当前链中信用度高的节点选取为第一信用公证人节点,将第二当前链中信用度高的节点选取为第二信用公证人节点,信用度的确定因素包括第一当前链和第二当前链中每个节点的历时时长、有无负面记录、交易频率。其中,第一候选公证人节点包括第一信用公证人节点,第二候选公证人节点包括第二信用公证人节点。

在该实施例中,信用度高的节点通过节点的历时时长、有无负面记录以及交易频率来确定,通常在一个链系统中一个节点的历史时长越长、无负面记录且交易频率越高,该节点的信用度也越高。在一具体实施方式中,信用度的节点可以从历时时长、有无负面记录以及交易频率这些特征中选取其中部分来确定,比如:选择历史时长最长或排名靠前的节点作为高信用度的节点,也可通过为这些特征赋予相应的权重值,通过权重值计算得到节点的信用度的排名,并从中选取排名靠前的节点作为信用公证人节点。

其中,对上述特征赋予权重值选取信用公证人节点的一个可选实施方式中,定义历时时长、有无负面记录及交易频率的评分规则,以便将三个特征评价体系进行归一调整,分别得到历时时长的评分得分t-score、有无负面记录的评分得分r-score、交易频率的评分得分f-score,并分别为历时时长、有无负面记录及交易频率分配权重值a1、a2、a3,进而得到各个节点的信用度得分C=a1*t-score+a2*r-score+a3*f-score,然后根据各个节点的信用度得分进行排名得到高信用度的节点。其中,历时时长评分规则可按如下方式:对历史时长进行时长等级划分,并为每个等级制定相应的得分分值,具体地,若当前链系统节点最长历史时长为1000h,将历史时长分为[0,100]、(100,200]……(900,1000]10个等级,在[0,100]给予10分、(100,200]给予20分,依次类推,得到处于某个范围时长范围内该节点的历时时长得分t-score;有无负面记录评分规则可按如下方式:无负面记录,给予等分100分,有1次负面记录,给予60分,有2次负面记录,给予30分,超过3次以上负面记录,给予0分,进而得到有无负面记录的得分r-score;交易频率评分规则可按与历史时长相似的规则进行:若当前链系统中节点交易频率最多的为10000次,则将历史时长分为[0,1000]、(100,2000]……(9000,10000]10个等级,在[0,1000]给予10分、(1000,2000]给予20分,依次类似,得到处于某个频率范围内的该节点的交易频次得分f-score;当然,上述评分规则只是示例说明,也可采取更为细化的评分规则或其他常见评分规则,以使评分更为准确。

S500,当得到第一当前公证人节点和第二当前公证人节点签名后,第一当前链和所述第二当前链进行跨链操作,所有第一当前公证人节点和第二当前公证人节点对当前跨链操作进行见证,并记录跨链结果。

本申请提供的基于区块链的公证人选取方法,在获知当前跨链操作类型后,查询链上历史记录得到与当前跨链操作类型一致的历史跨链操作,根据历史跨链操作中的历史节点数及历史公证人节点数中得出当前链的当前公证人节点数,根据当前公证人节点数从当前链的候选公证人中选取当前公证人节点作为见证当前跨链操作的节点,在得到当前公证人节点签名验证后,进行当前跨链业务的交易,所有当前公证人节点进行见证并记录跨链结果,其利用区块链节点中不可篡改的存证特性,从待进行跨链操作的链系统内部确定具有公信力的公证人节点,见证和记录相关的跨链业务交易,既实现了跨链业务的成功交易,又解决了在跨链交易时必须有可信第三方参与的问题。

可选地,参见图2,步骤S410之后,还可以包括如下步骤:

S420,将第一见证公证人节点按照其业务与当前跨链操作业务相关度在第一当前链中赋予第一链内权重值;将第二见证公证人节点按照其业务与当前跨链操作业务相关度在第二当前链中赋予第二链内权重值。其中,业务相关度越高链内权重值越大。

链系统上每个节点的业务并非是一样的,比如在金融供应链中,银行、业务平台、买卖商家都可以是链系统上的节点,各类节点之间进行交易(互通、跨链)的信息是不一样的,如买卖双方可能是报价、询价业务数据,商家、银行之间可能是提供贷款(资产、流水等)的业务数据,银行、业务平台之间可能是提供数据验证商家数据是否真实的业务数据。而从链系统中选择出的见证公证人节点并非都与当前待进行跨链节点的业务相同,因此按照见证公证人节点的业务与当前待进行跨链节点的业务相关度赋予权重,比如:将与当前待进行跨链节点业务相关的见证公证人节点赋予链内权重值0.3,将其他与当前待进行跨链节点不业务相关的见证公证人节点赋予链内权重值0.2,当然,此处只是示例说明,也可根据业务相关程度划分相关度等级,然后根据相关度等级进行更为细分的链内权重值赋予。根据跨链节点业务相关度进行链内权重值分配,能够在后续实现跨链操作时,业务相关度高的见证公证人节点签名时所起的作用更大些,而业务相关度更高其签名验证效力可能会更高些,保证最终跨链操作的效率和质量。

可选地,步骤S430之后,还可以包括如下步骤:

S440,对第一信用公证人节点在第一当前链中赋予第三链内权重值,对第二信用公证人节点在第二当前链中赋予第四链内权重值;其中第三链内权重值小于第一链内权重值,第四链内权重值小于第二链内权重值。

对跨链节点的主动要求或在待进行跨链操作的链系统规模较大时,见证公证人节点不足于满足需求时,新加入的信用公证人节点,通常其公信效力相对较弱,可以赋予其相对较小的链内权重值,如:0.1,既能发挥其在跨链操作中的作用,又不至于对跨链操作有重大影响。

上述两个实施例是为后续步骤计算签名的当前公证人节点的签名权重值做准备,且如此分配链内权重值可以保证最终跨链操作的效率和质量。

可选地,参见图3,步骤S500包括以下步骤:

S510,对第一当前链赋予第一链间权重值,对第二当前链赋予第二链间权重值,第一链间权重值与第二链间权重值之和为预设链间值。

S520,根据第一链间权重值、第一链内权重值计算第一当前公证人节点的第一公证权重值,或者根据第一链间权重值、第一链内权重值及第三链内权重值计算第一当前公证人节点的第一公证权重值。

S530,根据第二链间权重值、第二链内权重值计算第二当前公证人节点的第二公证权重值,或者根据第二链间权重值、第二链内权重值及第四链内权重值计算第二当前公证人节点的第二公证权重值。

S540,将已签名的第一当前公证人节点作为第一签名公证人节点,将已签名的第二当前公证人节点作为第二签名公证人节点,根据第一公证权重值和第二公证权重值计算第一签名公证人节点和第二签名公证人节点的签名权重值,当签名权重值满足预设公证值时,第一当前链和第二当前链进行跨链操作,所有第一当前公证人节点和第二当前公证人节点对当前跨链操作进行见证,并记录跨链结果。其中,预设公证值为大于0且小于等于预设链间值的值。

为待进行跨链的第一当前链和第二当前链分别赋予第一链间权重值和第二链间权重值,第一链间权重值和第二链间权重值可以相等也可以不等,看二者在跨链操作中占有分量而定,通常情况下,第一链间权重值等于第二链间权重值,且第一链间权重值和第二链间权重值之和为预设链间值,预设链间之间为类似于1、10或100这些能够表示完整度的数值。

然后根据步骤S420、S440中赋予当前链的链内权重值与该步骤中赋予当前链的链间权重值进行计算,分别得到第一当前链中所有第一当前公证人节点的第一公证权重值和第二当前链中所有第二当前公证人节点的第二公证权重值。具体地,获取第一当前中所有第一当前公证人节点的第一链内权重值,根据各个第一当前公证人节点的第一链内权重值计算各个第一当前公证人节点的权重占比,然后将各个第一当前公证人节点的权重占比和第一当前链的第一链间权重值的乘积作为各个第一当前公证人节点的第一公证权重值,根据各个第二当前公证人节点的第二链内权重值计算各个第二当前公证人节点的权重占比,然后将各个第二当前公证人节点的权重占比和第二当前链的第一链间权重值的乘积作为各个第二当前公证人节点的第二公证权重值,如:当前公证人节点a的链内权重值为0.3,当前公证人节点b的链内权重值为0.2,当前公证人节点a的链内权重值为0.1,则当前公证人节点a、b、c在该当前链内中权重比例为0.3:0.2:0.1,即当前公证人节点a在当前链的权重占比为3/6,当前公证人节点b在当前链的权重占比为2/6,当前公证人节点c在当前链的权重占比为1/6。需要说明的是,步骤S520和S530中各有两个实施例,即在见证公证人节点满足需求时,只用见证公证人节点的链内权重值和其所在当前链的链间权重值即可计算公证权重值,在见证公证人节点不能满足需求时,才用见证公证人节点的链内权重值及信用公证人节点的链内权重值和他们所在当前链的链间权重值计算公证权重值。

在得到各个当前链内各个当前公证人节点的公证权重值之后,因为跨链操作并不一定会得到所有当前公证人节点的签名验证,因此需要查询在此次跨链操作中哪些当前公证人节点进行了签名验证,将进行了签名验证的当前公证人节点的公证权重值进行加和计算之后,得到签名权重值,判断签名权重值是否大于预设公证值,当签名权重值大于预设公证值时,进行当前跨链操作,所有当前公证人节点对当前跨链操作进行见证,并记录跨链结果,否则当前跨链操作失败,重新发起跨链操作。

值得说明的是,预设公证值为大于0且小于等于预设链间值的值,这样可以提高跨链操作成功的可性能和灵活性。优选地,预设公证值大于第一链间权重值和第二链间权重值中较大的值,且小于等于预设链间值,这样才能保证同时得到第一当前链和第二当前链中当前公证人节点的签名验证,提升跨链操作的安全度和跨链交易的可信度。更优地,预设公证值等于预设链间值,即需要得到第一当前链和第二当前链中所有当前公证人节点的签名验证才能进行跨链操作,这种方式能够保证跨链操作更加安全。

举例说明:假设待进行跨链操作的第一当前链A和第二当前链B,第一链间权重值为0.5,第二链间权重值为0.5,在第一当前链A中最终选择一个第一当前公证人节点z,其链内权重值即为1,进而得到第一当前公证人节点z的第一公证权重值为0.5*1=0.5(即第一链间权重值与节点z的链间权重值的乘积);在第二当前链B中最终选择了两个第二当前公证人节点m,n,其中第二当前公证人节点m的链内权重值为0.3,第二当前公证人节点n的链内权重值为0.1,则第二当前公证人节点m在第二当前链中权重比例为3/4,第二当前公证人节点n在第二当前链中权重比例为1/4,则计算得到第二当前公证人节点m的第二公证权重值为0.5*3/4=0.375,计算得到第二当前公证人节点n的第二公证权重值为0.5*1/4=0.125,在进行跨链操作时,若得到全部当前公证人节点的签名验证,则签名权重值=0.5+0.375+0.125=1,此时第一当前链和第二当前链进行跨链操作,所有当前公证人节点对当前跨链操作进行见证并记录跨链结果。若只得到部分当前公证人节点的签名验证,比如,只得到节点m和节点z的签名验证,则此时签名权重值=0.5+0.375=0.875,若预设公证值为0.6,则此时签名权重值满足预设公证值的要求,第一当前链和第二当前链进行跨链操作,所有当前公证人节点对当前跨链操作进行见证并记录跨链结果。预设公证值设定为范围值,可提高跨链成功的概率和操作灵活性。

与上述本申请实施例提供的一种基于区块链的公证人选取方法相对应,参考图4,示出了本发明实施例提供的一种基于区块链的公证人选取系统10的结构示意图,包括:跨链类型识别模块100,用于获取跨链交易双方的跨链信息,跨链信息包括当前待进行跨链操作的第一当前链的第一跨链类型和第二当前链的第二跨链类型,以及根据第一跨链类型和第二跨链类型得到的当前跨链操作类型,获取的第一当前链的第一当前节点数和第二当前链的第二当前节点数。历史公证人节点数获取模块200,用于根据当前跨链操作类型查询链上历史记录,获得与当前跨链操作类型一致的跨链成功的历史跨链操作,并获取历史跨链操作中与所述第一当前链对应的第一历史链的第一历史节点数及第一历史公证人节点数,以及与第二当前链对应的第二历史链的第二历史节点数及第二历史公证人节点数。当前公证人节点数获取模块300,用于根据第一历史节点数、第一历史公证人节点数和第一当前节点数得到第一当前链的第一当前公证人节点数,根据第二当前节点数、第二历史公证人节点数和第二历史节点数得到第二当前链的第二当前公证人节点数;其中,第一当前公证人节点数至少为1个,第二当前公证人节点数至少为1个。当前公正人节点选取模块400,用于从第一当前链中选取第一候选公证人节点,从第二当前链中选取第二候选公证人节点,并根据第一当前公证人节点数从第一候选公证人节点中选取第一当前公证人节点,根据第二当前公证人节点数从第二候选公证人节点中选取第二当前公证人节点。跨链操作见证记录模块500,当得到第一当前公证人节点和第二当前公证人节点签名验证后,第一当前链和所述第二当前链进行跨链操作,所有第一当前公证人节点和第二当前公证人节点对当前跨链操作进行见证,并记录跨链结果。

本申请提供的基于区块链的公证人选取系统,在获知当前跨链操作类型后,查询链上历史记录得到与当前跨链操作类型一致的历史跨链操作,根据历史跨链操作中的历史节点数及历史公证人节点数中得出当前链的当前公证人节点数,根据当前公证人节点数从当前链的候选公证人中选取当前公证人节点作为见证当前跨链操作的节点,在得到当前公证人节点签名验证后,进行当前跨链业务的交易,所有当前公证人节点进行见证并记录跨链结果,其利用区块链节点中不可篡改的存证特性,从待进行跨链操作的链系统内部确定具有公信力的公证人节点,见证和记录相关的跨链业务交易,既实现了跨链业务的成功交易,又解决了在跨链交易时必须有可信第三方参与的问题。

在其中一具体实施方式中,当前公正人节点选取模块400包括:见证公证人节点选取单元410,用于搜索第一当前链和所述第二当前链,将第一当前链中已成功见证过跨链操作的节点选取为第一见证公证人节点,将所第二当前链中已成功见证过跨链操作的节点选取为第二见证公证人节点。其中,第一候选公证人节点包括第一见证公证人节点,第二候选公证人节点包括第二见证公证人节点。

在其中一具体实施方式中,当前公正人节点选取模块400还包括:信用公证人节点选取单元430,用于遍历第一当前链和第二当前链,将第一当前链中信用度高的节点选取为第一信用公证人节点,将第二当前链中信用度高的节点选取为第二信用公证人节点,信用度的确定因素包括第一当前链和第二当前链中每个节点的历时时长、有无负面记录、交易频率。其中,第一候选公证人节点包括所述第一信用公证人节点,第二候选公证人节点包括第二信用公证人节点。

在其中一具体实施方式中,当前公正人节点选取模块400还包括:第一链内权重值赋予单元420,用于在选取所述第一见证公证人节点之后,将所述第一见证公证人节点按照其业务与所述当前跨链操作业务相关度在所述第一当前链中赋予第一链内权重值;还用于在选取所述第二见证公证人节点之后,将所述第二见证公证人节点按照其业务与所述当前跨链操作业务相关度在所述第二当前链中赋予第二链内权重值。其中,业务相关度越高链内权重值越大。

第二链内权重值赋予单元440,用于在选取所述第一信用公证人节点之后,对第一信用公证人节点在第一当前链中赋予第三链内权重值;其中,第三链内权重值小于所述第一链内权重值;还用于在选取所述第二信用公证人节点之后,对第二信用公证人节点在第二当前链中赋予第四链内权重值;其中,第四链内权重值小于第二链内权重值。

在其中一具体实施方式中,跨链操作见证记录模块500包括:链间权重值赋予单元510,用于对所述第一当前链赋予第一链间权重值,对第二当前链赋予第二链间权重值,第一链间权重值与第二链间权重值之和为预设链间值。公证权重值计算单元520,用于根据第一链间权重值、第一链内权重值计算所述第一当前公证人节点的第一公证权重值,或者根据第一链间权重值、第一链内权重值及第三链内权重值计算所述第一当前公证人节点的第一公证权重值;还用于根据第二链间权重值、第二链内权重值计算第二当前公证人节点的第二公证权重值,或者根据第二链间权重值、第二链内权重值及第四链内权重值计算第二当前公证人节点的第二公证权重值。签名验证单元530,用于将已签名验证的第一当前公证人节点作为第一签名公证人节点,将已签名验证的第二当前公证人节点作为第二签名公证人节点,根据第一公证权重值和第二公证权重值计算第一签名公证人节点和第二签名公证人节点的签名权重值,当签名权重值满足预设公证值时,第一当前链和第二当前链进行跨链操作,所有第一当前公证人节点和第二当前公证人节点对当前跨链操作进行见证,并记录跨链结果。其中,预设公证值为大于0且小于等于预设链间值的值。

本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例提供的基于区块链的公证人选取方法。

本申请实施例还提供了一种电子设备20,参见图5,包括:处理器201、存储器202,存储器202用于存储程序,处理器201用于运行程序,其中,程序运行时执行上述实施例提供的基于区块链的公证人选取方法。

本申请所述的可读存储介质和电子设备,在获知当前跨链操作类型后,查询链上历史记录得到与当前跨链操作类型一致的历史跨链操作,根据历史跨链操作中的历史节点数及历史公证人节点数中得出当前链的当前公证人节点数,根据当前公证人节点数从当前链的候选公证人中选取当前公证人节点作为见证当前跨链操作的节点,在得到当前公证人节点签名验证后,进行当前跨链业务的交易,所有当前公证人节点进行见证并记录跨链结果,其利用区块链节点中不可篡改的存证特性,从待进行跨链操作的链系统内部确定具有公信力的公证人节点,见证和记录相关的跨链业务交易,既实现了跨链业务的成功交易,又解决了在跨链交易时必须有可信第三方参与的问题。

本申请实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的技术方案进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号