| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 区块链 -> 递归零知识证明 -> 正文阅读 |
|
[区块链]递归零知识证明 |
本文我们将介绍递归零知识证明(ZKP),即一个证明证明了另一个证明的有效性,以及它优于标准非递归零知识证明 (ZKP) 的优势,并通过将其应用于证明费拨那契 (Fibonacci) 序列来展示它的强大功能。 什么是递归 ZKP假设 Peggy 想向 Victor 证明她下周将在公园度过,而她只想使用一张照片来证明这一点。她可以做到以下几点: 第 1 天,她在公园里拍了一张照片,上面有显示日期的日历。 第 2 天,她拿着第 1 天的照片在公园里用日历拍了另一张照片。 第 3 天,她拿着日历在公园里拍了另一张照片,同时拿着第 2 天拍摄的照片。 重复相同的程序直到第 7 天。现在,她用一张照片证明了她为期一周的旅行。 类似于上面的比喻示例,在递归 ZK 证明中,该证明证明了另一个证明的有效性,该证明本身也验证了另一个证明,依此类推。 为什么我们需要它与标准 ZKP 相比,递归 ZKP 具有几个显着优势。 聚合多个证明可以聚合成一个证明。单一证明只有在所有组成证明都有效时才有效,并且更容易验证。当在区块链上验证证明时,这尤其有吸引力。数以千计的证明可以压缩成一个证明,从而节省大量的验证成本。 并行化证明生成假设我们要证明一批 增量可验证计算 (IVC)如果证明是可增量更新的,那么证明某些类型的计算会更有效。
我们将计算分解为更小的步骤并迭代地证明它们。每个步骤都包含一个证明,证明计算的当前状态。使用递归 ZKP(更具体地说,IVC),可以通过递归使用当前步骤及其证明来为下一步生成新证明。证明更新不需要像标准 ZKP 那样从第一步开始重新计算,并且与计算的总长度无关。 例如,对于
IVC 通过生成初始证明 它是如何工作的在高层次上,诸如 SNARK 之类的 ZKP 可以验证任意计算。由于验证 SNARK 本身就是一种计算,因此 SNARK 可以验证其他 SNARK 证明。递归 SNARK 证明证明存在先前存在有效的证明。此计算/电路的证明证明了内部证明的有效性,该证明可能包括另一个证明。 到目前为止,我们已经解释了递归 SNARK 在理论上是如何工作的。在实践中,验证是一种密集计算,涉及繁重的密码学操作,例如双线性配对。必须采用许多新技术,例如椭圆曲线的循环,才能有效地工作。在这篇简短的博文中,我们不会详述这些实际问题。 斐波那契示例我们将递归 SNARK 应用于斐波那契数列。斐波那契数列由递归关系定义: Peggy 想要让 Victor 相信序列中有一个数字,比如
第 第 Peggy 从第 Victor 使用验证密钥验证最终证明。值得注意的是,他只需要最终证明并在几秒钟内验证它,而不管第 在这个简单示例中,Victor 可能只是重新计算整个序列直到 N 为 |
|
|
上一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 21:31:23- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |