一种基于多节点共识的可信查询方法及系统与流程

文档序号:25049003发布日期:2021-05-14 12:53阅读:102来源:国知局
一种基于多节点共识的可信查询方法及系统与流程

1.本发明涉及可信查询的技术领域,具体涉及一种基于多节点共识的可信查询方法及系统。


背景技术:

2.目前b2c电商行业大都以差异性的商业模式占据各自市场。但是,对于用户而言,最大的担心是信任问题。例如,购买了账号不能登陆、买到了假货等等。这是用户侧对平台的信任痛点。
3.对于b2b2c商业模式的公司而言,信任链路更长。首先是c对小b的信任,再是小b对平台的信任。c是小b需要服务的对象,更是小b重要的经济来源。而对于平台而言,在为小b提供更多便利服务的同时,不可避免的会触达到c端,比如快递服务。这就导致了小b的惶恐,怕平台把c抢走。因此,平台方如何自证清白,如何在提供服务的同时,给小b“看得到的信任”,是本专利的聚焦点。
4.已有的技术包括:区块链存证技术,智能合约,签名技术。对于不懂技术的小b而言,区块链技术门槛高、难理解。签名技术比较常用,更有多签、门限签名等多人签名技术,但对于数据本身的一致性保证,单纯的签名技术无法实现,同时对于签名成员的加入也不够灵活。
5.例如,存证技术是将双方确认过的数据(做hash),存在区块链上,不可纂改。当任意一方意图抵赖时,另一方可以将链上的hash作为证据,源数据和hash一一对应。利用存证技术可以解决一部分可信问题,但链上数据繁多,数据格式可读性差、链的查询效率低。普通用户很难直接进行链上操作。
6.再比如,智能合约是链上可执行代码,是各节点共识的计算逻辑,利用智能合约进行链上执行/签约,也可以解决一部分可信问题。但是,智能合约执行慢,每个节点都要参与共识;智能合约的计算过程公开透明,不能保护数据的隐私性。


技术实现要素:

