我们一直在寻找让 Stellar 变得更好的方法:更可伸缩、更高效、更灵活。通常这意味着我们要直接处理协议。但有时我们想象区块链以完全不同的方式运行,而采用一种更“白板”的方法。对侧链的研究有助于我们学习开发新的特性运用到恒星上。
零知识虚拟机,我们称之为 ZkVM ,很激动地向大家宣布这是我们最新研究的案例。ZkVM 是一个实验性的多资产区块链架构,用于可扩展和保密的智能合约。
ZkVM事务包含对加密数据和资产的可编程约束。个人和组织可以安全地直接在共享的分类账上执行他们的交易和定制的财务协议,而不是将它们保存在孤立的数据库中。
ZkVM 区块链使用了一个只有几 Kb 大小的紧凑的数据模型。交易验证是高度并行的,每个 CPU 内核需要 1-2 毫秒。节点可以从经过网络验证的快照立即引导。实际上,任何计算设备都可以运行完整的节点,无需依赖中间基础设施和可信的第三方。
Stellar 和 ZkVM
所有现有的区块链都有其固有的局限性:
·事务传递、验证、确认时耗时较长,即使 Stellar 已经是目前全球速度最快的区块链之一;
· 区块链可伸缩性差,因为每个节点需要追踪整个系统
· 所有事务必须上链广播的要求往往不能满足市场和企业的保密需求。
· 由于底层区块链协议缺乏灵活性效率低下,很难构建更高级别的协议和应用程序。
Stellar 具有联邦共识机制,在速度和可伸缩性方面做得非常好。我们对 ZkVM 的研究旨在帮助 Stellar 为用户提供更多的隐私和灵活性。
ZkVM是基于多资产分类账设计的,可以与恒星共识协议共存。它可以处理大量事务,允许更广泛地使用完整的验证器,保护机密数据,并支持在区块链规则的基础上创建自定义协议,而无需使用其他特性升级网络。Stellar 将从这些功能中受益。
下面是 ZkVM 的工作原理。
◆ 事务和合约
ZkVM 源于我们之前对 TxVM 的研究,而 TxVM 又受到比特币和以太坊设计的影响。

ZkVM 使用了 TxVM 中首创的一种新的事务格式:每个事务表现为一个程序,该程序直接将资产流作为第一类对象进行操作,并以事务日志的形式向区块链发出必要的状态更新。然后,事务日志可以独立于事务验证直接应用于系统状态,这样可允许进行高度可伸缩的设计,同时为自定义合约提供强大而安全的环境。

零知识证明虚拟机(ZkVM)助力恒星扩大应用范围

在 ZkVM 中,每个输出都是一个储存在区块链状态中的合约。每个合约包含任意数量的项,这些项可以是值或数据参数,受谓词锁保护——为了解锁这些项,必须满足该条件。
ZkVM使用一种变体的 Taproot 设计,允许使用普通的密码签名解锁合约,或者通过显示和执行一个验证自定义条件的嵌入式子程序来解锁合约。

零知识证明虚拟机(ZkVM)助力恒星扩大应用范围

 

ZkVM 中的合约是用于高级协议(如帐户、订单和支付通道)的通用构建块。这将允许像 Stellar 这样的网络将协议中的设计选择移出共识-关键层,从而支持在广泛的分布式应用程序中进行快速实验。
◆保密性
在谓词锁中使用 Taproot 方案可以在保密性和自定义之间进行很好的权衡:如果合约的所有参与方都合作,则不需要显示合约逻辑,但是仍然可以提供安全性,以防他们未能合作成功。当需要显示合约逻辑时,由于使用了零知识证明的约束系统,数据(如余额、价格和其他合约参数)仍然是保密的。
ZkVM 是建立在防弹零知识证明系统的最先进的实现之上。值和数据默认加密,并表示为佩德森承诺。ZkVM 允许用户在加密值上指定算术和逻辑表达式,这些加密值将自动转换为防弹约束系统。
最简单的事务包含一条斗篷指令,它发出约束,证明将 M 个输入值正确地分布到N个输出值。定制合约条件可能会对这些值施加额外的约束,比如完全在零知识的情况下验证贷款所需的利息支付。ZkVM 支持一套完整的算术和布尔指令,允许表达金融合约中常见的任意条件。

零知识证明虚拟机(ZkVM)助力恒星扩大应用范围

 

防弹框架不需要可信的设置,允许每个事务动态地高效地构造一个唯一的约束系统,使事务作者能够在 ZkVM 上创建新的协议,而不需要为每个新特性升级整个网络。
由此产生的事务是紧凑的,可以非常有效地进行验证。小型事务的大小约为1-1.5 Kb ,而聚合支付的边际成本仅为每个输入-输出对200字节。验证是高度并行的,每个输出大约需要1 ms 。因此,ZkVM 不要求用户为了效率而牺牲安全性:默认情况下,所有数据都可以加密,并且仅在需要知道的基础上向授权方公开。
Stellar 将从保密智能合约的实验中获益匪浅,因为它为更广泛的新应用打开了大门。