哈希链与区块链接
使用哈希指针构建最小区块链,以理解不可篡改性
哈希链与区块链接 是 CoddyKit 上的免费 Cryptology Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cryptology Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cryptology Academy 课程共包含 4 节课。
什么是哈希链
哈希链会连接数据区块,使每个区块都包含前一个区块的哈希值。修改任何区块都会改变其哈希值,从而使其后的所有区块失效。这就形成了一个能够检测篡改且只能追加的账本。
区块结构
每个区块包含:(1) 数据载荷(交易),(2) 前一个区块的哈希值(指向前一区块的指针),(3) 时间戳,(4) 随机数(用于 PoW),(5) 交易的默克尔根。第一个区块(创世区块)的 previous_hash = "0"*64。
Python 最小区块链
import hashlib, json class Block: def __init__(self, data, prev_hash): self.data = data self.prev_hash = prev_hash self.hash = hashlib.sha256( json.dumps({'data':data,'prev':prev_hash}).encode() ).hexdigest()
哈希指针如何确保完整性
如果攻击者修改第 3 个区块的数据,第 3 个区块的哈希值就会改变。第 4 个区块引用的是第 3 个区块的旧哈希值,因此链会在第 4 个区块处断裂。攻击者必须重新计算第 3、4、5 个区块……一直到链的末端的所有哈希值。结合 PoW 后,这在计算上是不可行的。
不可篡改性与篡改可检测性
哈希链本身只能提供篡改证据,并不能保证不可篡改性。如果没有额外机制(PoW、数字签名、分布式存储),控制这条链的攻击者仍可重写它。在实践中,正是分布式共识使区块链能够抵抗篡改。
最长链规则
比特币的最长链规则:累积工作量证明最多的有效链是规范链。如果攻击者分叉这条链,诚实矿工会更快地延长诚实链(假设其拥有 51% 的算力)。攻击者的分叉会更短,并被丢弃。
区块头与完整区块
比特币的 SPV(简单支付验证)客户端只下载 80 字节的区块头(包含前一个哈希值、默克尔根、随机数、时间戳和 bits)。完整节点会存储所有交易。SPV 客户端通过针对区块头默克尔根的默克尔证明来验证交易。
创世区块
比特币的创世区块(第 0 个区块,2009 年 1 月 3 日)的 prev_hash = 0x000...0。中本聪将新闻标题“《泰晤士报》2009年1月3日 财政大臣濒临对银行实施第二轮救助”嵌入 coinbase 交易,以作为时间戳证明。
保管链
哈希链早于区块链出现。应用包括:证书吊销列表(通过哈希连接)、日志完整性(对前一条日志记录取哈希)、DNSSEC 信任链。这个概念可以推广到任何只能追加的结构,其中每个条目都对之前的所有条目作出承诺。
检查点机制
为了加快初始同步,Bitcoin Core 将检查点硬编码其中:在特定高度上的已知有效区块哈希值。开始同步的客户端可以跳过对检查点之前区块的 PoW 验证,直接信任硬编码的哈希值。代价是降低了信任最小化程度。
内容寻址
Git 使用相同的原理:每个提交都由其内容 + 父提交哈希的 SHA-1/SHA-256 标识。检出特定的提交哈希,就能得到完全对应的状态。Git 的完整历史记录是一棵通过哈希连接起来的对象树。
快速检查
修改一个区块后,攻击者为什么必须重新计算其后所有区块的哈希值?
回顾
哈希链通过密码学指针连接区块。一次修改会级联到其后的所有区块。结合 PoW 和分布式共识后,这在实践中使区块链具备不可篡改性。下一节:用于高效验证交易完整性的默克尔树。
用 AI 导师学习 Cryptology Academy — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 67
- 课程
- 261
常见问题解答
「哈希链与区块链接」课时是免费的吗?
是的 — 「哈希链与区块链接」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cryptology Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cryptology Academy 课程共包含 4 节课。
「哈希链与区块链接」这节课中我会学到什么?
使用哈希指针构建最小区块链,以理解不可篡改性 你通过在浏览器中直接运行的动手代码来练习 Cryptology Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cryptology Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cryptology Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「哈希链与区块链接」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cryptology Academy 课中编写并运行代码吗?
能。每节 Cryptology Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。