比特币安全性初探(上篇)基础架构与密码学原理
徐令予 |撰文
一周前,我撰写了《150 亿美元比特币被盗案的真相》,对比特币系统的安全性进行了简单介绍。文中指出,比特币所依赖的密码学算法与区块链结构在整体上是安全稳固的,所谓“150 亿美元比特币被盗”事件,并非源自密码学算法被攻破,而更可能是由低级技术错误或机构内部管理不善所引发。
该文发表后,一些读者反映,由于缺乏对比特币基本原理的了解,阅读时难免产生内容跳跃之感,对文中观点的理解与接受也造成困难。同时,亦有多位朋友建议,针对比特币的基础概念与安全设计,补充一篇更为系统且通俗易懂的科普文章,应该会受到更多读者的欢迎。
这正是撰写这篇文章的缘起。
事实上,尽管比特币已广为人知,却对它到底是什么、如何保存、如何交易、为何安全,仍然模糊不清。本篇将以尽量通俗的方式介绍比特币的基本概念,只要读完本文的上篇,你就具备了理解比特币的必备知识。
一、比特币不是“账户和余额”,它更像是“有序列号的纸币”
比特币资金不是存放在银行系统的账户余额,而是由一个个的数字化钱币“UTXO”组成,这是理解比特币的关键。
UTXO,即未花费交易输出(Unspent Transaction Output),指的是已收到但尚未花费的数字化纸币,它是区块链上记录的一条仍未被引用的交易输出。UTXO 很像数字钱包中的单张纸币,而您的比特币总余额则是您拥有的所有纸币(UTXO)面值的总和。
你可以把每个 UTXO 理解成一张纸币:
每个 UTXO 都有一个固定面额(例如 0.015 BTC);
每个 UTXO 都有一个地址,这个地址确定了 UTXO 的“归属权”。地址可以理解为纸币上印的序列号,你知道多少个地址,如同手中握有了多少张有确定序列号的纸币。
UTXO不可拆开使用,就像纸币不能撕掉一半花出去。当您发送加密货币时,必须交付一个或多个 UTXO ,系统会为收款人创建一个新的 UTXO,并为您收到的任何“找零”创建另一个新的 UTXO。
请注意,这是UTXO和纸币的最大区别:一张纸币本身可以用于多次交易(你花给别人、别人再花给别人),某个序列号的纸币在交易中可以反复使用,它可以归属于不同的主人。但一个 UTXO 在比特币里是“一次性用品”,花费后即彻底失效。每个UTXO 在交易结束后就被废弃,它从一而终,一仆不事两主。
二、比特币和区块链
区块链是一个巨大的、不可篡改的历史账本,记录所有过去发生过的所有交易,包括:
区块链通过密码学哈希函数和分布式共识机制,将交易按区块链接起来,从而保证历史不可篡改。
基于历史账本数据,在系统的每个节点维护的是“当前未花费纸币清单”,也就是 UTXO 集合。
区块链就像是档案室,保存着全部流水记录。
UTXO 集合是最新余额表,存放着当前每一个有效的UTXO的面值和相对应的地址。
这两者一起构成比特币系统的核心结构。
区块链记录历史 → 节点扫描历史生成 UTXO集合 → 交易时节点只用 UTXO
三、钱包里存的是什么?不是比特币,而是“钥匙”
许多人以为自己的比特币保存在电脑或手机里。事实上,比特币的UTXO永远存在于区块链上,钱包并不保存比特币,而是保存能动用这些UTXO的钥匙。
钱包存放的核心内容包括:
钱包的本质是:比特币UTXO的地址记录,以及对这些钱币的所有权提供凭证。
四、A 给 B 支付比特币的完整过程
步骤 1:B 给 A 一个地址
B 打开钱包,生成一个新的地址,通过电邮或其它网络社交软件发给 A。
步骤 2:A 在钱包中填写金额并发起支付
A 输入金额,例如 0.01 BTC。钱包自动选择属于A 的某个 UTXO,例如一个0.02 BTC 的 UTXO(就像在真实钱包中拿出一张纸币)。
步骤 3:构造交易
钱包自动构造交易:
步骤 4:广播交易
交易被发送到比特币网络。各节点检查签名是否有效、UTXO 是否存在。
步骤 5:矿工更新区块链
矿工将这笔有效交易写入新的区块。当区块被确认后:
钱包更新余额,交易完成。
五、本篇总结
以上这些内容是理解比特币系统运作的基础。
下篇将对比特币的安全问题作更深入的探讨,内容包括:
徐令予 作于南加州 (2025年11月23日)