7.针对上述问题,本发明的目的在于提供一种基于多节点共识的可信查询方法及系统,通过第三方的可信查询系统,建立与业务系统的信用关系,并通过多个共识节点进行签名验证,确保拉取的业务数据的准确性。
8.本发明的上述发明目的是通过以下技术方案得以实现的:一种基于多节点共识的可信查询方法,包括以下步骤:s1:数据使用方通过业务系统发起拉取业务数据的请求,其中,所述业务系统用于提供给所述数据使用方进行拉取业务数据;s2:所述业务系统对所述数据使用方的身份进行授权,授权成功后,跳转到第三方的可信查询系统,所述可信查询系统对所述数据使用方的身份进行鉴权,同时查看当前所述数据使用方的访问权限,并对所述数据使用方的身份与链上地址做映射,其中,所述可信
查询系统用于提供给所述数据使用方对拉取的所述业务数据进行验证,且所述可信查询系统的底层包含多个共识节点,共同对所述业务数据的正确性进行验证;s3:所述可信查询系统将与所述数据使用方的身份相对应的所述链上地址作为索引条件,向所述业务系统对应的包括本地数据库系统和中继节点在内的业务系统后台发起申请所述业务数据的请求;s4:所述中继节点向全网的所述共识节点发起数据同步的请求,所述共识节点对所述业务数据的一致性进行共识,并对所述业务数据进行签名,签名后将所述业务数据和签名同步给所述中继节点;s5:所述可信查询系统从所述中继节点拉取所述共识节点的签名,从所述本地数据库系统拉取所述业务数据,展示给所述数据使用方。
9.进一步地,在步骤s5中,还包括:所述可信查询系统从所述中继节点拉取所述业务数据的关系图谱的hash数据;对所述关系图谱的hash数据和所述业务数据进行正确性校验后进行关联,形成可视化图谱展示给所述数据使用方。
10.进一步地,所述业务数据,具体包括所述数据使用方与客户源的关系信息以及所述客户源购买商品后的分佣逻辑在内的数据。
11.进一步地,在所述共识节点对所述业务数据进行一致性共识并签名之前,还包括:调用合约存证,将所述业务数据执行hash运算后进行上链,以供链上的所述共识节点获取所述业务数据进行一致性共识并签名。
12.进一步地,所述共识节点对所述业务数据进行签名,采用门限签名方式,具体为:给定一个私钥的字符串,将所述私钥的字符串转化成一个大整数d;将所述大整数d转换成一条曲线上的n个点,其中任意t个点可以恢复出曲线,t<n;将n个点转换成n个字符串作为子私钥,将所述子私钥分配给所述共识节点进行共识签名;通过其中t个所述共识节点的共识签名,完成对所述业务数据的签名。
13.进一步地,在已有的所述共识节点的所述子私钥不变动的前提下,增加新的所述共识节点,并为新增的所述共识节点分配所述子私钥,具体为:在所述大整数d对应的曲线上,获取与已选取的n个点不重复的第n+1个点;将第n+1个点转换成字符串作为新增的所述共识节点的所述子私钥。
14.进一步地,所述数据使用方的所述访问权限,具体包括以下两种所述访问权限:所述数据使用方自己拥有的客源信息的所述访问权限;对于其他的不属于所述数据使用方拥有的所述客源信息,在经由所述客源信息的拥有者授权后,所述数据使用方具有对应的被授权的所述客源信息的所述访问权限。
15.一种执行上述的基于多节点共识的可信查询方法的系统,包括:数据使用方请求发起模块,用于提供给数据使用方通过业务系统发起拉取业务数据的请求,其中,所述业务系统用于提供给所述数据使用方进行拉取业务数据;可信查询系统跳转模块,用于提供给所述业务系统对所述数据使用方的身份进行授权,授权成功后,跳转到第三方的可信查询系统,所述可信查询系统对所述数据使用方的身份进行鉴权,同时查看当前所述数据使用方的访问权限,并对所述数据使用方的身份与
链上地址做映射,其中,所述可信查询系统用于提供给所述数据使用方对拉取的所述业务数据进行验证,且所述可信查询系统的底层包含多个共识节点,共同对所述业务数据的正确性进行验证;可信查询系统请求发起模块,用于提供给所述可信查询系统将与所述数据使用方的身份相对应的所述链上地址作为索引条件,向所述业务系统对应的包括本地数据库系统和中继节点在内的业务系统后台发起申请所述业务系统的请求;共识签名模块,用于提供给所述中继节点向全网的所述共识节点发起数据同步的请求,所述共识节点对所述业务数据的一致性进行共识,并对所述业务数据进行签名,签名后将所述业务数据和签名同步给所述中继节点;数据展示模块,用于提供给所述可信查询系统从所述中继节点拉取所述共识节点的签名,从所述本地数据库系统拉取所述业务,展示给所述数据使用方。
16.一种电子设备,其特征在于,包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集由所述处理器加载并执行以实现上述的方法。
17.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机代码,当所述计算机代码被执行时,如上述的方法被执行。
18.与现有技术相比,本发明包括以下至少一种有益效果是:(1)通过提供一种基于多节点共识的可信查询方法,包括以下步骤:s1:数据使用方通过业务系统发起拉取业务数据的请求;s2:所述业务系统对所述数据使用方的身份进行授权,授权成功后,跳转到第三方的可信查询系统,所述可信查询系统对所述数据使用方的身份进行鉴权,同时查看当前所述数据使用方的访问权限,并对所述数据使用方的身份与链上地址做映射;s3:所述可信查询系统将与所述数据使用方的身份相对应的所述链上地址作为索引条件,向所述业务系统对应的包括本地数据库系统和中继节点在内的业务系统后台发起申请所述业务数据的请求;s4:所述中继节点向全网的所述共识节点发起数据同步的请求,所述共识节点对所述业务数据的一致性进行共识,并对所述业务数据进行签名,签名后将所述业务数据和签名同步给所述中继节点;s5:所述可信查询系统从所述中继节点拉取所述共识节点的签名,从所述本地数据库系统拉取所述业务数据,展示给所述数据使用方。上述技术方案,建立可信查询系统作为数据使用方查询的桥梁,并且可信查询系统的底层通过多个共识节点进行签名验证,确保了查询出的数据的准确性。
19.(2)在门限签名环节中,当新增共识节点时,无需对已加入的共识节点的子私钥进行重新计算分配,只需计算出一个新的子私钥分配给新增的共识节点即可。
20.附图说明
21.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。
22.图1为本发明一种基于多节点共识的可信查询方法的整体流程图;
图2为本发明一种基于多节点共识的可信查询方法的框架图;图3为本发明一种基于多节点共识的可信查询系统的整体结构图。
23.具体实施方式
24.为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
25.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
26.本发明具体包括以下发明内容:(1)支持在t/n(t<n,t为参与共识时至少包括的共识节点的个数,n为能够参与共识的共识节点的总个数)门限签名中,n的动态增长;如,能够参与到共识中的共识节点总数n由5个变成6个,t恒等于4。当第6个节点加入时,系统无需重制前5个共识节点的密钥分片内容。
27.(2)建立中继节点模型,赋予区块链和业务系统间的可信信息交互。真实数据存在中继节点或业务系统后台数据库中。当数据使用方发起查询时,中继节点根据请求人以及其他人对请求人的访问授权,将真实数据查询出来,并计算得到一个证明(本地proof)。同时将请求发送到链上的智能合约上,由各节点执行hash查询并生成共识结果。最终,请求人(数据使用方)通过业务系统内的计算模块,验证链上共识结果&链下的proof,从而确定“所见即可信”,建立起与平台的信任桥梁。该过程不会泄漏任何数据使用方或平台的真实数据,同时保证了数据的真实性。
28.(3)链在系统中的角色是可信中心,为平台数据的正确性兜底。链节点(全节点)由系统中不同角色担任,同时可以邀请监管机构加入。
29.(4)由查询系统(链下)进行访问控制和角色身份映射,提高系统效率,确保用户体验。
30.以下通过具体实施例,对本发明可信查询的方法的整体流程进行说明。
31.第一实施例如图1和图2所示,本实施例提供了一种基于多节点共识的可信查询方法。
32.如图2所示,本发明的方法中,包括了以下模块:(1)业务系统a/b/c——指以包括app、小程序、h5等在内的任意一种形式存在的业务系统;(2)可信查询系统——面向用户(数据使用方)提供的服务,通过业务系统授权后,跳转进入(跨系统)可信查询系统是独立于业务系统的存在,用户不信任业务系统,但会信任可信查询系统,因为业务系统底层数据是可改的,可信查询系统底层由多个节点主体做背书;
(3)后台——包含业务系统后台(数据库),和中继节点。后台业务系统通过存证合约将b

