Web2 到 Web3 的临门一脚:为什么是 zkWASM?
我希望我们能成为这个领域的Chainlink,用户不需要感知到我们的存在,但客户在我们的帮助下可以构建从Web2无缝嫁接到Web3的自有技术栈。
Vitalik Buterin因为《魔兽世界》中喜爱的一个角色被暴雪魔改,从而萌生了创立以太坊的想法,至今仍能代表这个行业的初心:如何能在大众喜闻乐见的高并发应用上(例如,游戏)上有效打破中心化服务器带来的恐惧。
正如他在Token2049发表的最新演讲中所说的,错误的道路有两条,要么牺牲实用性来换取去中心化,要么永远成为一个只吸引自身的生态系统。但是,“我们并非注定要被困在这两种选择之中,而是可以兼顾去中心化与实用性”。
为了实现这一目标,整个区块链行业在十几年间发生了巨变,从单体区块链到模块化区块链,从一层区块链到二层区块链,交易的TPS和交易量不断提高,但我们到今天仍未见到真正的mass adoption,也让不少从业者陷入了迷茫。
以rollup为例,目前的rollup倾向于在区块链的存量应用方面做到极致的兼容性,并且在容量上做到指数级别的交易量扩容,这看似已经在兼顾去中心化和实用性。然而,基建做好了,不少L2却成了“鬼蜮”,这是为什么呢?
原因之一在于,目前的rollup基建的前提假设,是当前区块链的易用度和吸引力足够吸引和Web2量级的应用和开发者。然而,在Github2023年开发语言排名中,Solidity、Cairo、Move等语言的普及程度甚至都不能登上排名的前两页。而对用户来说,各种L2之间的割裂、漫长的最终性确认等待时间、实际由委员会治理带来的中心化问题,行业内已经有非常多的讨论,无需赘述。
我们可以想象这样一个场景:如果,开发者可以使用他们最为熟悉的语言,无论是Rust, C++还是Go, 在完全不需要掌握额外密码学知识的基础上,按照他们熟悉的开发逻辑,生产他们想要的游戏,用户,则无需付出额外时间和金钱成本,就能掌控自己的游戏资产和数据,不用再担心某个遥远的地方一个中心化的恶魔只需动动手指就能将其几年的练级成果毁于一旦,或者是肆无忌惮地任意修改规则。那么,开发者和用户会如何选择呢?
这并不是痴人说梦,这实际上就是本文的主人公Delphinus Lab以及其他不少zkVM项目正在做的事情。
为什么需要zkVM?
“以太坊的未来将是多链式的——类似Cosmos那样的多链愿景,但是由Layer1提供数据可用并共享安全性。
——Vitalik Buterin”
未来的世界是属于多链的。就像今天每家公司有一个官网一样,将来每家公司/每个项目也都会有一个连接到以太坊(或者其他去中心化价值网络)的专属rollup,用户在这个项目上的操作会被打包发送到以太坊主网验证,专属rollup负责给用户提供最优的体验,以太坊网络则负责整体的安全性和核心数据存储,以及最为关键的结算服务。
但正如我们前文所说的,现阶段的多链愿景对这个世界最主流的开发者和应用并不友好。数据显示,Web3 开发者的数量约占全世界所有开发者的0.07%,Solidity的开发者只会更少,遑论Cairo、Move等小众语言,这意味着无论是要争抢现有 Solidity 开发者资源的各类zkEVM,还是要另辟蹊径让开发者去掌握一门新的学习曲线非常陡峭的语言,都不是短时间内可以做增量的办法。而从另一个方向上,大量使用传统Web2语言开发的应用,又无法作为区块链原生合约而natively运行在区块链上,这就堵住了链上应用扩容的一条重要通路。
我们需要一种两全其美的扩容方案:既能兼容传统开发环境,又可以将应用trustless地集成到区块链当前的生态中。
目前,ZK技术作为是将程序trustless 集成到区块链的最受认同的主流方,只是不少人对ZK的印象还停留在“难学习”“难落地”,这是因为在ZK技术成熟的早期,人们普遍使用ZK专用语言如Cairo、Noire来开发ZK应用,但这些语言其实比Solidity等区块链开发语言更难被程序员灵活运用。
随着ZK技术近几年的高速发展,这一难题其实已经逐渐被攻克,开发通用型的zkVM不再是遥不可及的梦想。2022年,Delphinus Lab 就发布了第一款开源的支持WASM的zkVM,这也标志着Delphinus Lab在解决应用 trustless 集成的布局中扣上了关键的一环——读者可以阅读Sinka Gao和他的几名同事发表在IEEE上题为<ZAWA: A ZKSNARK WASM Emulator>的论文来了解技术细节。如这篇论文所说,“…我们提出并实现了第一个支持 Wasm 规范的 ZKSNARK Wasm 虚拟机,能够生成执行结果的简洁零知识正确性证明。此外,通过提供 ZAWA,已经编译为 Wasm 的现有程序无需任何修改即可满足云计算和边缘计算中新兴的隐私和信任要求”。
对于不了解Wasm是什么的读者, Wasm是一种得到各大主流Web浏览器支持的字节码,它为诸如 C、C++ 和 Rust 等源语言提供一个有效的编译目标,它们会被编译进你的浏览器,在你的 CPU 上以接近原生的速度运行,2019年它被W3C万维网联盟正式接纳为第四种新的网络标准,具备强大的性能革命潜力。
至于什么是zkWASM,我们推荐阅读Polygon联合创始人Sandeep的这篇Ultimate Guide to zkWASM,在这篇博文中,Sandeep旗帜鲜明地提出,zkWASM 将传统编程的灵活性与注重隐私的零知识证明相结合,为去中心化技术带来了新的用例,同时确保了强大的安全性、隐私性和互操作性,有潜力颠覆区块链行业。
Sandeep为何做如此断言呢?首先Wasm作为一种二进制指令格式,一开始的定位就是可移植、高性能,支持你能想到的几乎所有编程语言,比如C++、Rust、Python、Go, Java, JavaScript, Ruby, Swfit等等,由于几乎所有的网页浏览器都内置了 Wasm 解释器,这意味着开发人员可以根据自己的喜好和项目需求选择适合的语言,提高开发效率和代码质量。加上ZK以后,zkWASM更是如虎添翼。开发者可以选择他们喜欢的编程语言来编写隐私应用程序,而无需任何零知识证明的知识。可以说,zkWASM兼具安全性、可扩展性、互操作性和隐私保护,它不仅解决区块链和 dApp 的问题,还能加速 ZK-ML 和链上 ML 的实现,是理想中的“强强联合”。
保持乐观,但不能盲目
由于zkVM近年的快速进展,一些zkVM的乐观主义者如Polygon Miden的Bobbin Threadbare甚至认为:
“现状下最优的解就是构建一个WASM或者RISC-V的zkVM, 最好能支持Rust, Go, C++, 甚至Solidity等语言,如果有这么一个通用zkVM, 那么对于zkEVM会是降维打击。
但作为zkWASM开源虚拟机的首创者,Delphinus Lab的设想其实更为谨慎,在其2022年所构想的路线图中,zkWASM虽然是整个布局中最重要的粘合剂,但却远远不足以支撑“trustless链接web2应用到web3”的宏伟蓝图,原因就藏在下文的这个公式里:
“开发者意愿 = 经济利益 * 工具成熟度 * 可复用代码量”
– Sinka Gao, Delphinus Lab创始人
从公式的右边我们知道,一个通用虚拟机在驱动开发者意愿上能占到的真实权重并不高。正如Linux 内核需要强大的设备、驱动和POSIX API来体现其价值一样,zkVM打铁不仅需要自身硬,还需要借力成熟的平台、丰富的社区代码以及成熟的经济效应,来实现商业和技术的正循环。
如果读者对于zkVM有进一步的了解,就会发现除了Delphinus Lab的zkWASM之外,这条赛道上还活跃着非常多的一流团队和解决方案,例如RISC-ZERO,Succint的SP1,Valida, Nexus (2.0采用了Jolt)等。当前这些虚拟机主要竞争指标是单位时间能证明的指令数量。例如,RISC-ZERO 2024年中的性能数据是可以做到在 GPU 4090 上做到每一百万RiscV指令证明耗时10-12s。与此同时,Delphinus Lab也为zkWASM的性能优化作出持续努力。目前,zkWASM已经能够支持 64 位指令集,在 GPU 4090 上进行 100 万条指令的证明需要 15 秒,消耗 64G 内存。
2024 Electric Capital ZK Market Map: Core Infrastructure
但,性能就能决定一切么?我们可以再次回到Github历年开发语言的排名榜单,霸榜前三的JavaScript、python、Java,恰恰是性能垫底的脚本语言。
性能只是数字基建的“使能”指标,并不是决定因素,更不能异化为最终目的,陷入脱离使用场景自说自话的军备竞赛。我们的初衷始终是要更多增量杀手级应用。如果我们预测“使能”问题终究会被解决,ZK后端的性能(stark,gkr,jolt,KZG + folding,等等)的工程和硬件优化终会走向摩尔定律。那么等式右边,除去性能还剩下哪些呢?
如芒格所言,我们要去鱼多的地方捕鱼。对web3的mass adoption而言,这个“鱼多的地方”会是浏览器。在目前阶段,我们无法断言究竟哪种zkVM会胜出,抑或是百花齐放,但Delphinuslab 的观点是,Web3 adoption 依然会从小程序开始,而浏览器是小程序的重量级发源地:无论是Chatgpt首发浏览器版本,形形色色的CMS 平台例如shoplify,wordpress都层在浏览器上率先可用,还是浏览器作为Web3钱包的重要载体,Web其实是唯一真正的通用平台,可以在任何设备上访问应用程序。并且,Web应用还在不断进化,从曾经简单的搜索、收发邮件功能,但如今可以承载游戏、视频编辑、音乐制作等等形式。
WASM正是为浏览器而生的二进制编码。有研究员将WASM比作魔法引擎,只需一次点击,即可在需要时在任何地方运行立即运行 Web,无需下载和安装。zkWASM继承了这一优点,用户可以像使用普通应用程序一样在浏览器中使用这些应用程序,而不需要任何特殊的硬件或软件来运行这些应用程序。
有场景,有用户,才有经济利益可言。zkWASM要解决的,是无数中小型Web2应用想要迈入Web3世界的“临门一脚”问题。相比于传统的Java Script,WASM拥有在浏览器上高效运行的能力,将打开把许多其他应用程序带到浏览器终端的可能性,而zkWASM将进一步将这些应用带入Web3的世界,成为Web3大规模采用真正入口的助跑器。
Delphinus Lab路线图
开放共建的生态版图
“我希望我们能成为这个领域的Chainlink,用户不需要感知到我们的存在,但客户在我们的帮助下可以构建从Web2无缝嫁接到Web3的自有技术栈。
——Sinka Gao, Delphinus Lab创始人”
当技术从实验室迈向市场,就技术论技术是不够的,将技术打造成可用产品的工程化能力,以及生态的战略打法,都会更大程度决定技术的成败。
Delphinus Lab从一开始走的就是全心全力服务中小型客户的实用主义路线。在和Blade Games的合作中,Delphinus Labs不仅帮助Blade Games引入了zkWASM为其塔防游戏做验证,还共同合作开发了行业首个可以直接从Unity开发可验证游戏的解决方案。游戏开发可以使用他们熟悉的C#而不是Solidity, Rust或Cairo,也不需要耗时费力地试图将Unity引擎的渲染和动画与基于Mud/dojo的solidity/cairo游戏逻辑代码统一起来。
以这套合作完成的开发方案作为引擎,Blade Games和多个游戏工作室开发了多款可验证的全链游戏如Dune Factory,Craftpunk,以及近期正在进行Beta测试的Scroll链上头部策略类游戏0xPioneer, 成为业内第一个利用模块化ZK技术栈打造完全链上游戏引擎的基础设施提供商。
和MineMatrix的合作也是如此。行业一直苦于绝大部分空投利益被机器人抢走,而真正的用户往往收获甚微,基于zkWASM技术,MineMatrix开发了一款数字游戏模板,让用户在不泄露身份信息的同时,通过解决有趣的NP难度问题证明自己是真人并领取空投,让公平分发真正公平。这个模板是完全灵活开放的,项目可以根据自己的风格或需求,无论是调整故事情节、修改游戏机制,还是集成 NFT,基于zkWASM的这套机制可以 随时为客户提供开箱即用的解决方案。
这也是Delphinus Lab一直以来的定位,除了完成将Web2开发者带入Web3构建可验证应用的使命外,更重要的是站好生态赋能的定位,“我希望和我们合作的客户都可以在我们的协助下拥有自己的技术栈,而不是把我们变成客户的技术依靠。” Sinka Gao表示。
反观这个行业的其他不少玩家,客户集中了行业的头部项目,却很可能陷入了传统2B服务企业的常见误区,即“大公司、小项目”,就好像无数金融IT企业都将大型国有银行列为它们的合作客户,但可能只是帮助改造了内部OA系统一样;另一方面,在与中小客户的合作过程中,又过于大包大揽,只输出封装的解决方案,中小客户在这个过程中并不能得到能力成长。
能力共享是一部分,利益共享是更难做到的另一部分。Delphinus Lab和和验证者的关系是合作共赢,而非简单的供应商-客户关系。以Delphinus Lab, zkCross和Gevolut Network的三方合作为例,在ZKCross Playground这一直观的平台上,开发者可以在线编写代码,将其编译成与 zkWasm 兼容的字节码,用自己的私钥签名,然后上传到 ZKCross 节点,节点会处理剩余的任务,如证明存储,然后将交易和证明存储到模块化区块链的DA层中(如Avail),同时将证明生成转发给Gevolut Network。
在这一过程中,任何人都可以跑节点并分享验证收益,以及未来潜在的空投激励。从今年六月起,Delphinus Lab就向第三方开放了节点运营权限,任何人有兴趣成为zkWASM外部节点的都可以加入其中,并在测试期获取3%的收益激励。
类似这样互助共赢的合作还有很多,例如和ETH Storage, Hyper Protocol联合发布 zkGo 编译器,在行业首次把常规的 Go 代码编译成 ZK 协议兼容的 Wasm 代码;和Pi Squared合作将 zkWASM证明与其通用结算层(USL)做整合等;和开源开发工具Spin合作,帮助Spin的用户是使用 zkWASM构建和运行可验证的应用程序。
Delphinus Lab还会站在行业内每个参与者的角度,思考如何让每个环节都可以在价值链条中获取合理的收益,来促进行业的健康发展。以游戏行业为例,在此前发表的文章《Web3游戏的困境与出路》中他们就贡献了这样的思考,通过mini-rollup SDK构建应用rollup链,在其中提供一键式的借贷平台,通过向用户借贷游戏内部Token,解决游戏用户初期充值难的问题,并且在流通有效地充当游戏资产的原生跨链桥,让游戏衍生品交易的一部分价值被游戏本身获取。
在这个阶段,Web3创业者需要考虑不是如何把有限的蛋糕分走,而是怎样一起把蛋糕做大,只有闸门足够大,道路足够通畅,大规模的开发者和用户才有可能进入,有了源头活水,Web3才不会走入圈地自萌的怪圈和加密虚无主义的迷茫。
不少人认为当前的加密周期是虚无周期,市场沦为美股附庸的涨跌游戏,但实际上,真正底座级别的创新,正在舆论关注不到的边缘迸发。Vitalik说“我们并不是处于加密货币行业的早期阶段,而是处于加密货币真正可用的早期阶段”,这个行业真正的builder们也应该有底气预言,市场最终将回归到有真实收入、真实垄断性、真实用例的“应用周期”。如同Sinka所希望的,在未来五年内,zkWASM可以自证是一个能够在经济上正循环的项目,帮助想要进入Web3的Web2应用踢好临门一脚,成为驱动行业飞轮的重要一环。
欢迎加入深潮TechFlow官方社群
Telegram订阅群:https://www.weixiang28.com/TechFlowDaily
Twitter官方账号:https://www.weixiang28.com/TechFlowPost
Twitter英文账号:https://www.weixiang28.com/TechFlow_Intern