我们跟Bulletproofs发明人, 以太坊2.0密码学核心组件作者聊聊了零知识证明的最前沿进展……...

我们跟Bulletproofs发明人, 以太坊2.0密码学核心组件作者聊聊了零知识证明的最前沿进展……..._第1张图片来源 | 链闻

撰文&采访 潘致雄

责编 | Carol

出品 | 区块链大本营(blockchain_camp)

斯坦福大学计算机密码学博士 Benedikt Bünz 认为,零知识证明和密码学非常擅长于平衡隐私和透明的需求。虽然有些项目声称使用了非常厉害的新技术,但是这些技术可能还不具有实用性,效率低甚至不可扩展。

在万向区块链实验室举办的国际区块链周活动中,Findora 联合创始人兼首席科学家 Benedikt Bünz 在其中一场分论坛中分享了一种全新的零知识证明技术 Supersonic (超音速)。

Benedikt Bünz 不仅是 Bulletproofs (防弹证明)的发明人之一,还是以太坊 2.0 的密码学核心组件「可验证延迟函数」(Verifiable Delay Functions)概念的作者之一,所以他是加密货币领域非常重要的前沿密码学研究者,在隐私计算领域更是超一流的专家,当然这与他是斯坦福大学计算机密码学博士的教育背景密不可分。

我们跟Bulletproofs发明人, 以太坊2.0密码学核心组件作者聊聊了零知识证明的最前沿进展……..._第2张图片以太坊 2.0 的 VDF 研究进展

Supersonic 是一种新型的零知识证明技术。它代表了一种特定的加密货币用户的需求:匿名, 也就是用户不希望自己的资产和交易记录被完全公开。零知识证明是满足这类需求的一种技术的统称,但是在具体实现上又有非常多的类别,最常见的是 zk- SNARK zk-STARK

Zcash 是 zk-SNARKs 的首个广泛应用,可能现在也算是零知识证明最常见和最被熟知的一种。而这个技术的最大问题是证明者和验证者之间需要一个「初始化可信设置」——这意味着需要一组公共参数来构建 zk-SNARKs,也就是可能存在信任问题。 所以「初始化可信设置」是其他新技术努力尝试克服的最核心问题。

后来 Bulletproof 被 Benedikt Bünz 等人提出,相比 zk-SNARKs,不需要初始化可信设置,但是验证成本可能会高一些,但还是远低于其他技术比如 zk-STARKs。在今年,全球密码学研究人员也陆续提出了各种各样的零知识证明相关的技术,比如说 PLONK、Halo、Sonic、DARK proofs、Supersonic。

不久前,记者有幸采访了 Benedikt Bünz 博士,听听他对于最新的零知识证明技术有哪些看法。采访内容在不影响原意基础上有所编辑。

核心看点:

  • 对于最新的零知识证明技术:PLONK、Halo、Sonic、DARK proofs、Supersonic,该如何选择适合的工具?

  • 除了隐私相关的密码学算法,还有哪些密码学工具值得关注?

  • 通用型的多方安全计算 MPC 平台是不是能和区块链契合的很好?

  • 以太坊的智能合约设计有哪些问题吗?

  • 微信是否可以在区块链上重现?

我们跟Bulletproofs发明人, 以太坊2.0密码学核心组件作者聊聊了零知识证明的最前沿进展……..._第3张图片在 CESC 2017 大会中的 Benedikt Bünz

记者:对于零知识证明技术,其实有很多的种类,比如 Zcash 使用的 zk-SNARKs 和 Vitalik Buterin 经常提到的 zk-STARKs。相比之下,您提出的 Bulletproofs 有什么特点?

Benedikt Bünz:Bulletproofs 更适合在中或低复杂度的交易中使用,但是对于那些非常高复杂度的交易中,验证(verification)过程就会非常耗时。SNARK 的优势是具有很高效的验证速度,但 SNARK 最大的问题是需要初始化可信设置(trusted setup)。

记者:上个月,两位研究人员发表了一个名为 PLONK 的零知识证明论文,试图优化 zk-SNARKs 的问题,而且相比另一个名为 Sonic 的技术有显著的性能提升,而 Sonic 又可以和你们提到的 DARK proofs 结合而成 Supersonic,这些技术有些什么样的关联?

Benedikt Bünz:Sonic 和 PLONK 在零知识证明技术的某些方面有一些进展了,虽然他们还是需要进行初始化可信设置的,但这个初始可信设置再也不是专用(application specific)的了。我们最近发布的 DARK Proofs 算是一种加密学工具,它可以帮助 Sonic 和 PLONK,让他们变得更好,因为可以移除他们的可信设置。所以我们将 Sonic (音速)与 Dark Proof 组合的技术称之为 Supersonic (超音速),用一句话来说的话,Supersonic 是一种无需初始化可信设置的 SNARK。