e,b

c,e

c关系上链;中继节点是部署在本地的饷链节点,负责链上链下事务协同。
33.(4)区块链(馈饷主链)——业务系统后台发起,由包括中继节点、云节点、大店家节点、厂商节点、监管节点等节点组成的商业联盟链。
34.本发明的方法,执行时,具体包括以下步骤:s1:数据使用方通过业务系统发起拉取业务数据的请求,其中,所述业务系统用于提供给所述数据使用方进行拉取业务数据。
35.具体地,数据使用方(如图2中的小b和小e)作为业务系统的用户,通过不同的“场”进行查询。如在app这个“场”中,点出“我的”—>可信系统查询,跳出数据使用方的身份授权框。
36.s2:所述业务系统对所述数据使用方的身份进行授权,授权成功后,跳转到第三方的可信查询系统,所述可信查询系统对所述数据使用方的身份进行鉴权,同时查看当前所述数据使用方的访问权限,并对所述数据使用方的身份与链上地址做映射,其中,所述可信查询系统用于提供给所述数据使用方对拉取的所述业务数据进行验证,且所述可信查询系统的底层包含多个共识节点,共同对所述业务数据的正确性进行验证。
37.具体地,在对数据使用方的身份进行授权后,跳转到可信查询系统,可信查询系统对数据使用方的身份进行鉴权(可以是通过授权token),通过查看其访问权限(一级访问权限由链上存证数据决定,二级访问权限由小e通过小e的业务决定),小b的直接权限是访问一级客户和一级店长,如下线店长(如小e)对小b提前授权,则小b也可以看到店长小e的下属客户。另外,可信查询系统也为小b做身份和链上地址的绑定/映射工作。
38.s3:所述可信查询系统将与所述数据使用方的身份相对应的所述链上地址作为索引条件,向所述业务系统对应的包括本地数据库系统和中继节点在内的业务系统后台发起申请所述业务数据的请求。
39.s4:所述中继节点向全网的所述共识节点发起数据同步的请求,所述共识节点对所述业务数据的一致性进行共识,并对所述业务数据进行签名,签名后将所述业务数据和签名同步给所述中继节点。
40.s5:所述可信查询系统从所述中继节点拉取所述共识节点的签名,从所述本地数据库系统拉取所述业务数据,展示给所述数据使用方。
41.进一步地,在步骤s5中,还包括:所述可信查询系统从所述中继节点拉取所述业务数据的关系图谱的hash数据;对所述关系图谱的hash数据和所述业务数据进行正确性校验后进行关联,形成可视化图谱展示给所述数据使用方。
42.进一步地,所述业务数据,具体包括所述数据使用方与客户源的关系信息以及所述客户源购买商品后的分佣逻辑在内的重要数据,会上链到区块链上,以及还包括一些不太重要的数据存储于本地数据库中。
43.进一步地,在所述共识节点对所述业务数据进行一致性共识并签名之前,还包括:调用合约存证,将所述业务数据执行hash运算后进行上链,以供链上的所述共识节点获取所述业务数据进行一致性共识并签名。需要说明的是链上只存储数据使用方与客户源关系的hash,不用泄露隐私和敏感数据。
prime),无需对已有的子密钥进行修改,即可以为新增的共识节点增加一个子密钥。
51.其中,secret_int就是整数d;x_array是当前t/n门限中已生成的n个点的x轴坐标的数组,prime是在第一次生成t/n时随机取得的大质数。
52.调用addsharer,返回一个新的点,可得到如下结果:secretkey:c4bbcblfbec99d65bf59d85c8cb62ee2db963f0fel06f483d9afa73bd4e39a8aadd_share:6

