Mina 基金会首席执行官 Evan 在 2019 年 6 月做客 Coinbase Speaker Series 和主持人 Justin Mart 聊了聊 Mina 的发展,虽然是陈年视频,但是里面内容也挺精彩,值得一读。

整理和翻译:MinaClub

Mina Protocol 早在 2018 年第二季度时,就获得 Coinbase Venture 的种子轮融资,Coinbase 作为宇宙超级大所,也是目前区块链行业所有项目心中的圣殿,但凡能获得 Coinbase Venture 投资的项目何时上 Coinbase 交易所?所有人都心知肚明,不会不来,只会迟来。

Coinbase Speaker Series 是 Coinbase Venture 在 Youtube 在真人对话采访节目,目前对话过的区块链名人有:以太坊创始人 V 神,莱特币创始人 Charlie、Paradigm 联合创始人 Fred Ehrsam、A16Z 合伙 Vijay Pande 等等,都是区块链行业中顶级机构,技术大拿,加密行业创新变革者。

Coinbase 专访 Mina CEO | Justin 表示 ZK-SNARKs 就是加密魔法

Mina 基金会首席执行官 Evan 在 2019 年 6 月做客 Coinbase Speaker Series 和主持人 Justin Mart 聊了聊 Mina 的发展,虽然是陈年视频,但是里面内容也挺精彩,值得一读。

MinaClub 把采访内容整理成文字版,带大家穿越到 2019 年,那个时候 Evan 还是嫩嫩的,Mina Protocol 还叫 Coda Protocol…..

需要注意的是:Mina Protocol 前身是 Coda Protocol, 因为名字侵权问题,于 2020 年 9 月完成品牌升级,本文大部分会用 Coda Protocol 替代 Mina Protocol。

Coinbase 专访 Mina CEO | Justin 表示 ZK-SNARKs 就是加密魔法

**Justin:**欢迎来到 Coinbase Speaker Series, 我想快速介绍一下介绍来自 O(1) labs Evan Shapiro,建立 Coda Protocol 的团队,我们非常很高兴欢迎 Evan 来参加此次对话,Coda 是一家 coinbase Ventures 投资组合的公司,我们将与 Evan 讨论创办 Coda 背后的灵感是什么,它是如何运行以及它会为这个领域带来哪些创新?

顺便说一下,我叫 Justin,你们会有些人不认识我,自我介绍一下,我在 Coinbase Venture 企业开发团队和风险投资团队工作。今天能和你聊聊天,挺开心的,Evan,我们就从简单介绍你开始,Evan 毕业于卡内基梅隆大学,他拥有科学和计算机科学学士学位,并且在卡内基梅隆大学个人机器人实验室工作期间获得了研究硕士学位,在那里他做过了一些牛逼的机器人平台研究,之后他作为一名软件工程师,任职于 Mozilla。

大约一年半或两年前,他共同创立了 O(1) labs,创办了 Coda Protocol,获得了业内知名加密机构比如 Metastable Capital、Electric Capital、Polychain 等种子轮融资,也获得了 Coinbase Ventures 的投资,作为 O(1) labs 首席执行官,非常欢迎你的到来!

为了更好地了解你,现在你能简单介绍一下自己的个人经历和背景吗?以及你是如何进入加密货币的?

**Evan:**嗯,正如你说的,我毕业于卡内基梅隆大学,攻读计算机科学专业,我去 CMU 之后非常计算机科学,本科毕业之后又攻读机器人学硕士学位。我们做了很多研究,比如基本的运动规划,如果你有一个机器人 , 其中一个机器手臂,里面还有很多关节,你就知道如何更好地移动它,挺有趣的当时。

在那之后我搬到这里,同一时间,我的一个高中朋友,他在克莱尔搬到这里在伯克利大学攻读排版博士学位,我们有共同的爱好,喜欢待在一起研究项目,我们真正开始深入研究的一件事是加密货币。尤其是在 2017 年初,我们看到许多新项目雨后春笋般在以太坊上发行,他们发行项目的愿景都很宏大。
大量项目铺天盖地,什么方向都有,但当时我们更多看到的技术的短板与突如其来牛市的爆发不匹配。

我们开始想,自己能往什么方向,能改进哪些东西,能为技术的短板去做一些尝试,也是从那时起,我们开始考虑建立 Coda Protocol,开始思考当前有哪些技术约束,技术底层要如何构建,以及如果你取消对某柴限制,又会导致什么情况发生。
也就是 2017 年那个夏天,我们就想着创建一个协议,过了大约四五个月,就开始筹集资。

