今天,想带大家详细的了解下,最近比较火的Layer2技术的方方面面。
首先任何一个技术概念都是为了解决一个问题, 从问题出发一定是认知的捷径。区块链Layer2要解决的问题是什么呢?
我们假设某个区块链业务流程需要 5 个步骤才能完成,也就是说,我有个智能合约,这个合约会有 6 个状态:初始状态,状态1,,,状态4,最终状态。那么要完成整个流程,就至少需要 5 个区块时间。
在这个例子里,区块链性能瓶颈就变成了“单位区块时间”。而区块时间是由公链协议所规定的,比如在比特币里是 10 分钟,在以太坊里现在大概是 16 秒,这是很难缩减的。并且整个流程的 5 个单位区块时间是乐观的估计, 有很多应用要非常多的单位区块时间。
那么我们如何缩短这个流程的执行时间、降低“平均处理时间”呢?
这就是所谓的区块链 Layer2 扩展要解决的问题。而答案就是—— offchain,也就是on-chain的反面,不在区块链上的意思。
这种 offchain的基本思路就是把计算、交易等业务处理拿到主链之外来执行,只在主链上反映最终的结果,中间过程忽略。
如此,我们只需要在要主链上保存的状态就是初始状态和最终状态,中间过程的所有状态变动我们可以不关心,可以拿到“链外”去执行。这样一来, offchain 方案通常处理性能可以非常高,很有可能在主链的一个区块时间内就处理完了这些中间交易,并将结果发送回主链(记录最终状态);最终整个处理过程只经过了一个区块时间就完成了。
如果采用这样的方案,越复杂的流程得到的性能提升越大,比如高交互性能需求的应用——游戏。另外对于支付的场景,高频的小额交易也可以大幅降低成本。所以无论是金融支付还是合约应用,都有对 Layer2 扩展网路的强烈需求。
目前已经成体系的 offchain 方案大概可以分为两类:
一类是状态通道(State Channel), 以比特币的 Lightning Network 和以太坊的 Raiden Network 为代表。
另一类是 侧链(SideChain)以以太坊的 Plasma 协议为代表。
本文先来看看“状态通道”。
状态通道是一个临时的PeertoPeer价值转移通道:在开启时,通常会在主链上分别锁定一定的些余额,并设定一个有效时间,这个通道可以由任意参与方主动关闭,也就是说各个参与方间会基于特定的协议进行数据交互、价值转移等等;然后当达到某个特定条件时,会将最终结果提交到主链。
状态通道目前主要解决的是高频小额支付场景中手续费过高的问题,但它的局限也很显而易见:
第一点它是一个临时的通路,数据并不是永久存储的,而是由参与双方自己本地保存;如果某个参与者使用的设备出现故障,则损失将无法避免。
第二, 一个状态通道仅能支持两个用户之间的价值转移;当系统中同时存在大量用户间的状态通道时,实际上就构成一个通道网络:网络中的两个用户有交易需求的时候,并不是简单地在他们两点间创建新的通道,而是通过特定的路由算法来查找是否有可用路径, 这也增加了这种方案的实现难度和技术风险。
那么如果再用一层区块链来进行这些offchain的存储, 就是“侧链(sidechain)”的技术解决方案了。侧链一般认为是主链的分支,是可以独立记账、独立增长的子区块链,所以其中同样会有矿工、存储机制和共识算法。
最后,请大家看下面这个相对比较早期也较简单的layer2方案 Lightning Network的介绍视频。
智库ZHIKU
区块链学习型智库
领取专属 10元无门槛券
私享最新 技术干货