STARK算法解析
第0部分:导言
第1部分:纵观STARK
第2部分:有用的“工具”
第3部分:FRI
第4部分:STARKPolynomialIOP
第5部分:ARescue-PrimeSTARK
第6部分:加速整个流程
1.什么是STARKs?
最近,密码学证明系统领域最令人兴奋的进展之一是STARKs的发展。它是在区块链行业蓬勃发展之后出现。整体上来看,证明系统似乎是为其量身定做的:区块链网络通常由相互不信任的各方组成,他们希望使用秘密信息进行交易,或根据状态演变规则更新集体状态。由于参与者是相互不信任的,因此他们需要验证其同伴提出的交易的有效性的方法。
由于zk-SNARKs的以下特点,它们自然具备在这种环境中提供计算完整性保证的能力:
zk-SNARKs一般是通用的,意味着它们能够证明任意计算的完整性;
zk-SNARKs是非交互式的,这意味着整个完整性证明由单个消息组成;
zk-SNARKs的验证是高效的,也就是说,与简单地重新运行计算相比,验证者的工作量会降低一个数量级;
zk-SNARKs是零知识的,这意味着它们不会泄露关于计算秘密输入的任何信息。
"我期待zk-SNARKs在未来10-20年内渗透到主流世界,并引领一场重大的革命。"??——“V神”2021.9.2
zk-SNARKs已经存在了一段时间,但STARK证明系统是一个相对较新的东西。它的脱颖而出有几个原因:
传统的zk-SNARKs依赖于尖端的密码学难题和假设,而STARK证明系统中唯一的密码学成分是一个抗碰撞的哈希函数。因此,在理想化的哈希函数模型下,该证明系统的抗量子安全性是可以被证明的。这与第一代SNARKs形成鲜明对比,后者使用双线性映射,且只在不可证伪的假设下具有可证明的安全性。
STARKs的算术化是独立于密码学困难问题的,因此这个领域可以被专门选择来优化性能。因此,STARKs使得真正的快速证明成为可能。
传统的zk-SNARKs依靠一个可信的设置仪式来产生公共参数。仪式结束后,使用的随机参数必须被安全地遗忘。仪式本身并非去信任的,因为如果参与者拒绝或忘记删除这种密码学上的“有害垃圾”,他们就会保留伪造证明的能力。相比之下,STARKs没有可信的设置,因此没有密码学上的"有害垃圾“。
“我基本同意,但在两点上持有保留意见:
1)是STARKs将占主导地位,而不是SNARKs
2)3-5年就会渗透到主流世界
在我的日历上写上提醒,以便4年后来检验这些话。”??——EliBen-Sasson2021.9.2
在本教程中,我将解释其中许多部分是如何一起工作的。这个文字解释由一个证明和验证基于Rescue-Prime哈希函数的简单计算的Python实现来支持。在阅读或学习了本教程之后,你应该能够为你选择的计算编写你自己的零知识STARK证明者和验证者
2.为什么写作本文?
应该尽早指出,学习STARKs有多种来源。这里是一个不完整的列表。
关于?FRI?、?STARK?、?DEEP-FRI?的论文,以及FRI的最新可靠性分析
VitalikButerin的多部分教程。
StarkWare的一系列博文。
StarkWare的?STARK@Home?网络广播
StarkWare的?STARK101?在线课程
StarkWare的?EthStark文档
一般来说,?StarkWare?推出的任何东西
有了这么多学习资源,我为什么还要再写一个教程呢?
已有的教程比较浅显。在从高层次上解释了这些技术是如何工作的方面,这些教程做得不错,并传达了一种直觉——为什么STARKs可以起作用。然而,它们没有描述一个完整的、可供部署的系统。例如,没有一个教程描述如何实现零知识,如何批处理各种低度证明,或如何确定由此产生的安全级别。EthSTARK文档确实提供了一个完整的参考资料来回答这些问题中的大部分,但它是针对一个特定计算的,没有涵盖零知识,也没有给出一个易懂直观的解释。
这些论文是难懂的。令人难过的是,科学出版业的激励机制被设定为:使科学论文对非专业读者来说难以阅读。因此,需要像本文这样的教程,以使这些论文能被更多的人理解。
资料已经过时了。各种教程中描述的许多技术后来都得到了改进。例如,EthSTARK文档描述了一种DEEP插入技术,以便将正确求值的要求降低到有界度的多项式。这些资料中没有提到这种技术,因为这些资料比该技术出现得更早。
我更喜欢我自己的风格。我不同意很多符号和名称,我希望人们能使用正确的符号和名称。特别是,我喜欢把重点放在多项式上,作为证明系统的最基本对象。与此相反,所有其他资料都是以对里德-所罗门码字的操作来描述证明系统的机制。
这个教程有助于我更好地理解STARK。写这篇教程有助于我将自己的知识系统化,并找出其浅薄或完全缺乏的地方。
3.所需要的背景知识
本教程在需要的时候会温习一些背景知识。但建议所有读者还是了解和学习一下以下主题,因为如果不熟悉这些主题,这里的介绍可能会过于密集。
有限域及其扩展域
有限域上的多项式,包括单变量和多变量的多项式
快速傅里叶变换
哈希函数
4.系列向导
Part1:纵观STARK?从高层次描绘了概念和工作流程
Part2:有用的“工具”?介绍基本的数学和密码学工具,证明系统将由此建立
Part3:FRI?涵盖了低度测试,这是证明系统的密码学核心
Part4:STARKPolynomialIOP解释了从任意的计算性要求中生成抽象证明系统的信息理论
Part5:ARescue-PrimeSTARK?把这些工具放在一起,为一个简单的计算建立一个透明的零知识证明系统
Part6:加速整个流程?引入算法和技术,使整个流程变得更快,有效地将"S"(简洁性,succinct)?放入STARK
5.致谢
作者希望感谢BobbinThreadbare、ThorkilV?rge和EliBen-Sasson的有用反馈和意见,以及Nervos基金会的资金支持。请给他发邮件:,或在twitter或Github上关注aszepieniec。
译者注:原文中有大量文献链接,由于公众号限制无法附上,请读者自行参考原文中的文献链接。
About?zCloak?Network
zCloakNetwork是基于波卡生态的隐私计算服务平台,使用?zk-STARK?虚拟机为通用计算进行零知识证明的生成与验证。基于独创的自主权数据和自证明计算技术,可以让用户在无需对外发送数据的情况下,实现对数据的分析和计算。通过波卡跨链消息传递机制,可以为波卡生态内的其它平行链以及其他公链提供数据隐私保护支持。项目会采用“零知识证明即服务”的商业模式,打造一站式的多链隐私计算基础设施。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。