随着稳定币等应用的繁荣趋势,以太坊Layer 2扩容之争近期已箭在弦上,而争对DeversiFi最近采用的Validium 解决方案,Matter Labs创始人Alex Gluchowski撰文提到了该解决方案存在的两大问题:1、可冻结用户资金,2、可没收用户资金,因此,其认为Validium方案可能会适用于传统的高频交易或具有较低信任假设的游戏,相比之下,完全无需信任的zkRollup方案则非常适合扩展去中心化的加密支付。
以下是译文:
DeversiFi最近推出了一个新版本的交易所,其底层动力是由StarkEx提供的。这是一项令人难以置信的技术成就,它提高了加密交易所的安全级别。这也标志着一个历史性的转折点:这是史上第一次在生产系统中应用STARKs(没有可信设置的简洁零知识证明)。
在后台,StarkEx实际是一个Validium(一种Layer-2的扩容解决方案),其所有交易的有效性都是通过零知识证明来实现的,而数据的可用性仍然保持在链外。这可以防止Validium中的资金被盗,因为来自给定用户帐户的每一次价值转移,都必须经过该用户的授权。
Validium的机制与zkRollup非常相似,唯一的区别是zkRollup中的数据可用性是在链上的,而Validium则将其保持在链外。这允许Validium获得更高的吞吐量,但它是需要付出代价的:
代价1:StarkEx Validium的运营商可以冻结用户的资金
“The people who can destroy a thing, they control it.”(对于可摧毁某项事物的人,他们会控制他,直意是指控制住核心,就能够控制住相关的所有事物)
——弗兰克·赫伯特(Frank Herbert), 《沙丘》
没有zkRollup的数据可用性保证,Validium的运营商(或者更准确地说,是数据可用性管理者)能够拒绝任何用户转移资金的权利。
它是这样工作的:运营商对默克尔化状态进行了微小的更改,而无需向用户透露状态更改。由于缺乏这些信息,用户无法为自己的帐户创建默克尔(Merkle)所有权证明。
说明:如果运营商更改了帐户d3.则帐户d1的所有者在证明其帐户所有权时,将缺少所需节点m的信息。
在Validium中是否有方法可以防止数据预扣攻击?自2016年Plasma概念被提出以来,这一问题一直被广泛讨论,而zkRollup就是解决该问题的研究成果。相比之下,非rollup尝试以不可靠的方式确保数据可用性,这将导致Validium失去大部分竞争优势。
虽然这一问题并不能完全解决,但StarkEx通过引入一个许可数据可用性委员会(DAC)来缓解这个问题。DAC必须通过其成员的法定人数签署对状态的每次更新,来确认它已接收到数据。在StarkEx中,DAC由8位参与者组成(添加太多成员将危害系统的活性),而这些参与方也都是声誉很高的组织。他们不太可能会滥用自己的权力,但自相矛盾的是,知名度高、声誉好、居住在一个强大的司法管辖区,正是使它们脆弱的原因。一个可能出现的情况是:运营商必须执行KYC/AML法规,并有义务冻结交易历史超过1万美元账户的所有资金。
随着我们深入研究,问题也变得更加有趣。StarkEx实施了验证者合约升级机制,该机制允许运营商立即将新item添加到验证者合约链中,而这个过程无需延迟。这不能使任何旧逻辑失效(例如,你不能删除用户签名检查)。相反,它允许添加额外的约束(就Solidity而言,你可以将约束视为`require()`语句)。
这是一个很好的安全特性:如果在StarkEx的STARK电路逻辑中发现任何丢失的约束,它可以在不引入任何新漏洞的情况下快速修复。然而,这一功能理论上也可以被用作隐藏的审查后门。简而言之,StarkEx运营商总是可以将扩展部署到引入黑名单的合约逻辑,而无需事先向用户发出警告。从他们的文档中还不能完全清楚,但是看起来执行新规则不需要获得DAC的同意。
如果你将StarkEx视为完全去中心化的交易所协议,这就没有多大意义(作为对比,想象一下,Vitalik Buterin拥有一个可立即冻结任何以太坊账户的开关)。
另一方面,如果你将StarkEx视为是加密交易所的安全增强功能(其创建者肯定会这样做),那么它是完全有意义的。
代价2: StarkEx Validium的运营商可以没收用户的资金
让我们扩展思想实验。出于任何假设原因(很可能是由于运营商无法控制的情况),许多用户的资产现在已被冻结了。那接下来的问题是,用户在StarkEx上的资金,可以被没收吗?
事实上,这是可能发生的。
StarkEx与很多其它加密项目一样,实现了一种最先进的升级机制。用户在新版本部署前28天会得到通知,任何不喜欢它的人都可以选择退出。
但是,那些资金遭到冻结的人,却没有办法退出。
宽限期结束后可以部署新的合约逻辑,将冻结的资金转移到指定方的托管钱包中。不幸的是,没有任何受影响的用户,能够对此采取反对行动。
还存在一些合理的担忧,即升级通知期限本身,可能不足以允许每位不同意更改的用户退出(即所谓的“大规模退出”场景)。但这个问题是一个通用合约可升级性的问题,而不是Validium所独有的。
zkRollup的数据可用性可保护用户的资金免遭扣押和审查
理论上,只要有一个以太坊全节点处于在线状态,zkRollup用户就可以访问 rollup的状态。
工作原理:对于每个zkRollup区块,重构状态更改所需的信息,必须作为以太坊交易的调用数据提交,否则zkRollup智能合约将拒绝进行状态转换。zkRollup上的状态更改会导致每笔交易的少量gas开销,该开销会随交易数呈线性增长。
有了Merkle树数据,被审查的用户总是能够直接从主网上的zkRollup合约中申领资金。他们所需要做的,就是提供一份他们账户所有权的Merkle证明。因此,链上数据可用性可以保证没有人(包括zkRollup运营商)可以冻结或获取用户的资金。
然而,数据可用性的链上存储,导致了吞吐量的限制 —— zkRollup 在当前的以太坊主网上有严格的实际上限,即每秒2000笔交易(TPS),而StarkEx Validium则声称有9000 + TPS。这种差异可能会在确定两种技术的应用领域和用例中扮演重要角色。例如,zkRollup非常适合扩展去中心化的加密支付(VISA的TPS也就2000左右),以及适合有严格的无需信任要求的不可变智能合约。另一方面,Validium可能更适合传统的高频交易或具有较低信任假设的游戏。
我们已经表明, zkRollup和Validium (StarkEx) 在工作方式上有些相似,它们的主要区别在于数据是链上可用还是链下可用,这对于理解它们适合哪些应用是至关重要的。这种差异意味着,zkRollup是一个无需信任的去中心化扩展协议,而Validium则显示了托管PoA系统的更多属性(无论是吞吐量还是风险特征),尽管其安全性大大提高了。
每一项减少信任,并为用户提供对其资产更多控制权的技术发展,都是朝着增强个人能力迈出的一步。为了继续前进,我们总是需要做出权衡。
尽管如此,加密社区越来越一致地认为,技术已经迈过了“don’t be evil”(不作恶)的阶段,现在是“can’t be evil”(无法作恶)的时候了。我们可通过自我保管、审查抵制、隐私和消除单点失败来达到这一目的。这些想法构成了我们正在努力建立的系统的基本价值观。完全无需信任的可扩展性时代已经到来!