我写了个“教学版”比特币,用 10 个 Python 脚本带你彻底搞懂核心原理
比特币、区块链,一问到 UTXO 、PoW 、数字签名这些核心细节,可能就有点模糊了。看理论文章又常常觉得枯燥,不够直观。
为了彻底搞懂它,我决定用纯 Python 从零撸一个简化版的比特币,并把过程整理成了 10 个循序渐进的脚本,希望能帮到有同样困惑的 V2EXer 。
这个项目最大的特点就是 “为教学而生”。
🔗 项目地址: https://github.com/picasso250/my-bitcoin/
✨ 这个项目有什么不同?
- 100% 循序渐进:从
step1(生成密钥) 到step10(模拟网络共识),每个脚本只专注一个核心概念。你可以python step1_...python step2_...这样一步步执行下来,看着它从无到有,完全没有学习断层。 - 代码即文档:我写了大量“保姆级”的注释,不仅解释代码“做了什么”,更解释了“为什么这么设计”。比如,为什么地址需要校验和?为什么交易要确定性序列化?
- 聚焦核心,抛弃噪音:项目砍掉了复杂的 P2P 网络层和 Base58 编码,让你能把全部精力放在 密码学 (ECDSA)、交易结构 (UTXO) 和工作量证明 (PoW) 这些真正奠定比特币大厦的基石上。
- 💡 鼓励与 AI 结对学习:项目 README 和注释风格都非常适合与 Gemini 这样的 AI 助手互动。看不懂的地方,直接把代码和问题丢给它,把它当成你的 24/7 助教,学习效率翻倍。
📚 10 步学习路径概览:
step1_generate_keys.py: 生成你的第一对公私钥。step2_sign_and_verify.py: 理解签名的本质。step3_public_key_to_address.py: 从公钥到我们熟悉的地址。step4_build_simple_transaction.py: 构建第一笔“交易”。step5_create_a_block.py: 把交易打包进区块。step6_mine_a_block.py: 引入工作量证明 (挖矿)!step7_single_utxo_transaction.py: 核心概念! 理解 UTXO 和“找零”。step8_multi_input_utxo_transaction.py: 模拟“凑钱”支付。step9_coinbase_in_utxo_block.py: 搞懂矿工奖励和手续费。step10_simulated_network_consensus.py: 上帝视角,看多个节点如何达成共识。
这个项目不求生产可用,只求能让一个聪明的开发者在一个下午的时间里,通过亲手跑代码,对 比特币 的运作原理有一个清晰、深刻、代码级的认知。
项目完全开源,代码和文档都在 GitHub 上了。
如果你觉得有帮助,求个 Star ✨ 就是最大的鼓励!也欢迎随时提 Issue 或 PR 交流。
谢谢大家!







