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