跳转到内容

比特币加密

来自BitcoinWiki

比特币加密是对比特币及钱包所用密码机制的非正式称呼。比特币账本整体并未加密:区块和交易公开复制。系统主要依赖散列与数字签名来授权和验证,真正的加密用于较窄场景,例如保护钱包文件或网络连接。

比特币密码安全示意图

签名、散列与加密

数字签名证明控制私钥的人授权了所覆盖数据,但不会隐藏数据。散列函数把数据映射为固定摘要;比特币在交易标识符、区块头、工作量证明、Merkle树、地址构造和承诺中使用散列。散列不是可逆加密。加密把明文变为只有持有解密密钥者才能读取的密文,但它不是共识判断输出能否花费的方法。

记录不会仅因含有散列而不可篡改;抵抗改写来自完整的共识与工作量证明。签名证明密钥控制,不会自动证明现实身份或相关陈述为真。

密钥与交易授权

私钥是秘密签名材料,公钥用于验证。比特币地址编码花费条件或见证程序;它并非总是公钥,也不是“存放”币的账户。账本记录脚本规定花费条件的未花费交易输出。

许多传统和SegWit输出使用Secp256k1上的ECDSA,Taproot使用BIP 340施诺尔签名。钱包构造摘要、签名并广播交易;全节点独立检查签名及其他规则。[1][2]

经典计算机在正确实现下被认为无法从公钥实际推导私钥。不可预测的密钥生成、nonce、安全软件与设备及保密恢复资料仍然关键。

账本中的散列

比特币对区块头进行双SHA-256,并使用其他散列结构。Merkle根承诺交易,区块头引用前一头部。改变数据会改变散列,攻击者还必须满足工作量证明和链选择规则。公钥最初由散列隐藏并不带来永久量子免疫:花费时可能披露,签名方案失效时仍需迁移。

钱包加密与备份

钱包可用从密码导出的密钥加密静态私钥或种子。这保护锁定文件,却不能防护弱密码、解锁时的恶意软件、已泄露恢复词或未加密备份。

钱包密码不一定是恢复方式。HD钱包由种子导出很多密钥,正确种子备份可恢复资金。加密一台设备不会保护截图、云端副本或导出密钥。硬件钱包尝试隔离密钥,但用户仍需核对收款方、金额和费用并保护恢复备份。

网络传输与隐私

比特币P2P协议过去以明文发送消息。BIP 324规定加密的v2传输,降低被动观察和未察觉篡改连接的风险;它不会让公开广播的交易变成私密。[3]

公开账本允许交易图分析。地址复用、合并输入和关联交易所账户会在没有密钥泄露时暴露关系。

威胁与迁移

实际损失多来自被盗恢复词、钓鱼、替换地址、恶意软件、弱随机数和无效备份。若攻击者已取得密钥并有效签名,密码学不能撤销交易。

大型容错量子计算机理论上可用Shor攻击secp256k1,现有机器不能。更小的逻辑电路只改变估算,不等于现实攻击。[4]未来过渡需要经过评审的签名提案、钱包支持,以及对已经披露公钥输出的政策。

参见

参考资料

  1. BIP 340,已部署。
  2. Bitcoin Developer Guide,“Transactions”,2026年9月16日查阅。
  3. BIP 324,已部署。
  4. Long等,“ECDSA.Fail”,2026年9月9日。