首页  >  要闻 >  区块链 >  给初学者的Layer 2指南
给初学者的Layer 2指南
 ryl    
2021年04月06日 06:47
  收藏
   

在密码学货币行业,每当牛市开启,就会有铺天盖地的虚假消息。许多侧链项目会误导用户相信它们是名正言顺的Layer 2可扩展性解决方案。本文旨在向初学者说明什么样的区块链才是 Layer2。因此,为便于读者理解,完整性和严谨度不免有所牺牲。

通常来说,Layer 1区块链具有更高的安全性和流动性。Layer 2区块链则依赖Layer 1区块链为其提供安全性和流动性。

如果你是初学者,尤其是刚入行的小白,请先跟我看一个简单的例子。

假设你在以太坊区块链上有100 Dai,你的Metamask上也显示如此。但是,Metamask是怎么知道的?因为它通过Infura(以太坊节点即服务提供商)与以太坊点对点网络进行通信。但是,拥有100 Dai究竟意味着什么?它意味着,Dai合约(运行在以太坊区块链上的、由代码和数据组成的软件)有你的地址(如你在Metamask中所见的那样),地址旁边显示的数值是100。

再回到如何辨别新的区块链是否是Layer 2这个问题上。假设有条新的区块链叫作Macau。出于某种原因(想要买某个东西,以更低的gas价格交易或获得某种体验),你想将你自己的100 Dai从以太坊转移到Macau链上。

你会如何将这100 Dai转移到Macau上?发送一封邮件给V神的Masternode,让他帮你转移吗?当然不是,你其实是将你的100 Dai发送到以太坊区块链上的另一个合约,也就是通常所说的 “存款” 合约(好比赌场的存款窗口)(译者注:实际上是在Dai合约内将100 Dai从你的账户中转出、然后转入另一个账户;但正如作者所说,这是为了便于理解)。

第一步:将 100 Dai 发送到Macau 在以太坊区块链上的存款合约。

Macau链的验证者/矿工可以看到你的存款,因为他们一直在监控以太坊区块链,尤其是Macau的存款合约。这时,其中一位验证者/矿工告诉其他人:“嘿!大家快来看啊!有客户上门了!快干活!” 接着又对你说:“欢迎你,很高兴你能加入我们。这是你的100个合成Dai,是我刚刚挖出/验证的 Macau区块里的,希望你玩得开心。”

第二步:你已经从Macau获得了100 张借据(好比是赌场筹码)。凭这些借据,你可以取回你在以太坊上的存款合约中锁定的Dai。我们称这些借据为合成Dai(简称 sDai)。

所谓的 “进入Macau”,实际上是你所在的某个网站上的一些Javascript 脚本在与Macau的点对点网络通信。这就好比,当你在Aave网站上借贷或 Uniswap网站上交易时,你 “进入了以太坊”:这些前端上的Javascript 脚本为你创建了借贷/兑换交易,然后通知你的 Metamask。看到gas费之后,你嘤嘤嘤了5 分钟,才点击 “确认” 来签署并广播你的交易。你很熟悉这个流程。

Macau 也是一样。如果 Macau 是以太坊的分叉(就像币安的BSC或Avalanche的 C-Chain),那么整个流程实际上也差不多,因为你只需要使用 Metamask,不需要使用专属钱包来签署创建好的交易(因为以太坊/BSC等区块链均采用相同的地址格式和密码学签名机制)。

第三步:将Macau上的100 sDai用于交易、流动性挖矿、投资等。

假设你玩德州,将100 sDai的本金翻倍变成了200 sDai(这多出的 100 sDai 是你从对手那里赢来的,他们也在以太坊上的Macau存款合约中锁仓了一笔 Dai)。

注意了,现在是最关键的部分:

这时,考虑到安全性和流动性(或者不在乎那千把块美元的gas费),你想取回本息并放到以太坊上。如果你随时随地都能从Macau存款合约(再强调一次,这个合约在以太坊区块链上)中取回200 Dai,且没人能阻止你(只有当满足这两个条件时),Macau就是Layer 2区块链。

如果从理论上来说Macau的验证者可以阻止你取回200 Dai,或直接偷走它们(自己取走),Macau就不是Layer 2区块链,而是侧链。

