公链区块链核心限制
比特币,以太坊等已有的公链,网络堵塞问题日益严重。
去年12月份,一款名为cryptokittes(加密猫)的游戏在以太坊网络上火爆起来,一只猫甚至被卖到了几十万美元。
以太坊网络交易量的30%一度被这款游戏占用,直接导致以太坊网络的拥堵。
大家最直观的感受就是,交易很长时间才能确认,交易费用高,交易容易失败。
究其原因,主要由于公链的设计,其每笔交易都会广播到全网中的每个节点,并需要它们进行共识确认。
扩容解决方案成为公链突破限制的一大重点。现在,我们来看下当前的三个解决方案。
Sharding(分片)
区块链网络由主链和分片(shards)链组成,分片链上交易处于自己独立的空间中,可以独立处理交易。其核心思路是并非每个节点都需要处理所有的交易。分片之前整个网络的处理取决于单个节点的处理。分片后,只有同一片内的处理是同步的、一致的,不同分片之间则可以是异步的。这种属于底层解决方案,因为它是在区块链本身的基本协议中实施的。
- 分片链的共识依赖于主链;
- 已存在的主链,实现时会修改其底层协议,需要硬分叉。
State Channels(状态通道)
状态通道是一种技术,其核心思想是,允许执行off chain (“脱链”)交易,只需要将其通道开启和关闭时状态的记录在区块链上。同时,在一个状态通道内发生的事情仍然保持着非常高的安全性和最终性;如果出现任何问题,仍然可以选择回溯到主链上。
比如:A要给B转1000笔小额的BTC,其工作方式大概是:首先在A和B之间打开一个付款通道, 并把通道的开放记录在区块链上。
通过这个支付通道, 可以在任何时间、数天、数周或十年内保持开放状态,然后进行1000次的交易。
只需在A和B想要关闭通道的时候,把这个通道上产生的交易的最终状态写在区块链上。
这种技术已经存在好几年了,去年该技术通过闪电网络在比特币上实施。
- 交易参与者的隐私保护;
- 在很长一段时间内交易参与者会交换许多状态更新时,它们特别有用;
- 具有即时终结性,只要双方签署状态更新,它就可以被认为是最终状态;
- 局限性:依赖于交易网络的可靠性。
Plasma
去年8月份,继比特币扩容后,以太坊的V神和“闪电网络”的Poon发布了Plasma项目( http://plasma-io/ )的工作草案。
Plasma是通过允许创建附加在“主”链上的“子”区块链来实现扩展性。
- 交易在子链执行,较低的执行手续费;
- 子链可以有自己的共识算法;
- 局限性:不能灵活的在交易方处理资产。
总结
这三个方案主要从两个方向上提高公链的可扩展性。
一个是建立分层结构(Layer 2),把不必要的交易从最底层的主链分离到附属结构上,State Channels和Plasma属于此方向。
分片技术(Sharding)属于另一个方向,着眼于改进主链本身的协议来提高它的性能。