不可篡改性:区块链网络如何抵御审查与变更

不可篡改性:区块链网络如何抵御审查与变更

不可篡改性是区块链网络的一种属性:其账本,也就是区块中保存的交易共享记录,在设计上被设定为事后极难更改。在本篇中,审查抵抗是一个相关但不同的属性,指网络在设计上不需要任何单一方的批准,即可将有效交易纳入区块。

区块链的不可篡改性是如何运作的?

区块链的不可篡改性是一个程度问题,而非绝对事实。"不可篡改"一词意为"不可更改",人们用"不可篡改账本"或"不可篡改区块链"作为"设计上极难更改"的简称。某标准化组织将区块链描述为"篡改可察觉且具有抗篡改性"的数字账本,这是一种更为严谨的表述方式。

在比特币中,区块链的不可篡改性首先依赖于哈希链接。哈希是一个函数根据数据计算出的固定长度数值。每个区块头(即区块顶部的数据字段)都会存储上一个区块头的哈希值。

在比特币中,被更改的区块在设计上是可被察觉的:该区块的哈希值会发生变化,于是存储在下一个区块中的那份副本就不再匹配,这种不匹配会一直延续到之后的每一个区块。这使得账本具有"篡改可察觉性",也就是说更改会变得可见,但这并不能阻止更改的发生。

下表仅用于说明原理,使用的是普通文本,并非比特币区块数据。表中对两个仅相差一个字符的输入运行了标准化哈希函数 SHA-256。

如果某个区块的哈希值从 abc 对应的值变为 abd 对应的值,那么它就不再与下一个区块中存储的哈希值相匹配。正是这种不匹配,使得更改变得可见。

输入值

SHA-256 哈希值

与第一行相比不同的比特位数(共 256 位)

abc

ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad

不适用

abd

a52d159f262b2c6ddb724a61840befc36eb30c88877a4030b65cbe86298449c9

122

在比特币中,工作量证明(PoW)为哈希链接增加了一项成本。工作量证明是这样一条规则:只有当区块头的哈希值(作为数字读取)等于或低于目标值(网络规则为有效哈希设定的上限)时,该区块才有效。要更改过去的某个区块,就意味着必须重新完成该区块及其之后每一个区块的工作量,而随着区块不断叠加,更改所需的工作量也会随之增长。工作量证明的设计目的是让篡改历史的成本变得高昂,而非彻底杜绝其可能性。

在比特币中,不可篡改性还依赖于自行验证规则的节点。节点是连接到比特币网络的计算机。全节点是指会依据共识规则(即决定某个区块或交易对整个网络是否有效的规则)自行校验每一个区块的节点。全节点只保留由其自身验证过的区块所组成的链,因此即使某个区块背后已经投入了工作量,只要它违反了规则,在设计上也会被拒绝接受。

审查抵抗是如何运作的?

在本篇中,审查抵抗指的是:网络在设计上不需要任何单一方的批准,即可将有效交易纳入区块,具备这种设计的网络被称为"抗审查"网络。交易审查则是相反的情形:一笔有效交易被排除在区块之外。

去中心化是抗审查设计背后的理念:控制权与验证权分散在众多参与者之间,而非集中于某一个中央权威。在比特币中,每个全节点都会依据共识规则自行验证区块,因此验证工作是由众多节点共同完成的,而非由某一个中央方完成。

在比特币中,审查抵抗首先依赖于一个开放的点对点网络。点对点意味着参与者彼此直接连接,而不是通过某个中央服务器连接。无许可系统是指所有用户拥有相同权限、不存在任何管理员或联盟来设定权限的系统,而比特币的设计正是不存在管理员或联盟来决定谁可以参与其中。

在比特币中,审查抵抗还依赖于按照相同规则进行中继和验证的节点。节点会将有效交易转发给它的对等节点,也就是与之相连的其他节点。每个节点都在自己的内存池(即尚未被打包进区块的待确认交易等待池)中保存它已接受的未确认交易。

在比特币中,审查抵抗还依赖于各自选择将哪些有效交易纳入自己区块的挖矿运营商。挖矿运营商是指通过运行比特币矿机(用于挖掘比特币的硬件设备)向区块链添加区块的个人或公司,它可以纳入任何在共识规则下有效的交易。在协议层面,一笔交易的手续费归纳入该交易的挖矿运营商所有。

在比特币中,某个挖矿运营商未纳入的交易,仍可能被另一位运营商纳入之后的区块,除非该交易已被替换,或与已确认的交易发生冲突。持有大部分算力(即比特币矿机每秒计算的哈希次数总和)的一方,可以阻止有效交易在其挖出的区块中得到确认,不过这些交易仍可以被发送,并会显示为未确认状态。

