TOP链的全状态分片到底解决了什么?
在区块链行业,经常能听到“区块拥堵”、“交易速度太慢”等词汇,其中最具代表性的就是此前以太坊上的“加密猫”造成的长时间网络拥堵事件。于是区块链的扩容成为底层公链加速落地的一大突破口。在诸多解决方案中,分片成为最受热捧,也最有望实现的扩容方案。TOP链就是利用分片技术实现扩容的代表性公链。
区块链高速路上的分流术
所谓分片其实是一种传统数据库技术,它将大型数据库分成更小、更快、更容易管理的部分,这些部分就叫做数据碎片。在区块链中,分片就是把网络上的所有交易分成不同碎片,由各个节点组成的分片同时进行处理,把工作分散到每个分片,加快了处理速度。
有一个形象的比喻,如果把区块链比作高速公路,把待验证的交易比作汽车,把验证交易的节点比作收费口。原本繁忙的高速公路上只有一个收费站,收费站里只有一个收费口,车辆排着长队等待通过,结果就是越积越多,交通堵塞,几近瘫痪。而分片技术就好比增加了十个收费口,极大提高了汽车通过的速度。按照这样的思路,分片技术能够显著提高区块链的交易速度。
尽管分片技术听起来振奋人心,但是实现起来却格外困难。也正因此,几年前就宣布采用分片进行扩容的以太坊直到现在还没有完成升级。而TOP团队经过近两年时间的钻研和开发,最终在今年11月8日宣布主网上线,也标志着全球首条全状态分片公链的诞生。
TOP的网络分片与节点选举
TOP链的全状态分片分别是指网络分片、计算分片和状态分片。TOP的网络分片是指把TOP网络划分成几个由更少节点组成的群组。比如,整个TOP网络有1000个节点,那就可以把TOP网络分成10个分片,每个分片由100个节点组成。实际情况是到目前为止,TOP网络共有4个分片,每个分片的节点数为256个,TOP的最大分片数量可以扩展到1024个,每个分片的节点数也可以提高到512个。随着分片数和节点数量的不断增加,TOP网络的处理能力将会越来越强,速度也会越来越快,最终形成良性循环。
那么网络分片完成后,如何把节点分配到各个分片中呢?其实区块链的节点就像一群学生,有勤奋好学、尽力完成任务的好学生,也有调皮捣蛋、专搞破坏的坏学生。如果把分片看做一个班级,一旦班级里的坏学生数量超过好学生数量,整个班级就会被坏学生掌控。所以必须保证每个分片中的“好学生”数量大于“坏学生”数量。因此,节点如何被分配到每个分片也显得尤为重要,因为一旦一个分片中出现过多的“坏学生”,就会对整个分片造成破坏。当然节点的分配也肯定不是由TOP团队自行决定,否则就违背了区块链“去中心化”的意义。
针对如何把节点分配到各个分片的问题,TOP团队采用了信标链对节点进行随机选取。信标链是一条新的链,所有分片都连接到信标链上,并与之通信。信标链的第一个作用就是管理验证者,就相当于管理节点这帮“学生”的班主任。当然,要成为验证者,首先需要向“班主任”缴纳一定金额的Token,然后“班主任”就会随机把这些“学生”分配到各个分片中去充当验证者。
如果这个“学生”表现良好,做了身为验证者应该做的事就会得到奖励,相反,如果他违反规则就要受到惩罚,惩罚就是从抵押的Token中扣除一部分,而当抵押金低于一定额度后,信标链就会将他从验证者列表中移除。这就有效减小了节点作恶的可能性,而且作恶的节点被分配到同一个分片的概率也相当小,可以保证区块链的安全。
TOP如何成功解决状态分片难题?
所谓计算分片就是在网络分片的基础上,再把一笔笔的交易分配给每个分片来进行处理,比如可以根据账户地址进行分配,只要是某个地址发起的交易都由某个分片的节点进行处理。而在三种分片中,最难实现的是状态分片,这也是很多分片公链无法突破的一大难点。
状态分片提出,不同的分片需要储存不同的数据,真正做到将数据库分开,数据都分散放在不同的分片上。每一个状态分片中的节点都储存着自己分片中的所有数据,而不是整个区块链的数据。比如两个用户的信息分别在两个分片中存储,那么在任何一个分片中都只有其中一个人的信息,而非同时保留两个人的信息。
因此,如果一笔交易的发起人和接受者处在两个不同的分片上,交易信息就必须在两个分片之间进行共享,这时两个分片之间就需要进行信息的交换。而且,如果某个分片遭受攻击,其中的交易就会遭到中断,别的分片的节点无法代替工作,只能从遭受攻击的分片内部节点开始修复。也就是它的容错性和抗风险能力就会降低,甚至还有过度中心化的风险。
以太坊2.0是通过信标链来解决跨片之间的交易的。信标链不同于以太坊的主链,它存储的是一系列经过计算的字符串。这个字符串的产生基于计算机中的一种哈希运算,它就像生活中将豆子放进豆浆机处理之后,不能根据得到的豆浆去判断之前豆子的形状大小以及哪颗豆子对应哪滴豆浆一样。而且,一旦多加了一颗豆子,得到的豆浆就会发生很大的改变。这个豆浆机就像是哈希算法,不能通过哈希之后的结果去推导哈希之前的样子,而且只要哈希之前的数据有一点改变,哈希之后的结果就会发生很大的变化。
在以太坊信标链中,验证者验证并签名交易,比如一笔转账交易,然后经过哈希变成一段字符串,将这个字符串存到信标链中,此时这个字符串就代表了一笔交易的数据,这样做的好处就是,不用去深入探究这笔交易到底在哪个分片中发生。分片中的状态一旦发生改变(比如某个账户余额发生了一点改变),验证者就会把这个变化汇报给信标链。因此,信标链实时跟踪着分片的变化,也建立起了分片间的联系与通信。
但是,以太坊2.0这种对信标链过度依赖的设计会给其带来很大的压力,尤其是如果要实现海量业务上链和实时交易,信标链将会成为一个很大的瓶颈。因此,TOP链并没有通过信标链来实现跨片之间的信息同步,而是通过三层共识网络中路由网络(Routing Network)的审计节点来实现。TOP链的审计节点第一是对分片已经验证过的交易做审计,以防止分片内交易被篡改,第二就是做分片间的状态同步,类似于跨行转账。这样的设计让TOP信标链只负责节点注册、入网管理以及节点选举和轮换,大大减轻了其负担。
实现了全状态分片的TOP链在区块链扩容方面基本已经扫除了障碍,再加上链上交易确认速度快,交易费用为零等特点,TOP链将会成为特别适合通信、游戏、社交、大数据、人工智能、IoT等海量高频业务上链的公链。TOP链也将由此正式拉开“区块链+”大规模落地的序幕。