所以如果有一个复杂度非常高的交易或需要提供一个证明,Supersonic 的验证将会是非常高效的。而且该证明的体积也非常小,比如说只要 10 到 20kb。虽然没有 Bulletproofs 小,但已经非常小了,远小于 STARK 这类需要几百 kb 的证明。

记者:在本月初,Zcash的密码学家作为第一作者发表了一种名为 Halo 的新技术,Zcash 创始人称该研究发现了「无需信任的」零知识证明递归组合,是密码学「长期以来取得的突破」,可能成为「保护和扩展区块链」的关键。对于该技术,您有什么看法?

Benedikt Bünz: Halo 是一种有趣的新技术,他们的论文中还提到了 Bulletproofs。但他们并不是一个 SNARK,因为还是需要一个可信或不可信的第三方才可以更高效。如果只有一笔交易或一个声明,那就不算是 SNARK 了,验证过程也不会很高效。

它只在需要验证很多不同声明的时候才会高效,也就是说在批量验证时的效率会比做单笔验证效率高,所以没有体现出 SNARK 的全部能力。但是 Halo 依旧是一个有意思的想法,可能有潜力会进一步提升 Bulletproofs 或其他技术。Halo 这种新技术还在发展中,还没有经过安全上的证明,还有很多工作需要进行,所以目前还不能算是一个无需信任的 SNARK。

记者: 既然有这么多的零知识证明的相关研究,那对于项目来说,应该如何选择这些不同的技术呢?
Benedikt Bünz: 当然了,肯定是要选用最适合的工具满足特定场景的需求。有些场景中,Bulletproofs 非常适用,效率高并且证明可能只需要 2kb,但对于其他更复杂的应用场景,Supersonic 会更好。其实对于很多特定的应用和场景,通用的工具可能不是很高效,所以我们会花很多时间在探索和优化不同场景中使用更合适并且更高效的算法。

记者:除了以上提到的和零知识证明相关的密码学算法,还有哪些其他的密码学工具值得关注?目前你们会把精力放到这些新技术的研发上吗?

Benedikt Bünz:还有很多,不过可以提两个,其中一个是「匿名凭据」(anonymous credential)。如果系统中用户存储了身份信息,类似于护照一样会有很多数据比如姓名、性别、年龄等等,一般在做 KYC 的时候会需要使用这类的身份信息。

如果用户参与某个活动的要求是 18 至 22 岁,那这个功能就会发挥作用,不需要揭露其他的数据,也不需要揭露用户的实际年龄,但是可以通过系统证明自己的年龄是否在这个范围内,所以也可以称为「选择性揭露凭据」(selective disclosure credential)。这个密码学工具在金融领域的应用里非常重要。

另外值得一提的是在部分场景中需要的多方安全计算(multiparty computation),简写为 MPC。使用这个工具可以之后,可以实现比如说很多人共同参与一个拍卖,但是没有人需要泄露自己的拍卖价格。

但我们还是会把目前的精力放在优化目前已经规划的这些算法,把它们做到更高效。虽然有些项目声称使用了非常厉害的技术,但是这些技术可能还不具有实用性,效率低甚至不可扩展。

记者:现在也有一些核心主打通用型的 MPC 区块链项目,在现阶段 MPC 可以和区块链契合的很好吗?

Benedikt Bünz:如果真的想把多方安全计算 MPC 带入通用计算领域,「低效」是最需要克服的问题。比如说,在一次计算中可能需要多轮的交互,所有计算的参与者都需要在线,所效率会很低,而且在这种去中心化的场景中,你并不知道计算进行中的对手方是谁。

比如说多个医院需要共同研究一组的数据,每一方都有自己病人的数据,也知道其他医院是哪些,它们 IP 地址是什么。MPC 的整个计算过程就是这些参与者互相发送数据,比如量级在 MB 甚至 GB 的数据,之后他们就可以得出一个最终的结果,这才是 MPC 最擅长的场景。这其实和区块链的环境和设定还不太一样,因为区块链可能会有上千个节点,而且节点之间也互不认识。

记者:作为公认的第一个图灵完备的区块链项目,以太坊在通用型的智能合约的设计上还有些什么问题吗?

Benedikt Bünz:从智能合约实现上来说,以太坊是基于账户的系统,合约的语言类似于 Javascript,叫做 Solidity。出于性能的考虑,我们认为区块链本身并不擅长处理通用的计算,比如说以太坊虽然可以做类似于 4+3 的运算,通过 Solidity 语言的处理和计算可以得出结果为 7,但这样做比较愚蠢,因为可能全球上千个矿工都在计算这个题目。所以这类问题我们还不如心算出结果,或者可以通过其他方式计算。所以我们的项目并不会关注在通用计算上。

