从头开始揭秘 zk-SNARK (一)
近日以太坊基金会公开了正在支持的研发团队的项目和领域,其中涉及「应用零知识证明」的团队和技术最多,近 14 个项目。零知识证明,"零知识"的概念可能有些令人费解,zk-SNARK 很快就会变得复杂,因此让我们从头开始。
本篇文章,星际视界将为读者掀开zk-SNARK的神秘面纱,从密码学展开,对zk-SNARK进行由浅入深的讲解。
密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学。简单地说,密码学是对保密通信技术的深入研究。当人们只希望发送方和接收方查看消息内容时,他们经常使用密码学。
密码学已经存在了几个世纪,最早密码学出现在古埃及,克努霍特普二世(Khumhotep Il)的追随者在他的坟墓上刻了加密符号。密码学早在公元前400多年就已经产生,人类使用密码的历史几乎与使用文字的时间一样长,密码学的发展大致可以分为 3 个阶段: 1949 年之前的古典密码学阶段; 1949 年至 1975 年密码学成为科学的分支; 1976 年以后对称密钥密码算法得到进一步发展,产生了密码学的新方向—公钥密码学。
1976 年,W.Diffie 和 M.Hellman 在发表的文章“密码学的新方向”中首次公开提出了公钥密码( Public-key Cryptography) 的概念。公钥密码的提出实现了加密密钥和解密密钥之间的独立,解决了对称密码体制中通信双方必须共享密钥的问题,在密码学界具有划时代的意义。
加密货币世界中最常见的密码学元素之一是哈希函数,它是任何区块链的支柱。哈希函数——特别是SHA-256,大多数区块链中的哈希函数——基本上将单词短语或数字等输入转换为一个固定长度的加密信息,看起来像这样:
77077b1f4c3ad44c83dc0bdb8d937e9b71c0ef07a35c2664bb7da85be738eacf
哈希函数允许像比特币这样的区块链处理交易,将区块链接到一个或另一个,并确保区块链数据的完整性得到维护。就像哈希函数一样,zk-SNARK是一种密码学形式。它们被用来保证比用户在区块链上获得的更强的隐私。
zk-SNARK是“zero knowledge Succinct Non-interactive ARgument of Knowledge”的缩写,这一长串名字的主体是“argument of knowledge”,即“知情证明”,也就是掌握某事内幕的证据。修饰主体名词的定语由三部分组成,分别代表了此技术要解决的三个问题,分别是:
1、zero knowledge:零知识,即在证明的过程中不透露任何内情,如上文的例子所示;
2、succinct:简洁的,主要是指验证过程不涉及大量数据传输以及验证算法简单;
3、non-interactive:无交互。上文中举的两个例子虽然实现了零知识证明,但Prover和Verifier之间需要经过多次交互才能取得满意的可靠性,而此技术试图彻底避免这些交互。
合起来,zk-SNARK是一种“证明我知道内情的技术,简单、易操作,最关键的是你除了“我是对的”啥也不会知道”。通常我们都称zk-SNARK为零知识证明。
zk-SNARK是"零知识"密码学的一种形式,zk-SNARK 允许加密用户以完全加密的方式在区块链上发送交易,这意味着没有人可以读取它们,同时表示交易以合法方式进行。零知识证明允许A向B证明陈述X是正确的,而不透露任何超出陈述X本身有效性的信息。想象一下,向某人证实你已过21岁,但不透露你的生日或你已经25岁。这是想象zk-SNARKs如何工作的一种有用的方式。
Zcash 是首个使用零知识证明机制的区块链系统,它可提供完全的支付保密性,同时仍能够使用公有区块链来维护一个去中心化网络。与比特币相同的是,Zcash代币(ZEC)的总量也是2100万,不同之处在于,Zcash交易自动隐藏区块链上所有交易的发送者、接受者及数额。只有那些拥有查看密钥的人才能看到交易的内容。用户拥有完全的控制权,他们可自行选择向其他人提供查看密钥。
每一种新的隐藏支付都会在区块链上产生三种类型的记录——通过哈希保护的记录。所涉及的哈希情况表示:交易接收者的地址、发送的金额和交易本身独有的数字。结果是,隐藏的交易依赖于像比特币一样的哈希值,但正是 zk-SNARK 增加了一层新的隐私。像Zcash和Monero这样的加密货币在一些用户中很受欢迎,因为加密行业是由许多自由主义者组成的。这两种货币都试图将自己与比特币等更流行的加密货币区分开来,声称如果你使用他们的货币,就没有人能窥探你的私人财务生活。
zk-SNARK是匿名加密交易的有用工具。但除了隐私币之外,它们也在帮助推动越来越多的其他应用程序。
例如,Celo是一个专注于移动支付的加密货币协议,它希望创建一个更具包容性的协议。
Celo从事产品和工程工作的Pranay Mohan认为,zk-SNARK这项技术的潜力远远超出了那些主张保护隐私的人。Mohan特别指出了zk-SNARK如何帮助发展中国家的人们。“如果我们想想这些人现在如何能够使用加密货币,这几乎是不可能的,他们没有使用Metamask,并在一个随机DeFI项目中投入1万美元,”他说。Mohan补充说,使用zk-SNARK,移动电话用户可以立即与区块链同步——保留加密货币同样的不可信属性,但在不具备高度技术能力的设备上。
尽管zk-SNARK很有前途,但它仍然非常小众。即使在加密这样的高科技行业,很多人也不知道它们是什么。但随着越来越多的公司开始接受这项技术,这种情况可能正在改变。这些包括Aleo,最近从蓝筹风险投资公司筹集了2800万美元的初创公司,用于构建工具,让Web开发能够整合各种互联网应用程序中的零知识证明——该项目承诺让消费者在不透露大量个人数据的情况下浏览网络。
但这并没有阻止全球最大的会计师事务所之一安永(EY)尝试这种先进的密码学。
安永通过运用了非交互式零知识证明算法zk-SNARK,研发了自己的通证化开源协议,成功实现了以太坊公网上第一条私密交易,并将逐步应用于各类区块链企业级应用中,让客户在不牺牲用户隐私的情况下拥抱区块链的潜力。
据Brody说,该会计事务所自己的Nightfall解决方案提供了一种在以太坊网络上进行绝对隐私交易的方法,同时为企业提供服务。虽然对高度私人的金融交易存在监管方面的担忧,但Brody相信zk-SNARK将在未来成为主流。