扩容是当前区块链遇到的主要问题,除了我们经常提到的分片、分层、新的共识机制等解决方案,当我们把目光放到网络层面的时候,我们能够看到新的解决方法。
这次,来自美国芝加哥的团队 bloxRoute 的 Aleksandar 教授来到杭州,和我们分享了区块链的网络层(我们称为 Layer 0)的扩容解决方案。
Aleksandar Kuzmonovic 是美国西北大学计算机系教授,网络中立性专家、美国西北大学计算机系教授、谷歌 M-Lab 发起人,目前是 bloxRoute 的联合创始人和首席架构师。让我们来看看他在 Crypto Wednesday 上讲了些什么吧:
视频回顾
在分享的一开始,他先从扩容的问题开始,列出了一组有趣的数据。
美国的信用卡实际上有 5000 的 TPS。美国所有的汽车如果每周加一次油的话,相关的支付系统也会需要 450 的 TPS。而比特币 3-7 的 TPS,以太坊数十的 TPS 显然是不够的。
这里的 TPS,是根据「区块容量大小/(每笔交易大小*时间)」得出结果。问题就是为什么不能够 10s 生成 30M 的区块?
现实的网络问题就是,当你要广播 30M 区块的时候,就需要 20 分钟去广播和同步区块信息。这就关系到对等网络数据传输的缺陷了。
上图左边蓝色节点生成区块向右边的节点广播,中间会遇到很多中继节点(图中灰色部分),如果有一个环节出现问题那么就会对网络的效率产生影响。
再如,节点之间彼此相互依赖(比如比特币的网络协议就是链接周围的 8 个节点,依赖这些节点收听网络中传递的信息),若一个节点出现问题,其他节点就会出现问题。
bloxRoute 提出的解决方案就是构造一个区块链分发网络。在区块链网络中广播的不止是区块,还有交易信息。在区块链分发网络中,不会广播完整的交易,交易会在进入网络之前用一个更短字节的 ID 进行发送,比如用 4 字节的 ID 替换比特币 540 字节的完整交易进行发送。如此能够将 30 M 的区块压缩为 222 Kb。
在区块链分发网络中分布的网关会记录一个同步的内存表,可以看到交易列表。节点会向网关发送交易 id 请求来获取完整交易。
另一个加速的方案是直通路由(Cut Through block routing)技术,在传统的方案中,都是收集完信息之后再向下个节点传递。而在 bloxRoute 的网关则是接收到数据就开始向下一个节点进行传递,这个过程不会需要等待收集所有完整的数据。
用这个分发网络之后,左边的节点上传区块的大小就小很多,压缩之后,只需要链接网关。区块链只需要对接网关而不需要对接其他的对等节点。同时大家可以看到如果通过这个网关连接其他的节点相当于直接链接到对方,网关作为过渡而已。
另外,教授还聊到了网络中立性问题,以及网络层的经济模型设计相关问题。若感兴趣可以点击播放回顾视频