本文对比 Validium 与 ZK Rollup 两种扩容方案因数据可用性区别而适用于不同应用场景。
推荐阅读:《3 分钟了解进行 Reddit 积分系统演示的以太坊扩容引擎 StarkEx》
原文标题:《【他山之石】ZK Rollup vs Validium (StarkEx)》
撰文:Alex Gluchowski,The Matter Labs 创始人,专注于 DeFi 的以用户为中心的 ZK Rollup 技术研究。
本文已取得作者授权,并由链闻和币安中国区块链研究院获得中文地区翻译首发权。
ZK Rollup 是时下最热门也是被认为较去中心化的一类区块链二层扩容方案,使用了零知识证明 zk-SNARKs 的密码学技术实现了较高的安全性。StarkEx 则将简洁零知识证明 STARKs 应用在交易所安全性升级,而用户的资金仍会面临被冻结、查封或盗走的风险。
DeversiFi 最近推出了基于 StarkEx 交易引擎的新版交易所。这一不可思议的技术成就提高了加密交易所的安全级别,同时带来了历史的拐点:这是史上第一次在生产系统中应用 STARKs,简洁的零知识证明,无需可信性设置(trusted setup)。
背景信息:StarkEx 是一种第二层扩容解决方案「Validium」,其所有交易的有效性都是通过零知识证明实现,而数据可用性仍在链外。这样可以避免 Validium 中的资金被盗,因为账户里的每一次价值转移,都必须经过用户授权。
Validium 的机制与 ZK Rollup 非常相似,唯一的区别是 ZK Rollup 中的数据可用性是在链上的,而 Validium 则是在链外。因此,Validium 获得了更高的吞吐量,但也是有代价的:
StarkEx Validium 的运营者可以冻结用户的资金
「要想摧毁某项事物的人,会先去控制它。」
——Frank Herbert,《沙丘》
没有 ZK Rollup 的数据可用性作保障,Validium 的运营者,或更准确地说,数据可用性管理者能够拒绝任何用户转移资金。
其原理是这样:运营商对 Merklized 状态进行了微小调整,从而无需告知用户。由于缺乏这些信息,用户无法为自己的账户创建 Merkle 所有权证明。
说明:如果运营商更改了账户 d3,则账户 d1 的所有者在证明其账户所有权时,会缺少所需节点 m 的信息。
在 Validium 中是否有防止数据预扣攻击的方法?自 2016 年 Plasma 概念被提出以来,这一问题一直被广泛讨论,而 ZK Rollup 就是解决问题的研究成果。非 rollup 尝试以无需信任的方式确保了数据可用性,导致 Validium 丧失了其大部分竞争优势。
虽然这一问题还未完全解决,但 StarkEx 通过引入有权限的数据可用性委员会(DAC)缓解了此问题。DAC 必须通过法定人数的成员签署对每次状态更新,以确认已接收到数据。在 StarkEx 中,DAC 由 8 位参与者组成(太多成员会危害系统的活性),而这些参与方也都是声誉很高的组织。他们不太可能会滥用自己的权力。
但矛盾的是,知名度高、声誉好、位于强大的司法管辖区,恰恰是使它们脆弱的原因。可能出现的情况是:运营商必须执行 KYC/AML 法规,并有义务冻结交易历史超过 1 万美元账户里的所有资金。
随着我们深入研究,问题也变得更加有趣。StarkEx 执行了校验人合约升级机制(Verifier Contract Upgrade),允许运营商无任何延迟地将新项目添加到校验人的合约链中。这样做不能使任何旧逻辑失效——例如:不能删除用户签名检查。反而可添加额外的约束(就 Solidity 而言,可以将约束视为 require()
语句)。
这是一个很好的安全特性:如果在 StarkEx 的 STARK 简短逻辑中发现任何丢失的限制,可以在不引入任何新漏洞的情况下进行快速修复。然而,这一功能在理论上也可被用作隐藏的审查后门。简而言之,StarkEx 运营商总是可以将扩展部署至合约逻辑中,从而引入黑名单,且无需事先警告用户。根据他们的文档来看,目前尚不完全清楚,但是看起来执行新规则不需要获得 DAC 的同意。
如果把 StarkEx 视为完全去中心化的交易所协议,那么这就没有多大意义。想象一下,Vitalik Buterin 有一个可立即冻结任何以太坊账户的开关。另一方面,如果把 StarkEx 视为是加密交易所的安全增强功能(其创建者肯定希望如此),那么这就是完全有意义的。
StarkEx Validium 的运营商可以没收用户的资金
让我们拓展下思维。假如由于某些原因(很可能是由于运营商无法控制的情况),现在大量用户的资产被冻结了。那么问题来了,用户在 StarkEx 上的资金可能被没收吗?
事实上,是可能的。
StarkEx 与很多其它加密项目一样,实现了最先进的升级机制。用户在新版本部署前 28 天会得到通知,任何不满意的人都可以选择退出。
但是,那些资金被冻结的人,却没有办法退出。
宽限期结束后,可以部署新的合约逻辑,将冻结的资金转移到指定的托管钱包中。不幸的是,任何受影响的用户,都无法对此采取行动。
此外,还有一些合理的担忧,即升级通知期限本身,可能不足以让每位不同意更改的用户退出(即所谓的「大规模退出」场景)。但这个问题是通用合约可升级性的问题,不是 Validium 独有的。
2020 年 6 月 7 日更新:Justin Drake 描述了针对 Validium 的加密经济攻击
在后续讨论中,Justin Drake 指出,Validium 的数据可用性方法可能意外派生了一个攻击路线:如果数据可用性委员会法定人数的签名密钥遭到破坏(并且这些密钥一直在线,因而难以对其提供保护),攻击者可以将 Validium 转换成只有他们知道的状态,从而冻结所有资产,然后进行勒索。
从理论上讲,合约升级机制能够应对这种攻击。Validium 的运营商部署新版本,在 28 天的升级通知期后,状态会恢复成最新的已知版本。资金会被锁定一个月(这当然会产生相当大的成本),但是如果 DAC 拒绝谈判,攻击者一分钱也拿不到。
然而,事实证明,攻击者可以通过一种方法迫使运营商要么选择失去一切,要么选择让攻击者进行双重支付(double-spend)攻击。以下示例可以进行说明:
想象一下,你侵入了 ATM,在提款完成后,可以擦除整个银行数据库。但是,你只能从自己的账户中提款,不过当数据库消失时,所有的操作信息也会一并消失。
银行员工需要用一个月的时间恢复复杂的数据库。但是,由于他们不知道提款的人是谁,所以在恢复至上一个检查点时,你的账户也会恢复——这样你取走的钱又回来了!
当然,这笔双重支付不会超出攻击者账户中的金额。但是,构建一个无需信任的合约并从暗网的恶棍手里借用所需的资本是一件很容易的事情。这个练习就留给你们吧。
这种攻击表明了 Validium 的安全模型与 PoA 网络的安全模型相对类似。实际上,一个有 20 个节点和 51%门限签名的 PoA 网络可能比有 8 个节点和 100%门限签名的 Validium 更安全。
ZK Rollup 的数据可用性可保护用户的资金免遭没收、审查和盗取,但是牺牲了本就较低的吞吐量
只要有一个以太坊全节点处于在线状态,ZK Rollup 用户就可以访问 rollup 的状态。
工作原理:对于每个 ZK Rollup 区块,重构状态变更所需的信息,必须作为以太坊交易的调用数据提交,否则 ZK Rollup 智能合约将拒绝进行状态转换。ZK Rollup 上的状态变更会导致每次交易产生少量的燃料费(gas cost),此成本会随交易数呈线性增长。
有了 Merkle 树数据,被审查的用户能够直接通过主网上的 ZK Rollup 合约,领回其资金。他们只需要提供一份账户所有权的 Merkle 证明。因此,链上数据可用性可以保证任何(包括 ZK Rollup 运营商)都无法冻结或获取用户的资金。
不过,数据可用性存储在链上限制了吞吐量——ZK Rollup 在当前以太坊主网上有严格的实用上限——每秒 2000 笔交易(TPS),而 StarkEx Validium 则是 9000 笔。这种差异可能会决定这两种技术的应用领域和使用场景。例如,ZK Rollup 非常适合扩展去中心化的加密支付(VISA 全球范围总共只有 2000 TPS),以及严格要求去信任的不可变智能合约。另一方面,Validium 可能更适合传统的高频交易或信任要求更低的博弈。
结论
我们已经证明了 ZK Rollup 和 Validium (StarkEx)在运作原理上有些相似,其主要区别在于数据是链上可用还是链下可用,这是理解它们及其应用范围的关键。这一差异意味着,ZK Rollup 是一个无需信任的去中心化扩展协议,而 Validium 则展示了托管 PoA 系统的更多属性,无论是吞吐量还是风险特征,还有安全性大幅提高了。
每一次为了减少信任,并为用户提供对其资产更多控制权的技术发展,都是朝着增强个人能力迈出的一步。为了继续前进,我们总是需要做出权衡。
尽管如此,加密社区越来越一致地认为,技术已经迈过了「不作恶」的阶段,现在是「无法作恶」的时代。我们可通过自我托管、审查抵制、隐私及消灭单点故障来实现这一目的。这些想法构成了我们在打造系统时的基本价值观。
完全去信任扩容的时代即将来临,Matter Labs 的大事件宣告倒计时也已开启,敬请期待。
在此特别感谢 Lasse Clausen、Christopher Heymann、James Prestwich、John Adler、Haseeb Qureshi、Alex Evans 及 Howard Wu 对本文的评价及宝贵意见。
来源链接:medium.com