文章

MIT Blockchain and Money 学习笔记(Lecture 4):区块链基础与共识机制

📌 本节课是比特币核心机制的进一步剖析,关注区块链的共识机制设计,主要包括 工作量证明(Proof of Work)挖矿机制(Mining)激励机制(Native Currency)节点与网络结构(Network),并对其他共识机制进行初步引入

📖 Study Questions

  • 拜占庭将军问题(Byzantine Generals Problem)

    • 比特币中的工作量证明(Proof of Work)和挖矿(Mining)机制是如何解决拜占庭将军问题的?

    • 更广义地讲,区块链技术是如何应对该问题的?

  • 其他共识协议(Other Consensus Protocols)

    • 除了工作量证明之外,其他共识算法(如权益证明 Proof of Stake 等)有哪些权衡与利弊?

  • 经济激励机制

    • 区块链系统中,经济激励机制是如何帮助维持去中心化账本的一致性,并避免“双重支付”(Double Spending)问题的?

  • 共识协议与挖矿行为中的激励设计

    • 各类共识机制下,参与者(如矿工、验证者)是如何通过激励制度被驱动来维持整个网络运行的?

🧠 知识回顾:比特币的区块链架构

区块链的存储结构:带时间戳的追加式日志(timestamped append-only log)

  • append-only 指仅支持追加写入,不可修改,从而保证数据的 immutability(不可篡改性)

  • 虽然是防篡改的结构,但仍可能遭受攻击。例如攻击者可以尝试构造一条更长的链(fork),借此替代现有链。

    • 比特币中,通过工作量证明(PoW)的难度设计,确保构造更长链的成本极高,从而保障了安全性。

    • 中本聪在原论文中对此做了概率上的数学论证。

    • 即使链被分叉,用户若仍持有私钥,则其原有资产不会丢失。

比特币技术栈简述(从 Lecture 3 到 Lecture 5 的串联)

  • Lecture 3:加密学与区块链数据结构(hash、签名、时间戳日志)

  • Lecture 4:去中心化共识机制(本讲)

  • Lecture 5:交易模型与脚本系统(Transaction Script & UTXO)

三者共同构成了比特币的核心技术生态。

🔑 核心概念 1:Byzantine Generals Problem(拜占庭将军问题)

问题描述:多个将军分布于不同地点,必须就“是否进攻”达成一致,但其中可能有叛徒传递错误信息。该问题抽象为在不可信网络中达成共识的难题。

Blockchain 用去中心化协议实现“无中心信任”的状态机复制,本质上是这一问题的工程解法。

🔧 共识机制一:Proof of Work(PoW)

起源:Hashcash(Adam Back, 1997)

最初设计用于防止 Email 的 DoS 攻击。核心思想是:

  • 为了完成某项操作,必须找到一个符合特定条件的哈希值(通常是前导 0 的数量)。

  • 哈希值可快速验证,但求解过程计算量大,具备抗 spam 特性。

比特币的创新点:

Chained Proof of Work for Distributed Consensus and Timestamping.

  • 比特币将工作量证明与区块链接(区块头中引用前一个区块的哈希)结合,用于构建最长链共识机制

  • 每个区块的哈希计算内容包括: sha256(prev_block_hash + tx_merkle_root + timestamp + nonce)

  • 网络中默认在“当前最长链”上继续挖矿。

  • 链的“最长”代表最多算力的累积投入,从而形成一种去中心化的共识。

挖矿主链与分叉示意:

示例图(主链 vs 短分叉):

  • 紫色分支:可能由广播延迟或多个矿工同时出块造成的临时分叉。

  • 黑色主链:最终成为全网默认的主链。

  • 没有被接续的分支最终被抛弃,称为“孤块”或“stale block”。

⏳ 被抛弃链上的交易不会永久丢失:因其仍存在于其他节点的 mempool 中,可能在之后重新打包进主链。

💡 我个人觉得这种机制和传统系统中的消息队列有些相似,比如未确认的消息会在未来被重新消费

Bitcoin Proof of Work Difficulty

比特币网络的出块难度与目标哈希值的前导零数量有关。目标值越小,意味着找到一个合格哈希的概率越低,从而增加了难度。

比特币网络每 2016 个区块(大约每两周) 会进行一次难度调整,以确保平均每 10 分钟 出一个块。

举例来说,最初的创世区块(Genesis Block)包含了 10 个 16 进制的前导零,实际上当时的要求只是 8 个前导零,也就是说创世区块的哈希实际上比规定的还要难找,这是一种更强的“成功条件”。

随着越来越多的计算设备参与挖矿,网络的总算力(Hashrate)不断提升,挖矿难度也随之不断增加。

Bitcoin Mining Evolution(比特币挖矿技术的演进)

我们通常用 Hashrate(哈希率)来衡量节点解题(即解决 PoW 难题)的能力,其历史演进如下:

  1. CPU 挖矿(2009 – 2010):2 - 20 MH/s

  2. GPU 挖矿(2010 – 2013):20 - 300 MH/s

  3. ASIC 专用芯片(2013 – 2018):4 – 16 TH/s

  4. 现代化大型矿场(2018 至今):集群化挖矿,效率更高,耗电也更大

一个核心问题是:挖矿的收益以比特币结算,而成本以法币计价。因此:

  • 比特币价格波动会直接影响挖矿利润;

  • 挖矿难度会影响经济的盈亏平衡点;

  • 若难度过高,利润下降,可能会导致一些矿工退出;

  • 然而比特币网络会自动调整难度,形成一个经济与技术协同调节的动态平衡机制

Mining Pools(矿池机制)

由于独立挖矿回报具有不确定性,矿工往往联合组成矿池(mining pools),一起挖矿、按算力分配奖励,从而获得更稳定的收益

