基于零知识可验证的区块链预言机链下数据安全传输方法及系统
本发明涉及区块链、密码学与可信计算,具体涉及基于零知识可验证的区块链预言机链下数据安全传输方法及系统。
背景技术:
1、区块链预言机用于将链下数据引入链上智能合约,是实现智能合约与现实世界数据交互的重要基础设施。传统预言机方案通常由链下节点采集、上报数据,再由聚合端对多个数据源上报的数值进行处理后提交至链上,链上合约根据接收到的数值执行相应逻辑。然而,现有预言机链下数据传输方案存在以下不足:其一,链上验证端通常难以在不获取原始数据的前提下确认聚合结果确系依据合规聚合策略对经授权数据源上报的真实数值计算得到,聚合过程存在被篡改或伪造的风险;其二,聚合运算中涉及的排序、截尾等处理步骤多在链下以不透明方式完成,链上验证端缺乏对该处理过程合法性的有效核验手段;其三,传输消息与其所处传输环境之间缺乏密码学绑定关系,攻击者截获合法传输消息后可能通过替换链标识、合约标识等字段重新利用该消息,且历史消息存在被重放提交的风险;其四,现有方案往往需要暴露原始上报数值或聚合过程细节以完成验证,难以兼顾数据隐私与结果可信。
技术实现思路
1、针对现有技术存在的不足,本发明的目的在于提供基于零知识可验证的区块链预言机链下数据安全传输方法及系统,用于克服现有技术中的上述缺陷。
2、为实现上述目的,本发明提供了如下技术方案:
3、基于零知识可验证的区块链预言机链下数据安全传输方法,包括:
4、承诺构建步骤:建立包括链下数据源、链下聚合端、链上验证端以及数据源注册信息的预言机传输体系,所述链下聚合端接收多个链下数据源发送的签名记录,对所述签名记录进行预校验,并基于通过预校验的签名记录构建批次承诺信息,同时根据授权数据源集合构建成员承诺信息;
5、绑定值生成步骤:获取待传输消息对应的传输上下文字段,根据所述传输上下文字段生成上下文绑定值,并将所述上下文绑定值作为零知识证明验证关系中的公开输入,以使待生成的零知识证明与对应传输上下文建立关联;
6、聚合验证关系构建步骤:针对经过预处理的待聚合数据构建聚合验证关系,在链下对待聚合数据进行排序处理,生成排序见证数据,并在零知识证明验证关系中验证所述排序见证数据与待聚合数据之间的一致性、排序关系以及基于预设聚合策略生成的声明聚合输出之间的一致性;
7、证明与消息组装步骤:基于所述声明聚合输出、上下文绑定值以及对应见证信息生成零知识证明,并将消息头、声明聚合输出、承诺信息、零知识证明以及消息完整性承诺进行组装,形成结构化传输消息,其中所述消息完整性承诺基于消息头、声明聚合输出以及承诺信息生成;
8、链上验证步骤:所述链上验证端接收所述结构化传输消息,对传输上下文字段重新计算上下文绑定值,对消息完整性承诺进行校验,并执行消息状态检测、上下文一致性检测、发送方授权检测以及零知识证明验证,在各项验证通过后接收所述声明聚合输出。
9、作为优选,所述绑定值生成步骤包括:
10、获取批次标识、消息序号、目标链标识、目标合约标识、聚合策略标识以及发送方标识,将所述传输上下文字段进行组合,并通过哈希运算生成上下文绑定值;
11、所述上下文绑定值作为零知识证明验证关系中的公开输入,用于关联声明聚合输出与对应传输上下文。
12、作为优选,所述聚合验证关系构建步骤包括:
13、对待聚合数据进行排序处理,得到排序见证数据;
14、对所述排序见证数据执行有序性验证,使相邻排序见证数据满足单调关系;
15、基于所述声明聚合输出以及上下文绑定值生成随机挑战值,并根据所述随机挑战值验证待聚合数据与排序见证数据之间的元素对应关系;
16、对经过排序的见证数据进行截尾处理,去除排序序列两端预设数量的数据,并对剩余数据进行聚合计算,将计算结果与所述声明聚合输出进行一致性验证。
17、作为优选,所述随机挑战值用于构建待聚合数据与排序见证数据之间的排列一致性验证关系,所述排列一致性验证关系包括:
18、将待聚合数据中的元素与随机挑战值组合形成第一验证关系;
19、将排序见证数据中的对应元素与随机挑战值组合形成第二验证关系;
20、通过比较第一验证关系与第二验证关系确定待聚合数据与排序见证数据是否属于同一元素集合;
21、所述聚合验证关系通过验证排序见证数据的排列一致性、排序合法性以及聚合输出一致性确定声明聚合输出对应的数据处理过程。。
22、作为优选,所述承诺构建步骤还包括:
23、根据多个链下数据源对应的签名记录构建批次承诺根,用于表示当前待聚合数据所属的数据批次;
24、根据授权数据源集合构建成员承诺根,用于表示参与数据提供的数据源集合;
25、所述零知识证明验证关系中同时包含批次承诺根验证关系以及成员承诺根验证关系,以验证待聚合数据与对应数据来源之间的关联关系。
26、作为优选,所述证明与消息组装步骤包括:
27、构建结构化传输消息,所述结构化传输消息包括消息头字段、聚合输出字段、承诺信息字段、零知识证明字段以及消息完整性承诺字段;
28、其中,所述消息完整性承诺字段基于消息头字段、聚合输出字段以及承诺信息字段计算得到,所述零知识证明字段不参与所述消息完整性承诺字段的计算;
29、所述链上验证端分别对零知识证明字段和消息完整性承诺字段进行独立验证。
30、作为优选,所述聚合验证关系构建步骤还包括:
31、对链下数据源对应的签名记录进行时间窗口验证,判断所述签名记录对应时间戳是否位于预设时间范围内;
32、对链下数据源进行成员资格验证,判断所述链下数据源是否属于授权数据源集合;
33、将所述时间窗口验证结果以及成员资格验证结果作为零知识证明验证关系中的约束条件。
34、作为优选,所述链上验证步骤中的消息状态检测包括:
35、建立已验证消息状态记录表,对完成验证的消息对应批次标识以及消息序号进行记录;
36、当接收到新的结构化传输消息时,根据所述批次标识以及消息序号查询所述消息状态记录表;
37、若查询到对应记录,则拒绝当前结构化传输消息,否则继续执行后续验证流程。
38、作为优选,所述链上验证步骤中的发送方授权检测包括:
39、获取结构化传输消息中的发送方标识;
40、将所述发送方标识与预先存储的授权发送方集合进行匹配;
41、当所述发送方标识属于授权发送方集合时,执行零知识证明验证;
42、其中,所述零知识证明基于预先生成的证明密钥生成,并基于对应验证密钥进行验证。
43、基于零知识可验证的区块链预言机链下数据安全传输系统,包括:
44、配置注册模块,用于存储数据源注册信息、授权数据源集合、聚合策略参数以及证明验证相关参数;
45、链下聚合证明模块,用于接收多个链下数据源发送的签名记录,对签名记录进行预校验,构建批次承诺信息以及成员承诺信息,根据待聚合数据生成聚合验证关系,生成零知识证明,并组装结构化传输消息;
46、链上验证模块,用于接收链下聚合证明模块发送的结构化传输消息,计算上下文绑定值,校验消息完整性承诺,执行状态检测、上下文一致性检测、发送方授权检测以及零知识证明验证;
47、状态管理模块,用于保存已验证消息对应的状态信息,并根据接收到的结构化传输消息更新验证状态。
48、本发明的有益效果:通过对链下数据源签名记录进行预校验并构建批次承诺根与成员承诺根,将数据来源合法性、批次归属及时效性验证纳入零知识证明验证关系中一并核验,使链上验证端仅需完成单一证明验证即可确认样本来源的合法性,无须针对上述各项分别发起交互式核验;
49、通过将传输上下文字段组合生成上下文绑定值并将其作为零知识证明公开输入,使生成的零知识证明与特定传输上下文之间形成不可分割的绑定关系,即便传输消息被截获,攻击者亦难以通过替换其中的链标识、合约标识或发送方标识等字段而使原证明继续通过验证;
50、通过在链下对待聚合数据排序生成见证数据,并在零知识证明验证关系中验证排序有序性、待聚合数据与排序见证数据之间的对应一致性以及截尾聚合结果与声明聚合输出的一致性,在无须还原原始数据排列顺序的前提下确认聚合结果确系依据既定聚合策略计算得到,兼顾了聚合过程的隐私性与可核验性;
51、聚合验证关系对应的电路约束规模与待聚合数据总数呈线性关系,随待聚合数据总数增加,证明生成所需的计算开销增长幅度相对有限,有利于在样本规模扩大的场景下控制证明生成成本;
52、通过将消息完整性承诺与零知识证明分离计算并独立验证,链上验证端可区分传输过程中的字段篡改与证明本身无效两类异常来源,并结合消息状态检测与发送方授权检测,实现对重放攻击及非授权发送方的有效防御,从而在不泄露原始数据的前提下,整体提升区块链预言机链下数据传输的安全性、可信度与验证效率。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com