发明内容
本发明的目的是提供一种基于区块链的信息监控方法、系统、设备及存储介质,以相对实现对于具有隐私保护的区块链的交易信息的监控,以此确保区块链系统整体的稳定性以及可用性,并且保证用户交易信息的安全性。
为解决上述技术问题,本发明提供一种基于区块链的信息监控方法,应用于监管节点,包括:
向区块链系统中的交易节点公开公共参数,公共参数中包含陷门公共参数以及系统公共参数,陷门公共参数基于预先保存的陷门信息产生;
获取交易节点生成的追踪密钥,追踪密钥基于公共参数集合以及与监管节点唯一对应的交易信息片段产生,公共参数集合中包含本地的公共参数以及至少一个其它监管节点的公共参数;
基于追踪密钥、公共参数集合以及陷门信息集合计算本地对应的交易信息片段,陷门信息集合中包含本地的陷门信息以及由其它监管节点在验证本地身份后提供的陷门信息;
根据本地对应的交易信息片段以及其它监管节点中的交易信息片段生成交易信息。
优选的,在获取交易节点生成的追踪密钥之前,方法还包括:
获取区块链系统中验证节点通过零知识证明方式对追踪密钥的合法性证明的验证结果,合法性证明为交易节点基于Bulletproofs的证明框架对追踪密钥生成的;
当验证结果表征合法性证明通过验证时,执行获取交易节点生成的追踪密钥的步骤。
优选的,区块链系统包括隐私保护区块链系统。
此外,本发明还提供一种基于区块链的信息监控方法,应用于交易节点,包括:
在区块链系统中获取公共参数集合,公共参数集合中包含一个以上监管节点的公共参数,公共参数中包含陷门公共参数以及系统公共参数,陷门公共参数基于监管节点预先保存的陷门信息产生;
获取交易信息,并将交易信息划分为交易信息片段;
通过公共参数集合与交易信息片段进行运算生成追踪密钥;
将追踪密钥发布至区块链系统,以供监管节点根据追踪密钥、公共参数集合以及陷门信息集合计算交易信息,陷门信息集合中包含各监管节点的陷门信息。
优选的,方法还包括:
基于Bulletproofs的证明框架生成对追踪密钥的合法性证明,并将合法性证明以及追踪密钥发布至区块链系统,以供区块链系统的验证节点通过零知识证明方式对合法性证明进行验证;
将追踪密钥发布至区块链系统,包括:
发布追踪密钥至区块链系统的各个验证节点。
优选的,将交易信息划分为交易信息片段,包括:
将交易信息进行二进制展开生成交易信息的各个二进制位;
对二进制位进行划分,生成交易信息片段;
通过公共参数集合与交易信息片段进行运算生成追踪密钥,包括:
通过公共参数集合与交易信息片段中各个二进制位的数值进行运算生成追踪密钥。
优选的,陷门信息的数量小于或等于交易信息中二进制位的数量;
通过公共参数集合与交易信息片段中各个二进制位的数值进行运算生成追踪密钥,包括:
将交易信息片段中的二进制位数值划分至数值组,因此数值组实际上是比交易片段更细粒度的划分,交易信息片段中包含有数据组,数值组的数量与陷门信息集合中的陷门信息的数量一致,数值组与陷门信息之间唯一对应;
根据数值组中二进制位的数值与公共参数集合中对应的公共参数计算追踪密钥,与数值组对应的陷门公共参数是基于与数值组对应的陷门信息产生的。
优选的,基于Bulletproofs的证明框架生成对追踪密钥的合法性证明,包括:
基于Bulletproofs的证明框架生成与各追踪密钥对应的合法性证明以及对全部追踪密钥整体的合法性证明。
此外,本发明还提供一种区块链系统,区块链系统包括至少二个交易节点和至少二个监管节点,其中:
交易节点,用于在区块链系统中获取公共参数集合,公共参数集合中包含一个以上监管节点的公共参数,公共参数中包含陷门公共参数以及系统公共参数,陷门公共参数基于监管节点预先保存的陷门信息产生;获取交易信息,并将交易信息划分为交易信息片段;通过公共参数集合与交易信息片段进行运算生成追踪密钥;将追踪密钥发布至区块链系统,以供监管节点根据追踪密钥、公共参数集合以及陷门信息集合计算交易信息,陷门信息集合中包含各监管节点的陷门信息;
监管节点,用于向区块链系统中的交易节点公开公共参数;获取交易节点生成的追踪密钥,追踪密钥基于公共参数集合以及与监管节点唯一对应的交易信息片段产生,公共参数集合中包含本地的公共参数以及至少一个其它监管节点的公共参数;基于追踪密钥、公共参数集合以及陷门信息集合计算本地对应的交易信息片段,陷门信息集合中包含本地的陷门信息以及由其它监管节点在验证本地身份后提供的陷门信息;根据本地对应的交易信息片段以及其它监管节点中的交易信息片段生成交易信息。
此外,本发明还提供一种信息监控设备,装置包括存储器、处理器和总线,存储器上存储有可由总线传输至处理器并在处理器上运行的信息监控程序,信息监控程序被处理器执行时实现如上述的基于区块链的信息监控方法。
此外,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有信息监控程序,信息监控程序可被一个或者多个处理器执行,以实现如上述的基于区块链的信息监控方法。
本发明所提供的基于区块链的信息监控方法,交易节点在区块链系统中获取公共参数集合,公共参数集合中包含一个以上监管节点的公共参数,公共参数中包含陷门公共参数以及系统公共参数,并且陷门公共参数基于监管节点预先保存的陷门信息产生,进而交易节点获取交易信息,将交易信息划分为交易信息片段,并通过公共参数集合与交易信息片段进行运算生成追踪密钥,在生成追踪密钥之后,将追踪密钥发布至区块链系统,进而区块链系统中的监管节点能够获取交易节点生成追踪密钥,进而基于追踪密钥、公共参数集合以及包含本地的陷门信息以及其它监管节点中陷门信息的陷门信息集合计算本地对应的交易信息片段,并根据本地的交易信息片段以及其它监管节点中的交易信息片段生成完整的交易信息。由于监管节点在根据追踪密钥还原交易信息片段时,需要同时基于自身的陷门信息以及由其它监管节点在验证本地身份后提供的陷门信息,因此监管节点之间存在制约关系,监管节点如需将追踪密钥恢复为交易信息片段,需要获取到每一个其它监管节点提供的陷门信息作为基础,并结合自身的陷门信息共同对追踪密钥进行运算生成相应的交易信息片段,每一个监管节点正常恢复交易信息片段均需要其他各个监管节点的支持,任意监管节点均无法单方面或在缺少任何一个其它监管节点的陷门信息的前提下获悉交易信息片段的内容,在此基础上,各个监管节点进一步通过自身恢复得到的交易信息片段共同还原完整的交易信息,实现了多个监管节点共同对于区块链系统中交易信息的监控的效果,进而确保了区块链系统整体的稳定性以及可用性,同时也避免了恶意监管节点对用户节点的交易信息的窃取,保证了用户交易信息的安全性。此外,本发明还提供一种区块链系统、设备及存储介质,有益效果同上所述。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
在基于区块链的交易过程中,对于交易金额具有合法性的证明往往需要采用区间证明的方式实现,也就是根据交易金额生成相应的承诺信息和区间证明,承诺信息仅能反映交易金额的指定区间,但是并不能透露具体的交易金额。当前在很多具有隐私保护的区块链项目中广泛应用的区间证明方案为证明尺寸较短、验证速度更高Bulletproofs区间证明方案。
在实际场景中,具有隐私保护的区块链可能会被恶意用户频繁用于小额交易、资产转移等不合法交易,或因系统漏洞而出现用户账户金额突变的情况,但是由于无法获悉交易金额,导致无法判定异常状态的存在,难以确保区块链系统的整体稳定性,此外,也难以实现对于交易内容的监管,无法确保区块链系统的整体可用性,如果通过设置监管节点的方式对区块链中的用户交易金额进行监管,也可能存在恶意监管节点对用户的交易金额进行泄露的情况,因此难以确保用户交易信息的安全性。
本发明的核心是提供一种基于区块链的信息监控方法、系统、设备及存储介质,以相对实现对于具有隐私保护的区块链的交易信息的监控,以此确保区块链系统整体的稳定性以及可用性,并且保证用户交易信息的安全性。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
图1为本发明实施例提供的一种基于区块链的信息监控方法的流程图。请参考图1,基于区块链的信息监控方法的具体步骤包括:
步骤S10、向区块链系统中的交易节点公开公共参数,公共参数中包含陷门公共参数以及系统公共参数,陷门公共参数基于预先保存的陷门信息产生。
需要说明的是,执行本实施例中各步骤的执行主体应为区块链系统中的监管节点,监管节点可以认为是区块链系统中一系列具有信息监控功能的区块链节点,本实施例中的监管节点的数量大于1,信息监控功能指的是监管节点在当区块链系统中的交易节点进行交易通信时,每一个监管节点均能够获取到基于交易信息的不同交易信息片段产生的追踪密钥,进而每一个监管节点均需要结合自身的陷门信息以及其他监管节点的陷门信息将追踪密钥恢复为交易信息片段,进而全部的监管节点能够根据各自产生的交易信息片段共同还原完整的交易信息。此外,区块链系统中的同一区块链节点均可以执行监管节点或交易节点的工作逻辑,进而成为监管节点或交易节点。
本步骤中,监管节点向区块链系统中的交易节点公开公共参数,公共参数中包含陷门公共参数以及系统公共参数。其中,系统公共参数是在系统初始化时随机产生或根据预设生成逻辑生成的;陷门公共参数是基于监管节点中预先保存的陷门信息计算产生的,需要强调的是,陷门信息仅记录于监管节点,并且仅能够由监管节点获悉具体内容。本步骤的重点在于陷门公共参数是基于陷门信息计算产生的,陷门信息中包含的是陷门函数以及陷门密钥等,用于对数据进行加密以及对于加密后数据进行解密的一系列参数,通过陷门信息计算产生陷门公共参数在本质上是基于陷门信息中的陷门函数以及陷门密钥对椭圆曲线随机数进行加密生成的结果。
在生成陷门公共参数后,将陷门公共参数发送至区块链系统中的交易节点,目的是交易节点能够通过陷门公共参数对自身进行交易中的交易信息进行进一步的运算处理。
步骤S11、获取交易节点生成的追踪密钥,追踪密钥基于公共参数集合以及与监管节点唯一对应的交易信息片段产生,公共参数集合中包含本地的公共参数以及至少一个其它监管节点的公共参数。
在将陷门公共参数发送至区块链系统中的交易节点后,进一步获取交易节点公开到区块链系统的追踪密钥,本步骤的重点在于追踪密钥是基于交易节点的各个交易信息片段以及与公共参数集合对应的陷门公共参数集合产生的,公共参数集合中包含本地监管节点的公共参数以及至少一个其它监管节点的公共参数,也就相当于每一个追踪密钥的产生都需要一个以上的监管节点的陷门公共参数作为支持,也就是说,追踪密钥同时包含有交易信息片段以及陷门公共参数集合的因素,因此在后续的步骤中,与追踪密钥对应的监管节点能够根据追踪密钥、陷门公共参数集合以及与陷门公共参数对应的陷门信息集合计算出该监管节点监管范围下的交易信息片段。需要强调的是,每一个监管节点仅负责监管交易信息中表征一定数据范围的交易信息片段,并且所有监管节点所监管的交易信息片段对应的数据范围涵盖交易信息完整的数据范围,因此每一个监管节点在本步骤中获取的追踪密钥均应是由与该监管节点对应的交易信息片段产生的。
步骤S12、基于追踪密钥、公共参数集合以及陷门信息集合计算本地对应的交易信息片段,陷门信息集合中包含本地的陷门信息以及由其它监管节点在验证本地身份后提供的陷门信息。
监管节点获取到交易节点公开到区块链系统中的追踪密钥之后,进一步根据追踪密钥以及陷门信息集合和公共参数集合计算追踪密钥对应的交易信息片段。其中,监管节点获取陷门信息集合的方式可以是通过监管节点向其他监管节点进行身份验证后,向其他监管节点收集相应的陷门信息而产生的,区块链系统中的各个其他监管节点在承认本地监管节点的合法身份后才会将自身的陷门信息提供给当前的监管节点。其他监管节点在将自身的陷门信息提供至本地监管节点时,可以先基于本地监管节点对应的追踪密钥对该陷门信息进行进一步的运算处理,产生相应的中间信息,并将该中间信息通过发布至区块链系统的方式间接提供给本地监管节点,进而在本地监管节点获取到中间信息后,通过自身对应的追踪密钥对中间信息进行运算获取相应的陷门信息。
步骤S13、根据本地对应的交易信息片段以及其它监管节点中的交易信息片段生成交易信息。
本实施例中的每一个监管节点中均能够根据其对应的追踪密钥还原该监管节点对应的交易信息片段,并且每一个监管节点对应的交易信息片段均不相同,并且均为完整交易片段的一部分,因此本步骤根据本地对应的交易信息片段以及其它监管节点的交易信息片段共同生成完整的交易信息。
本发明所提供的基于区块链的信息监控方法,交易节点在区块链系统中获取公共参数集合,公共参数集合中包含一个以上监管节点的公共参数,公共参数中包含陷门公共参数以及系统公共参数,并且陷门公共参数基于监管节点预先保存的陷门信息产生,进而交易节点获取交易信息,将交易信息划分为交易信息片段,并通过公共参数集合与交易信息片段进行运算生成追踪密钥,在生成追踪密钥之后,将追踪密钥发布至区块链系统,进而区块链系统中的监管节点能够获取交易节点生成追踪密钥,进而基于追踪密钥、公共参数集合以及包含本地的陷门信息以及其它监管节点中陷门信息的陷门信息集合计算本地对应的交易信息片段,并根据本地的交易信息片段以及其它监管节点中的交易信息片段生成完整的交易信息。由于监管节点在根据追踪密钥还原交易信息片段时,需要同时基于自身的陷门信息以及由其它监管节点在验证本地身份后提供的陷门信息,因此监管节点之间存在制约关系,监管节点如需将追踪密钥恢复为交易信息片段,需要获取到每一个其它监管节点提供的陷门信息作为基础,并结合自身的陷门信息共同对追踪密钥进行运算生成相应的交易信息片段,每一个监管节点正常恢复交易信息片段均需要其他各个监管节点的支持,任意监管节点均无法单方面或在缺少任何一个其它监管节点的陷门信息的前提下获悉交易信息片段的内容,在此基础上,各个监管节点进一步通过自身恢复得到的交易信息片段共同还原完整的交易信息,实现了多个监管节点共同对于区块链系统中交易信息的监控的效果,进而确保了区块链系统整体的稳定性以及可用性,同时也避免了恶意监管节点对用户节点的交易信息的窃取,保证了用户交易信息的安全性。
在上述实施例的基础上,本发明还提供以下一系列优选的实施例。
图2为本发明实施例提供的另一种基于区块链的信息监控方法的流程图。请参考图2,基于区块链的信息监控方法的具体步骤包括:
步骤S20、向区块链系统中的交易节点公开公共参数,公共参数中包含陷门公共参数以及系统公共参数,陷门公共参数基于预先保存的陷门信息产生。
步骤S21、获取区块链系统中验证节点通过零知识证明方式对追踪密钥的合法性证明的验证结果,合法性证明为交易节点基于Bulletproofs的证明框架对追踪密钥生成的。
需要说明的是,本步骤中的合法性证明是交易节点基于Bulletproofs的证明框架对追踪密钥进行运算生成的,目的是根据合法性证明向验证节点证明交易信息片段处于正常的值域区间,但是验证节点无法根据合法性证明获悉交易节点进行交易的具体交易信息片段的内容。此外,Bulletproofs的证明框架即为Bulletproofs区间证明方案,基于Bulletproofs的区间证明方案和基于Borromean可区间证明相比,在原始方案基础上增加的运算量相似,但由于Bulletproofs自身在空间和效率方面都优于Borromean方案,因此基于Bulletproofs的区间证明方案更适合在可监管要求下的隐私保护区块链系统中得到应用。
本实施例的重点是在区块链系统中存在有验证节点,验证节点用于通过零知识证明方式对交易节点生成的合法性证明进行验证,以此通过对于合法性证明的验证结果判断交易节点所生成的追踪密钥是否可用。其中,零知识证明指的是交易节点,即交易节点,向验证者,即验证节点,证明并使其相信自己拥有某一消息,即根据交易信息片段生成的追踪密钥,但证明过程不能向验证者泄漏任何关于被证明消息的信息。验证节点可以为区块链系统中的具有对合法性证明进行验证功能的区块链节点。
步骤S22、当验证结果表征合法性证明通过验证时,获取交易节点生成的追踪密钥,追踪密钥基于公共参数集合以及与监管节点唯一对应的交易信息片段产生,公共参数集合中包含本地的公共参数以及至少一个其它监管节点的公共参数。
本步骤是根据验证结果判断基于追踪密钥生成的合法性证明是否具有合法性,如果具有合法性,则说明追踪密钥具有可用性,进而获取交易节点根据公共参数集合以及交易信息片段生成的追踪密钥,并进一步根据追踪密钥解析相应的交易信息片段。
步骤S23、基于追踪密钥、公共参数集合以及陷门信息集合计算本地对应的交易信息片段,陷门信息集合中包含本地的陷门信息以及由其它监管节点在验证本地身份后提供的陷门信息。
步骤S24、根据本地对应的交易信息片段以及其它监管节点中的交易信息片段生成交易信息。
本实施例通过区块链系统中的验证节点对追踪密钥的可用性进行验证,并在验证通过后进一步获取交易节点根据公共参数集合以及交易信息片段生成的追踪密钥,以此相对提高了根据追踪密钥以及陷门信息计算交易信息片段的准确性。
在上述实施例的基础上,作为一种优选的实施方式,区块链系统包括隐私保护区块链系统。
由于隐私保护区块链系统具有相对较高的数据隐私性,因此能够相对确保系统中的数据在存储以及传输时具有较高的安全性。隐私保护区块链系统进一步包括门罗币系统以及类门罗币系统。
图3为本发明实施例提供的另一种基于区块链的信息监控方法的流程图。请参考图3,基于区块链的信息监控方法的具体步骤包括:
步骤S30、在区块链系统中获取公共参数集合,公共参数集合中包含一个以上监管节点的公共参数,公共参数中包含陷门公共参数以及系统公共参数,陷门公共参数基于监管节点预先保存的陷门信息产生。
需要说明的是,执行本实施例中各步骤的执行主体应为区块链系统中的交易节点,交易节点在区块链系统中获取区块链系统中各个监管节点发布的公共参数,进而得到公共参数集合,公共参数集合中的每一个公共参数中包含基于对应监管节点预先保存的陷门信息产生的陷门公共参数以及系统公共参数。
步骤S31、获取交易信息,并将交易信息划分为交易信息片段。
本步骤中,交易节点获取自身执行交易时所产生的交易信息,并将交易信息划分为一定数量的交易信息片段,各个交易信息片段的数据长度可以根据实际需求而定,各个交易信息片段应能够组合为完整的交易信息,并且交易信息片段的数量应与监管节点的数量相一致。
步骤S32、通过公共参数集合与交易信息片段进行运算生成追踪密钥。
由于交易信息片段与监管节点之间存在对应关系,因此本步骤中,交易节点获取到交易信息片段后,根据公共参数集合与交易节点片段进行运算生成相应的追踪密钥,进而每个监管节点会根据自身的监管范围获取相应交易信息片段对应的追踪密钥进行交易信息片段的恢复。可见,对于所有的交易节点片段而言,均有对应生成的追踪密钥。
步骤S33、将追踪密钥发布至区块链系统,以供监管节点根据追踪密钥、公共参数集合以及陷门信息集合计算交易信息,陷门信息集合中包含各监管节点的陷门信息。
在生成各个交易信息片段对应的追踪密钥之后,交易节点进一步将追踪密钥发布至区块链系统中,同处于该区块链系统中的监管节点可以获取到追踪密钥,根据公共参数集合以及陷门信息对追踪密钥进行计算,生成相应的交易信息片段,并根据其它监管节点的交易信息片段共同计算生成交易信息。
本发明所提供的基于区块链的信息监控方法,交易节点在区块链系统中获取公共参数集合,公共参数集合中包含一个以上监管节点的公共参数,公共参数中包含陷门公共参数以及系统公共参数,并且陷门公共参数基于监管节点预先保存的陷门信息产生,进而交易节点获取交易信息,将交易信息划分为交易信息片段,并通过公共参数集合与交易信息片段进行运算生成追踪密钥,在生成追踪密钥之后,将追踪密钥发布至区块链系统,进而区块链系统中的监管节点能够获取交易节点生成追踪密钥,进而基于追踪密钥、公共参数集合以及包含本地的陷门信息以及其它监管节点中陷门信息的陷门信息集合计算本地对应的交易信息片段,并根据本地的交易信息片段以及其它监管节点中的交易信息片段生成完整的交易信息。由于监管节点在根据追踪密钥还原交易信息片段时,需要同时基于自身的陷门信息以及由其它监管节点在验证本地身份后提供的陷门信息,因此监管节点之间存在制约关系,监管节点如需将追踪密钥恢复为交易信息片段,需要获取到每一个其它监管节点提供的陷门信息作为基础,并结合自身的陷门信息共同对追踪密钥进行运算生成相应的交易信息片段,每一个监管节点正常恢复交易信息片段均需要其他各个监管节点的支持,任意监管节点均无法单方面或在缺少任何一个其它监管节点的陷门信息的前提下获悉交易信息片段的内容,在此基础上,各个监管节点进一步通过自身恢复得到的交易信息片段共同还原完整的交易信息,实现了多个监管节点共同对于区块链系统中交易信息的监控的效果,进而确保了区块链系统整体的稳定性以及可用性,同时也避免了恶意监管节点对用户节点的交易信息的窃取,保证了用户交易信息的安全性。
在上述实施例的基础上,作为一种优选的实施方式,方法还包括:
基于Bulletproofs的证明框架生成对追踪密钥的合法性证明,并将合法性证明以及追踪密钥发布至区块链系统,以供区块链系统的验证节点通过零知识证明方式对合法性证明进行验证;
将追踪密钥发布至区块链系统,包括:
发布追踪密钥至区块链系统的各个验证节点。
需要说明的是,本实施例中的合法性证明是交易节点基于Bulletproofs的证明框架对追踪密钥进行运算生成的,目的是根据合法性证明向验证节点证明交易信息片段处于正常的值域区间,但是验证节点无法根据合法性证明获悉交易节点进行交易的具体金额值。此外,Bulletproofs的证明框架即为Bulletproofs区间证明方案,基于Bulletproofs的区间证明方案和基于Borromean可区间证明相比,在原始方案基础上增加的运算量相似,但由于Bulletproofs自身在空间和效率方面都优于Borromean方案,因此基于Bulletproofs的区间证明方案更适合在可监管要求下的隐私保护区块链系统中得到应用。
本实施例中,验证节点用于通过零知识证明方式对交易节点生成的合法性证明进行验证,以此通过对于合法性证明的验证结果判断交易节点所生成的追踪密钥是否可用。其中,零知识证明指的是交易节点,即交易节点,向验证者,即验证节点,证明并使其相信自己拥有某一消息,即根据交易信息片段生成的追踪密钥,但证明过程不能向验证者泄漏任何关于被证明消息的信息。验证节点可以为区块链系统中的具有对合法性证明进行验证功能的区块链节点。
监管节点根据验证节点的验证结果判断基于追踪密钥生成的合法性证明是否具有合法性,如果具有合法性,监管节点则进一步获取追踪密钥进行监控。
本实施例通过在区块链系统通过验证节点对追踪密钥的可用性进行验证,并在验证通过后进一步获取交易节点根据陷门公共参数以及交易信息片段生成的追踪密钥,以此相对提高了根据追踪密钥以及陷门信息计算生成交易信息片段的准确性。
在上述实施方式的基础上,作为一种优选的实施方式,将交易信息划分为交易信息片段,包括:
将交易信息进行二进制展开生成交易信息的各个二进制位;
对二进制位进行划分,生成交易信息片段;
通过公共参数集合与交易信息片段进行运算生成追踪密钥,包括:
通过公共参数集合与交易信息片段中各个二进制位的数值进行运算生成追踪密钥。
需要说明的是,本实施方式的重点是在根据交易信息以及公共参数集合计算追踪密钥之前,对交易信息进行二进制展开,也就是将交易信息以二进制的方式展开,生成交易信息的各个二进制位的数值,进而根据交易信息片段的各个二进制位的数值分别与公共参数集合计算相应的追踪密钥,以此生成各个二进制位的数值相应的追踪密钥。本实施方式将交易信息进行二进制展开并对每一个二进制位的数值分别生成相应的追踪密钥,能够进一步提高对于交易信息的保密性。
在上述实施方式的基础上,更进一步的,陷门信息的数量小于或等于交易信息中二进制位的数量;
通过公共参数集合与交易信息片段中各个二进制位的数值进行运算生成追踪密钥,包括:
将交易信息片段中的二进制位数值划分至数值组,数值组的数量与陷门信息集合中的陷门信息的数量一致,数值组与陷门信息之间唯一对应;
根据数值组中二进制位的数值与公共参数集合中对应的公共参数计算追踪密钥,与数值组对应的陷门公共参数是基于与数值组对应的陷门信息产生的。
需要说明的是,在此优选的实施方式中,监管节点整体的陷门信息数量小于或等于交易信息中二进制位的数量,由于需要生成每一个二进制位对应的追踪密钥,因此本实施方式中,公共参数集合中的每个公共参数均分别与该公共参数集合对应的数值组中相应的二进制位计算生成追踪密钥。本实施方式相对降低了陷门公共参数生成时占用的资源开销,进而提高了区块链系统的整体稳定性。
更进一步的,作为一种优选的实施方式,基于Bulletproofs的证明框架生成对追踪密钥的合法性证明,包括:
基于Bulletproofs的证明框架生成与各追踪密钥对应的合法性证明以及对全部追踪密钥整体的合法性证明。
本实施方式的重点在于,基于Bulletproofs的证明框架生成的对追踪密钥的合法性证明,分别为各个追踪密钥相应的合法性证明以及全部追踪密钥整体上的合法性证明,因此本实施方式能够进一步提高合法性证明的全面性,从而进一步提高对于追踪密钥进行验证的可靠性。
为了加深对于上述技术内容的理解,下面通过具体的场景实施例对基于区块链的信息监控方法进行进一步说明:
而为了获取交易金额的全部信息,需要所有监管节点联合起来,通过可信手段或者多方安全计算等技术方法,一起恢复出交易金额,这样就实现了对监管节点的权力约束和对恶意监管节点的抵抗。
需要指出的是,当划定每个监管节点的监管范围之后,即确定了n1,…,nk,每个监管节点对于自己监管范围内的比特,可以自行选择生成陷门的数量以及每个陷门所负责追踪的位数,在一切监管划分完毕后,每个监管节点生成自己的陷门,并计算带陷门的公共参数,与系统提供的公共参数一起,作为全部的公共参数公开到链上。
举例说明监管的划分:以门罗币为例,交易信息的位数为32,假定存在4个监管节点(A、B、C、D),分别监管8,8,8,8个比特(8+8+8+8=32,事实上监管比特数量可以不相等,为了表述简便,我们的例子中设为相等),顺序分别为a0→a7,a8→a15,a16→a23,a24→a31,对于所有监管节点而言,每个监管节点监管8个比特,可以选择生成2个陷门公共参数,每个陷门公共参数追踪4比特的交易信息,事实上,选择陷门数量可以按照自身意愿决定,系统不做强制规定,每个监管节点的陷门数量∈[1,8]即可。
每个监管节点对于监管范围的划分方案不唯一,根据具体应用的场景和需求决定,但是一旦确定各个陷门的管辖范围,就要公布该范围并且计算公共参数,即系统公共参数以及陷门公共参数,随后公开到区块链系统上。
下面我们就监管范围划分和陷门信息数量以及每个陷门信息的划分给出支持多方监管的可追踪Bulletproofs区间证明方案介绍:
监管节点执行部分:
1、系统随机生成椭圆曲线(或其他离散密码群)生成元
例如(n=32);
2、监管节点A随机选取陷门信息y0,y1;
3、监管节点B随机选取陷门信息y2,y3;
4、监管节点C随机选取陷门信息y4,y5;
5、监管节点D随机选取陷门信息y6,y7;
6、所有监管节点使用自身的陷门信息计算
对于i=0,…,n-1;
7、系统公布g=(g0,…,gn-1),h=(h0,…,hn-1),以及划分((4,4),(4,4),(4,4),(4,4))=((b0,b1),…,(b6,b7)),将所有公共参数发给所有用户。
交易节点执行部分:
1、交易节点计算交易信息片段承诺V=hγga,其中a∈[0,2n-1],将a比特展开为a=a0+…+2iai+…+2n-1an-1,ai=0,1;其中V表示承诺值,γ表示混淆元,a表示隐私金额数值;
2、交易节点随机选取α,计算
其中α是随机数(需要注意此处α不是上一步骤中的a);
3、对于每个j=0,…,15,交易节点计算
然后计算
对每个k=0,1,2,3,一共生成20个TK
i;
4、对于每一个TKi,交易节点计算π(TKi)承诺证明;
5、交易节点计算
并给出
承诺证明,
一起作为所有TK
i的合法性证明;
7、交易节点按照Bulletproofs的步骤完成剩下的证明。
验证节点执行部分:
1、验证所有π(TKi)的正确性;
3、验证Bulletproofs的正确性。
监管节点根据追踪密钥TKi获取交易信息的部分:
2、将所有
总后,监管节点计算并对比
输出
其中i=0,1,8,9,16,17,24,25;
输出
其中i=2,3,10,11,18,19,26,27;
输出
其中i=4,5,12,13,20,21,28,29;
输出
其中i=6,7,14,15,22,23,30,31;
用公式表达则为对于全部k=0,1,2,3,计算
输出
其中j=8i+2k,8i+2k+1,且i=0,1,2,3;
注意到所有di的备选只有{-1,1},则可知监管结果ai=0,1。
3、监管节点输出(a0,…,an-1),计算最终金额a=a0+…+2iai+…+2n-1an-1。
注意到,在上面的例子中,
的计算需要四个监管节点都拿出自己计算出的T
j,才能一起追踪到部分的金额比特,如果有一个监管节点不提供T
j,则无法恢复出金额的任意信息,因此,除非所有监管节点共谋的情形,任意数量小于四个的作恶监管节点都无法私自恢复出金额的部分信息,实现了更高级别的用户隐私保护功能。
同时,在上面的例子中,根据监管划分,用户对于监管比特进行划分,生成对应的TK
i并给出其合法性证明(包括单个TK
i的证明π(TK
i)以及全体的证明
而监管节点的划分方式不唯一,例子中只是一种均匀的划分,其他不均匀的划分也可以构造相应的方案,实现同样级别的安全性,这种设计思路提高了区块链系统的自主性和适应性,同时实现了多方联合监管的功能。
在上文中对于基于区块链的信息监控方法的实施例进行了详细的描述,本发明还提供一种与该方法对应的信息监控设备,由于信息监控设备部分的实施例与方法部分的实施例相互对应,信息监控设备部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本发明实施例提供的一种信息监控设备,包括存储器、处理器和总线,存储器上存储有可由总线传输至处理器并在处理器上运行的信息监控程序,信息监控程序被处理器执行时实现如上述的基于区块链的信息监控方法。
该云计算服务设备可以是组成CDN网络或者区块链网络的节点。
其中,存储器至少包括一种类型的可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器在一些实施例中可以是云计算服务设备的内部存储单元,例如该云计算服务设备的硬盘。存储器在另一些实施例中也可以是云计算服务设备的外部存储设备,例如云计算服务设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器还可以既包括云计算服务设备的内部存储单元也包括外部存储设备。存储器不仅可以用于存储安装于云计算服务设备的应用软件及各类数据,例如视频转码程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器中存储的程序代码或处理数据,例如执行视频转码程序等。
该总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。
交易节点在区块链系统中获取公共参数集合,公共参数集合中包含一个以上监管节点的公共参数,公共参数中包含陷门公共参数以及系统公共参数,并且陷门公共参数基于监管节点预先保存的陷门信息产生,进而交易节点获取交易信息,将交易信息划分为交易信息片段,并通过公共参数集合与交易信息片段进行运算生成追踪密钥,在生成追踪密钥之后,将追踪密钥发布至区块链系统,进而区块链系统中的监管节点能够获取交易节点生成追踪密钥,进而基于追踪密钥、公共参数集合以及包含本地的陷门信息以及其它监管节点中陷门信息的陷门信息集合计算本地对应的交易信息片段,并根据本地的交易信息片段以及其它监管节点中的交易信息片段生成完整的交易信息。由于监管节点在根据追踪密钥还原交易信息片段时,需要同时基于自身的陷门信息以及由其它监管节点在验证本地身份后提供的陷门信息,因此监管节点之间存在制约关系,监管节点如需将追踪密钥恢复为交易信息片段,需要获取到每一个其它监管节点提供的陷门信息作为基础,并结合自身的陷门信息共同对追踪密钥进行运算生成相应的交易信息片段,每一个监管节点正常恢复交易信息片段均需要其他各个监管节点的支持,任意监管节点均无法单方面或在缺少任何一个其它监管节点的陷门信息的前提下获悉交易信息片段的内容,在此基础上,各个监管节点进一步通过自身恢复得到的交易信息片段共同还原完整的交易信息,实现了多个监管节点共同对于区块链系统中交易信息的监控的效果,进而确保了区块链系统整体的稳定性以及可用性,同时也避免了恶意监管节点对用户节点的交易信息的窃取,保证了用户交易信息的安全性。
图4为本发明实施例提供的一种区块链系统的结构示意图。
如图4所示,本发明提供的区块链系统,区块链系统包括至少二个交易节点10和至少二个监管节点11,其中:
交易节点10,用于在区块链系统中获取公共参数集合,公共参数集合中包含一个以上监管节点的公共参数,公共参数中包含陷门公共参数以及系统公共参数,陷门公共参数基于监管节点预先保存的陷门信息产生;获取交易信息,并将交易信息划分为交易信息片段;通过公共参数集合与交易信息片段进行运算生成追踪密钥;将追踪密钥发布至区块链系统,以供监管节点根据追踪密钥、公共参数集合以及陷门信息集合计算交易信息,陷门信息集合中包含各监管节点的陷门信息;
监管节点11,用于向区块链系统中的交易节点公开公共参数;获取交易节点生成的追踪密钥,追踪密钥基于公共参数集合以及与监管节点唯一对应的交易信息片段产生,公共参数集合中包含本地的公共参数以及至少一个其它监管节点的公共参数;基于追踪密钥、公共参数集合以及陷门信息集合计算本地对应的交易信息片段,陷门信息集合中包含本地的陷门信息以及由其它监管节点在验证本地身份后提供的陷门信息;根据本地对应的交易信息片段以及其它监管节点中的交易信息片段生成交易信息。
本发明所提供的区块链系统,交易节点在区块链系统中获取公共参数集合,公共参数集合中包含一个以上监管节点的公共参数,公共参数中包含陷门公共参数以及系统公共参数,并且陷门公共参数基于监管节点预先保存的陷门信息产生,进而交易节点获取交易信息,将交易信息划分为交易信息片段,并通过公共参数集合与交易信息片段进行运算生成追踪密钥,在生成追踪密钥之后,将追踪密钥发布至区块链系统,进而区块链系统中的监管节点能够获取交易节点生成追踪密钥,进而基于追踪密钥、公共参数集合以及包含本地的陷门信息以及其它监管节点中陷门信息的陷门信息集合计算本地对应的交易信息片段,并根据本地的交易信息片段以及其它监管节点中的交易信息片段生成完整的交易信息。由于监管节点在根据追踪密钥还原交易信息片段时,需要同时基于自身的陷门信息以及由其它监管节点在验证本地身份后提供的陷门信息,因此监管节点之间存在制约关系,监管节点如需将追踪密钥恢复为交易信息片段,需要获取到每一个其它监管节点提供的陷门信息作为基础,并结合自身的陷门信息共同对追踪密钥进行运算生成相应的交易信息片段,每一个监管节点正常恢复交易信息片段均需要其他各个监管节点的支持,任意监管节点均无法单方面或在缺少任何一个其它监管节点的陷门信息的前提下获悉交易信息片段的内容,在此基础上,各个监管节点进一步通过自身恢复得到的交易信息片段共同还原完整的交易信息,实现了多个监管节点共同对于区块链系统中交易信息的监控的效果,进而确保了区块链系统整体的稳定性以及可用性,同时也避免了恶意监管节点对用户节点的交易信息的窃取,保证了用户交易信息的安全性。
此外,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有运算终端数据处理程序,运算终端数据处理程序可被一个或者多个处理器执行,以实现如上述的基于区块链的信息监控方法。
本发明所提供的计算机可读存储介质,交易节点在区块链系统中获取公共参数集合,公共参数集合中包含一个以上监管节点的公共参数,公共参数中包含陷门公共参数以及系统公共参数,并且陷门公共参数基于监管节点预先保存的陷门信息产生,进而交易节点获取交易信息,将交易信息划分为交易信息片段,并通过公共参数集合与交易信息片段进行运算生成追踪密钥,在生成追踪密钥之后,将追踪密钥发布至区块链系统,进而区块链系统中的监管节点能够获取交易节点生成追踪密钥,进而基于追踪密钥、公共参数集合以及包含本地的陷门信息以及其它监管节点中陷门信息的陷门信息集合计算本地对应的交易信息片段,并根据本地的交易信息片段以及其它监管节点中的交易信息片段生成完整的交易信息。由于监管节点在根据追踪密钥还原交易信息片段时,需要同时基于自身的陷门信息以及由其它监管节点在验证本地身份后提供的陷门信息,因此监管节点之间存在制约关系,监管节点如需将追踪密钥恢复为交易信息片段,需要获取到每一个其它监管节点提供的陷门信息作为基础,并结合自身的陷门信息共同对追踪密钥进行运算生成相应的交易信息片段,每一个监管节点正常恢复交易信息片段均需要其他各个监管节点的支持,任意监管节点均无法单方面或在缺少任何一个其它监管节点的陷门信息的前提下获悉交易信息片段的内容,在此基础上,各个监管节点进一步通过自身恢复得到的交易信息片段共同还原完整的交易信息,实现了多个监管节点共同对于区块链系统中交易信息的监控的效果,进而确保了区块链系统整体的稳定性以及可用性,同时也避免了恶意监管节点对用户节点的交易信息的窃取,保证了用户交易信息的安全性。
以上对本发明所提供的一种基于区块链的信息监控方法、系统、设备及存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。