以太坊的“扩容”不是单一的、具体的问题,它是一系列问题,若是以太坊想要为全球几十亿用户提供服务,就必须克服这些阻碍。最广泛的问题就是交易吞吐量。目前,以太坊每秒能够处理15笔交易,相较而言,Visa处理速度能够达到45000笔/秒。在过去一年里,由于相似Cryptokitties这样的应用程序太过流行,致使整个网络运行速度也开始放缓,交易价格增长。安全
相似以太坊这样的公链,要求网络中每个节点参与处理每一笔交易,这也正是其主要局限所在。再以太坊上的每一个操做——转帐,Cryptokitty的诞生,ERC20合约的生成——都必须由网络中的每一个节点一块儿执行。这是设计时决定的,也是公链权威的保证。节点不须要从外部得知区块链的状态,它们本身能够解决。网络
这意味着以太坊的交易吞吐量存在基本限制:不能高于从单个节点得到的数据的速度。区块链
咱们能够要求每一个节点作更多的工做。若是咱们将区块大小加倍(不考虑gas的限制),这将意味着每一个节点所作的工做量大约是如今工做量的两倍。但这是以牺牲去中心化为代价的:须要每一个节点完成更多的工做,那么功能较弱的计算机(如消费者的设备)就可能会退出网络,而挖矿的权利将集中到强大的运营商手上。spa
所以咱们须要一种方案,既能不增长单个节点的负荷,又能处理更多交易。设计
从概念上讲,咱们能够采起两种方法来解决这个问题:blog
1) 若是每一个节点没必要并行处理每一个操做呢?get
第一种方法,改变前提:咱们是否能够构建一个区块链,链内节点都没必要参与处理每笔交易呢?是否能够将网络分红两个部分,半独立地运做呢?it
分开后,A部分能够处理一批交易,B部分也能够处理一部分,这样区块链交易吞吐量就提升一倍,由于咱们如今设定每两个节点能够同时工做。若是咱们把区块链分红许许多多不一样区域,那吞吐量会提升许多倍。asm
这就是“分片(sharding)”背后的理念,是由以太坊V神和其余科研人员提出来的。将一个区块链分红许多不一样的“片”,每一个“片”均可以独立处理交易。分片通常是指layer1的扩容方案,由于它是在以太坊的基层协议上实现的。class
2) 若是为以太坊创建协议层网络呢?
第二种选择和第一种偏偏相反:与其增长以太坊自身的处理能力,不如在现有的基础之上采起措施。在以太坊区块链基本层的吞吐量不变的基础上,尝试执行更多操做,好比交易、状态更新或简单的计算。
这就是“链下”技术背后的原理,具体的技术包括状态通道,Plasma,Truebit。虽然每一种技术旨在解决不一样问题,但它们都须要在保证安全性的前提下,进行“链下”操做。
这也被称做layer2,由于它们是创建在以太坊主链之上的,不须要在基础层上进行改变,相反,只是做为与链下软件交互的智能合约存在的。