一种面向零知识证明的模型批量编码验证方法及系统

摘要: 本发明属于数据安全,更具体地,涉及一种面向零知识证明的模型批量编码验证方法及系统。背景技术:1、零知识证明(zero-knowledgeproof,zkp)是一...
一种面向零知识证明的模型批量编码验证方法及系统

本发明属于数据安全,更具体地,涉及一种面向零知识证明的模型批量编码验证方法及系统。

背景技术:

1、零知识证明(zero-knowledge proof,zkp)是一种密码学协议,允许证明者在不泄露秘密信息的前提下,向验证者证明某个命题的正确性。近年来,将零知识证明应用于机器学习模型推理验证,形成了零知识机器学习(zero-knowledge machine learning,zkml)这一交叉研究方向,为云端推理服务的计算完整性验证和模型隐私保护提供了可行技术路径。

2、在基于非交互式零知识证明(如zk-snarks)的zkml系统中,通常需要将卷积神经网络(cnn)等模型的推理过程编译为算术电路,并通过证明系统生成证明。其中,卷积层、全连接层等线性运算层是整个推理过程中运算量最大、证明开销最高的部分。这些线性运算本质上可表示为矩阵乘法,其证明需要为每一个乘积累加操作构建对应的多项式约束。

3、在实际应用场景中,服务方往往需要同时处理来自多个用户的批量推理请求。现有方案在处理批量请求时,通常采用逐请求独立构建证明的方式,即对每一个请求的线性运算分别构建独立的乘加约束电路并生成证明。这种方式存在以下两个突出问题:

4、第一,证明生成开销随请求数量线性增长。假设单次线性运算的矩阵乘法证明的时间开销为o(m),当同时处理k个请求时,总证明时间开销为o(k·m)。随着批量规模的增大,证明生成时间和计算资源消耗呈线性增长,严重制约系统的吞吐能力。

5、第二,仅靠增加并行计算资源难以从根本上解决问题。虽然可以通过增加cpu/gpu等硬件资源来并行处理多个请求的证明生成,但这种扩展方式受限于硬件资源的物理上限,且无法降低单个请求的证明复杂度,本质上属于“以资源换时间”的被动应对策略,并未解决证明时间开销本身与请求数量耦合的核心矛盾。

技术实现思路

1、针对现有技术的以上缺陷或改进需求,本发明提供了一种面向零知识证明的模型批量编码验证方法及系统,由此解决现有证明方法的证明生成时间开销和计算资源消耗随请求数量线性增长的技术问题。

2、为实现上述目的,按照本发明的第一方面,提供了一种面向零知识证明的模型批量编码验证方法,应用于证明方,包括:

3、调用机器学习模型对用户发起的针对所述机器学习模型的同一批次推理请求进行响应,获取所述机器学习模型中各个线性运算层对应各个推理请求的输入矩阵以及所述机器学习模型最终输出的针对各个推理请求的推理结果;所述输入矩阵的元素位宽小于零知识证明系统所使用有限域的位宽;

4、针对每一线性运算层对应各个推理请求的输入矩阵,根据所述输入矩阵的元素位宽和当前线性运算层的矩阵维度参数,计算当前线性运算层的编码基数δ,基于所述编码基数δ,将当前线性运算层对应各个推理请求的输入矩阵逐元素加权编码以生成聚合输入矩阵,并利用预先获取的权重矩阵与所述聚合输入矩阵执行单次矩阵乘法运算,生成聚合输出矩阵;其中,所述编码基数δ大于当前线性运算层计算的单个元素的最大可能值,且δ为2的整数次幂;

5、将每一线性运算层对应的各个输入矩阵、所述聚合输入矩阵和所述聚合输出矩阵发送至零知识证明系统,以使得所述零知识证明系统基于每一线性运算层对应的各个输入矩阵、所述聚合输入矩阵和所述聚合输出矩阵构造线性约束的证明电路,并基于证明电路生成零知识证明,以供验证方基于所述零知识证明验证所述推理结果的可靠性。

6、根据上述面向零知识证明的模型批量编码验证方法,当前线性运算层的编码基数δ满足:

7、;

8、其中,为当前线性运算层对应各个推理请求的输入矩阵的元素位宽,为当前线性运算层中参与单个输出元素计算的乘积累加项数。

9、根据上述面向零知识证明的模型批量编码验证方法,按照以下公式将当前线性运算层对应各个推理请求的输入矩阵逐元素加权编码以生成聚合输入矩阵:

10、;

11、其中,i为推理请求在当前批次内的编号索引,k为当前批次内推理请求的数量,为当前线性运算层对应推理请求i的输入矩阵。

12、根据上述面向零知识证明的模型批量编码验证方法,所述证明电路包括编码算子电路和点积算子电路;

13、其中,所述编码算子电路用于约束当前线性运算层对应的所述聚合输入矩阵中的每个元素等于利用当前线性运算层的编码基数δ对各个输入矩阵对应相同位置的元素进行加权求和的结果,以及约束当前线性运算层对应的所述聚合输出矩阵中的每个元素等于利用当前线性运算层的编码基数δ对各个输出矩阵对应相同位置的元素进行加权求和的结果;所述输出矩阵是预先基于当前线性运算层对所述输入矩阵进行模拟推理得到的;

14、所述点积算子电路用于约束所述聚合输入矩阵与所述权重矩阵的乘积等于所述聚合输出矩阵。

