zkMove 最近吸引到很多业内人士的关注,作为项目创始人,我经常会收到一些咨询性问题。虽然关注者的背景各不相同,但所提的问题大多比较相似。所以我想通过这篇文章对这些问题进行整理作答,从而帮助关注者快速地对 zkMove 有一个入门性了解。
首先自我介绍一下,本人全职进入加密领域有三年时间,专注于智能合约虚拟机的研发。在此之前先后在 Intel 和 alibaba 工作过多年,主要从事编程语言虚拟机和系统软件的研发和优化。
Q1.zkMove 是什么?
zkMove 是一个智能合约运行环境,就像 Java 运行环境用来运行 Java 程序一样,zkMove 用来运行用 Move 语言编写的智能合约。和 Java 运行环境一样,zkMove 也会依赖底层操作系统。不同的是,这里的操作系统不是我们平常所说的 Windows、MacOS 或者 Linux,而是各种不同类型的区块链。zkMove 用来承载计算,区块链用来做结算。
不同于标准的 Move 运行环境,zkMove 是一个零知识证明友好的运行环境,用户在执行 Move 合约的同时会生成一个零知识证明。这个零知识证明可以用来快速验证智能合约的执行过程有没有被篡改,以达到即时结算的目的。
Q2.零知识证明这个概念太抽象,能否以通俗的语言解释一下?
零知识证明是密码学里最前沿的领域,目前使用最广泛的是 SNARK(简洁非交互式知识性论证),主要用来做可验证计算。举一个例子。我们都知道 Hash 函数的用途,它可以将任意长度的消息压缩成一个固定长度的摘要,有了这个摘要,就可以用非常小的开销验证消息有没有被篡改。SNARK 与 Hash 类似,它针对的是“计算”而不是“数据”。生成证明后,无需重复运行程序,就能以非常小的开销验证计算过程有没有被“篡改”。
对于零知识证明,人们通常会有一个疑问。零知识证明的验证过程非常快,但是生成证明的过程非常耗时,从能耗的角度,使用它好像不值得。这个问题可以换一个角度来思考。区块链由成千上万台节点组成,需要在每台机器上重复执行所有交易才能达成共识。如果通过 SNARK 来验证交易是否有效,则每台机器上无需重复执行一遍交易了。虽然在一台机器上生成证明比较耗时,但相比所有机器上总共节约的能量,还是很划算的。
阻碍零知识证明普及的障碍主要有两个,一个是性能,另一个是通用性或者说“可编程性”。性能问题可以通过并行和硬件加速解决;可编程性问题可以通过零知识虚拟机来解决。对任意的程序,零知识虚拟机可以自动生成算术电路。zkMove 就是一个典型的零知识虚拟机。
Q3.为什么是 Move,而不是其它语言?
这与我的工作经历有关。我是最早的一批 Move 开发者,2019 年 FaceBook 发布 Libra 的时候就开始使用 Move 了。我用 Move 写的第一个应用是一个五子棋游戏。世界上第一本介绍 Move 的电子书(作者是 Damir Shamanaev),我是中文译者。最早主网上线的 Move 公链 Starcoin,我是核心开发者,踩过许多前人没踩过的坑。正是长时间近距离参与 Move 语言的进化,我对 Move 的安全性有了深刻的认识。每次看到某加密币被盗的新闻,我就想着那一天能让这些应用都跑在 Move 运行环境中就好了。这就是我为什么选择 Move 而不是其它语言的原因。
Q4.项目开发到什么阶段了?下一步计划是什么?
zkMove 仍处于早期阶段,目前已经实现了一个基于栈的字节码虚拟机,其操作数栈、本地变量和全局状态里存储的都是有限域元素。在此基础上我们实现了一个适合所有 Move 程序的 VM 电路。VM 电路由多个子电路组装而成,包括执行电路、字节码电路和内存电路。执行电路用来约束每条指令被正确执行,字节码电路验证正确的字节码被加载,内存电路保证内存一致性。执行电路已经实现对栈操作、本地变量读写、算术运算、逻辑运算、跳转、函数调用等指令的支持。
在完成对更多指令的支持之后,我们会尝试将 zkMove 作为执行层,通过 Rollup 的形式接入 Move 生态里的代表性公链,也会尝试与 EVM 生态对接。具体的方案还在调研与设计中,我们会面向真实的用户需求,能够支撑金融、游戏、以及更多对隐私安全要求较高的应用场景。
Q5.和竞争对手相比 zkMove 有什么优势?
目前我还没有听说有其它团队在做 Move 语言的零知识虚拟机。Move 开发者在开展一项工作,将 Move 转成 Yul 中间语言,再将 Yul 转成 Miden 汇编语言(Move -> Yul -> Miden),然后使用 Miden 虚拟机生成证明。这个方案借道 Miden,无需再额外开发 Move 虚拟机。和这个方案相比,zkMove 有其独特的价值。因为 Move 语言的安全性是由 Move 虚拟机保证的。将 Move 转成 Miden 后,Move 语言的安全特性还能保留多少呢?而 zkMove 和原生 Move 虚拟机完全兼容,能够继承 Move 所有的安全特性,这是 zkMove 的优势所在。
Q6.能否介绍一下团队?
zkMove 去年 7 月开始写下第一行代码,到现在也一年多了。随着 Move 语言关注度的持续攀升,是时候把它打造成一个产品了。zkMove 拥有一支强大的顾问团队,他们有来自编程语言虚拟机、区块链、零知识证明领域的顶级技术专家,还有来自市场战略、伙伴关系和投资领域的行业领导者。我们正在组建核心技术团队,欢迎区块链、智能合约、编程语言虚拟机、零知识证明领域的开发者加盟!
Q7.zkMove 未来的发展空间有多大?
展望未来,虽然会有很多不确定性,但我认为整个社会的数字化进程不会改变,甚至很可能进入加速发展阶段。无论是 Web3 还是元宇宙,智能合约和零知识证明技术都会处于非常核心的位置。我们将长期专注于打造最安全、高效的智能合约运行环境。
拓展阅读
推荐阅读
关注 Aptos world
发现 Web3 时代新机遇
公众号后台回复“1” 加入 Aptos 官方社群
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。