[ZKP] Freivalds’ Algorithm

Freivalds’ Algorithm

Freivalds, Rusins. “Probabilistic Machines Can Use Less Running Time.” IFIP congress. Vol. 839. 1977.

Problem Statement

Suppose we are given as input two n × n n \times n n×n matrices A A A and B B B over F p \mathbb{F}_p Fp, where p > n 2 p > n^2 p>n2 is a prime number. The fastest known algorithm for accomplishing this task in time roughly O ( n 2.37286 ) \mathcal{O}(n^{2.37286}) O(n2.37286).

Suppose someone hands us a matrix C C C. Our goal is to check whether or not the product matrix A ⋅ B = C A \cdot B = C AB=C in O ( n 2 ) \mathcal{O}(n^{2}) O(n2) time.

Algorithm

First, choose a random r ∈ F p r \in \mathbb{F}_p rFp, and let x = ( 1 , r , r 2 , . . . , r n − 1 ) x = (1,r,r^2,...,r^{n−1}) x=(1,r,r2,...,rn1). Then compute y = C x y =Cx y=Cx and z = A ⋅ B x z = A \cdot Bx z=ABx, outputting 1 1 1 if y = z y = z y=z and 0 0 0 otherwise.

Time Cost

  1. vector x = ( 1 , r , r 2 , . . . , r n − 1 ) x = (1,r,r^2,...,r^{n−1}) x=(1,r,r2,...,rn1) can be done with O ( n ) \mathcal{O}(n) O(n) total multiplication operations.
  2. Multiply an n × n n \times n n×n matrix by an n-dimensional vector can be done in O ( n 2 ) \mathcal{O}(n^{2}) O(n2) time.
    2.1. y = C x y = Cx y=Cx : O ( n 2 ) \mathcal{O}(n^{2}) O(n2) time
    2.2. w = B x w = Bx w=Bx : O ( n 2 ) \mathcal{O}(n^{2}) O(n2) time
    2.3. z = A w z = Aw z=Aw : O ( n 2 ) \mathcal{O}(n^{2}) O(n2) time

Explaination

Recall the Reed-Solomon Fingerprinting: Encode vector a a a and b b b with Reed-Solomon Encoding: p a ( x ) = ∑ i = 1 n a i r i − 1 p_a(x) = \sum_{i=1}^na_ir^{i-1} pa(x)=i=1nairi1, p b ( x ) = ∑ i = 1 n b i r i − 1 p_b(x) = \sum_{i=1}^nb_ir^{i-1} pb(x)=i=1nbiri1. If a i = b i a_i = b_i ai=bi for all i = 1 , . . . , n i = 1,...,n i=1,...,n, then p a ( r ) = p b ( r ) p_a(r)=p_b(r) pa(r)=pb(r) for every possible choice of r r r. Otherwise, if there is even one i i i such that a i ≠ b i a_i \neq b_i ai=bi, p a ( r ) = p b ( r ) p_a(r)=p_b(r) pa(r)=pb(r) with probability at least 1 − ( n − 1 ) / p 1 − (n − 1)/p 1(n1)/p. (It can be proved by Schwartz-Zippel Lemma.)

The encoding is distance-amplifying: if a a a and b b b differ on even a single coordinate, then their encodings will differ on a 1 − ( n − 1 ) / p 1−(n−1)/p 1(n1)/p fraction of coordinates. Due to the distanceamplifying nature of the code, checking equality of two vectors a and b was reduced to checking equality of a single randomly chosen entry of the encodings.

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/571369.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录刷题笔记 Day 59 | 两个字符串的删除操作 No.583 | 编辑距离 No.72

文章目录 Day 5901. 两个字符串的删除操作&#xff08;No. 583&#xff09;<1> 题目<2> 题解<3> 代码 02. 编辑距离&#xff08;No. 72&#xff09;<1> 题目<2> 题解<3> 代码 Day 59 01. 两个字符串的删除操作&#xff08;No. 583&#x…

MFC(二)集成基础控件

目录 OnCreateCStatic【标签&#xff0c;图片】CEdit【文本框&#xff0c;密码框&#xff0c;数值框&#xff0c;文本区】CButton【按钮&#xff0c;单选按钮&#xff0c;多选按钮】CComboBox【下拉列表&#xff0c;列表】CSliderCtrl【滑动条】CListCtrl【表格】CAnimateCtrl【…