**Justin:**所以,当时就想着直接建立一个 Protocol? 跟多大多数人比,你的经历真的很有趣。当我与大多数人谈论加密货币时,吸引他们的就是币价,看着币价涨涨跌跌,然后他们去交易所买币,最后才参与到这个行业来,而对你来说,最初吸引你的竟然是技术。

**Evan:**是的,我们从 2011 年开始,当时还在读高中就开始关注比特币,比特币背后的区块链技术真的非常给力,非常迷人;你可能喜欢做这个通常需 paxos 算法。加密货币,POW 共识共制都挺复杂,但是研究起来相当有趣。

**Justin:**好吧,那现在让我们一起聊聊 Coda 吧!所以你最后决定发起 Layer 1 区块链, Coinbase Ventures 也参投了种子轮融资,也是一项非常酷的技术,所以我很想听听项目背后的灵感,想知道为什么你决定创办 Coda,你能谈谈 Coda 是什么吗?

**Evan:**当我们开始研究,什么是基础层协议?它是什么样的?它的组成部分是什么?我们注意到的是,是如果你想成为链上的一员,你必须运行了完整的节点,像比特币之类的区块链,你必须验证,下载并访问区块链,当今的技术非常重要,因为您必须完全下载整个区块链,如果你去查看目前的数据状态,基本是几百 G 的容易,完全下载同步数据需要几天时间,而且还必须保持时时在线后才能下载完。而且随着更多交易的增加,数据只会变得越来越大。这也激发了我们真正深入研究区块大小,这也正是 Coda 做的技术创新。

**Justin:**具体化一点,我觉得真正令人着迷的是 Coda 的目标是:简洁的区块链,实际上正在将区块大小压缩到极致,接下来我们一起了解它是如何实现的。
你们在坐各位,有有多少人在任何区块链上运行过自己的完整节点?所以我认为我们所有人都通过第三方与这些区块链进行交互,我们不是这些区块链中的本地不可信参与者,当我们考虑时,这有一点是,如果每个人都必须使用第三方服务,这将如何保持去中心化以及我们将如何去创建基于这些东西的应用程序和项目。
这是我认为团队 Coda 的核心要解决的问题。

我认为这是一个非常技术性主题的谈话,尤其是 Coda 正在使用 zk-SNARK 去做一些真正具有开创性的事情,我想让我们谈谈它是如何实现的?你尝试讲得简单易懂点,你解释一下,Coda 如何能保持简洁性?

**Evan:**好吧,让我来试试吧,所以通常当你有一个加密货币并且你想使用它时,你想验证它,你必须下载区块链中的所有区块块,下载完你就拥有所有的数据,但是,如果你要添加更多区块,这区块链会越来越长。
因此,让我们思考一下区块链的用途,它所做的是向我证明世界的某些状态就像世界的真实状态和世界的最强状态,一些数据库,一些分类帐本,是真正的分类帐本。
那我们就得发出疑问:为什么这些证明必须 n 个区块那么长。

有没有办法以某种方式压缩它,答案是肯定的,您可以使用零知识证明来创建数据库当前状态证明,同时保持体积非常非常小。
事实上,一个证明仅仅是恒定的大小,而且仅有几千字节,所以一旦你有了,你就不需要下载整个区块链。您只需要保存数据库的当前状态以及该数据库就是您想要的样子的证明。

**Justin:**可以这么理解吗?当每个参与者都获得区块链的这个非常简洁的证明时,其他人必须下载整个历史交易,对吗?

**Evan:**不完全是这样,他们可以选择持有它,然后你知道它与任何其他区块链相同,如果他们愿意,他们可以查看整个历史。但要成为共识节点,你所要做的就是保持区块链的当前状态,这意味着你只需要在当前时间保持所有当前账户余额,如果情况发生变化,你可以忽略旧数据。

**Justin:**这挺有趣的,你能谈谈目前区块链正在努力解决的问题和用例吗?

**Evan:**是的,所以我的意思是我们只是简单地讨论了一个,就像你现在想要下载一个完整节点需要几天时间一样。当您拥有同步区块链时,您可以立即下载完整节点。这意味着通常在加密货币中,区块链的扩展性和去中心化之间存在某种紧张关系。

以比特币为例,他们将区块大小保持在非常低的水平,是因为他们希望最大限度地保持去中心化。如果区块体积,你需要向区块链增加越来越多的数据,并且它体积大小会增长得越来越快。对于传统区块链来说,不敢让区块体积变得太大,但是一旦你的区块链大小不变。您可以将区块大小设置为您想要的大小,跟网络可以处理的大小一样大。因为它只是被折叠成这个很小的零知识证明,它也不会影响链的去中心化,这是你获得的一个很大的优势,可以保持吞吐量和去中心化。