15、根据上述面向零知识证明的模型批量编码验证方法,若当前线性运算层为卷积层,则当前线性运算层对应各个推理请求的输入矩阵和权重矩阵是基于如下方式转换得到的:

16、针对每个推理请求,按当前卷积核尺寸的滑动窗口从输入到当前线性运算层的相应推理请求对应的输入特征图中逐窗口提取像素值,将每个窗口内的像素值拉伸为一个列向量,以在遍历所有窗口后将各个窗口对应的列向量按顺序拼接为一个二维矩阵,作为相应推理请求对应的输入矩阵;

17、将当前线性运算层的卷积核权重张量重塑为二维矩阵,作为所述权重矩阵。

18、根据上述面向零知识证明的模型批量编码验证方法,所述同一批次推理请求的数量小于单次聚合的最大请求数量;

19、所述单次聚合的最大请求数量kmax是基于下式计算的:

20、;

21、其中,为所述零知识证明系统的有限域模数,为当前线性运算层对应各个推理请求的输入矩阵的元素位宽,为当前线性运算层中参与单个输出元素计算的乘积累加项数。

22、按照本发明的第二方面,提供了一种面向零知识证明的模型批量编码验证系统,部署于证明方,包括:

23、数据获取单元,用于调用机器学习模型对用户发起的针对所述机器学习模型的同一批次推理请求进行响应,获取所述机器学习模型中各个线性运算层对应各个推理请求的输入矩阵以及所述机器学习模型最终输出的针对各个推理请求的推理结果;所述输入矩阵的元素位宽小于零知识证明系统所使用有限域的位宽;

24、批量编码单元,用于针对每一线性运算层对应各个推理请求的输入矩阵,根据所述输入矩阵的元素位宽和当前线性运算层的矩阵维度参数,计算当前线性运算层的编码基数δ,基于所述编码基数δ,将当前线性运算层对应各个推理请求的输入矩阵逐元素加权编码以生成聚合输入矩阵,并利用预先获取的权重矩阵与所述聚合输入矩阵执行单次矩阵乘法运算,生成聚合输出矩阵;其中,所述编码基数δ大于当前线性运算层计算的单个元素的最大可能值,且δ为2的整数次幂;

25、数据发送单元,用于将每一线性运算层对应的各个输入矩阵、所述聚合输入矩阵和所述聚合输出矩阵发送至零知识证明系统,以使得所述零知识证明系统基于每一线性运算层对应的各个输入矩阵、所述聚合输入矩阵和所述聚合输出矩阵构造线性约束的证明电路,并基于证明电路生成零知识证明,以供验证方基于所述零知识证明验证所述推理结果的可靠性。

26、按照本发明的第三方面,提供了一种电子设备,包括:计算机可读存储介质和处理器;

27、所述计算机可读存储介质用于存储可执行指令;

28、所述处理器用于读取所述计算机可读存储介质中存储的可执行指令,执行如第一方面所述的方法。

29、按照本发明的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行如第一方面所述的方法。

30、按照本发明的第五方面,提供了一种计算机程序产品,包括计算机程序或指令,所述计算机程序或指令被处理器执行时实现如第一方面所述的方法。

31、总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:

32、根据输入矩阵的元素位宽和当前线性运算层的矩阵维度参数,计算当前线性运算层的编码基数δ,基于编码基数δ,将当前线性运算层对应各个推理请求的输入矩阵逐元素加权编码以生成聚合输入矩阵,并利用预先获取的权重矩阵与所述聚合输入矩阵执行单次矩阵乘法运算生成聚合输出矩阵,以基于每一线性运算层对应的各个输入矩阵、聚合输入矩阵和聚合输出矩阵构造用于约束的证明电路,将同一批次内的多个推理请求的线性运算合并为单次编码后的矩阵运算,降低了总约束规模,且针对输入矩阵、聚合输入矩阵和聚合输出矩阵的线性编码约束的复杂度和证明开销远低于矩阵乘积累加约束,在批量请求场景下可实现显著的证明加速。同时,利用零知识证明系统大位宽有限域与低位宽量化模型数据之间的数值表示空间差异,通过设计编码基数δ,确保各组输入矩阵在聚合编码后占据互不重叠的数值区间,实现了多组数据的无损压缩编码与可恢复性,这种编码方式无需引入额外的纠错或校验机制,仅依靠编码基数的合理设计即可天然保证解码正确性。另外,证明电路能够实现编码正确性约束和矩阵乘法正确性约束,使得验证方仅需检查这两类约束是否成立,而无需在电路内显式执行除法、取模等非线性解码操作,避免了在零知识证明电路中引入高开销的非线性运算,进一步压缩了证明规模。

33、进一步地,本发明实施例采用的编码算子电路仅涉及线性门约束(常数乘法与加法),可直接集成于halo2、plonk等主流零知识证明系统的前端电路构造框架中,无需修改后端证明协议或底层密码学原语。同时,该方法与im2col等成熟的卷积优化技术无缝衔接,可广泛应用于各类涉及矩阵乘法的机器学习模型推理验证场景。

34、此外,本发明实施例中编码基数和最大请求数量kmax均根据当前线性运算层的具体参数(输入矩阵的元素位宽、乘积累加项数)动态计算,而非采用固定经验值,这种自适应设计使得本发明实施例所提方法能够适配不同规模的模型(从轻量级lenet到大规模vgg16)、不同深度的网络层级以及不同精度的量化策略,具有良好的通用性和可扩展性。