在分布式系统这个领域里我已经深耕了八年, 所以我对那个被称为"区块链的三个结构是什么"的问题被过度神话的现象, 内心是持有一种越来越强烈的不赞同态度的。

如果我们要剥去那些包装在上面的营销话术的外衣就能看到本质, 它实际上就是仅仅三层而已。每一层的功能都是非常具体的, 它们每层都只是为了去解决一个非常明确的工程问题。这整个体系里面根本就没有任何玄学可言。

区块链数据层怎么运作

从数据这一层的实际情况来看, 它的主要功能其实就是用来记录账目以及防止数据被进行篡改的操作。具体而言, 每一个区块当中都会包含着来自于上一个区块的哈希值、当前的时间戳信息以及包含在内的交易集合数据。

通过使用SHA-256算法让这些区块之间产生相互关联的效果, 当有人试图修改其中任何一个字的时候,整个链条就会立刻暴露出问题。

此外, 区块头位置也会去记录那些Merke根的信息内容, 这样在需要验证某笔交易真实性的时候, 就完全没有必要再去扫描整条链上的所有数据, 只需要按照对数的计算方式进行即可达成目的。

在存储端这个领域, 大家应该都清楚一个事实, 也就是早期的以太坊全节点需要去同步好几百GB的数据, 而现在变成了轻节点方式, 这种轻节点只保存区块头这部分内容, 如果需要查询数据的话就会借助于SPV协议去向全节点索要证据, 这样一来带宽和磁盘空间这两个方面都能省掉非常多的容量,而对于普通用户来讲这就可以被理解为不用安装整个图书馆里的所有书籍也能去验证其中一本书的内容。

搞懂区块链的三个结构是什么,把数据网络应用三层说清楚

区块链网络层做什么

在网络层这个环节, 它主要负责管理“谁跟谁说话”以及“谁拍板”这两件事。在P2P拓扑结构的情况下, 每一个节点既充当了客户端的角色, 又扮演着服务器的角色。

新消息是依靠gossip协议实现扩散的, 这种扩散方式是一跳接着一跳地传开去, 最终的典型延迟会被压缩到小于等于两百毫秒的这一范围里面。如果带宽变得不够用啦, 那么就采取分片的处理方式, 此时每个节点只需要关心自己那一部分的交易数据就好了。

说到这层里最让人费脑筋的部分, 那就是共识机制这一块了。大家用的法子各不相同, 像是什么PoW这种方式, 它是直接拿算力去进行投票的, 而PoS则不一样, 它是通过质押来进行投票的, 还有DPoS这种模式, 它是会选出几十个出块代表来参与工作的。

咱们得清楚地知道这里头并没有所谓的银弹存在,所有的选择都只能是一种取舍。在延迟、安全防护以及去中心化这三个关键点构成的三角关系当中, 你实际上只有能力保住其中的两项。至于到底应该选哪两项来保留下来, 那就要看你的这条区块链系统究竟是想服务哪些人了。

必须把三层紧密地拧在一起, 这才算是一条真正在运行的链, 如果缺少了数据层的话, 那么它就没有账本, 如果缺少了网络层的话, 就没人能够达成共识, 如果缺少了应用层的话, 它就只是一堆散落着的字节, 就跟所谓的链没有一毛钱关系。