- Published on
Blockchain For Dummies
- Authors

- Name
- RickeeX
这个 dummy 很显然是我 😄。系统性地输出一下了解到的 Web3 理论。
何谓 Blockchain?
区块链(blockchain)是一切的主题。所谓 block,就是公开记录的数据块。前一个 block 的哈希值通常被包含在后一个 block 的开头,因此它们像链条一样紧紧连接,一旦改动前面的区块,后面的所有区块都会引发连锁反应。这种方式保证了数据的不可篡改性。
共识机制
你可以说:我重新计算后面的区块就好了呀?理论上是这样。
比特币的解决方案是工作量证明(Proof of Work, PoW)。每添加一个区块都需要做一道极难的、只能用算力堆砌破解的数学题。也就是说,如果我想要修改 block n-k,我必须计算出 block n-k+1, block n-k+2, ... 的数学题,而且速度要比「世界上最幸运的矿工的接力棒」还要快。最终,我的篡改链比当前的共识链还要长,成为新的共识链。这只有在我掌握了全网 51% 及以上的算力的时候,才有机会稳定实现。这在现实中是不可能的。
数学题
所谓数学题,就是:
其中 是一个给定的哈希值上限,按 64 位十六进制数来表示的话,目前的难度是开头有 19 个零。其大小会根据挖矿难度动态调整,以确保每产出 2016 个新的区块,总用时在两周(20160 分钟,即保证每 10 分钟产生一个新的 block)左右。
这个 Nonce 目前没有任何数学解法。只能穷举法暴力破解,因此这是一场算力的比拼。谁最先碰到任何一个满足条件的 Nonce 值,他就有权利将上述内容打包成 block n 并广播。验证方法极其简单:计算新 block 的哈希值,看看开头的零够不够 19 个即可。这是一个解题难度和验证难度极其不对称的题目。
一旦这个幸运的矿工正式将他手头的 block n 部署上链,所有人都会放弃手头的挖矿工作,重新开始,基于 block 0 - ... - block n 来制作 block n+1。这是一个「第一名冲线后,所有人就回到起点重新开始比赛」的游戏。
比特币的发行
比特币会奖励成功上链的矿工一定数量的比特币。这个数额每 210,000 个 block 减半一次。根据上述十分钟定律,每产生 210,000 个 block 需要四年左右。头一个四年(2008-2012)的奖励是 50 比特币。
| 编号 | 时间 | 区块数量 | 奖励数量 | 发行比特币总数 |
|---|---|---|---|---|
| 1 | 2008 - 2012 | 210,000 | 50 | 210,000 × 50 |
| 2 | 2012 - 2016 | 210,000 | 25 | 210,000 × 25 |
| 3 | 2016 - 2020 | 210,000 | 12.5 | 210,000 × 12.5 |
| 4 | 2020 - 2024 | 210,000 | 6.25 | 210,000 × 6.25 |
| 5 | 2024 - 2028 | 210,000 | 3.125 | 210,000 × 3.125 |
| …… | …… | …… | …… | …… |
| last | 约 2140 年 | 210,000 | 0.00000001 | 210,000 × 0.00000001 |
| total | 无限 | 21,000,000(级数之和) |
截至 2024 年,94% 的比特币(接近 2000 万)已经被挖出。但是比特币的使用规则决定了它是越用越少的:一旦被送到一个黑洞地址,那么比特币就永远遗失了。所以比特币有严重的通缩倾向。