BIP0038 提出了一个通用标准,使用一个口令加密私钥并使用 Base58Check 对加密的私钥进行编码,这样加密的私钥就可以安全地保存在备份介质里,安全地在钱包间传输,保持密钥在任何可能被暴露情
高级密钥和地址
我们将看到高级形式的密钥和地址,诸如加密私钥、脚本和多重签名地址,靓号地址,和纸钱包。
私钥必须保密。私钥的机密性需求事实情况是,在实践中相当难以实现,因为该需求与同样重要的安全对象可用性相互矛盾。当你需要为了避免私钥丢失而存储备份时,会发现维护私钥私密性是一件相当困难的事情。通过密码加密内有私钥的钱包可能要安全一点,但那个钱包也需要备份。有时,例如用户因为要升级或重装钱包软件,而需要把密钥从一个钱包转移到另一个。私钥备份也可能需要存储在纸张上(参见“ 纸钱包”一节)或者外部存储介质里,比如 U 盘。但如果一旦备份文件失窃或丢失呢?这些矛盾的安全目标推进了便携、方便、可以被众多不同钱包和比特币客户端理解的加密私钥标准 BIP0038 的出台。
BIP0038 提出了一个通用标准,使用一个口令加密私钥并使用 Base58Check 对加密的私钥进行编码,这样加密的私钥就可以安全地保存在备份介质里,安全地
在钱包间传输,保持密钥在任何可能被暴露情况下的安全性。这个加密标准使用
了 AES,这个标准由 NIST 建立,并广泛应用于商业和军事应用的数据加密。
BIP0038 加密方案是:输入一个比特币私钥,通常使用 WIF 编码过,base58chek字符串的前缀“5”。此外 BIP0038 加密方案需要一个长密码作为口令,通常由多个单词或一段复杂的数字字母字符串组成。BIP0038 加密方案的结果是一个由base58check 编码过的加密私钥,前缀为 6P。如果你看到一个 6P 开头的的密钥,这就意味着该密钥是被加密过,并需要一个口令来转换(解码)该密钥回到可被用在任何钱包 WIT 格式的私钥(前缀为 5)。许多钱包 APP 现在能够识别BIP0038 加密过的私钥,会要求用户提供口令解码并导入密钥。第三方 APP,诸如非常好用基于浏览器的 Bit Address,可以被用来解码 BIP00038 的密钥。最通常使用 BIP0038 加密的密钥用例是纸钱包——一张纸张上备份私钥。只要用户选择了强口令,使用 BIP0038 加密的私钥纸钱包就无比的安全,是一种很棒的线下比特币存储途径(也被称作“冷库”)。
在 bitaddress.org 上测试表 4-10 中加密密钥,看看你如何得到输入口令的加密
密钥。
BIP0038 加密私钥例子
私钥(WIF
密码 MyTestPassphrase
加密私钥(BIP0038)
6PRTHL6mWa48xSopbU1cKrVjpKbBZxcLRRCdctLJ3z5yxE87M
obKoXdTsJ