区块链真的不可篡改吗?两种属性的局限所在

区块链的不可篡改性是一个程度问题:在比特币中,已记录的历史在设计上被设定为极难更改,而非不可能更改。

在比特币中,不可篡改性取决于谁掌控算力。算力是比特币矿机每秒计算的哈希次数总和。掌握大部分算力的一方,可以通过构建一条竞争链来改写近期的历史,还能够逆转自己最近发出的付款。

重组(常简称为 reorg)是指某个节点转向一条工作量更大的竞争链,而它原先所在链上被抛弃的区块则变为"孤块",意味着这些区块不再属于该节点所认可的最优链。在比特币中,确认数越多(即某笔交易之上叠加的区块越多),逆转该交易就越困难,但无论多少确认数,都无法完全排除被逆转的可能性。"51% 攻击与双花"条目对这一机制有详细说明。

在比特币中,不可篡改性还取决于规则是否保持不变。软分叉会收紧共识规则,使得此前有效的区块变为无效,而尚未升级的节点仍会继续接受同样的区块——只要大多数算力在执行新规则,该节点本身即便不执行该规则,也不受影响。硬分叉则是一种变更,变更之后,未升级的节点将无法验证按新规则生成的区块,链条可能因此分裂为两条。

在比特币中,不可篡改性还取决于每个节点所运行的软件。全节点,即自行校验每一个区块的节点,会依据共识规则验证区块,而运营方可以将其软件配置为拒绝某个特定区块。

在比特币中,审查抵抗取决于谁来选择交易。矿池是一种汇集众多比特币矿机算力的服务,挖矿运营商或矿池会选择哪些交易进入自己的区块。Stratum V1 是该协议(比特币矿机与矿池之间用于交换工作任务的约定消息集合)的早期版本,在该版本下,由矿池决定哪些交易进入区块。Stratum V2 的工作声明机制是一种有可能改变"谁来选择交易"这一格局的设计:截至 2026 年 10 月,该规范描述了比特币矿机或其软件如何构建区块模板(即为下一个区块提议的交易列表),并将其声明给矿池,矿池可以拒绝该模板,而具体支持情况则取决于矿池以及比特币矿机内置软件的实现。

在比特币中,审查抵抗还取决于节点如何处理某一笔交易。节点的中继策略是一套仅由该节点自行应用的额外规则,具有本地性且可配置。因此,节点可以拒绝一笔在共识规则下本属有效的交易,"粉尘"就是一个例子。粉尘是指一笔交易分配给接收方的金额(即一个输出)过小,以至于花费它所需的手续费会超过其本身的价值。

每种属性各自依赖什么?又各自受到哪些限制?

属性

含义

依赖的因素

受限的因素

区块链不可篡改性

已记录的区块历史在设计上被设定为事后极难更改

在比特币中:区块间的哈希链接;随区块不断叠加而增长的工作量证明成本;在设计上拒绝违规区块的全节点

掌握大部分算力的一方可以修改近期区块;分叉可以改变规则;运营方可以将节点配置为拒绝某个特定区块

审查抵抗

在本篇中:指网络在设计上不需要任何单一方的批准,即可将有效交易纳入区块

在比特币中:一个开放的点对点网络;按相同规则进行中继和验证的节点;各自选择将哪些有效交易纳入自己区块的挖矿运营商

挖矿运营商或矿池选择哪些交易进入自己的区块;节点的中继策略可以拒绝一笔有效交易;掌握大部分算力的一方可以将某些交易排除在外

不可篡改性与审查抵抗并不意味着什么?

不可篡改性并不意味着某笔交易就是合法的,也不代表任何人都永远无法逆转某笔交易。一笔未确认的交易仍然可能被替换或丢弃。

不可篡改性并不意味着网络无法被攻击,也不意味着网络上的每一条记录都是真实的。哈希链接可以显示数据被更改过,但无法显示是谁更改的,因为确认身份的工作是由数字签名完成的——数字签名是一种密码学证明,用以证明密钥持有者授权了某笔交易。51% 攻击,即掌握大部分算力的一方试图改变网络所遵循的链条,这与攻破某个钱包或数字签名是完全不同的事件,而节点所执行的规则在设计上正是为了限制这样一方所能造成的影响。

不可篡改性与审查抵抗都不是对任何网络未来状况的承诺。本篇所描述的是截至 2026 年 10 月比特币的设计状况。

2025年11月27日

GoMining 新闻

您可能会对以下内容感兴趣