如果从理论上来说你可以取走更多资金(如 300 Dai),Macau就不是Layer 2区块链。

当我们提及可扩展性方案时,最终总会回到 “谁控制出口” 这一问题上?

如何将以太坊上的存款合约变得更加智能,来防止你、其他Macau用户以及Macau的矿工/验证者/运营方作弊呢?

可以想象得到,这并非一件容易的事,因为这需要存款合约能够实时了解Macau上的资金流向:假设1小时前你在Macau上玩德扑赢了100 sDai,你就可以提取100 Dai到以太坊上,但是你可能在下一局就把这笔钱输掉了!因此,合约要能了解所有这些情况,以及Macau的最新状态。

状态通道和plasma等早期解决方案的做法是:将欺诈声明和争议解决逻辑编程到Layer 1上的存/取款合约中。但是,它们都给用户造成了沉重的负担,例如:

用户必须时刻在线监控以太坊上的Layer 1合约,以便挑战/制止/惩罚威胁其资产的恶意取款行为。

用户必须存储提出争议所必需的数据。在状态通道1方案中,这个数据通常是对手方的签名,用来证明通道中的状态变化(例如,“Alice:我保证向Bob 支付10 Dai”或“Charlie:我保证将车移动到棋盘上的 H5” )。

只针对plasma:用户容易受到两方面影响(a)需要存储的数据大量增加,因为用户所需数据是plasma链全局状态的一部分,而不只是状态通道的对手方的数据 2 ,(b)数据扣留攻击(data withholding attack),即,plasma运营者(区块生产者)试图进行恶意取款,同时扣留用户发起挑战所需的数据。这进一步提高了Layer 1上取款安全性逻辑的复杂性。

直到rollup方案出现,才真正解决了这些棘手的问题。rollup要求用户退出时所需的一切数据都能在Layer 1上获得。每当Layer 2上的状态变化时,rollup运营者都会在Layer 1上披露导致本次状态变化的事务数据。因此,Layer 2上的执行和Layer 1上的数据更新是同步的。

rollup方案通过数学方法(ZKRU)或密码学货币经济(ORU)保障来确保所有相关参与方都是诚实的。如果rollup运营者消失或开始捣乱【滥发信息、审查或(在 optimistic rollup 方案中)实施欺诈】,用户总是可以使用Layer 1上的数据来安全地取走资金。这些数据都存储在以太坊Layer 1上的rollup 合约中,因此用户唯一需要信任的就是Layer 1会诚实地执行这些合约(其它Layer 1合约也采用同样的信任假设,如MakerDao MCD和Aave等)。

正文结束。

注 1:

其它Layer 1链,如NEAR、Polkadot和CosmosHub等,也可以成为以太坊的rollup。它们只需要创建一个遵守rollup设计模式的桥梁,并将必要的数据发布到以太坊上,就像其它rollup所做的那样。

注 2:

ZK Rollup方案采用有效性证明来证明rollup状态更新的正确性。每 rollup状态更新,有效性证明都会在Layer 1上验证。因此,这类方案可以杜绝欺诈行为。但是,数据还是要发布到链上。这样一来,如果rollup运营者消失,用户依然能够使用数据来自行提交取款请求。

注 3 :

比特币可以有Layer 2吗?

不行。比特币缺少编程元件和状态管道系统,无法创建复杂的Layer 1合约来处理争议和/或验证有效性证明 3。当然了,你也许听到过,使用某某比特币侧链无需放弃代币所有权之类的说法,千万别信这些虚假营销4 。

“那闪电网络呢?” 闪电网络仅仅在理论上是L2。但实际上,普通用户几乎都要信任一个第三方来监控整个系统,也就是说实践中它并不是L2。

Rollup是唯一可以保证用户高枕无忧的Layer 2可扩展性方案,因为资金出口被以太坊Layer 1牢牢控制住了。

说回侧链:

如果rollup有这么神奇,那为什么有人会选择创建一个(a)需要额外的信任假设和(b)过去7年来始终得不到市场认可的侧链5?

侧链之所以苟延残喘,是因为这类方案很容易构建。很多项目方只是草草构建出一个侧链,就可以拿风投,然后发行代币6。

