从事区块链行业已经好几年了, 被人问到的频率最高的问题就是这一句: 在这个区块链的概念里头, 那个“链”字究竟指的是什么东西呢? 说直白了它就是按照时间排序然后像齿轮一样紧密连接起来的数据区块, 每一个这样的区块都会记录前一个区块的特征码或哈希值。接接下来我们会去讨论两件具体的事情。
区块链中链指什么
你可以把链想象成一条拉链, 每一颗齿(区块)上都刻着上一颗齿的编号。在新区块诞生的时候, 必须把前一个块的哈希值写入到自己的头部里面。这样的话, 整条链就按时间线锁死了。
如果有人想要偷偷篡改第3块的内容, 那么第4块的哈希值就会对不上号。一旦第4块出错了, 后面的所有数据都会崩溃。所以, 这里的“链”, 并不是数据库里面那种比较松散的索引结构。它是一个强依赖于顺序的结构。

此外, 位于区块链上的每一个区块内部所承载的内容, 并非是一个完整的账本数据集合, 而仅仅是一些具有摘要性质的交易记录片段。真正意义上的数据存储与存证工作, 实际上是由网络中的每一个节点分别进行全量数据的保存来完成的。整个链式结构本身所需要负责的、且仅需负责的核心任务, 只有顺序和防篡改这两个方面。
区块链的链怎么串起来的
把这些东西串联在一起的依靠有两个方面, 分别是哈希指针和工作量证明, 矿工先把前面那一块的哈希值塞进新块的头部去进行重新计算, 然后利用算力的投票来决定究竟是谁有资格接上下一个块, 节点在本地默认只认那个用粗体标签标记出来的最长链, 当发生分叉时选择哪条链条会看这条累计算力是不是比较大, 如果累计算力大就留下这一条, 对于那些算力短的链条则直接丢弃。
所以, 如果砍掉一个节点甚至砍掉一半的话, 剩下的部分会自动沿最长链继续出块。根本不需要中心调度器来帮忙, 这条链自己就能够接上并且继续运行下去。
等到下一回要是还有人跑去打听“什么东西是链状结构”的话, 希望你不要把那个所谓的“分布式账本”简单地丢给别人听,你应该把话说清楚一点, 告诉对方事情是这样的那就是它其实就是一串东西, 这些是用某种哈希手段紧紧地咬合在一起的, 然后还靠着算力和投票的方式去让它的状态延续着维持下去, 就像一条拉链一样。
