我们都知道现在以太坊面临着拥堵手续费高等问题,Layer2正是为了解决这些问题而生。每一种新方案都在旧方案的基础上的提出;另外也发现Layer2的发展历程就是一个不断地在去安全性、通用性和效率之间妥协、寻找平衡点的过程。本文不涉及具体的技术实现,单从原理上梳理一下几种Layer2的技术,会在下一篇文章结合侧链一起对Layer2做进一步探讨。
Layer2的发展路径:状态通道->Plasma->Rollup
假如把以太坊的记账看成考试,Layer1就是把从打草稿,写答案到最后批改卷子出分数的过程全都放在链上。Layer2则是把一部分过程放到链下,以太坊仅保留试卷分数。从发展历程来看Layer2看先后分为:状态通道,plasma和Rollup,每一代技术都吸取了前一代技术的发展成果。
- 状态通道——继承自比特币闪电网络
比特币闪电网络是2016年Joseph Poon和Thaddeus Dryja在论文《The Bitcoin Lightning Network: Scalable Off-Chain Instant Payments》中提出。状态通道的理念和闪电网络非常类似,只是状态通道不仅仅用于“支付”场景,还适用于一般意义上的“状态更新*”。
*状态更新:以太坊其实是一个状态机,以太坊上每产生一笔转账就意味着以太坊账户和整个以太坊网络的状态发生了变化。因此状态更新的适用范围比支付场景更广,比如象棋游戏。在游戏中:A走一步棋,紧接着B走一步棋,之后再轮到A走,依次往复。象棋游戏可以看成是A,B之间相互转账这一“支付”场景的拓展。
1. 状态通道的工作原理
A和B分别把一部分资金质押到一个智能合约中,然后A、B之间建立一个链下通道,在通道存续期间A和B的交易都记录在链下,等通道关闭时再到链上做一次结算,根据结算转账A,B间的质押的资金,最后再把资金分别退回到A和B的账户上。相当于在通道存续期间,A和B间都通过支票交易,账目只有纸面上的增加和减少。最后去银行对账户资金做一次性结算,银行只需要转账一次。
2. 状态通道怎么预防作恶
首先我们要知道,状态通道为了保证链上结算的正确,需要把最新的链下状态上传到以太坊主链上作为最后的结算依据。那么,该如何防止用户作恶呢?办法是设置“争议窗口期”(dispute window),当有一方试图单方面关闭通道时,通道中的另一方可以在争议窗口期内提交证明,证实作恶的一方企图欺诈。由此衍生出两种作恶的情况:
一种作恶方式是A不愿意正常关闭状态通道,希望通过拖延状态通道的正常关闭来影响主链结算,这样另一方B就无法拿回资金了。在这种情况下,B会试图单方面关闭通道,这时进入“争议窗口期”,A需要在窗口期内提交最新的状态证明B在欺诈。但A才是作恶的一方,因此A交不出来B作恶的证据,待”争议窗口期”结束后B将正常拿回自己的资产。
另一种是作恶方式为A提交的不是最新的链下状态而是更早链下状态,A为了骗取资金会要求提早关闭通道进行结算。这时是A试图单方面关闭通道,进入“争议窗口期”,B在窗口期内提交最新的状态副本证明了A在作恶,智能合约会拒绝A的要求并没收A的罚金。
3. 状态通道的局限性
从状态通道的工作原理可以发现它有几点的限制:首先它不能向未参与通道的人发送资金,状态通道要求所有参与者要随时在线,如果中途掉线可能会有财产损失。其次状态通道仅适用于逻辑上有明确参与者的场合,即智能合约需要明确的知道每个参与者;如果要添加或者删除参与成员,则需要重新建立一台条新的通道。因此Uniswap这样的应用就不适合状态通道,因为每时每刻参与的成员和成员的数量都在变化。最后状态通道也不适用于大资金流的场合,因为这需要预先在智能合约里锁住海量资产,不利于流动性。所以,状态通道的应用场景很受限,只适用于高频次小资金的交易。
- Plasma——结合了状态通道和侧链
Plasma是Joseph Poon(闪电网络提出人之一)和V神在2017年提出来的以太坊二层扩容框架。它不是一个单独的项目而是一套框架,针对不同的应用场景有不同的链下解决方案,比如Plasma Cash,Plasma Debit,Plasma Prime,MVP (Minimum Viable Plasma)等。每个方案都会针对特定场景做一些大同小异的变化,但它们的主体思想是一致的。在这里我们只介绍其主体思想,不对具体方案做讨论。
1. Plasma的原理和结构
Plasma结构通过智能合约和默克尔树搭建。在主链以太坊上部署一系列的智能合约作为以太坊和子链*间的通信的媒介,这些智能合约统称为根节点。智能合约记录子链的状态,并规定子链状态转换的基本规则。
*子链可以认为是一种特殊的侧链,它是一条独立的区块链可以有不同于主链的共识和自己的节点。一般的侧链是自己记账自己确认,自己对自己的账本负责。但子链需要定期向主链汇报(向主链发送哈希值),子链的计算需要递交到主链上由主链来记账确认。
默克尔树的树状结构允许我们创建无限数量的子链,这些子链本质上是父链以太坊区块链的较小副本。在每个子链上还可以创建更多的子链,类似树状结构,如图1。
图片1 Plasma本质上是一系列智能合约形成的连接到以太坊主网的可信侧链(子链)网络文章来源:https://www.toymoban.com/news/detail-410383.html
来源文章来源地址https://www.toymoban.com/news/detail-410383.html
到了这里,关于不断妥协的Layer2发展史的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!