Misha认为,加密货币行业起源于金融密码学,旨在消除信任假设,而不是使一切可追溯和公开可读。
Mikhail Komarov,昵称Misha,是Nil基金会的创始人兼首席执行官。Nil基金会正在致力于构建最安全的零知识(zk)生成器和零知识证明交易市场,以解决Web3面临的最紧迫问题:构建安全可靠的zk电路作为基础设施,来为未来的Web3铺平道路。
在2023年,零知识技术成为了炙手可热的关键词。然而,Misha指出,“目前流行的Polygon、zkSync、Starkware等roll-up解决方案中,zkEVM电路的黑盒特性稍有不慎就可能会导致重大行业危机,因为这些数据库涉及的流动性相当大。”
本次采访将深入探讨零知识技术的话题,包括其被遗忘的历史以及在Web3上的多样应用。Misha在传统数据库管理领域的背景使他能够就当前区块链行业状况, 为读者提供独到且深刻的洞察。
区块链和传统数据库管理有何本质区别?两者如何兼容?零知识证明是否将主导未来的一切?zk隐私如何颠覆数据分析行业?电路、zk、编译器、数据库等技术术语,又该如何通俗的去理解?
让我们在这次采访中找到答案。
TechFlow: 请您介绍一下自己,并分享一下您如何涉足加密货币世界?
Misha: 我陷入加密兔子洞是非常出乎意料的。
如今很多项目都是先有一项技术,然后再寻找适用的应用。但在2013年,有些人意识到保护通信渠道的隐私和安全的重要性,而Bitmessage提供了解决方案。我当时想,“我们来让它发挥作用吧。”然后我就成为了它早期的贡献者。
在那之前,我刚刚上大学的第一年,还是个学生,我还有更好的事情可做吗?我当时想,“好吧,我已经在这个领域待了一段时间,我觉得我可以开发一些东西。” 这就是我涉足加密货币领域的开始。
在我参与Bitmessage之前,我曾研究数据库管理系统(DBMS)的工作原理,主要是为了在大学里练习使用Cypher语言。
我发现区块链有趣且与DBMS相似,但我不明白为什么很多人不认为区块链是一个合适的数据库系统。
这促使我深入研究这个话题,想弄清楚为什么它被视为仅仅是一个金融加密协议,而不是一个全面的数据管理解决方案(DBMS)。
随着深入研究,我在学习过程中专注于代数拓扑学,最终导致了复杂性理论和密码学。
**这两个路径,即DBMS和密码学,相互交织,**这就是我发现数据库行业和加密行业之间联系的地方。
TechFlow: 2018年,Nil Foundation成立,专注于数据库管理系统和应用密码学的研究。您能解释一下区块链如何可以被理解为数据库管理系统吗?
**Misha: **传统数据库管理系统和加密市场的架构实际上非常相似。
它们都源自于管理和存储数据的基本思想,例如使用DBMS中的提交日志或区块链中的一系列区块。将时间戳排序的基本方法类似于整理提交日志条目。
现在关于加密行业中大规模状态数据的抱怨并不独特,因为传统行业的企业也需要处理管理和维护状态数据。
**这两个行业之间唯一的显著区别在于提交日志或区块序列的构建方式。**建立它们的过程并没有真正不同。这个过程和架构都是根据每个环境的具体需求进行调整的。
在加密行业,重点是在不受信任的环境中减少信任假设,而传统行业更注重效率,可能并不优先考虑信任假设。
我们的研究旨在将传统数据库管理系统行业的原则和成果应用于加密行业,目标是以有利于两个行业的方式来处理数据管理和信任假设,促进融合并找到共同点。
Techflow: 融合传统数据库管理系统(DBMS)行业和加密行业,面临哪些挑战和潜在好处?如何看待可能产生的影响?
Misha: 需要注意的是,开发一个DBMS可能需要超过5年的时间,而加密行业的项目往往具有较短的开发周期。这种开发周期的差异影响了这两个行业的融合。
我们是少数几个试图弥合加密行业数据管理解决方案和DBMS行业之间差距的项目之一。我们的重点是加密行业内的DBMS解决方案,而不是在协议层面。
例如,在加密行业中,互操作性通常是讨论的话题。
使用DBMS方法可以简化互操作性,因为它提供对所有数据库数据的访问。例如,以太坊的锁定流动性是写入其网络的数据,可以直接以相同级别的安全性进行访问。这消除了创建新的数据库(如Roll-ups)时进行数据迁移的需要。
这减少了桥接的需求,简化了不同数据库之间的数据管理。
TechFlow: 在提供透明高效的加密行业数据库管理系统方面,你们的项目在方法上如何发展?你们开发的zkLLVM和zk-SNARKs的商品化如何为实现这一目标做出贡献?
**Misha: **我们当前的重点与最初的想法之间的联系在于,我们意识到需要减少我们的DBMS解决方案中的信任假设。我们希望提供透明性,并证明在数据库管理系统内发生的计算过程。
这使我们开始探索状态证明和共识证明等复杂电路,并与Mina和以太坊等基金会合作,学习和实施这些解决方案。
最初,我们手工创建电路,但这是一个具有挑战性且耗时的过程。为了解决这个问题,我们开发了zkLLVM,这是一个可证明的编译器,可以从可读性强的代码生成电路。之所以要这么做,因为这就是人们在DBMS中正在做的事情,也可以运用到未来的去中心化数据库中。
我们决定利用现有的语言和编译器来生成电路,而不是创建定制的领域特定语言(DSL)。一个电路编译器可以证明几乎任何东西,甚至包括简单的应用程序,如游戏。当你可以证明几乎任何东西,包括大型代码库或复杂计算时,通常需要大量的计算能力和专业知识。
当你处理巨大电路的时,你需要巨量的证明时间,我指的不仅仅是几分钟,我指的是不仅仅是几个小时,而是几天、几周,甚至可能是几个月。
这促使我们引入市场动态,以激励优化工作---通过将zk-SNARKs作为可买卖的商品,我们鼓励验证者和优化者之间的竞争。**这种竞争推动zk-SNARK证明的创新和效率改进。**我们的目标是创建一个需求优化zk-SNARK证明的生态系统,以促进持续改进。
TechFlow:您能简要回顾一下零知识证明的研究和发展历程吗?从上世纪80年代末数学家们提出概念开始,有哪些限制和挑战阻碍了它的广泛应用?
**Misha:**零知识证明的广泛应用受到了几个主要障碍的限制。
在2008年至2010年之前,在出现BFT(拜占庭容错)数据库和协议之前,人们已经开始应用零知识证明来证明那些不愿公开讨论的事物,比如银行或其他工业领域的认证等。
然而,长时间以来,人们一直没有办法证明复杂的、通用的和图灵完备的计算。最初的实现采用的是简单的计算,无法证明复杂的计算。随着时间的推移,出现了更先进的证明系统和算术运算,使得可以证明图灵完备的计算和复杂的组织过程;出现了各种表示形式,如约束系统、特定组织结构和资格站点等,旨在证明复杂的计算和过程描述以及BFT协议。
不幸的是,该技术被广泛误用:人们意识到利用这些证明系统,不仅可以隐藏计算和数据,还可以将大量的计算压缩成小而简短的证明。
正如StarkWare的Eli Ben-Sasson所经常谈到的那样,当人们将这些证明系统用于压缩目的时,就不再需要零知识的特性。
这种误用导致了一系列应用的出现,例如roll-ups、zk-bridges、zk-mls和zk-oracles等,这些应用排除了与隐私相关的应用,而是专注于利用技术提供的压缩机制。事实上,在这些应用中,隐私组件可以从证明系统中移除,而不会破坏其功能。
例如,roll-ups可以在没有隐私组件的情况下运行,因为它们主要利用证明系统来进行数据压缩。这种大规模的技术误用却也导致了该技术在Crypto世界中的广泛应用。
TechFlow:您提到没有隐私功能的零知识证明?如何看待这种技术的"部分使用"?
**Misha: **尽管可以绕过或省略隐私组件,但隐私仍然是这项技术的固有属性和优势。移除隐私方面实际上涉及移除证明系统中的某些操作,如乘法。
这会导致隐私的丧失,但保留了压缩特性。这种压缩属性或许会一直存在,并且是这个行业的承诺方案和计算方式的特征之一。
TechFlow: 为什么我们选择ZK,而不是其他密码学方法?
**Misha: **ZK具有最高效的压缩比率,其他机制无法使压缩数据达到如此小的规模。此外,没有其他技术能够如此轻松地验证压缩数据。
TechFlow: 如果ZK具有这么好的效果,那么zk-Everything是否是区块链的未来状态?
**Misha: **人们已经尝试将一切都应用零知识技术。有些人甚至尝试将游戏引入零知识领域,这相当奇特。
机器学习(ML)算法也已经进行了零知识化。在无信任环境和BFT协议中进行计算仍然昂贵,相对于将计算外包给拥有强大计算机的人而言,更加昂贵。
尽管付出了努力,这些计算仍然是昂贵的。因此,尽管人们会尝试将一切都零知识化,但他们也会追求在零知识之上进行私密执行,使用全同态加密(FHE),并探索证明系统的其他解决方案。
在我们的网站上,有一些使用案例,我们需要在不公开数据本身的情况下生成私密数据的证明。为此,我们采用了零知识和全同态加密技术的组合。这将成为像椭圆曲线签名那样重要且必不可少的技术组件,为系统增加另一层安全性和隐私性。
TechFlow: Vitalik Buterin最近提出了三个关键的转变,包括通过应用零知识技术来增强扩展性和隐私性。鉴于交易数据和地址通常被视为匿名化,您能详细说明零知识证明在加强隐私方面的具体作用吗?
Misha: 在匿名性和伪匿名性之间存在区别。
默认情况下,所有这些数据库和协议都提供伪匿名性。这意味着虽然您可以追溯和观察发生的事情,但您不知道参与其中的个人的身份。伪匿名性是默认状态。
然而,实际的匿名性和隐私性不仅涉及隐藏身份。它还涉及隐藏任何活动的事实,例如转账、操作或交易。这涉及的是不仅隐藏参与者的身份,还要隐藏整体活动。
让我们以Zcash为例,这是一个涉及零知识证明的最著名的例子之一。在Zcash中,数据不是以公开可读的方式存储的,而是被加密并以这种方式存储。
当某人需要修改数据时,他们可以访问数据、解密数据、进行必要的更改、重新加密数据,然后将其上传到公共数据库。
然而,为了确保在这个过程中没有发生恶意行为,进行更改的人必须提供成功解密和正确加密的证明。他们需要证明自己以有效合规的方式对数据进行了操作。
TechFlow: 隐私保护对链上数据分析有什么影响?
Misha: 首先,这种发展将给链上数据分析带来麻烦,使他们的工作变得困难。
当所有数据都被加密和保护时,他们将不得不四处奔波和搜寻数据。这将像一场数据搜索,让人想起古老电影中的场景,某人走到另一个人面前询问是否需要交易数据。
人们将会寻找数据,每次发现一项数据都像在荒野中发现了可以解析和利用的东西。因此,未来将是一个非常有趣的阶段,基于隐私保护使得数据没有那么易得,因此我们可能将进行数据的交易。
TechFlow: 链上隐私保护导致的不可追踪性是否违背了区块链可溯源的意识形态?
**Misha: **当涉及到隐私应用及其出现时,情况有些复杂。对于你的问题,我觉得有时候答案是肯定的,有时候不是。
一切都必须是公开和可追踪的这个想法并不是区块链核心理念。
我认为,加密行业起源于金融密码学,旨在消除信任假设,而不是使一切都可追踪和公开可读。其目的是减少对代码的信任需求并克服这一问题。在这一发展中,隐私应用不会改变其核心目的。
信任假设仍将被消除,但过去看来至关重要的可追溯性,未来我们认为它可能没有那么必要。加密行业并不是为了可追溯性和公开性而被发明的,而是为了消除信任假设而存在 --- 即你可以在信任条件极为苛刻的情况下,通过加密技术和手段,达到对某种事情的共识。
TechFlow: 在ZK应用中存在哪些挑战?比如说通过零知识证明来实现区块链真匿名需要多久的时间?
**Misha: **这可能需要3-5年的时间,因为我们需要解决对抗缺陷的问题。具体来说,ZK技术的效率问题是我们目前面临的主要挑战。
以这种方式进行的任何计算,都会比原生计算慢。
然而,减少这种开销是我们必须优先考虑的事项。我们正在改进编译器,同时也关注需求方,提供像私密版Facebook这样的数据管理解决方案,确保同时具备高效性。因此,效率问题是我们需要解决的首要问题。
其次是如何妥善应对对隐私需求日益增长的问题。随着因缺乏隐私而引起的问题越来越多,对我们这样的解决方案的需求将增加,加快我们研发的进程。
目前,人们由于缺乏隐私而面临各种问题和陷阱。这些问题越多,这个进程就会越快推进。
但由于上述效率问题,开发和利用这些解决方案是具有挑战性的,而且其中一些技术仍处于实验阶段,尚未离开实验室。因此,这是一个需要谨慎开发的高度实验性领域。
TechFlow: 当前ZK所面临的挑战如何体现在Nil基金会的路线图上?
Misha: 我可以肯定地说,在未来几年内,Nil不会做那种私密且不可追踪的东西。
我们希望使数据管理在这个行业中变得恰当。因此,对于那些需要访问和处理数据的人来说,他们不必使用复杂的技术或支付巨额费用来处理琐碎的复杂问题。
我们的目标是使其更便宜、更快速、更便捷。这就是为什么我们肯定会有一个运行中的数据库管理系统。我们肯定会展现出色,并且不会有信任假设。它肯定会是安全的。我们渴望成为行业中最安全的选择。
在对话进行时,Misha正在塞浦路斯,也是他们公司的所在地。当我问Misha“你好吗?”时,他露出了一个耸肩的囧表情,说:“就这样。”这非常真实和可爱!
Misha是我所认识的最有表现力和聪明的技术创始人之一。他幽默直接,与人相处时确实非常随和。我很感激Misha耐心地回答我所有的问题,包括那些看起来幼稚和初级的问题。
对没有技术基础的读者来说,如果好奇到底零知识证明里的电路是什么、具体为什么要编译器?如果不需要编译器,传统的制造电路方式是什么?关于这些问题的回答,以及具体零知识证明的应用场景,详见以下附加阅读。
TechFlow: 电路编译器是如何工作的?为什么我们需要它?
**Misha: **要证明特定的计算,就需要电路。人们采用了几种不同的方法。
有些人为不同类型的zkEVM手动创建自己的电路。然后在自己的数据库或系统集群(如roll-ups)中使用这些电路,将zkEVM作为执行环境;同样,在我们的数据库管理系统中,需要一个执行层来处理数据。这遵循类似于MySQL的传统数据库中的架构,其中有一个执行层或虚拟机。
目标是透明地证明数据上的计算,减少信任假设并避免黑盒方法。为了实现这一目标,个人可以构建额外的zkEVM,或者将代码进行编译并获得所需的电路。通过这样做,他们可以证明自己的数据或来自其他来源的数据上的计算。
构建zkEVM可能需要几年的时间,结果会产生复杂的电路,即使像Vitalik也认为存在电路安全问题。
与在接下来的十年里花费大量资金进行审计或努力理解复杂电路不同,更有效的做法是从原始EVM代码或其他来源编译电路以生成电路。我们在升级状态证明和共识证明电路的过程中也面临着同样的问题。我们花了大约一年的时间来完成它,当完成时,我们意识到了它的重要性,尽管并不是每个人都完全理解从开始到结束的整个过程。为了避免这种情况的发生,我们建立了这个编译器。
这种方法消除了安全问题和处理大型电路的复杂性。
TechFlow:电路的含义是什么?
**Misha: **电路用于定义被证明的计算。每个特定的应用都需要自己的电路。在zkEVM的情况下,它们通常对所有计算使用一个电路,这是可以接受的,但效率不高。
此外,这些电路往往庞大而难以理解,难以发现任何安全问题或漏洞。如果一个受欢迎的roll-up(如Polygon、zkSync或Starkware)使用的电路存在漏洞被利用,可能会导致整个行业的灾难,考虑到这些数据库的大量流动性和依赖性。
为了降低这种风险,我们的网站提供了一个编译器,可以从可读、易懂、可移植和透明的代码生成电路。这确保电路不仅依赖于难以核查或分析的不透明构造。
此外,不同的服务(如ZKML、ZK Oracle、ZK Bridge以及各种共识证明和状态证明)需要不同的电路。为了提高效率并避免为所有计算手动创建统一的电路,我们的编译器允许生成针对每个特定服务量身定制的专用电路。这简化了过程,并确保在证明所需计算时提高效率。
通过提供一个从可读代码生成电路的编译器,并能够为不同的服务生成专用电路,我们的目标是增强透明度,防止行业范围的灾难,并提高计算的整体效率。
TechFlow: 电路是如何工作的?
**Misha: **本质上,所有电路都是经过优化步骤的程序表示,产生了有限域上的多项式布局。
例如,计算 "a + b" 的简单多项式表示看起来像 "a + b = 0",其中包含替代数据和系数。然后,您有变量,它们用系数替代,您替换相应的数据。这个过程遵循传统的优化方法。
随着程序变得更加复杂,电路或多项式集合的数量会增加,这些电路或多项式表示通过这些多项式来表达。因此,电路本质上看起来像是一个由多项式组成的集合,这些多项式在无限域上进行各种操作,具体取决于要证明的计算。
总体而言,目标是通过代码编译电路,并将计算表示为一组多项式,以确保透明性并降低复杂性。
TechFlow: 您提到的zkLLVM,如何运用到去中心化GPU市场?
**Misha: **关于这个话题,有些情况下,人们使用分散GPU计算的概念来进行机器学习。如果他们需要证明某些计算已经执行,使用基于ZK的方法将对他们有益。
例如,这可能适用于我们网站的ZKML使用案例。当个人利用分散GPU计算进行机器学习,并且需要提供计算的证明时,他们很可能可以访问代表计算的代码。
该代码将在他们的云平台上可用。如果代码可以编译成zkLLVM,例如CUDO、OpenCL或CPP,甚至如果有人用Rust编写了GPU代码,将给定的代码编译为LLVM并生成所需的证明就成为可能。这种集成似乎很直接,而且确实是个好主意。
Techflow: ZK相关技术是否也可以在DeFi量化交易中使用?
**Misha: **加密模糊化将是交易上追求的目标,以隐藏执行的算法,特别对从不公开其交易策略的大型交易员来说非常有用。
为了在分散和无信任的环境中运行这些策略,他们将需要加密模糊化来隐藏其算法,同时确保算法的完整性。
深潮 TechFlow 是由社区驱动的深度内容平台,致力于提供有价值的信息,有态度的思考。
社区:
订阅频道:https://t.me/TechFlowDaily
推特:@TechFlowPost
进微信群添加助手微信:blocktheworld