Matter 测试网发布

文章介绍了Matter Testnet的推出,这是基于SNARK技术的Plasma扩展方案,能够在测试网上实现每秒500笔交易的处理。文章详细阐述了Plasma的技术背景、SNARKs的应用、技术挑战和解决方案,以及未来的发展方向。

SNARK驱动的Plasma在测试网上实现高达500 tx/sec

Alex VlasovAlex Gluchowski

如果你是一个Plasma开发者,可以直接跳过介绍,滚动到技术细节。

比特币网络在 10年前 的启动开启了技术、政治和经济的新时代。中本聪的发明导致了一个惊人的超过1000亿美元的行业的创造,以及人们头脑中的巨大范式转变:去中心化革命已经开始。

这也大大提醒我们,人类进步往往受到黑天鹅事件和创新突破的显著影响,而非循序渐进的发展。十年的区块链历史一再证明了这一点。以太坊就是零到一飞跃的一个绝妙例子。然而,缺失的东西通常表达得比存在的东西更为响亮。加密货币和区块链技术的各个方面随着时间的推移有所改善,但尽管付出了大量努力,有一件事几乎没有改变:扩展性。

我们需要在这里做一点澄清。许多项目声称已经解决了扩展性问题。实际上,解决这个问题是微不足道的:单个Postgres数据库可以轻松处理数百万笔交易。真正的挑战是:在不妥协去中心化和安全性的情况下进行扩展。这要困难得多。

比特币每秒能够处理5笔交易,以太坊则管理仅为15笔。相比之下,Visa的平均每秒交易量为2000 TPS,峰值可达到数万TPS。请花点时间思考一下:如果分布式账本能够保持平行,则区块链领域会是什么样子?如果大型行业和机构投资者希望在区块链上进行平稳可靠的支付和合同操作,而不受像可爱的猫咪视频游戏这样的小事影响,我们现在会处于何处?

突破已经期待已久。

Plasma回顾

一个有前景的扩展想法于2017年夏天由 Joseph Poon和Vitalik Buterin 提出,命名为Plasma。其主要思想是消除智能合约中不必要的数据,只向公有主链的区块广播简短的加密承诺。承诺交易的正确性验算和交易数据的保存应在链下进行。用户注意到不正确的数据被承诺时,可以在EVM中对操作者提出挑战并回滚区块。

后者的方面带来了许多技术挑战,在过去一年实现Plasma的团队逐渐发现了这些问题。最大的问题是,用户被迫持续监控在线活动。这意味着:1)必须转移和存储大量数据到链下,以及2)没有无缝在线存在的用户无法获得与主链可比的安全保证。

新希望:零知识证明

我们工作的灵感来自于近年来取得巨大进展的技术: 零知识证明 (ZKP)。这是一类巧妙的数学技术,具有多种属性,其中包括计算完备性证据——换句话说,它们使我们能够说服外部观察者某些计算是正确执行的,并且以简洁且易于验证的方式进行。关于ZKP的介绍可以参见GitHub上的 绝妙零知识列表 或者Vitalik的 精彩技术博客系列

具体地,我们选择了一种名为SNARK的ZK技术,基于 Groth协议。SNARK非常适合我们的这个问题,原因有几个:

  • 它们已被密码学家深入研究和理解。
  • 验证复杂度为O(1),这在当前没有敌手。这意味着,无论处理的交易数量如何,在链上验证证明的成本将保持不变(且便宜)。
  • 自从Byzantium硬分叉以来,以太坊为实现SNARK所需的数学原语提供了预编译合约。

使用SNARK的最大挑战是需要可信的设置,然而这个问题是可以解决的。我们将在一个单独的帖子中详细介绍。

进入SNARK驱动的Plasma

今天,我们很高兴地介绍首个完整功能的SNARK驱动的Plasma alpha版本,在Rinkeby测试网上正式上线。

点击这里查看现场演示

(也请在 GitHub 上为我们加星)_

用户对交易的验证被以下方法取代:提出区块的操作者必须提交一个SNARK证明新块是正确的,而这一过程由智能合约自动验证。操作者无法包含不正确的区块,因此用户不需要始终在线并持续监控交易活动。

不幸的是,数据可用性仍然是一个开放的挑战,这似乎在没有权衡的情况下无法解决。我们遵循了 Vitalik Buterin 提出的链上数据可用性方案。每个交易的一个小数据片段(在我们的案例中为9字节)被发布到EVM,以保证所有人能够重建Merkle状态。

从技术的角度来看,这违反了Plasma这个术语的狭义定义,因为存储数据的成本仍与交易数量呈线性关系。然而,由于我们与正常代币转账相比,在气体费用上实现了50倍的降低,我们认为使用Plasma这个名称是合理的,因为最终架构与原始结构相似,并在很大程度上达到了其既定目标。

技术描述和设计理念

在底层,这是一种 L2解决方案,具有账户模型可验证状态转移。我们所称的_状态_是所有账户当前余额的集合,以根哈希为特征。可验证状态转移意味着需要通过SNARK证明下一个区块中包含的每笔交易的正确性。

