关键词:比特币钱包、私钥公钥、UTXO、数字签名、交易验证、SHA256、非对称加密、比特币交易
比特币钱包到底是“装”什么?
在比特币网络里,你看到的“钱包”(wallet)不是装比特币的“口袋”,而是一串或多串私钥的容器。私钥决定了你对链上 UTXO(未花费交易输出)的支配权,进而决定你能花多少比特币。想用简单一句话记住?“没有私钥,就没有比特币。”
一、底层密码学:三道锁守护安全
1. 单向散列函数——SHA256
- 把任意长度数据压缩为 256 bit 定长指纹。
- 极轻微改动就会使指纹面目全非,确保信息不可篡改。
- 比特币在区块哈希、交易哈希中大量使用 SHA256 与 RIPEMD160 的组合。
2. 非对称加密——椭圆曲线 SECP256K1
- 公钥=锁,私钥=钥匙。
- 公钥公开,谁都可以看;私钥保密,只能签名。
- 同时解决了“身份验证”和“不可抵赖”两个痛点。
3. 同态加密(扩展阅读)
在链外场景中,同态加密让你把加密后的数据交给第三方运算,结果解密后与直接运算明文同效,不透露敏感成分。
二、密钥、地址与钱包:三步生成你的收币名片
- 随机数 → 私钥
256 bit 熵的随机数即为私钥,必须离线备份,绝不上传云端。 - 私钥 → 公钥
SECP256K1 椭圆曲线函数单向推出公钥,“逆向几乎不可能”。 公钥 → 地址
SHA256(RIPEMD160(公钥)) → 得到 20 字节的 PubKeyHash 加入版本号和校验码 → BASE58 编码 → 最终地址典型示例:1A1zP1eP5QGefi2DMPTfTL5TTmv7DivfNa,正是中本聪挖出创世区块后留下的首笔 50 BTC 收款地址。
实际上,你钱包里存的是一串助记词(Mnemonic)或多把私钥,对应 N 个地址。只要私钥在手,几十、上百个地址的资金都可一键接管。
三、比特币交易:一条没有账户的链
比特币交易的本质就是 把旧的 UTXO 拆开 → 形成新的 UTXO。所谓“余额”仅为未被消费的 UTXO 总和。
一笔典型转账
- 输入(Input)
引用上一笔交易的某个 UTXO,附上签名 ScriptSig(证明你拥有它)。 - 输出(Output)
给新地址设定脚本 ScriptPubKey,以后持私钥的人才能解锁。 - 矿工费(Fee)
输入总额 – 输出总额 = Fee,矿工才能打包交易。
UTXO 优势
- 并行性好:可同时发送多个 Output 给不同地址,像多把钱一次性发出。
- 隐私隐藏:由脚本控制,无需透露身份。
- 安全性:每一笔独立签名,降低单点失败风险。
四、重头戏:交易验证脚本
比特币使用基于栈的虚拟机,验证过程通俗拆解如下(以 P2PKH 为例):
| 步骤 | 指令 | 说明 |
|---|---|---|
| 1 | 把签名和公钥压栈 | |
| 2 | OP_DUP | 复制栈顶的公钥 |
| 3 | OP_HASH160 | 对公钥再跑一次 Hash160 |
| 4 | 将期望的 PubKeyHash 压栈 | |
| 5 | OP_EQUALVERIFY | 对比两次 Hash160 的结果 |
| 6 | OP_CHECKSIG | 用栈顶公钥验证签名是否正确 |
如果每一步骤都通过,网络节点即认为交易有效并可将 Output 标记为已花费,同时生成新的 UTXO。整个过程耗时毫秒级,无需第三方背书。
五、扩展知识:图灵非完备性
比特币脚本故意不图灵完备,没有循环与递归,以防恶意脚本踢爆 Gas。安全性、可预测性和简洁性优先,复杂逻辑留给第二层解决方案。
总结清单
- 你真正拥有的并不是“币”,而是对特定 UTXO 的解锁权力。
- 钱包=私钥库,地址=公钥的 HASH,彼此之间存在单向不可逆关系。
- 交易=花费输入+创建新输出+矿工费,依赖 SHA256 + SECP256K1 组合进行身份验证与数据完整性检测。
- P2PKH、P2SH、SegWit 等脚本形式不断丰富,核心原则始终是“只有私钥匹配的公钥才能花钱”。
FAQ:新手最容易问的 6 个问题
Q1:助记词与私钥是什么关系?
A1:12(或24)个单词的助记词经 BIP39 解码派生种子,再经 BIP32/BIP44 派生出无数私钥。记住助记词等于备份全部钱包。
Q2:比特币地址可以重复使用吗?
A2:技术上可以,但重复使用会降低隐私,建议“每次收款生成新地址”。
Q3:为什么说“找不到私钥就彻底丢币”?
A3:链上不可修改不可逆,任何找回途径都得依靠密钥本身。去中心化意味着没有客服可申诉。
Q4:公钥可以公开吗?
A4:可以。从公钥到地址的过程也会暴露占用地址,加密意义仅在于无法从公钥反推私钥。
Q5:如果我 CD 机时代硬抄的地址打错了一个字母,比特币去哪了?
A5:Base58Check 加入了强校验码,绝大多数随机误写会被钱包直接拒绝,基本不会造成资金损失。
Q6:黑客能算出 SHA256 碰撞吗?
A6:目前全球计算资源的综合实验表明确属资源量级不足。SHA256 在比特币使用场景下仍是安全护城河。