比特币、区块链,一问到 UTXO 、PoW 、数字签名这些核心细节,可能就有点模糊了。看理论文章又常常觉得枯燥,不够直观。
为了彻底搞懂它,我决定用纯 Python 从零撸一个简化版的比特币,并把过程整理成了 10 个循序渐进的脚本,希望能帮到有同样困惑的 V2EXer 。
这个项目最大的特点就是 “为教学而生”。
🔗 项目地址: https://github.com/picasso250/my-bitcoin/
step1 (生成密钥) 到 step10 (模拟网络共识),每个脚本只专注一个核心概念。你可以python step1_... python step2_... 这样一步步执行下来,看着它从无到有,完全没有学习断层。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 交流。
谢谢大家!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.