记者:对于一个专注于金融领域的区块链项目,和通用型公链项目有何不同?

Benedikt Bünz:比如说对于投资基金或借贷平台,他们对于隐私和透明度都有特殊需求。从透明度来说,因为他们需要符合监管条例,还需要给用户和监管方显示他们的偿付能力,并可以被审计。金融应用还有隐私的需求,比如说不能公开用户的余额,公司的商业机密,投资过哪些公司等等。

零知识证明和密码学非常擅长于平衡隐私和透明的需求。

记者:那在密码学和共识算法上与其他通用型的公链有哪些区别?

Benedikt Bünz: 对于密码学,从交易角度来看,是需要专注于建立一种平衡的。Zcash 为用户提供了很多隐私特性,但没有提供可审计性,无法公开其中一部分数据。但比如说在 Findora 平台中,资产可以称之为「智能资产」(Smart Assets),可以给这些资产设立一些预设的规则,例如只能将该资产发送给特定国籍的用户,因为不同国家的监管规定可能不同。

每个人都可以看到这些预设的规则被执行了,但是关于转账金额、何种资产和转账者的信息数据是可以保持隐私不公开的。

而且这些技术都会被模块化实施,所以可以被不同的共识算法使用。但是我们也会公开的一套共识算法,叫做 Finsense。这会是一个基于 PoS 和声望系统的共识协议,用来保证如果 PoS 失败的话也会有相应的回退机制。

记者:我们知道预言机是一个对于区块链非常重要的工具,可以将链下的数据带到链上,这将会极大程度上打开区块链的实际应用场景。那在预言机方案上,你们是如何考虑的?

Benedikt Bünz:我们一直在积极寻找合作方为我们提供预言机工具。不过我们的数据还是会先聚焦在金融机构和金融业务的需求上,比如说让经纪商在链上发行股票,我们已经有一些合作伙伴会提供这类数据了,他们可以帮助提供很多金融数据和金融资产到 Findora 区块链上,我相信这些才是我们所需要的预言机和数据。

对于其他应用类的数据,比如说什么天气数据,或者是运动比赛的数据,这些可能都不是 Findora 目前需要关注的数据,不过我们的平台还是可以与其他的预言机工具互操作(interoperability)的。

记者:在中国,微信是一个绕不开的工具,我们是不是可能通过区块链技术搭建一个微信这种平台,实现聊天、支付、借贷等综合性场景?

Benedikt Bünz:或许聊天工具的部分,是发生在其他平台中,甚至可能不一定是区块链,但是支付和借贷,完全是可以通过区块链实现的。目前中国用户都在用微信,他们储存了用户所有的资产,如果发生了破产那可能就是金融危机了。但是如果将这些业务运行在注重隐私的区块链上,会带来的好处包括,去中心,无需信任,而且当你转账的时候,就不需要将转账的信息给任何其他人知道,交易可以很快的被处理。

还有一个很酷的事情是,区块链还可以提供一种标准化和公开的接入方式。如果微信的支付运作在区块链上,哪怕他们是一个中心化的区块链,用户还是可以基于这些区块链上数据搭建其他 App,他们也就不需要微信的许可和 API 了,所以区块链对于这类标准化是非常有帮助的,相当于给金钱加上了一种开放式的 API。

既然是跨场景的应用,可能会和跨链技术相关,也就是原子交换和跨链协议。以 Findora 项目为例,Findora 本身会有一个公开的网络,但还可能会有很多小的私密网络,比如说许可式的网络。这些私密网络是可以连接至 Findora 公链的,虽然各条区块链可能采用了不同的共识算法,但还是可以在各条链之间转移资产的,因为我们采用了原子交换技术让跨链更无缝。

PS. 如果想了解更多零知识证明和密码学的知识,可阅读以下内容:

640?wx_fmt=gif

推荐阅读:

  • 以太坊交易量第一合约FAIRWIN被爆漏洞, 竟是因为这个接口被滥用……

  • 雷声大雨点小:Bakkt「见光死」了吗?

  • 用万圣节糖果解释什么是“零知识证明”, 可能是关于密码学很通俗的解释了……

  • Spring Boot 面试,一个问题就问趴下了!
  • 10分钟Get拥抱无服务的正确姿势
  • 为什么平头哥做芯片如此迅猛?
  • 限时早鸟票 | 2019 中国大数据技术大会(BDTC)超豪华盛宴抢先看!
  • 解决掉这些痛点和难点,让知识图谱不再是“噱头”
  • 11月4日,上海开源基础设施峰会,不见不散!

猛戳"阅读原文"有惊喜哟smiley_12.png

老铁在看了吗??

你可能感兴趣的:(我们跟Bulletproofs发明人, 以太坊2.0密码学核心组件作者聊聊了零知识证明的最前沿进展……...)