**Justin:**那么一个简洁的区块链究竟是如何同时实现可扩展性和吞吐量,你也给大伙分享一下?

**Evan:**是的,所以让我们考虑一下什么是吞吐量,吞吐量是您在单位时间内添加到区块链的交易数量,这实际上是区块体积大小。因为如果您的块大小是每分钟知道每个单独的区块,并且您将块大小增加一倍,那么吞吐量就增加了一倍。
所以通常这会很糟糕,因为你正在增加区块链增长速度,这对去中心化不利。但是有了 Coda,一旦你有了一个区块,里面有所有这些交易,你就把这个区块变成一个新的零知识证明,你就不需要再保留这个区块了。您拥有新数据库的新零知识证明,因此这意味着您可以使区块大小非常大,但您的证明大小保持不变。

**Justin:**让我们深入了解一下 ZK-SNARKs,它就像是一种神奇的观察技术,加密魔法,密码学魔法。虽然我有数学背景,但我好几次试图理解 ZK-SNARK,但这玩意对我来说很难,即使因为这是 Coda Protocol 的核心部分。我想知道你是否花点时间解释一下 ZK-SNARKs 是如何工作的 ? 实际上它们是如何最终创建一个非常简洁的证明?

**Evan:**我想我们可以在几个层次去理解零知识证明,让我从一些有点技术性的东西开始,然后我会用类比的方式让大家更容易理解。
如果你想象你想要运行一个计算,通常来说,如果你想知道那个计算的结果,你必须自己运行它,你必须知道告诉你的计算机:「好吧,我已经输入数据,让我们看看输出结果会是什么啥?」,让我们看看计算结果是否真的符合我们的预期。

而零知识证明,让我们做一些不同的事情,那就是,不需要自己运行程序,其他人也可以运行程序,有人在互联网上随机给你一些证明,这些证明跟你自己运行程序得到的「证明结果」是一样的。

所以这很棒,因为使用区块链,您不必运行检查整个区块链的计算,您只需检查代表该计算的零知识证明。

撇除技术层面的理解,可以这么理解,去思考:就像你知道一块巨石一样,我想向你证明我知道它存在。我能做的一件事就是带你去看那块巨石,或者我拖着那块巨石,然后拿到你面前。
我可以做的另一件事是在给那块巨石拍张照片,然后我可以给你看照片,因为你可以在照片中看到它,你相信它存在,这就是零知识证明,就像几乎没有证据表明某物确实存在,您不必真的看到事物,因为证明(这张照片)完全证明了它的存在。

**Justin:**挺有意思,零知识证明在本质上是将区块链的状态封装成一小块数据中,这是一个递归证明,递归如何在 Coda 区块链中发挥作用?

**Evan:**你设想一下,如果每次我们向区块链添加新数据时,我们必须重新计算这个证明。那真的非常头疼,因为当区块链长达 10 米时,也许这就是你大小 10KB 证明,但是当区块链长达 10,000 米时,现在你的证明是 10,000KB 大小,也是很大的。
所以你需要一种方法能够在每次更新区块链时做恒定的工作量来进行更新,这就是递归的用武之地

比如现在我们要对区块链进行更新,我们采用现有的区块链到为目前为止的 Coda 区块链,比如第 5000 个区块
我们查看我们为此拥有的证据,我们将这个证据与一个证据组合在一起,说明我们要添加到证据中的数据也是正确的。所以现在我们有证据证明我们有一个长度为 第 5,000 个区块的区块链,然后我们再加多一个新块就了。

现在我们可以创建一个第 5001 个新证明,所以也是递归更新证明的,所以这样做非常省时省力省工作量。

**Justin:**我不知道能不能有更简单的方式去理解 ZK-SNARKs? 技术性太强了 ! 我所理解的就是,递归证明就是证明上再叠加证明,再叠加证明。所以每当有人需要加入 Coda 生态系统时,他们所需要的只是当前的递归证明,该证明在编码是一种零知识证明方式,但它背后实际上有区块链存在,由所有其他区块连接在一起,并在那里编码,并编码交易根 . 在某个地方有一个分类帐本,所有这些都经过数学证明和验证过的。

**Evan:**是的,就好像一张照片,一张照片,一张照片的照片,或者每张照片都包含在照片中,一张代表以前的区块链,就像你添加的东西一样,可以这么理解。它更像照片隧道一样递归 , 可以让你追溯到创始块。

