跳转到内容
← 返回核心概念
系统与架构计算机科学 · 分布式系统14 分钟阅读

区块链

Blockchain

2008 年 10 月 31 日,署名"中本聪(Satoshi Nakamoto)"的人向密码学邮件列表发布了一篇九页论文:《比特币:一个点对点电子现金系统》。文中提出了一种无需可信第三方的去中心化账本机制,核心数据结构是一条哈希链接的区块序列。 这个数据结构后来被称为"区块链"。它解决的核心问题,是密码学领域思考了数…

区块链密码学分布式账本共识机制

2008 年 10 月 31 日,署名"中本聪(Satoshi Nakamoto)"的人向密码学邮件列表发布了一篇九页论文:《比特币:一个点对点电子现金系统》。文中提出了一种无需可信第三方的去中心化账本机制,核心数据结构是一条哈希链接的区块序列

这个数据结构后来被称为"区块链"。它解决的核心问题,是密码学领域思考了数十年的老问题:在互不信任的参与者之间,如何达成对共享账本的共识?

破除误解:区块链不等于比特币,也不等于去中心化

三个经常被混淆的概念:

  • 比特币:一种特定的加密货币,使用区块链作为其底层账本。
  • 区块链:一种数据结构——哈希链接的、按时间顺序追加的区块序列。比特币使用了它,但区块链可以用于许多场景。
  • 去中心化:区块链可以是去中心化的(比特币),也可以是中心化的(许多企业区块链只有少数可信节点)。

很多"区块链应用"实际上是有中心化管理机构的,与传统数据库相比并无显著优势。区块链的真正价值在于不可信环境下的无需许可的共识——如果参与者彼此信任,或者有中心化权威,通常不需要区块链。

前史:中本聪没有从零发明区块链

把区块链当成"2008 年突然冒出来的发明"是另一个常见误解。白皮书里几乎每一块积木都来自更早的研究。

数字货币最棘手的问题叫双花(double-spending):现金是实物,花出去就不在手里;而数字货币只是一串数据,可以无限复制,怎样保证同一枚币不被花两次?传统方案是交给银行这类中心机构记账核验,但这又回到了"需要可信第三方"。

中本聪在论文里引用的关键先驱包括:

  • Haber 与 Stornetta(1991):在《如何为数字文档加时间戳》中提出,把每份文档的哈希与前一份的哈希链接起来,形成一条谁也无法悄悄插入或修改的链——这正是"区块链"链式结构的雏形,被列为比特币白皮书第 3 篇参考文献。
  • Adam Back 的 Hashcash(1997):用工作量证明对抗垃圾邮件,要求发件方先解一道耗算力的哈希难题。比特币直接借用了这套机制来挖矿。
  • Wei Dai 的 b-money(1998)Nick Szabo 的 bit gold(1998):都构想了去中心化的电子现金,但都没能给出一个让全网对"谁先花了这枚币"达成一致的可行办法。

中本聪真正的创新,是把这些零件组装成一个闭环:用工作量证明 + 最长链规则 + 自动难度调整,让互不信任的节点无需任何中心权威,就能对交易顺序达成唯一共识,从而第一次在工程上解决了去中心化的双花问题。2009 年 1 月 3 日产生的创世区块(Genesis Block)里,中本聪嵌入了当天《泰晤士报》头版标题"Chancellor on brink of second bailout for banks"(财政大臣濒临对银行的第二次纾困),既是不可伪造的时间戳,也是对 2008 年金融危机的一句注脚。

核心:哈希链与不可篡改性

区块链的关键特性来自密码学哈希函数。每个区块包含:

区块 N
┌─────────────────────────────────┐
│ 区块头                           │
│   前一区块哈希: Hash(N-1)        │  ← 关键:链式引用
│   默克尔根: MerkleRoot(交易列表) │
│   时间戳                         │
│   难度目标 / 随机数(Nonce)      │
├─────────────────────────────────┤
│ 交易数据                         │
│   TX1: A 转给 B 0.5 BTC         │
│   TX2: C 转给 D 1.2 BTC         │
│   ...                            │
└─────────────────────────────────┘
```

每个区块的哈希值由其完整内容计算得出。因为区块头包含前一区块的哈希,修改任何历史区块会改变该区块的哈希,进而使后续所有区块失效——要篡改链上数据,必须重算从被篡改区块到链头的所有后续区块的工作量证明,且要追上诚实节点不断增长的链。在 PoW 下,攻击者算力不足全网半数时,"追上"的成功概率随确认区块数(链上叠加的区块越多)指数衰减——这正是"等待 6 个确认"之类规则的理论依据。

默克尔树(Merkle Tree):区块中的所有交易组织成一棵二叉哈希树,树根(Merkle Root)是所有交易的指纹。这让轻量级客户端(如手机钱包)可以验证某笔交易是否在区块中,而无需下载整个区块数据。

共识机制:如何在去中心化网络达成一致

区块链的真正难点不是数据结构,而是共识机制:在没有可信中央服务器的情况下,让分散的节点对"下一个有效区块是哪个"达成共识。

工作量证明(Proof of Work,PoW):矿工竞相找到一个随机数(Nonce),使区块头的哈希值满足某个特定条件(如开头有若干个 0)。这需要大量计算尝试,成功者获得出块权和区块奖励。

Hash(区块头+Nonce)<目标值\text{Hash}(\text{区块头} + \text{Nonce}) < \text{目标值}

  • 优点:无需身份验证,开放参与;经济激励与网络安全对齐
  • 缺点:能源消耗巨大(据剑桥大学 CBECI 指数,比特币网络年耗电量约 120–140 TWh,与荷兰、阿根廷等中等经济体的全国用电量相当);出块速度慢(比特币约 10 分钟/块,交易确认慢)

51% 攻击不只是理论:若攻击者掌握全网过半算力,就能秘密制造一条比诚实链更长的分叉,再用它撤销已确认交易、实现双花。对比特币这样的大网络,凑齐过半算力的成本高到不现实;但对算力小的链,攻击者可以从 NiceHash 等平台短时租用算力发动攻击。以太坊经典(Ethereum Classic)在 2019 年 1 月与 2020 年 8 月多次被 51% 攻击,单次最多重组数千个区块、双花数百万美元;比特币黄金(Bitcoin Gold)在 2018、2020 年也两度被攻破。这说明 PoW 的安全性并非绝对,而是与全网算力规模直接挂钩——链越小,越脆弱。

权益证明(Proof of Stake,PoS):验证者质押加密货币作为抵押,系统按照一定规则选择出块者。恶意行为(如试图双花)将导致质押被没收(Slashing)。以太坊在 2022 年 9 月 15 日成功从 PoW 切换到 PoS("合并",The Merge),能源消耗降低约 99.95%。

确定性最终性 vs 概率性最终性:这是 PoW 与 BFT 类共识的一个根本区别。PoW 的最终性是概率性的——一笔交易永远存在被更长分叉推翻的理论可能,只是这种可能随确认区块数增加而指数趋近于零,这正是"等 6 个确认"规则的由来。而 PBFT、Tendermint 以及合并后以太坊的最终性机制提供确定性最终性:一旦足额验证者按规则对某区块完成投票,它就被锁定、不可逆转。确定性最终性对需要即时结算的金融场景更友好,这也是近年不少新公链转向 PoS + BFT 的原因之一。

其他机制:委托权益证明(DPoS)、权威证明(PoA,适合联盟链)、实用拜占庭容错(PBFT,Hyperledger Fabric 使用)。

智能合约:可编程的账本

智能合约(Smart Contract):部署在区块链上的程序代码,当满足预定条件时自动执行。

以太坊(Ethereum,2015 年由 Vitalik Buterin 等创立)是最主要的智能合约平台。其智能合约用 Solidity 语言编写,在以太坊虚拟机(EVM)上执行,执行结果被记录在链上且不可更改。

典型应用: - DeFi(去中心化金融):无需银行的借贷、交易、流动性提供(Uniswap、Aave、Compound) - NFT(非同质化代币):链上数字所有权证明(2021 年爆火,随后热度大幅下降) - DAO(去中心化自治组织):用智能合约取代公司章程,治理规则写在代码里

"代码即法律"的陷阱:2016 年 6 月,以太坊上的 The DAO 项目因智能合约的重入漏洞(reentrancy)被攻击者利用——攻击者反复递归调用提款函数,在合约更新余额之前不断抽走资金,共约 360 万枚 ETH(占其募资总量约三分之一,按当时币价约合 6000 万美元)被转走。以太坊社区决定硬分叉(Hard Fork)回滚这笔交易——这引发了关于"区块链不可篡改性"原则的深刻争议,也导致以太坊经典(Ethereum Classic)的分裂。

联盟链与私有链

公链(Public Blockchain):任何人都可以参与,完全去中心化(比特币、以太坊)。 联盟链(Consortium Blockchain):由多个机构共同管理,节点需要授权(Hyperledger Fabric、R3 Corda)。 私有链(Private Blockchain):由单一组织控制,本质上是一个有区块链数据结构的中心化数据库。

联盟链在金融、供应链等场景有实际部署:多个互不完全信任的机构(如银行间清算、贸易融资)共享账本,减少对单一可信中介的依赖。

代价与争议

可扩展性三难困境(区块链三角):安全性、去中心化、可扩展性,三者只能取其二:

取舍代表
安全 + 去中心化(牺牲速度)比特币(7 TPS)
安全 + 可扩展(牺牲去中心化)许多联盟链
去中心化 + 可扩展(安全存疑)某些 DPoS 链

以太坊试图通过分片(Sharding)和 Layer 2(如 Optimistic Rollup、zk-Rollup)突破这个困境,仍在进行中。

环境影响:PoW 的高能耗一直是批评焦点。尽管部分矿工使用可再生能源,整体上比特币挖矿仍产生大量碳排放,与气候目标存在冲突。

监管与合规:加密货币跨境流动难以监管、DeFi 的匿名性可能被用于洗钱、稳定币对金融稳定的影响——监管机构全球范围内仍在摸索如何应对。

"区块链不是万能药":数据只要输入区块链,链上的不可篡改性就无法保证数据本身的真实性——"Garbage In, Garbage Out"。许多"区块链溯源"项目本质上是把中心化系统的信任问题转移到了数据录入环节。

跨域连接

  • 分布式共识算法:工作量证明给的是概率最终性,交易被更长分叉推翻的可能随确认数指数衰减却永不为零;拜占庭容错类协议给的是确定最终性,票数达标即锁定。需要即时结算的场景无法接受前者,取舍就在这里。所以"等几个确认"不是习惯,而是把风险压到可接受阈值所需的时间。
  • 热力学定律:哈希搜索没有捷径,算力必须真实耗散能量,这才是"不可伪造的成本"的锚点。由此可以推出一条谁也绕不开的结论:任何把能耗降下来的工作量证明变体,同时也把伪造的成本降了下来。
  • 博弈论:安全性是均衡命题而非算法命题——诚实记账必须比攻击更划算。而攻击成本与全网算力成正比,却与链上资产规模脱钩,于是小链可以被短时租来的算力打穿,这一点已在多条小型链上反复验证。推论是:安全预算必须随链上资产规模同步增长,否则攻防成本迟早倒挂。
  • 货币与中央银行史:双花在实物货币里由物理独占解决,在纸币里由发行方信用解决。这里改用全网记账替换信用,代价是结算速度与能耗——它不是消灭了信任,而是把信任从机构挪到了协议假设与参与结构上。推论是:换掉共识机制并不改变输入端的真实性问题。
  • 正当性:那次为回滚攻击而做的硬分叉说明,不可篡改是一条宪法性承诺,而推翻它的权力仍在链下的人手里。可检验推论:任何"代码即法律"的系统都存在一道修宪程序,区别只在它有没有被写明、由谁触发。同理,链上治理的投票权分布,会直接决定这道程序由谁实际掌握。

参考文献

  • Nakamoto, S. Bitcoin: A Peer-to-Peer Electronic Cash System. 2008. (原始白皮书,9 页,可在网上免费获取)
  • Buterin, V. Ethereum: A Next-Generation Smart Contract and Decentralized Application Platform. 2014. (以太坊白皮书)
  • Bonneau, J. et al. SoK: Research Perspectives and Challenges for Bitcoin and Cryptocurrencies. IEEE S&P, 2015.
  • Haber, S., Stornetta, W.S. How to Time-Stamp a Digital Document. Journal of Cryptology, vol. 3, no. 2, pp. 99–111, 1991. (比特币白皮书第 3 篇参考文献,链式哈希结构的思想源头)
  • Cambridge Centre for Alternative Finance. Cambridge Bitcoin Electricity Consumption Index (CBECI). ccaf.io. (比特币网络能耗的权威实时追踪与方法论)

延伸阅读

  • Narayanan, A. et al. Bitcoin and Cryptocurrency Technologies. Princeton University Press, 2016. (教材,有免费在线版)