矿池中的收入分配仍然基于 PoW 原则:谁贡献的算力多,谁获得的奖励多。

💡 课堂讨论亮点: 有同学提问——“矿池是否可以联合限制挖矿数量,以降低整体难度?”

教授一语点破:比特币是一个开放的网络。

也就是:你不挖,总有人挖。

所以矿池之间达成限制协议没有意义,任何人都可以加入进来参与竞争。这也凸显了比特币网络的开放性与去许可性(permissionless),但也确实有点黑色幽默。😂

51% 攻击

现实中更值得担心的是所谓的 “51% 攻击”

  • 如果某个实体控制了超过 50% 的算力,就可能通过分叉等方式篡改交易记录;

  • 虽然多个研究论文提出了攻击模型和防御策略,但截至目前,比特币尚未发生真正的 51% 攻击;

  • 然而这也是人们对矿池集中化趋势的一个长期担忧。

Native Currency(原生代币)

区块链系统通常设计有自己的原生代币,作为其经济激励的基础。以比特币和以太坊为例:

比特币(BTC)

  • 每个区块会生成一个Coinbase Transaction,创建新的 BTC;

  • 货币发行政策写死在比特币协议中;

  • 初始每个区块奖励 50 BTC,每 210,000 个区块减半

  • 当前每个区块奖励约为 12.5 BTC,通胀率约为 4.1%

  • 目前已有约 1730 万枚 BTC,最终总量 2100 万枚(预计 2140 年)

  • 除出块奖励外,还有交易手续费(market-based fee)作为补充激励。

以太坊(ETH)

  • 每个区块奖励约为 3 ETH,通胀率约 7.4%

  • 有提案计划将其降低到 2 ETH(2018年11月左右)

  • 手续费系统为 Gas 机制,以用于支付计算资源消耗;

  • 每笔交易的费用单位是 Gas × Gas Price,结算单位为 Wei(1 ETH = 10^18 Wei);

  • 注:课程资料将 Gas 写为单位略有问题,实际 Gas 是“计量单位”,而非费用单位。

📌 我的思考: 货币机制会深刻影响区块链的共识与经济模型。区块链不仅是技术系统,更是经济系统。设计合理的发行机制和激励机制,是确保网络健康发展的关键。

Currency or Asset?(加密货币到底是不是货币?)

课堂中有一个引发热烈讨论的问题:

“比特币是真正的货币,还是只是具备货币特征的资产?”

有同学回答说,判断一个事物是否是货币,可以从以下三个角度来看:

  1. Unit of Account(记账单位)

  2. Store of Value(价值储藏)

  3. Medium of Exchange(交换媒介)

从这个角度来看,比特币在自己的体系内的确具备上述三种功能,因此可以视为一种货币。

但是否是“真正的货币”,在现实世界中仍存在较大争议——尤其是在监管层面。

Bitcoin Network 架构

比特币网络中包含如下几种关键角色和组件:

  • Full Nodes:存储完整区块链,可验证所有交易;

  • Pruning Nodes:在验证后会丢弃旧交易以节省空间;

  • Lightweight Nodes (SPV):只存储区块头信息;

  • Miners:执行 PoW,打包区块,不需要是全节点;

  • Mining Pool Operators:组织矿池运营,带来效率但也引入了部分中心化;

  • Wallets:用于生成私钥、公钥,查看、发送和接收交易;

  • Mempool:保存所有待确认但已验证的交易。

💡 一点思考: 矿池作为中介组织,在分布式网络中扮演了“效率中枢”的角色,但也因此被视为可能的中心化隐患,有人称之为比特币系统的“阿喀琉斯之踵”。

Alternative Consensus Protocols(替代共识机制)

目前除了 PoW,还有一些共识机制正在被研究或应用,通常可以分为:

随机化选举机制:

  • Proof of Stake (PoS):按持币数量(stake)决定出块概率;

  • Proof of Activity:结合 PoW 和 PoS 的混合机制;

  • Proof of Burn:销毁代币以换取出块权;

  • Proof of Capacity:基于存储空间的共识机制;

委托型机制:

  • 通常基于权限节点分层;

  • 例如 DASH 采用的是 PoW + 主节点(Masternodes)混合机制;

  • NEO 则采用了“专业节点”的委托协议。

📌 总结:目前还没有一个被公认的完美替代 PoW 的机制,PoW 依然是主流大公链的首选。

Study Questions(课后问题与我的思考)

1. 比特币如何记录交易?什么是 UTXO?嵌入交易中的脚本代码是怎样的?它的编程能力如何?

  • 比特币采用 UTXO 模型(未花费交易输出)来记录交易;

  • 每个交易输入都引用之前某个交易输出;

  • 比特币交易中嵌入的脚本称为 Bitcoin Script,用于锁定和解锁输出;

  • 它是一种非图灵完备的语言,只能完成固定逻辑,不能做复杂编程;

  • 这也体现出比特币“只为代币而设计”的局限性,而以太坊则追求更强的通用性。

2. 在许多技术如公钥加密、哈希函数、数字现金和 PoW 都早已存在的情况下,中本聪的真正创新是什么?

我认为,中本聪的真正创新是:

  • 将这些技术整合为一个协调运行的系统

  • 创造性地引入了去中心化的经济激励机制

  • 构建了一个无需信任中介即可达成共识的系统架构。

这个设计虽然看似“拼接已有组件”,但其系统性的创新,是颠覆性的。


我也非常期待下一讲能深入学习 Bitcoin 的交易与账本机制(Transaction & Ledger),继续探索这个复杂而有趣的去中心化世界。

License:  CC BY 4.0