D1 Ventures - Powering the Future of Open Economy

D1 Ventures Logo
D
1
V
E
N
T
U
R
E
S
P
O
W
E
R
I
N
G
T
H
E
F
U
T
U
R
E
O
F
O
P
E
N
E
C
O
N
O
M
Y
P
O
R
T
F
O
L
I
O
W
R
I
T
I
N
G
J
O
B
S
W
R
I
T
I
N
G

Rollup 虽好,但 Plasma 扩容才能承载千万级 Reddit 积分系统

Sep 02 2020 · 9 min read

Reddit 积分需要的扩容方案与 DeFi 扩容需求大不相同

Reddit 计划在以太坊上发行 ERC20 格式的社区积分,并向社区公开征集扩容方案(The Great Reddit Scaling Bake-Off),以解决高转账成本、网络吞吐量等实际问题。Reddit 要求扩容方案在理论上可以支撑上亿用户(a clear path to supporting hundreds of millions of users), Demo 每天应该可以承载上万笔的转账、订阅,积分的生成、分发和销毁等简单转账或合约执行。

Reddit 社区积分这样与互联网 Web 2.0 用户联系更为紧密的场景,与 DeFi 应用对扩容方案的需求和取向并不相同:

二者用户规模不在同一量级。互联网应用的用户数量动辄上万、上亿,而目前所有 DeFi 应用的活跃用户数量总和仍然在万人左右。为了容纳这样的用户体量,出圈的区块链扩容方案必须部分放弃目前以太坊 Layer 1 级别的去中心化程度和安全性;

用户体验与习惯不同。互联网用户并不习惯于在操作应用时支付 Gas fee 并等待几分钟以获得确认,服务与圈外场景的 DApp 必须向用户妥协。多数情况下,Gas fee 只能由运营商承担;

互联网应用尚无可组合性需求。成熟的互联网应用将服务封装给用户,用户只能调用而不可自行改变,不同互联网应用的边界清晰,生态较为独立。

DeFi 扩容由区块链世界内部的发展推动,它更加重视区块链的原生精神,即安全、去中心化、无许可,在此基础上稳妥地推动性能上升;而之于 Reddit 社区积分类的出圈尝试更像是一次超前的远眺,在各个维度上对区块链系统提出了终极要求。

了解线性扩容与指数扩容

Rollup 是目前以太坊社区讨论最多的扩容方案,这种方案提供了目前看起来绰绰有余的吞吐量(Throughput)(~3000TPS),同时提供了相较其它扩容方案最好的链外资产安全。

理想情况下,Rollup 拥有 100 倍于目前以太坊 Layer 1 的处理能力,但是无法更近一步,我们称之为线性扩容。这种处理能力上限仍然来自于 Layer 1 的 Gas limit。Rollup 将所有的 Layer 2 交易压缩后写入 Layer 1 区块,是一种通过将单笔交易占用的 Gas 体积减小,而使区块所能容纳的交易数增多的方法,与单纯增大区块 Gas limit 是一体两面的解决思路。

在以太坊容量不足的时候,线性扩容一直是社区最愿意接受的扩容方案(区块的 Gas limit 不断增大)。线性扩容不停地缓解容量紧缺的问题,同时不断地侵蚀以太坊的去中心化程度,它从来不是终极方案,而更像阶段性的止疼药,有着有限的效果和不明显却日益加剧的副作用。

但是,线性扩容提供的处理能力在以太坊试图支撑圈外应用时捉襟见肘。我们以 Reddit 对扩容方案 Demo 的要求做基本测算。具体地,我们将所有交互行为简化为普通转账,将这些要求平摊到 5 天的时间之中。那么 Demo 则被要求每天处理 6 万笔交易,这一规模尚且可以被 Rollup (3000 TPS)消化,然而当 Demo 投入真正使用阶段中时,其用户规模将远远大于 10 万。

当用户规模触及一亿时,每日需要处理的交易将达到 6000 万笔,在理想情况下仍然占用以太坊全天约 1/4 的处理能力,而这仅是支持 Reddit 这一个场景的开销。以太坊在若要在未来承载更多实际应用场景就必须拥有指数级别的可扩展性。