【Java程序设计】【C00383】基于(JavaWeb)Springboot的水产养殖系统(有论文)

【C00383】基于&#xff08;JavaWeb&#xff09;Springboot的水产养殖系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;已经做了六年的毕业设计程序开发&#xff0c…

Sentinel源码解析

核心源码都在客户端,服务端只是个Dashboard!!! 在服务端配置好规则后,服务端会把规则推到客户端里去【存在客户端内存里】 服务端记录客户端对外提供的一些接口 客户端引用了依赖并启动后,会定时把自己的信息注册到Sentinel服务端去,并且定时发信息保持心跳 主线 注解…

编程出现bug?怎么用Python打印异常

在 Python 编程中&#xff0c;异常是指程序执行过程中出现的错误或异常情况。当程序遇到异常时&#xff0c;为了更好地调试和定位问题&#xff0c;我们需要打印异常信息。本文将详细介绍如何在 Python 中打印异常&#xff0c;并提供一些示例和注意事项。 一、try-except 语句捕…

【数学】 【分数】 【字符串】972. 相等的有理数

本文涉及知识点 数学 分数 字符串 LeetCode972. 相等的有理数 给定两个字符串 s 和 t &#xff0c;每个字符串代表一个非负有理数&#xff0c;只有当它们表示相同的数字时才返回 true 。字符串中可以使用括号来表示有理数的重复部分。 有理数 最多可以用三个部分来表示&…

【保姆级教程】使用SeaTunnel同步Kafka的数据到ClickHouse

1.Apache SeaTunnel依赖地址 2.SeaTunnel官网的Source/Sink模板 3.SeaTunnel的GitHub地址 在官网下载安装包之后&#xff0c;&#xff08;注意&#xff1a;别下载apache-seatunnel-incubating-2.1.0-bin.tar.gz版本&#xff0c;依赖和功能都没有。)要使用apache-seatunnel-2.3…

什么是V R美术馆|V R互动体验店加盟|虚拟现实元宇宙

VR美术馆是利用虚拟现实&#xff08;VR&#xff09;技术构建的数字化美术馆&#xff0c;通过虚拟展厅和虚拟展览等形式展示艺术作品、举办艺术展览&#xff0c;为用户提供一种沉浸式的艺术体验。用户可以通过穿戴VR头显等设备&#xff0c;在虚拟环境中自由浏览各种艺术作品&…

SpringCloud学习笔记二:服务间调用

微服务中&#xff0c;很多服务系统都在独立的进程中运行&#xff0c;通过各个服务系统之间的协作来实现一个大项目的所有业务功能。服务系统间 使用多种跨进程的方式进行通信协作&#xff0c;而RESTful风格的网络请求是最为常见的交互方式之一。 spring cloud提供的方式&#…

matplotlib中的颜色表示方法

matplotlib中的颜色表示方法 1.RGB或RGBA格式 格式示例以一个3元素或4元素的tuple来表示颜色&#xff0c;每个元素取值范围是[0,1](0.1,0.2,0.5) (0.1,0.2,0.5,0.3)大小写不敏感的16进制表示法#0F0F0F等价于#0x0f0f0f等价于(15/255,15/255,15/255)带透明度的#0f0f0f80简短的…

深度学习:基于PyTorch的模型解释工具Captum

深度学习&#xff1a;基于PyTorch的模型解释工具Captum 引言简介示例安装解释模型的预测解释文本模型情绪分析问答 解释视觉模型特征分析特征消融鲁棒性 解释多模态模型 引言 当我们训练神经网络模型时&#xff0c;我们通常只关注模型的整体性能&#xff0c;例如准确率或损失函…

推特Twitter有直播功能吗?如何用Twitter直播?

现在各大直播平台已经成为社交媒体营销的一种重要渠道&#xff0c;它让品牌能够即时地与全球受众进行互动。据统计&#xff0c;直播市场正在迅速增长&#xff0c;预计到2028年将达到2230亿美元的规模。在这个不断扩张的市场中&#xff0c;许多社交媒体平台如YouTube、Facebook、…