**Justin:**对,照片隧道,一直沿着创世块向下寻找。所以当我们考虑这对终端用户意味着什么?我的意思是问你们有多少人在任何区块链中运行过完整节点?我想答案不是很多。因为今天的全节点和任何其他区块链很难做到你拥有整个交易历史,你必须让历史在每个块在应用时向前滚动每一个状态变化。
而使用 Coda,你只需要一个非常小的数据,其中包含一个证明存在区块链的证明。

**Evan:**是的,所以我们讨论了一些关于可扩展性的问题,但我们讨论了对终端用户的影响,还不止这些,因为这个证明不仅大小恒定,而且非常小,大约只有几千字节,所以任何使用网络浏览器的用户,都可像使用手机一样在该设备上获得完整的区块链。
Coda 跟其他一对比,你就知道哪个更给力了。如果是一个终端用户,你就不会再考虑你会信任什么第三方,因为你可以让你的设备直接连接到区块链,连接到网络并制作确保它具有最强大的链,并确保具有世界数据的真实状态等。
如果您是开发人员,则不必考虑构建基础设施以将您的用户(如应用程序、他们的用户设备)连接到区块链,因为您的用户设备可以代表您的应用程序完成它可以连接到区块链。

**Justin:**那么觉得从中会有什么样的应用呢?

**Evan:**之前最兴奋的事情就是能够构建像开发人员,终端用户一样可以快速访问并快速为其构建新东西的东西。然后特别让我兴奋的是,App 能够数字货币商店下载,就像你知道数字货币的价值并且能够将它嵌入到应用程序中并构建新的应用程序。
我一想要就更兴奋的更多的是像能够开发协调大量用户的应用程序,就像有很多人访问网站一样,

**Justin:**太棒了,所以我们确实想把它带到一点技术上,因为我认为这是 Coda 协议的核心。我有几个关于构建简洁区块链和使用 ZK SNARK 背后意义的疑问;ZK SNARKs 就像真正创新的新密码学魔法,目前比较新颖,目前密码学领域使用更多的应该那些经过实战考验的。
因为它们已经存在很长时间了,当您使用 ZK-SNARKs 时,您对我们了解系统的边界更有信心,它们非常新颖,而且世界上只有少数专家了解他们。所以我很好奇我们是否应该担心在未来的某个时刻有人可能会找到一种新颖的方法来戳它或打破它。比如我们应该如何考虑这种风险?

**Evan:**就像加密系统一样,SNARKs 就像经过了很好的实战测试,我认为只是因为它们是在未来会因为创新而更加强大。
人们更新认知的速度也跟着技术发展速度而变化,这让他们有点像公共知识,而不是像他们只是全新的或他们周围的任何东西,我很高兴人们以同样的方式思考它想像你知道公钥密码学你正在散列我们就像你不一定知道为什么散列有效的所有细节,但就像你知道它经过实战测试并且你相信它有效对于人们真正了解 SNARK。

**Justin:**是的,因此您在这里进行的关键创新之一是如何提高 SNARK 计算效率,并且您提到一点,传统上,使用任何类型的 ZK-SNARK 的项目都需要大量的计算能力,这对你的系统有一定的约束和限制,你怎么样才能提高计算效率,以及它会如何影响开发人员的体验?

**Evan:**影响最大的是,当你决定在你的协议中使用不同的加密语言时(像散列函数和公钥密码)这样的加密原语时,在 SNARK 内部会比其他的更有效。所以如果你看像比特币这样的东西,例如它使用的散列方案和签名方案在 SNARK 内部效率会更低,但如果你改变您使用的曲线的唇形参数以及您使用的哈希函数,您可以在 SNARKs 中找到非常有效的方案,整体体验就会非常好。

**Justin:**最后一个技术问题,所以如果我们确实必须限制我们使用 ZK SNARK 的方式,以便它们都更有效?这是否意味着在 Coda 上开发构建这些应用程序的人必须使用也确认喜欢这个 ZK-SNARK 系统边界的库或语言?

**Evan:**因此,到目前为止,您在现实世界中想做的每件事似乎都有一个替代方案,ZK-SNARKs 在零知证明中也会有替代方案。
如果你考虑一下你实际上将如何编码零知识证明,那么有两种思考方式。比较特殊的是使用 Coda 时 , 您可以编写类似原始零知识证明代码的代码,嗯,我们编写的这种编程语言是我们写的 SNARKy 或者另一个是我们可以编写一个 SNARKy 程序,该程序充当汇编语言的虚拟机,然后您编写该程序然后进行编译并通过递归 SNARK,您可以将任何您想要的语言编译为汇编语言。