指数级别的可扩展性来自对链上数据可用性的牺牲,我们必须允许扩容方案不将全部链外交易记录在主链之上。例如,Plasma 类方案仅将侧链区块的 Merkle Root 记录在主链之上,使得侧链上所有的交易分享到主链的安全性,而一个 Merkle Root 可以作为无限笔交易的特征值。侧链上的交易数量增加并不会导致侧链在主链上记录信息的增大,理论上,这种扩容方案所带来的处理能力上升是没有上限的,我们称之为指数扩容。

作为对链上数据可用性的补偿,我们仍然需要做的是将所有链外具体的交易记录存到一个主链节点可以索引到的存储空间之中,去中心化存储网络的发展正在推动这一变革。

在本次 Reddit 社区积分扩容方案征集到的 22 个方案中,多数拥有指数级别可扩展性,对这些侧链方案的横向比较可以从两个方向入手:

侧链功能性(Functionality)。例如对 EVM 兼容度(EVM ecosystem compatibility),Reddit 社区积分系统需要实现的功能除 ERC20 转账之外仍有铸币、销毁等需要执行合约的操作;侧链的去中心化治理、进一步扩容的潜力、侧链间互操作性等。

与以太坊主链的互操作性(Interoperability with Ethereum)。简而言之即跨链桥的安全性、成本和延迟。

在以上两个技术方向的比较中,我们认为 Matic 和 NEAR 提供了较优的解决方案。

Matic 应用 Plasma 的结构与以太坊共享安全性,它周期性地向主链写入最近区块的 Merkle Root。Matic 在技术上的独特之处在于将侧链从 UTXO 改为 Acount 模型,使之可以更好地运行 EVM,可以更好地支持 Reddit 规定的合约操作和其它未来可能的应用逻辑。

NEAR 是一条独立的公链,通常我们不会将之与 xDai Chain 等侧链项目进行横向比较,但在具体的应用场景中,NEAR 实际上已经实现了对侧链功能的全部覆盖。功能性方面,NEAR 可以完全兼容 EVM,并且有着相对 xDai 等侧链更为完备的验证人淘换机制。

在对以太坊的转接桥设计上,NEAR 刚刚发布了 Near-ETH 彩虹桥(ETH-NEAR Rainbow Bridge)作为两条链之间的去中心化的转接桥。

这个方案与我们熟悉的多签托管方案不同,它并非将资产托管给几个社区信任的机构(实际上,对跨链资产托管机构的信任限制了跨链资产的总额),而是在两条链上分别以智能合约的形式部署了另一条链的轻客户端(Light clients),以验证另一条链上的交易。

由于资产在桥两端的锁定和发行由智能合约控制,任何人都可以在两条链上部署跨链桥,NEAR 正在设计合理的收费机制以补贴智能合约高昂的运行开销。

此外,OMG Network 开发了类似于 Metamask 的社区积分 Chrome extension,在满足基本技术指标的情况下使用户在浏览器中可以方便地领取奖励或者转账,提供了最好的易用性。

Spacefold Demo: spacefold.io

状态通道方案提供商 Connext 由于无法在 Layer 2 支持智能合约以及提供清晰的全局账本,转而开发了 Spacefold,为支持 EVM 的 Layer 2 侧链间 ERC20 转账提供解决方案。这一设计在不同侧链间假设状态通道,打破了这一赛道激烈的竞争格局,而使得不同侧链可以像不同分片一样被容纳到更广阔的网络之中。

纵览以太坊扩容蓝图

由于不同的场景下的数据所需要的安全性不同,我们认为以太坊网络的必然走向是层次化。Layer 1 必须以去中心化为首要目的,来保证整个网络底层账户的资产安全。

过多的冗余必然抬高 Layer 1 的使用成本,而将不同安全性要求的业务挤压到若干条采用不同扩容方案的侧链之上,DeFi 应用由于其涉及众多资产,可能更偏好开销较大的 Rollup 侧链,而 Reddit 积分这些场景独立、用户量巨大的系统则更偏好 Plasma 等方案。

一般来说,侧链的容量上限越高,其安全性越差,交易成本越低,越趋近目前的互联网应用取向。侧链之间可以实现跨链,但结算仍然需要在 Layer 1 完成。

同时,Layer 1 会作为各条侧链间资产清算,实现互操作性的基石。这样的网络结构实际上与波卡「中继链+平行链」的体系非常类似,不过具体侧链与主链如何锚定、资产如何跨链等实际问题的解决完全交由社区。在达尔文主义的视角下,社区最终会在竞争中选出最优方案。