若是咱们仔细回顾今年区块链技术的进展,就会发现有新想法的公链团队愈来愈少出现了,你们谈论以及关注的点也都再也不聚焦公链上了。反却是不少新的 Layer 2 项目在不断涌现,很是活跃。要知道在这以前,尤为是 2017 年,你们无人不谈公链,无人不作公链,各类 1CO 的项目宛如烈火烹油,火的一塌糊涂。算法
**为何会有这样的思潮转变呢? **安全
这里仍是须要提到不可能三角问题。网络
2017 的不少区块链团队都是野心勃勃,说要颠覆比特币,颠覆以太坊,各类区块链 3.0,甚至是区块链 4.0。比特币和以太坊所为人所诟病的 Tps ,也成了区块链团队攻击而且用来给本身 PR 的材料,不少宣称有百万 Tps 的项目诞生。性能
而通过一年的发展,你们发现要纯靠一套算法和共识来解决区块链的不可能三角问题是不现实的,由于若是你要保证系统的去中心化和安全性,每一笔交易必须由网络中每一个节点进行处理,而这样就注定了它的性能达不到咱们要求的。区块链
因而你们的关注点开始转变,愈来愈多人开始关注第一层的扩容方案。以太坊生态其实一直在研究相关的扩容方案,只是你们在作公链遇到瓶颈的时候,不少人才反过来关注这些东西。blog
让每一个节点作更多的工做量?it
公链吞吐量的根本限制来自于它不能高于咱们对单个节点所要求的交易吞吐量,由此突破的方向咱们能够想到,是否是可以让每个节点作更多的工做?asm
咱们确实可让每一个节点作更多的工做,比方说把扩大区块大小扩大四倍,这个意味着每个节点的工做量是以前的四倍,可是这样它就提升了加入门槛和牺牲了部分去中心化。由于扩容以后,节点作的工做多了,计算量也须要扩展,这样会把一批算力小的机器给淘汰,会致使算力变的更中心化。并且,这种扩容方式对提高到咱们须要的区块链性能还差的远。入门
那么如今的问题是,咱们怎么在不增长单个节点工做量的状况下作更多有用的事情?比特币
每一个节点不须要处理每一个操做?
在咱们惯常的思惟中,每个节点是须要并行处理每个交易的,那么若是每个节点不须要处理每个操做呢?
设想一下,网络分红了两个部分,每一个部分能够半独立运做。A 部分处理一批交易,B 部分处理一批交易,A 和 B 之间彼此独立,目前的交易限制就变成了两个节点同时处理的交易总量,区块链的吞吐量是翻倍的。
而若是咱们把区块链分红不少部分,尽量的细分,咱们就能够成倍的增长区块链的 Tps。这就是咱们俗称的分片技术( Sharding )
区块链被分红不一样的部分,称为碎片,每一个部分均可以单独处理交易,这个技术一般被称为第一层的扩展方案,它是在以太坊自己的基础协议中实现的。分片从设想上来讲是一个很是棒的想法,可是在技术实现上,仍是遇到了不少挑战和问题。 从现有的容量挤出更多有用的业务? 咱们若是从相反的方向考虑,咱们并不增长区块链自己的容量,可是咱们用已有的容量作更多的事情呢?
这个很天然联想到的是压缩计算。
目前区块链上绝大多数的共识的达成其实并不须要通过全部节点的确认,有些东西只发生在你我之间,咱们二者之间清楚就好。那么咱们可不能够考虑把这些东西放在链外去作,最后底层担任一个 Crypto Court 的角色呢?这样能够兼顾去中心化、安全性和性能。
我以为是彻底能够的,并且我认为这个才是正确的一个方向。这就是咱们接下来要着重讲述的「链下」技术,它们包括状态通道、Plasma、Truebit 等,它们也叫作第二层解决方案,简称 Layer2。