作者:哈希世界 蒙绎泽、陈致佳
哈希世界以科普小白区块链知识,全球第一款用户逾百万区块链小游戏,聚焦底层技术与应用场景的研究平台,致力于打造可信的数字时代。
支持机构:
在传统的账本系统中,所有用户的交易信息都写在同一个账本上,由此来保证用户之间不出现冲突的交易信息。而这个唯一账本的记录、检索一般交由可信任的第三方机构进行(如银行)。在这一系统中,所有用户向第三方机构支付信任,由机构保证账本不被恶意篡改。这是一种中心化的体系,好处是机构可以集中处理大量交易信息,但同时所有交易行为都不得不经过机构的处理,用户在一定程度上将受到机构的控制。
区块链技术正是提出一种分布式账本的架构,把第三方机构从系统中剔除,让人与人之间可以直接进行交易。区块链的解决思路是让所有用户都拥有一本账本,所有用户都参与到记账的过程中。然而这样也带来一个问题:如何确保所有用户拥有的是同一本账本?亦即:如何保证账本信息的一致性?
在区块链中,交易信息是向全网络广播的,每位用户都能接收到交易信息。由此,账本信息的一致性问题,实际上变成一种“唯一性”问题:只要设计一种规则,确保只有唯一一种交易信息能通过筛选保留下来,即可保证各个用户记录下来的是同一种信息。
在区块链,“区块”和“链”就是实现这种唯一性的数据结构。
区块存储的是一段时间内的交易信息,实际上是对交易信息的一种封装;在比特币里,一个区块可存储约3000笔交易信息。一旦这个区块被确认,3000笔交易就一同被确认了。如果不对交易信息进行封装,每次确认一笔交易,则需要高频的确认操作,效率降低。同时,每个区块又包含了上个区块的地址信息,环环相扣,形成从最新区块到创世区块的一条“链”。新区块的产生有多种方案(如PoW、PoS、DPoS等),分叉的情况时有出现;而大部分区块链项目都共同遵循“选最长链作为主链”的规则。这一规则可保证即便出现分叉,在一定时间后,总能有一条链条是公认的“主链”。(如图1)
图1 “选最长链作为主链”规则
由于最长链是唯一的,所有用户都将把同一链条记录在本地数据库上,这就保证了账本的唯一性,也就解决了账本一致性的问题。
此外,链式结构还带来一个好处。所有的区块都通过“链”联结在一起,形成了一个紧密的整体。如果黑客想要篡改某个区块的内容,则无法直接插入某个新的区块,而需要从此往后的整个链条重新替换,代价高昂。由此可避免篡改交易等攻击。
然而这种数据结构仍然存在问题:吞吐量低。在区块链中,为了避免存在冲突的交易信息(不允许持续的分叉),也为了保证账本的一致性(需选出唯一的链),区块链采用的是最长单链结构。由于每次只能新增一个区块,区块信息的传播、确认需要时间,而区块的容量有限,这就使得一段时间内,能记录的交易信息存在上限。可见,“吞吐量低”实际上是满足一致性要求而付出的代价。目前比特币区块链平均一秒只能处理约7笔交易,与中心化的电子支付系统存在较大差距。
为解决吞吐量问题(可拓展性问题),一个重要的思路是让多笔交易可以同时并行处理。侧链技术通过对主链上的款项进行锁定、解锁的操作,可把不同区块链进行联结(如图2),扩充了交易处理的空间。而分片的思路则是把用户划分为不同的片区,每个片区里的交易可以独立验证、并行进行,而跨片区之间的交易则需进行额外处理(如图3)。在侧链、分片技术中仍存在主链,两者均是通过限制交易的灵活性(如款项被冻结、交易的对象受限等),在保障安全的前提下,满足账本的一致性。
图2 侧链示意图
图3 分片技术示意图
而另一方面,DAG(有向无环图)则是对另一种数据结构形式的探索。如果说区块链是一个同步系统(一段时间内所有用户共同确认一个新区块),DAG则是一个异步系统。在DAG中,区块可以随时产生,而一个区块与多个父区块进行连接(如图4)。这样一来,所有人可以随时记账,交易信息的记录速度大为提高。
图4 DAG示意图
然而由于多个区块同时产生,且均有效,DAG无法以“唯一最长链”来保证一致性。在这方面,有的项目以“历时性”来保证DAG上账本的一致性。具体而言,在DAG中一个新区块将随机选择两个次新的区块进行连接,同时对与之相连的所有区块进行交易信息的验证。经历了多次验证的区块,其交易内容存在冲突的可能性很低,可被认为是已确认的交易信息。这一方案里,一致性的验证依赖于区块网络的延伸和增长。
其他项目则以“全连接”来保证账本一致,即每个新的区块都与之前所有区块相连,并验证此前的所有交易信息。还有项目以“次序”来保证一致性,由区块递归投票来确认新的区块等。
DAG带来吞吐量的提高,然而“一致性”始终是个有待解决的复杂问题,目前问题的解决都需要付出一些代价:可能是交易信息的确切验证时间有所延误;也可能是节点与节点之间需要进行大量的网络通讯,使得实际交易速度仍有待观察。
归根到底,分布式账本的“一致性”问题,是一个平衡的问题。不妨说“一致性”是一个系统目标,而达成这一目标需要付出相应的资源:因此或牺牲交易速度,或限制交易的灵活性,或延后确认时间,或提高对全网的传输要求,都是不同系统条件下进行的适应性选择。相信上述提及的不同技术,将在不同的应用场景下,得到进一步的探索和验证。