知识库详情
BSV知识库

以“词条释义”的形式对比特币区块链技术中经常涉及的术语及基本概念进行专业化的阐释和解读。

私钥
返回上级
BSV区块链编辑 2022-04-14 18:25 970

私钥是一个秘密的数字,可用于转移比特币、加密数据等。每个私钥都会在比特币椭圆曲线上对应一个公钥。

每个比特币钱包会包含一个或多个私钥,这些私钥通常由一个根密钥生成,根密钥存在钱包文件中。知晓私钥就可以花费该密钥锁定的比特币,因此保护私钥的安全和私密是非常重要的。

用户基本不会直接掌握私钥本身,而是保管一套助记记短语,从助记词中可以得到他们钱包的根密钥。

有效的ECDSA私钥的范围

几乎每个256位整数都可以成为一个有效的ECDSA私钥。具体来说,从0x1到 0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4140中间的任何一个256位数字都可以是有效的私钥。

有效私钥的范围由比特币使用的secp256k1 ECDSA标准定义。

分层确定性(HD)钱包的密钥

钱包软件可以使用助记词由单个秘密值生成许多私钥和相应的公钥,这样的钱包被称为“分层确定性钱包”,或简称为“HD钱包”。密钥种子(或称为主扩展密钥)由一个256位的私钥和一个256位的链码组成,总共512位。请不要将密钥种子与直接用于签署比特币交易的私钥相混淆。

出于安全考虑,目前强烈建议比特币用户使用HD钱包。HD钱包只需要备份一下钱包的助记词;之后可以始终使用这套助记词,确定性地重新生成相同的私钥集,安全地恢复所有地址,以及发送到这些地址的所有资金。非HD钱包只能为每个新地址生成一个新的随机私钥;因此,如果钱包文件丢失或损坏,离上一次备份后生成的地址上收到的资金将彻底丢失,无法挽回。

Base58钱包导入格式

在导入或扫描ECDSA私钥时,通常使用一种较短的格式,它被称为钱包导入格式,这种格式的优势在于:钱包导入格式更短,包括了内置的错误检查代码,能够自动检测和/或纠正拼写错误(这在十六进制格式中是不可能实现的),并指示类型字段的使用方法。在比特币中,钱包导入格式是表示私钥的最常见的方式。

与未压缩公钥相关联的私钥是51个字符,并且在主网上总是以数字5开头(在测试网上以数字9开头)。与压缩公钥相关联的私钥是52个字符,并在主网上以大写字母L或K开头(在测试网上以小写字母c开头)。

总结

任何发送到特定地址的比特币都可以被任何知道它的私钥的人转移或花费,使用三种格式中任何一种格式的私钥都行。私钥只用于花费对应的比特币,查看金额时并不需要使用私钥。

如果私钥被泄露或被盗,应该立即使用私钥,将其控制的未花费资金转移至其它安全的地址下,这样就可以保护资金不会盗走。因为一个UTXO中的比特币只能被花费一次,当UTXO里的资金已经花费掉后,它所对应的私钥就会变得一文不值。我们不建议用户重复使用同一个地址,即多次使用由一个私钥生成的地址收付款,这样做既不明智,也不安全。

其它参考资料

纸钱包

应用
应用层协议
在比特币上进行开发
比特币地址
元网协议
区块链浏览器
确定性钱包
比特币地址技术
Base58Check编码
私钥
助记词
钱包导入格式(WIF)
纸钱包
脑钱包