区块链详解:区块、节点与共识机制如何运作

“区块链”是加密货币领域用得最多、却解释得最少的词之一。从本质上说,它让互不相识的人能够共同维护一份记录,而无需信任某一家公司来管理。下面介绍它的各个组成部分如何协同运作,以及这项技术能做什么、不能做什么。
区块与链
区块链 是一份记录列表,这些记录被分批归入称为 区块 的单元。每个区块包含一组交易、一个时间戳,以及一个称为 哈希 的特殊代码。
哈希就像数据的指纹。把任何信息输入哈希函数,都会得到一个固定长度的短代码。哪怕只改动输入中的一个字符,这个指纹也会完全改变。每个区块都包含前一个区块的哈希,正是这一点把各个区块连接成一条链。
这种连接正是其巧妙之处。如果有人篡改了一笔旧交易,那个区块的指纹就会改变,从而断开与下一个区块的连接,再下一个也一样,一直延续到最新的区块。篡改行为会立刻暴露。
节点:同一份记录的众多副本
区块链并不存储在某一个地方。它被复制到许多称为 节点 的计算机上,这些节点往往由不同国家的独立个人和机构运行。每个节点都保存一份自己的记录副本,并根据网络规则检查新的交易和区块。
由于副本数量众多,不存在可以被关闭或悄悄篡改的单一服务器。如果某个节点掉线或试图作弊,其他节点会直接忽略它。在比特币和以太坊等公有区块链上,任何拥有合适硬件的人通常都可以运行节点。
共识:网络如何达成一致
由于有成千上万台计算机参与,网络需要一种公平的方式来决定下一个区块是哪个,以及哪个版本的记录才是真正的记录。这个过程称为 共识。最常见的两种方法是:
- 工作量证明。 矿工利用算力竞相解开一道谜题,胜出者添加下一个区块并获得奖励。比特币采用这种方法。它经过了长期考验,但耗电量很大。
- 权益证明。 验证者锁定一部分该网络的币作为押金。协议会挑选验证者来提议和确认区块,不诚实的行为可能使他们损失部分押金。以太坊自2022年起采用这种方法。它的能耗要低得多,不过批评者认为,这种方法可能对已经持有大量币的人更有利。
两种方法追求的结果相同:让作弊代价高昂,并奖励遵守规则的参与者。
为什么历史难以更改
要在大型工作量证明链上改写一笔过去的交易,攻击者需要重做该区块及其之后所有区块的工作,而且速度要比所有诚实矿工加起来还快。实际上,这意味着要控制网络的大部分算力,在大型网络上,其成本将极其高昂。这种情形被称为 51%攻击。
在权益证明链上,攻击者需要控制全部质押币中的很大一部分,而规则允许没收不诚实验证者的部分押金。在这两种系统中,一笔交易越久远,就越难被撤销。这就是人们常说要等待确认的原因。
矿工或验证者较少的小型区块链更容易成为攻击目标,已有好几条小型链遭受过此类成功攻击。规模和去中心化程度很重要。
局限与取舍
- 速度与成本。 每个节点都要检查每一笔交易,这使公有区块链在单笔交易上通常比普通支付数据库更慢,费用也往往更高。
- 不可能三角。 设计者常说要在安全性、去中心化和可扩展性之间取得平衡。提升其中一项,通常意味着要牺牲另一项的一部分。
- 垃圾进,垃圾出。 区块链可以证明一条记录没有被更改,但无法证明这条记录在录入时就是真实的。
- 错误无法更正。 防止篡改的同一特性也阻止了更正。转到错误地址的付款通常无法挽回。
- 并非事事都需要区块链。 对很多业务来说,由一家可信公司运行的普通数据库更简单、更便宜。
当某个项目声称需要区块链时,不妨问一个有用的问题:如果不用区块链,我们原本需要信任谁?为了去掉这层信任,付出额外的成本和复杂性是否值得?
仅供学习参考,不构成投资建议。加密资产波动很大,你可能会亏损。


