详解Vitalik力推的zk-SNARK

作者:tmel0211来源:Twitter2023-05-22

注:原文来自@tmel0211发布长推。

在黑山EDCON大会中 @VitalikButerin V神系统阐述了以太坊网络在扩容、隐私、安全等方面存在的技术挑战,最终得出结论未来10年zk-SNARK将与区块链一样重要。 V神不遗余力推的zk-SNARK到底是什么?zk-SNARK技术到底能解决哪些当下区块链疑难杂症? 接下来的 Thread,我来抛砖引玉大家一起探讨下。

zk-SNARK

SNARK全称为( succinct non-interactive argument of knowledge)即简洁非交互式知识论证,其核心是通过数学算法来构建一个证明系统,使得验证者在不了解原始数据的情况下验证数据本身的正确性。 其实现过程涉及可验证电路、椭圆曲线密码学原理、哈希函数、加密算法等复杂技术,在此不赘论过多细节。

由于SNARK可以把原始数据压缩为一个极小的证明来验证其输入数据的正确性,加之zk零知识的技术基础,使得zk-SNARK可以在区块链扩展性、隐私性、安全性等方面大展拳脚。 特别是2018年以太坊启用了马卡洛夫随机演算法(MAST)后,zk-SNARK可以直接融入到以太坊系统中来解决以太坊网络当下的瓶颈问题。

这正是为何,原生于 @Starknet 的zk-STARK 技术虽然可处理更复杂的计算问题(避免量子计算攻击等),但zk-SNARK却被寄予了更大厚望。 尤其是大家困惑的一些区块链悖论在换上zk-SNARK的底层后都可以有效解决,比如:保护隐私潜在的黑客洗钱问题,social recovery逃不开的中心化机构干涉问题等等。

先说扩展性。zk-rollup技术高度领先于op-rollup,是一套以太坊二层的终局解决方案。

op先默认一切交易乐观化,提交上链后再进行7天的fraud欺诈证明挑战期,而zk则可以直接基于数学算法快速、安全地确保每一笔上链的交易都具备合法性。(具体请参考此前的一篇Thread)。

这里zk-SNARK解决了以太坊扩展性的一个悖论问题,扩展性和中心化的矛盾。 虽然op-rollup解决方案实际落地场景更成熟一些,但其在排序器sequencer,optimistic乐观挑战验证的过程中却还是有中心化的潜在风险的。 我们当然可以“乐观”,但最终要实现绝对意义去中心化的rollup,还必须得SNARK不可。

再来看隐私性。基于现有区块链技术语境,我们发展隐私技术会陷入一个逻辑悖论,隐私最终为黑客做嫁衣不成? 但若基于zk-SNARK,就可以做一套Proof of innocence(POI)方案,在保障用户通过隐私出入金的同时,又规避不法分子用来作恶。 具体而言,可以将POI技术应用到 Tornado类似的协议当中。

POI技术给每个用户提供了基于区块链状态历史记录和私钥生成的数字指纹,当黑客试图通过Tornado的混币交易池洗钱时,若他提供的出金请求地址和入金地址相矛盾(私钥不同),就会被拦截并退回到原始的混币地址中。 等于黑客的不明资产无法通过混币系统逃避追踪了。

当然,还可以像V神演讲中所指的那样,直接构建exclusion list默克尔树,相当于给Tornado协议加入了一个黑名单机制。 正常用户的入金不在list之内就可以生成无辜证明进而正常使用Tornado,反之则恰恰相反。 加黑名单虽然有效,但有中心化风险,个人认为阻挠出入金私钥不一致的交易更有意义一些。

zk-SNARK最后再说说第三方party抗审查悖论(安全性)问题。 Social Recovery功能毫无疑问是区块链大规模应用(Mass Adoption必定要走的路,但从前两天 @Ledger 开放此功能遭受的社区抗议就不难看出, Recovery不可能建立在Third party是中心化的前提下。 而zk-SNARK技术恰好可以解决这个问题。

简单来说,当用户生成多个私钥分片时,可以将碎片加密并使用zk-SNARK证明系统来生成证明,然后将证明分配给可信的机构或朋友。 若用户私钥遗失,可请求第三方提供碎片数据证明,然后使用zk-SNARK来验证这些证明的准确性,进而实现了不透露私钥分片就可social recovery的功能。

zk-SNARK

以上内容被充分理解后,就不难看出zk-SNARK技术对于区块链系统的重要性了,它可以解决扩展性和中心化、隐私性和作恶,安全性和抗审查等种种以太坊网络当下发展悖论问题。 所以V神说zk-SNARK10年后会和区块链一样重要,没准以太坊未来也会zk-SNARK化,嗯,zk-SNARKS Rule Everthing Arround Me。zk-SNARK