首页 > 区块链 > 技术洞察系列之区块链拓扑结构
区块链说法  

技术洞察系列之区块链拓扑结构

摘要:区块链 示意图哈希世界以科普小白区块链知识,全球第一款用户逾百万区块链小游戏,聚焦底层技术与应用场景的研究平台,致力于打造可信的数字时代。支持机构:链得得在传统的账本系统中,所有用户的交易信息都写在同一个账本上,由此来保证用户之间不出现冲突的交易信息。而这个唯一账本的记录、检索一般交由可信任的第三方

哈希世界以科普小白区块链知识,全球第一款用户逾百万区块链小游戏,聚焦底层技术与应用场景的研究平台,致力于打造可信的数字时代。

支持机构:链得得

在传统的账本系统中,所有用户的交易信息都写在同一个账本上,由此来保证用户之间不出现冲突的交易信息。而这个唯一账本的记录、检索一般交由可信任的第三方机构进行(如银行)。在这一系统中,所有用户向第三方机构支付信任,由机构保证账本不被恶意篡改。这是一种中心化的体系,好处是机构可以集中处理大量交易信息,但同时所有交易行为都不得不经过机构的处理,用户在一定程度上将受到机构的控制。

区块链技术正是提出一种分布式账本的架构,把第三方机构从系统中剔除,让人与人之间可以直接进行交易。区块链的解决思路是让所有用户都拥有一本账本,所有用户都参与到记账的过程中。然而这样也带来一个问题:如何确保所有用户拥有的是同一本账本?亦即:如何保证账本信息的一致性?

在区块链中,交易信息是向全网络广播的,每位用户都能接收到交易信息。由此,账本信息的一致性问题,实际上变成一种“唯一性”问题:只要设计一种规则,确保只有唯一一种交易信息能通过筛选保留下来,即可保证各个用户记录下来的是同一种信息。

在区块链,“区块”和“链”就是实现这种唯一性的数据结构。

区块存储的是一段时间内的交易信息,实际上是对交易信息的一种封装;在比特币里,一个区块可存储约3000笔交易信息。一旦这个区块被确认,3000笔交易就一同被确认了。如果不对交易信息进行封装,每次确认一笔交易,则需要高频的确认操作,效率降低。

同时,每个区块又包含了上个区块的地址信息,环环相扣,形成从最新区块到创世区块的一条“链”。新区块的产生有多种方案(如PoW、PoS、DPoS等),分叉的情况时有出现;而大部分区块链项目都共同遵循“选最长链作为主链”的规则。这一规则可保证即便出现分叉,在一定时间后,总能有一条链条是公认的“主链”。(如图1)

技术洞察系列之区块链拓扑结构

图1 “选最长链作为主链”规则

由于最长链是唯一的,所有用户都将把同一链条记录在本地数据库上,这就保证了账本的唯一性,也就解决了账本一致性的问题。

此外,链式结构还带来一个好处。所有的区块都通过“链”联结在一起,形成了一个紧密的整体。如果黑客想要篡改某个区块的内容,则无法直接插入某个新的区块,而需要从此往后的整个链条重新替换,代价高昂。由此可避免篡改交易等攻击。

然而这种数据结构仍然存在问题:吞吐量低。在区块链中,为了避免存在冲突的交易信息(不允许持续的分叉),也为了保证账本的一致性(需选出唯一的链),区块链采用的是最长单链结构。由于每次只能新增一个区块,区块信息的传播、确认需要时间,而区块的容量有限,这就使得一段时间内,能记录的交易信息存在上限。可见,“吞吐量低”实际上是满足一致性要求而付出的代价。目前比特币区块链平均一秒只能处理约7笔交易,与中心化的电子支付系统存在较大差距。

为解决吞吐量问题(可拓展性问题),一个重要的思路是让多笔交易可以同时并行处理。侧链技术通过对主链上的款项进行锁定、解锁的操作,可把不同区块链进行联结(如图2),扩充了交易处理的空间。而分片的思路则是把用户划分为不同的片区,每个片区里的交易可以独立验证、并行进行,而跨片区之间的交易则需进行额外处理(如图3)。在侧链、分片技术中仍存在主链,两者均是通过限制交易的灵活性(如款项被冻结、交易的对象受限等),在保障安全的前提下,满足账本的一致性。

技术洞察系列之区块链拓扑结构

图2 侧链示意图

技术洞察系列之区块链拓扑结构

图3 分片技术示意图

而另一方面,DAG(有向无环图)则是对另一种数据结构形式的探索。如果说区块链是一个同步系统(一段时间内所有用户共同确认一个新区块),DAG则是一个异步系统。在DAG中,区块可以随时产生,而一个区块与多个父区块进行连接(如图4)。这样一来,所有人可以随时记账,交易信息的记录速度大为提高。

技术洞察系列之区块链拓扑结构

图4 DAG示意图

然而由于多个区块同时产生,且均有效,DAG无法以“唯一最长链”来保证一致性。在这方面,有的项目以“历时性”来保证DAG上账本的一致性。具体而言,在DAG中一个新区块将随机选择两个次新的区块进行连接,同时对与之相连的所有区块进行交易信息的验证。经历了多次验证的区块,其交易内容存在冲突的可能性很低,可被认为是已确认的交易信息。这一方案里,一致性的验证依赖于区块网络的延伸和增长。

其他项目则以“全连接”来保证账本一致,即每个新的区块都与之前所有区块相连,并验证此前的所有交易信息。还有项目以“次序”来保证一致性,由区块递归投票来确认新的区块等。

DAG带来吞吐量的提高,然而“一致性”始终是个有待解决的复杂问题,目前问题的解决都需要付出一些代价:可能是交易信息的确切验证时间有所延误;也可能是节点与节点之间需要进行大量的网络通讯,使得实际交易速度仍有待观察。

归根到底,分布式账本的“一致性”问题,是一个平衡的问题。不妨说“一致性”是一个系统目标,而达成这一目标需要付出相应的资源:因此或牺牲交易速度,或限制交易的灵活性,或延后确认时间,或提高对全网的传输要求,都是不同系统条件下进行的适应性选择。相信上述提及的不同技术,将在不同的应用场景下,得到进一步的探索和验证。

免责声明
世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:msy2134。