实际上,只需要一下午时间,你就可以构建出一条以太坊侧链:你只需要在以太坊上构建一个类似智能钱包的基础合约让人们能够存入资金,然后分叉 Geth(为你的侧链选一个新的链 ID 并重新构建即可)……瞧!这不就差不多了……呃,好吧,还差一点……你还得雇一些水军,再请平面设计师设计一个高大上的网站……不过很多风投机构想必都很乐意帮你一把,它们可以部署大量机器人。

一些骗子会忽悠你说侧链就是Layer 2方案,更有甚者还会宣传说他们的侧链比rollup更安全。然而,说到底,这只是一个很简单的问题:资金出口由谁控制?在rollup方案中,资金出口是受到控制的,并由以太坊Layer 1的EVM保护。

本文要点:

目前,凡是宣称tps超过2000并以可扩展性项目为卖点的链都很可能是侧链,需要用户作出一些未公开的信任假设。

等到Eth2数据分片上线后,Rollup的tps可能会达到1万以上。这类方案对数据的需求量很大。

Rollup是唯一不需要用户做出额外的信任和/或活性假设 Layer 2可扩展性解决方案。

侧链之所以存在至今,是因为这类方案可以在1小时内构建出来,通常是为了募集资金并发行代币。

在使用一条链之前,请检查资金出口以及你必须做出的信任假设,从而(a)确保这条链是安全的,以及(b)你可以安全取回资金。项目方通常会使用很多营销话术和荒谬的论调来掩盖项目为提高性能而在安全性方面做出的权衡。

其它Layer 1链可以充当以太坊的rollup,它们只需要遵循rollup的设计模型,并将必要数据发布到以太坊上即可。

没有活性假设的Layer 2无法构建在比特币上,因为它缺少必要的编程元件和状态管道系统来获得Layer 1的安全性保障。

给初学者的Layer 2指南

“缺点”一列通过不同颜色反映了问题的存在情况(即,我们可以通过设计在多大程度上规避这些问题)。例如,rollup的数据要求可以轻易得到满足(正如以太坊 2.0以及LazyLedger等 "数据可得性即服务提供商" 所计划的那样),而无需牺牲去中心化,因为数据是 “冷的”,即,全节点不会执行rollup数据,而且磁盘空间的成本很低

1:如果是状态通道,根本没有什么 “Macau” 链,用户之间直接进行交互。例如,你在以太坊上质押了一笔Dai,和一群小伙伴开了个状态通道打德扑,然后开始交换信息来更新游戏状态,如 “我弃牌,以这个密码学签名为证”。等游戏结束后,你可以向以太坊上的合约提交这局德州的最新快照,然后取出你的余额。支付通道和象棋通道也是同理。虽然状态通道方案可以消除来自恶意侧链运营者的风险,但是用户依然需要保持警惕,以防对手方试图使用已经过时的有效状态发起取款。因此,取款通常有一个等待期,以便其他参与者验证其有效性并发起挑战。例如,如果你要求取款并提交一个有效证明来证明你赢了,其他玩家可能会挑战你,利用你最近输给他们的游戏结果生存伪证明,并提交给合约。

2:以Plasma Cash为例,用户会继承且必须存储其收到的每个代币的完整交易记录,这需要耗费大量时间。

3:你可以这么想:EVM可以为你提供基础材料,让你 “3D 打印” 出任何你感兴趣的对象;比特币的脚本好比是瑞士军刀(感谢V神),只能用于有限的目的。

4:中心化交易所确实是侧链,而且很受欢迎。用户的资金并非像本文提到的那样发送到 “存款合约” 内,而是发送到中心化交易所控制下的地址。但是,中心化交易所并没有打着 “可扩展性解决方案” 的旗号标榜自己,用户知道将资金存入中心化交易所是需要信任的。

5:当然也有例外。xDai侧链在以太坊社区非常流行,特别适合小额付款和快速实验。但是,xDai 团队和社区永远不会进行虚假宣传,来向用户掩盖安全性权衡问题的真相。

编辑: ryl
更多财经请关注 WX: Chaocaijing123456
币海财经: 全球财讯门儿清 https://www.bihai123.com/
声明: 本文由入驻币海编者上传,观点仅代表编者本人,不代表币海财经赞同其观点或证实其描述,请自行判断。

延伸阅读