例如,对于账户之间的转账交易,将执行以下检查:

  • 发件人有足够的资金进行转账。
  • 发件人提供了有效的签名。
  • 交易格式正确,具有适当的nonce和有效日期(应不晚于区块N被包括)。
  • 发件人的余额被正确减少,并且nonce增加。
  • 收件人的余额被正确增加,并且没有更改收件人账户的其他信息。
  • 如果为这笔交易支付了某些费用——该费用正确地添加到该区块收集的总费用中。

其他类型交易也遵循类似的协议。

用户视角的工作流程

用户将交易提交给一个或多个操作者,这些操作者将它们收集在区块中,并将其与SNARK证明一起提交到主链。

用户与测试网的交互可以采取四种不同的操作(交易类型):

  • 注册/存款:用户可以注册他们的公钥并获得一个免费账户号码。
  • 转账:用户可以将他的一部分资金发送给另一个用户。
  • 部分退出:或者可以将其发送到特殊的零地址。转账到零被视为部分退出(不同于下面描述的完全退出),因此,一旦包含此类交易的区块被验证,用户可以使用以太坊网络中的智能合约提取相应金额。
  • 完全退出:我们称之为“完整退出”。该操作提取用户的全部余额并取消注册他们的公钥。
  • 紧急退出:如果网络经历长期停机(所有参与者都没有处理交易),智能合约进入“紧急模式”,并允许每个用户使用智能合约退出全部余额。

存款和退出通过以太坊交易直接在智能合约上发起,转账则在链下提交(例如,通过点对点网络)。

去中心化和抗审查性

未来,我们设想了一个分散的网络,从第一天起便采用多操作员模式。目前阶段,我们专注于强调与SNARK相关的工作流程和现场演示中的基本操作,而多操作员部分仍在进行中。

多操作员模型

为了支持有效的多操作员模式,我们提出了一种委托权益证明(Delegated Proof-of-Stake)来组建一个M个操作者的池。一个随机的抽奖,概率与权益成正比,选举出一个在下一个时间窗口中有权产生区块的操作者。如果被选中的操作者在当前时间窗口中由于技术问题而无法生成证明,智能合约可能允许下一个操作者顶替。

PoS的必要性体现在以下几个主要原因:

  • 将基本操作员的职能(在区块中收集和包含交易)与实际的证明生成分开。这样,我们可以防止过多的权力集中在手握最有效证明硬件的单一操作者手中,从而避免审查。
  • 防止操作者故意或偶然的拒绝服务,即停止制作区块。权益将充当安全押金,在操作者未履行承诺时被销毁。

为了使多操作员模型高效,我们建议采用两阶段的提交-验证方法:区块首先在链上提交,随后进行SNARK证明的验证。这一方案使得下一个区块的内容可以向其他操作者发送信号。这使得操作者能够并行执行耗时的SNARK证明计算,从而使延迟(提交交易到其在链上最终确认的时间)和吞吐量(每秒交易数)相互独立。下面的图片可以说明这一点:

基准测试和限制

吞吐量

吞吐量是一个系统可以处理的每秒交易数(TPS)。

吞吐量的理论极限由其链上数据可用性方法设定:由于每笔交易的某些数据必须在链上发布,一个以太坊区块最多只能容纳约~500 TPS。在实际操作中,当接近这个极限时,气体费用可能会疯狂波动,但我们相信几百TPS是现实的。

目前正进行关于其他链下数据可用性方法的研究。如果研究成功,限制因素将转移到可打包入一个区块的交易数量乘以每秒可以在EVM中验证的SNARK证明数量。

当前EVM仅支持BN256椭圆曲线配对的原生原语。该曲线的群体顺序为²²⁸的单位根,这意味着我们可以高效验证最多256百万约束的SNARK。我们在这些限制下成功打包并验证了1600笔交易(计算是在一台72核心的AWS服务器上进行,耗时20分钟)。通过一些技巧和优化,我们可以在EVM上验证高达3500 TPS。

延迟和交易成本

交易成本由两部分组成:链上的气体费用和链下证明生成的费用(后者与以太坊的气体价格无关)。

当前测试网要求每笔交易的链上气体费用固定为1K。

链下费用和延迟(从广播到最终区块验证的单笔交易的时间)是相互依赖的。延迟越低,计算证明所需的服务器功率越大,因此每笔交易的成本越高。

在100 TPS目标延迟为5分钟时,我们估计链下部分费用约为0.001美元。这个估计非常保守,进一步的优化可能会降低这一费用。

下一步

  • 从“概念验证”转向生产级软件,允许任何人凭十行配置成为操作者。
  • 进一步提升证明生成软件的效率。
  • 完成委托PoS的经济模型以适应多操作者方法。
  • 进行安全审计。
  • 进行可信设置!这对于任何基于SNARK的解决方案来说都是基本部分,也是在以太坊主网上进行生产发布的主要障碍。

建设与贡献

  • 我们在SNARKs上的所有工作都公开在 GitHub
  • 代码示例可以在我们的ETH新加坡存储库中找到—— Plasma WinterPlasma Cash历史压缩
  • 这版Alpha的完整代码将在清理后发布——敬请关注!

进度跟踪

项目的当前状态可以在 这里 跟踪。

鸣谢

Alex Vlasov

Alex Gluchowski

  • 原文链接: blog.matter-labs.io/intr...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
matter_labs
matter_labs
江湖只有他的大名,没有他的介绍。