Whisker17 / Layer2Things

This repo contains kinds of rollup scheme in current market
4 stars 0 forks source link

简析以太坊 Layer 2 方案与 DeFi 扩容选择 #13

Closed Whisker17 closed 3 years ago

Whisker17 commented 3 years ago

简析以太坊 Layer 2 方案与 DeFi 扩容选择

Contents

Whisker17 commented 3 years ago

足量的冗余是工作量证明机制下网络安全的保证,但由于节点间同步速度受网络通信带宽的限制,整个网络在一定时间内可以达成共识的状态变化(State Transition)有限。交易发起者和合约运行者需要通过竞价来获得这些资源。

Whisker17 commented 3 years ago

image

Whisker17 commented 3 years ago

欺诈证明(Fraud Proof)还是有效性证明(Validity Proof)?

Layer2 扩容的思路简而言之是将许多笔交易用一个证明所取代以节省 Layer1 的资源,相应的,这个应该可以证明对应的多笔交易的有效性。自然地,证明的方式可以分为两种:

欺诈证明

欺诈证明对应的 Layer2 扩容方案乐观地假设链下交易均真实有效,直到某方提出证据证明其存在错误。多数我们熟悉的扩容方案都属于欺诈证明类方案,其中包括状态通道(State Channel)、PlasmaOptimistic Rollup 等,这些方案在作恶者为少数的系统中非常高效,因为多数交易无需证明即被乐观地认为是真实有效的,证明这些交易真实有效所需要的开销被节省了。

但为了避免恶意交易成为漏网之鱼,采用欺诈证明的系统必须留出足够的「容错时间」或者说「质疑时间」来接收欺诈证明以证明某些交易并不真正有效而将之取消在质疑时间之内,Layer2 上的交易仍然有被修改的可能,关联账户的余额在 Layer1 上仍将被锁定,无法退出。同时,这种机制的有效建立在被害者有能力在「质疑时间」内认识到系统的错误并提交欺诈证明以纠正的「在线假设」(Liveness Assumption)基础之上。在这一假设中,对错误的沉默等同于对错误的默许。攻击者常常通过各种手段阻止利益相关方在质疑时间之内提交欺诈证明而完成攻击。欺诈证明类方案必须在质疑时间的长短上做出取舍。

有效性证明

有效性证明类方案,如 ZK RollupValidium 等,相比欺诈证明稳重许多,系统每次在 Layer1 上进行状态转换时都提交足以证明其转换真实有效的证明供 Layer1 节点验证。有效性证明因此无需设置质疑时间从 Layer2 退出无额外延迟如何节约生产证明的开销是有效性证明类扩容方案的艺术

零知识证明是一种精巧有效性证明方式,它使得 Layer1 的验证节点无需获取链下交易的全部信息并进行重复计算即可证明其有效性。零知识证明算法的研究一直处在密码学领域的前沿,由于涉及复杂的数学和安全性证明,零知识证明的研究进展相较应用技术缓慢许多。目前主流的零知识证明算法包括 zk-SNARK、zk-STARK、PLONK 和 SONIC 等。好的零知识证明算法应该是验证开销低、生产快的。值得注意的是,目前实用的零知识证明算法生成证明的时间大约在 1~10 分钟,这是额外的无法消除的交易确认延迟。另外,由于零知识证明的生产需要大量计算,开发者通常通过开发电路(由低级语言编写的特定逻辑运行程序)减少计算时间,这使得零知识证明更倾向于运算格式一致的交易,也因此更适用于去中心交易所等需要处理的交易类型固定、合约简单的应用

Whisker17 commented 3 years ago

Plasma的问题

Plasma 在以太坊主链之外开启一条或多条侧链,周期性地在主链上记录侧链所有的区块头的快照不包含具体交易信息),以此将侧链的状态纳入主链的安全保护伞下。但由于快照中不含具体交易信息,主链无法得知用户在 Layer2 的状态,在侧链运营商仍然保有随意停止向主链同步信息或者拒绝打包某些交易的权利时,用户必须独立存储侧链上的全部数据并提交至主链才能保护自身财产的绝对安全,而这一数据量对于主链的处理能力而言并不现实。

Rollup 改进了这一问题,将 Layer2 交易连同整个侧链的状态一同锚定到以太坊主链之上,从而实现了数据可用性。这一改进使得用户可以轻松地向 Layer1 的验证节点证明其在 Layer2 的全部交易真实有效,因此,可以随时退出 Layer2。

实现数据可用性的同时必须避免过度占用 Layer1 空间,Rollup 灵活、立足实用地将单个交易在链上的存储空间压缩到 11 个字节(Nonce 和 Signature 并不会存在链上),748Gas,是 Layer1 普通转账的 1/28,其中:

image

实现数据可用性的实质在于对 Layer2 网络交易数据的储存和检索,在主链上压缩数据并存储可能是最简单的方式,但并非唯一。Rollup 方案下的 Layer2 的交易可以像 Layer1 的交易一样在区块链浏览器中被解析和查阅,这对 DEX 中不想暴露交易策略的专业交易者造成了困扰。StarkEx 建立了链外的许可型数据可用性委员会(DAC)来存储数据并对不断对整个账本的新状态进行签字确认。

Whisker17 commented 3 years ago

image

Whisker17 commented 3 years ago

zkSync

在实现 ZK Rollup 的高 TPS低手续费的基础指标外,zkSync 建立了一个更加实用和独立的网络:

Whisker17 commented 3 years ago

Optimistic Rollup

Optimistic Rollup 是欺诈证明与去掉零知识证明的 Rollup 的结合,由 Optimism (原 Plasma Group)最先开始研发。OVM (Optimistic Virtual Machine)是 Optimism 推出的一个搭建在 Layer2 上的与 EVM 完全兼容的执行环境。它允许用户在 Layer2 的 Rollup 网络中进行以太坊主链上能做的所有操作,包括编写 Solidity 智能合约、通过 Web3 API 交互等。将 Dapp 移植到 OVM 上除去部署合约之外不需要进行额外操作。

Optimistic Rollup 不需要零知识证明,可以在 Layer2 上直接运行 EVM 以方便地支持 Layer1 上的各种逻辑的智能合约,Dapp 的迁移成本小。作为代价,退出 Layer2 仍然需要等待一周左右的质疑时间,不过在具体项目中仍然可以通过建立资金池等不那么优雅的方式消除小额提款的延迟,为用户提供便利。

image