434b7043dfd4bf06e6c22f9cb4757d219e8cc22b6323b4a2flae497dbca4558e第三实施例如图3所示,本实施例提供一种执行第一实施例中的基于多节点共识的可信查询方法的系统,包括:数据使用方请求发起模块1,用于提供给数据使用方通过业务系统发起拉取业务数据的请求,其中,所述业务系统用于提供给所述数据使用方进行拉取业务数据;可信查询系统跳转模块2,用于提供给所述业务系统对所述数据使用方的身份进行授权,授权成功后,跳转到第三方的可信查询系统,所述可信查询系统对所述数据使用方的身份进行鉴权,同时查看当前所述数据使用方的访问权限,并对所述数据使用方的身份与链上地址做映射,其中,所述可信查询系统用于提供给所述数据使用方对拉取的所述业务数据进行验证,且所述可信查询系统的底层包含多个共识节点,共同对所述业务数据的正确性进行验证;可信查询系统请求发起模块3,用于提供给所述可信查询系统将与所述数据使用方的身份相对应的所述链上地址作为索引条件,向所述业务系统对应的包括本地数据库系统和中继节点在内的业务系统后台发起申请所述业务系统的请求;共识签名模块4,用于提供给所述中继节点向全网的所述共识节点发起数据同步的请求,所述共识节点对所述业务数据的一致性进行共识,并对所述业务数据进行签名,签名后将所述业务数据和签名同步给所述中继节点;数据展示模块5,用于提供给所述可信查询系统从所述中继节点拉取所述共识节点的签名,从所述本地数据库系统拉取所述业务,展示给所述数据使用方。
53.一种计算机设备,包括存储器和一个或多个处理器,所述存储器中存储有计算机代码,所述计算机代码被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如第一实施例中任一项所述的方法。
54.一种计算机可读存储介质,计算机可读存储介质存储有计算机代码,当计算机代码被执行时,如上述方法被执行。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器 (rom ,read only memory) 、随机存取存储器 (ram ,random access memory)、磁盘或光盘等。
55.以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
56.以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
57.应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
58.本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,ram存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个功能或步骤的电路。如本说明书实施例所示实施例揭示的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
59.实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子系统执行时,使得所述电子系统执行实施例一所述的方法。在此不再赘述。
60.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd

rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
61.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何
方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd

rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
62.另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1