**Justin:**我们可以通过一些方法让这一切变得更好,说老实话,读 Coda 技术白皮书时我头都炸了,顺便说一句,这是非常奥帕卡的数学知识让我们聊聊其他话题,我想谈谈您个人作为创始人,您知道您对 Coda 五年的发展期许是什么?你希望在接下来的五年,你希望看到什么样的进步?

**Evan:**在接下来的几年里,我希望看到人们基本上使用加密货币开发和构建人们喜欢的东西,会有更广泛的用户群,他们也能像喜欢加密货币一样喜欢密码学。这不像是从旧的金融系统中重新创造事物,它正在构建一些对人们来说是新的、有趣的和令人兴奋的东西,我想我已经开始看到这种情况在慢慢发生,人们对加密货币的热情和认知都在不断上涨,或者你知道在互联网上尝试新的应用程序我希望看到这种转变对那些喜欢真正使用加密货币提供财务透明度的人产生影响,现在的互联网系统是非常不透明,就像这是不可能的就像创造一个新事物一样,我真的很高兴看到加密货币和像 O(1) Labs 这样的东西希望在那里产生影响,因为我们可以构建一个新的公平透明系统。

**Justin:**是的,有趣的是,你提到了财务透明度,另一方面,我注意到其他建立在 ZK SNARKs 上的项目都将其应用于匿名隐私支付,而 Coda 是用于创建简洁的区块链。你呢?有计划让 Coda 用于隐私保护?

**Evan:**是的,我认为隐私非常重要,这是我们想要添加的内容。所以到目前为止我们为我们工作的是,就像零知识证明 SAR 已经有点像协议上的原生代码。所以很容易,你可以递归验证一个新块递归私密交易。所以在核心上,就像你知道的,做这种零知识证明的递归组合是必要的,但在某些时候我们希望也能增加隐私。

**Justin:**太棒了,我个人比较好奇,建立 Layer 1 协议中你有没有遇到什么挑战?

**Evan:**是的,我的意思是很多想法每天都会在我们脑海中环绕,我们会想写一个安全协议,有什么人会去应用使用?要如何迭代升级好技术?用户体验会是什么样子?就像是一个!对于整个项目未来的发展,未来规划,是最挑战的事。

**Justin:**有没有在的风险或您认为如何能成功让开发人员和用户以及让人们去使用这项新技术,是非常重要的。

**Evan:**我认为对于我们正在做,还得一步一步往前推进,一点点优化。就像我使用的 github 这类在线工具箱或一些我可以开始使用的东西,我认为一定要保证好精致的用户体验,只有让用户体验好了,这才可以潜移默化去影响他们的想法。

**Justin:**Layer 1 协议的构建是充满挑战的,你需要以非常完美的方式将所有这些不同的小细节联系起来,现在项目走到哪个阶段了呢?

**Evan:**所以触及较少的东西非常简单,就像我认为的那样,因为我们能够像你知道的电话笔记那样构建可以在任何地方运行它简化了我们如何开发东西,因为每个平台都得到相同的待遇,也喜欢每个平台平台有点像自己处理整个基础设施和后端,所以这有助于保证更好的用户体验,因为我们不必考虑所有中间件和中间组件。这可能 Coda 编写者的主要好处之一,我们正在摆脱开发人员和用户之间的中间件限制;
在我们的 Roadmap 中,接下来很快会有公开测试网推出、然后我们会启动公共测试网并且当我们对网络进行测试,确保发布之前一切顺利,开发人员能够开始在 Coda 上构建小项目。

**Justin:**有明确的主网发布日期吗?

**Evan:**我希望在接下来的几个月里会开始先推出测试网,然后我们会你知道我们会看到你知道它看起来像从那里开始的工作量但希望不要太高,主网启动前,需保证一点,那就是它已经非常接近功能完整了,所有组件都通过安全测试;

**Justin:**作为一个技术创始人,你必须非常快速地学习,你认为目前你学到最有价值的一课是什么?

**Evan:**还是会像往常一样寻求帮助,也听了我们们顾问和投资者的很多建议,他们在这个圈子见过大量的项目给了很多建议,我们可以少走很多弯路,我也认为直觉很重要,一但你直觉告诉你你做的事情是对的,你就得勇敢前进。

**Justin:**访谈也快到尾声了。谢谢 Evan. 作为 Coda 的投资者,我们很乐意在运营过程中为您提供帮助,以我们自己的方式,在可行的情况下为你提供指导。