撰文:Ben DiFrancesco
翻译 & 校对:IAN LIU & 阿剑
本月初,StarkWare 团队推出了全新的以太坊主网 Layer 2 扩展方案。
这个全新的项目—— StarkEx,没有完全按照已被大众接受的现有 Layer 2 架构(如 ZK Rollup、Optimistic Rollup,或 Plasma)来做。StarkWare 的联合创始人 Eli Ben-Sasson 将这种新的 Layer 2 架构称为 「 Validium 」 —— 这个名字获得 Vitalik 的背书,因此 「 Validium 」 的叫法应该是板上钉钉的事。
本期 Build Blockchain 中,我们会通过经典的二阶矩阵,重新回顾以太坊生态系中出现过的 Layer 2 设计;最终引出 Validium 作为收尾,探讨这个新方案的利弊。
Layer 2 二阶矩阵
以太坊 Layer 2 的扩展研究的演进之路已经成为现实中许多工程项目的研究案例。然而理想很丰满,现实很骨感,很多具有前瞻性的想法,直到真正实践的时候,工程师才会意识到可行的方案中充满着权衡及折中的考虑。经过多年的研究和尝试,以太坊 Layer 2 生态的扩展方案可以用二阶矩阵做归结(我第一次看到这么总结的是 StarkWare 团队的 Avihu Levy )。
在区块链 layer 1 中,所有的计算过程和数据存储都在主链进行(交易数据存在区块中,全节点执行所有计算过程);但 Layer 2 不同,我们可以根据 Layer 2 如何解决这两个扩展相关的瓶颈问题(计算 & 数据存储)来对他们分类,正如上图的二阶矩阵所示。让我们继续完成这个矩阵,最终看看 Validium 应该定位在哪。
Plasma
Plasma 由 Vitalik Buterin 和 Joseph Poon 在 2017 年共同提出;Plasma 作为被寄予厚望的理论思想,可以说是开启了以太坊扩展研究的先驱。我们将其放在矩阵右下角:
从本质来说,Plasma 的思想相对直观。为了获得更好的扩展性,Plasma 将计算和数据存储都迁移到 Layer 2 进行;由 Layer 2 的执行者周期性地向主链递交 Merkle 根形式的 「状态承诺」 。如果执行者递交无效的状态,用户可以向主链上的智能合约提供错误性证明(fraud proof);一旦确认执行者出现欺诈行为,则智能合约会罚没他的保证金。
虽然这个想法简单优雅,但细节实现起来却是困难重重 —— 其中一个问题就出在数据可用性( data availability )。虽然说我们可以通过错误性证明,使得提供无效承诺的执行者在主链上遭到惩罚;但用户如果想要提供错误性证明,首先得取得构造出错误承诺的错误数据。这时候问题就来了 —— 如果 plasma 的执行者拒绝在主链上公开数据,那用户能怎么办?(这会导致主网上记载的 layer-2 状态被推进到错误的状态,且无法对执行者追责)
针对这个问题, Plasma 衍生出一些相应的方案,如延长资产从 Layer 2 退出的时间——当出现作恶行为,就能允许大量资产从 Plasma 链退出。但经过这些年的摸索,可行的方案还没有真正实现;这也促使二阶矩阵其他象限的方案的出现。
ZK Rollup
下一个值得关注的方案被放在 Plasma 斜对角象限——也就是 ZK Rollup;有意思的是,ZK Rollup 是由某个以太坊研究员提出的,而非 Vitalik Buterin 。
ZK Rollup 通过一种间接的方式解决了数据可用性问题 —— 将所有 Layer 2 上的交易数据,作为参数发送到主链上的某个智能合约内;这意味任何人都能通过观察区块链上的 「calldata (数据调用)」 来获得 Layer 2 的所有数据,但这同时让 ZK Rollup 能带来的可扩展性优势仅限于计算这一个维度上了。
Plasma 设计了错误性证明激励机制,来保证计算的正确;而 ZK Rollup 则是靠着在主链完成零知识证明,保证无效的状态绝不会发生。因为所有计算都被 「汇总」 到证明里,所以无需信任或是检查执行者。
另外,ZK Rollups 对数据存储方面也带来了一定程度上的扩展性提升。举例来说,ZK Rollups 可以发送压缩过的数据给智能合约,而且全节点不需要将 calldata 存储在活跃状态里面,减轻了全节点的使用负担;在 ZK Rollups 链上无需包含签名数据,因为零知识证明就足以证明交易的有效与否。
ZK Rollup 强大的功能却也成为它主要的短板:这些强大的功能依托于零知识证明 —— 一种非常前沿的密码学方法。ZK Rollup 除了很难安全部署,大众对当前可用的零知识证明接受度也不高,所以现有的 ZK Rollup 技术只专注于应用在某几个特定项目,如 Loopring 的去中心化 Layer 2 交易所。
Optimistic Rollup
为了在 Layer 2 也能使用智能合约,研究者们开始探索一种 「与 ZK Rollups 架构相似,但不依靠零知识证明」 的扩展方案。有个现成的方案是重新采用交互式错误性证明,也就是接下来我们要谈到的 Optimistic Rollups 。
前面我们已经聊过 Plasma 和 ZK Rollup,那么 Optimistic Rollup 也很好理解。Optimistic Rollups 保留 calldata ,可以在主链获得所有 Layer 2 的数据;同时 Optimistic Rollup 采用错误性证明(跟 Plasma 方案一样),对提交无效状态的执行者进行惩罚。
相比于 Plasma 和 ZK Rollup, Optimistic Rollup 做了一些权衡,所以带来的扩展性提升幅度最小。但这也是为什么 Optimistic Rollup 如此令人感兴趣,因为 Optimistic Rollup 不依赖于什么过于前沿的技术或悬而未决的问题,实际推广中 Optimistic Rollup 更好落地。
有多个团队(比如 「Optimism Group」 )都已接近将 Optimistic Rollup 架构部署到主网上。
Validium
最后,终于盼来二阶矩阵中最后一个空格了!这个象限里我们要填入刚完成命名的 Validium,并讨论 Validium 方案的首个落地实现—— StarkEx 。
Validium 选择将 Layer 2 的交易数据放在链下,因而比 rollup 架构有着更高的扩展性。验证计算方面,Validium 不像 Plasma 依托诈欺证明,而是采用零知识证明。如先前在讨论 ZK Rollup 时提到的,这样做会导致 Validium 在目前的应用部署,只能局限于特定目的(普适性低),比如 StarkEx 就是面向去中心化交易所的方案。
但这些权衡使得 Validium 在某些方面优于 Plasma 。在主网进行零知识证明验证能避免执行者提供无效状态,也能降低执行者不公开数据造成的后果。举例来说,想要勾结执行者,让状态错误地转变为 「把他人的钱转到自己账户」 是不可能办到的;因此 Validium 不需要在协议中设计 「大量资金退出」 激励博弈,也不需要延长资金从 Layer 2 退出的时间。
正如其他研究者指出的,零知识证明并不是解决数据可用性问题的万灵丹:比如(恶意)执行者修改自己所控制的账户的状态是没有问题的,然后积压关于这些交易的数据,这会导致某些用户想退出资金时,无法提供 Merkle proof 。
这种攻击在本质上就是冻结 Layer 2 上的账户,也为执行者的受贿行为大开方便之门 —— 执行者可以拒绝提供某用户需要的状态,以此进行勒索或受贿。
为了避免此类攻击发生,StarkWare 团队使用了一种手段,我称之为 「engineering hack (工程黑客)」技术。这个术语我用得很亲切,因为我整个职业生涯中就时常与 「engineering hack 」打交道。StarkEx 系统中包含了一个 「数据可用性委员会」 —— 委员负责对数据签名,并保证数据始终可用。只要其中有一位委员在线且他是诚实的,用户就一定能获得退出资金需要的数据。
Validium 不是最完美的方案,但它可能是目前各种场景最能接受的一种方案,但要记住每件事情都有其权衡及折中的考量。相较于主链上完全去信任的 DEX ,StarkEx 交易所的确面临更高的第三方风险;但作为相应的优点,StarkEx 交易所在性能上高出 DEX 几个量级——高频交易者非常看重这个优点。而相较于传统的中心化交易所,Validium 仍然安全得多,也最大程度地去信任化。
生产过程公开化
正如我先前提到的,以太坊 Layer 2 的扩展研究是工程领域很好的例子,因为原先工程领域那些放在台面下、不为人知的研究过程,在以太坊中都能看得一清二楚。当然如果有人对其看似曲折而缓慢的发展过程冷嘲热讽,我也不会觉得太惊讶。
在大多数研究的开始阶段,会有许多方案的迭代转换发生在设计台面下;随着工程师被迫直面理论与现实的差距,一个可实施的方案真正需要做的权衡,才会成为关注点。对于以太坊 Layer 2 扩展研究来说,这些不同方案的发掘过程是直接放在台面上讨论的;业内的大牛和方案支持者们都能够详细的审查这些方案,贡献自己的心力。
就我来说,我觉得以太坊 Layer 2 生态非常健壮,研究者和开发者通过反复试验,煞费苦心地制定出 Layer 2 的设计框架。现在许多的团队都在加紧寻找能够满足用户实际需求的具体的解决方案,这过程当然包含很多权衡和折中。考虑到最近几个月以太坊 Layer 2 的发展,以及以太坊主网越来越拥堵的问题,我认为 Layer 2 方案已经箭在弦上、蓄势待发。我猜测在接下来 12~18 个月内,就能看到 Layer 2 方案套用到实际应用中。
让我们拭目以待。
来源链接:
本文来自,仅作分享,存在异议请联系平台删除。本文观点不代表刺猬财经 - 刺猬区块链资讯站立场。