[翻译] 比特币确定性钱包

原文地址:https://en.bitcoin.it/wiki/Deterministic_wallet

确定性钱包

确定性钱包是一种系统,从一个被称为种子的单一起点获取密钥。种子允许用户在不需要任何其他信息的情况下轻松备份和恢复钱包,在某些情况下,用户可以在不知道私钥的情况下创建公共地址。种子通常被串行化为人类可读的字词。

好处

早期的客户端,如Satoshi客户端,会生成一个新的随机私钥缓冲区,在将来用作接收和更改地址。在短时间内耗尽密钥池缓冲区(通常是100个地址)后,这将使备份失效。确定性钱包可以在动态中产生无限数量的地址,因此不会受到这个问题的影响。由于地址是以一种已知的方式生成的,而不是随机生成的,一些客户端可以在多个设备上使用,而不会造成资金损失。用户可以方便地以人类可读的格式创建种子的单个备份,这种格式将持续钱包的使用寿命,而不必担心这种备份会变得过时。
特定类型的确定性钱包(BIP0032, Armory, Coinkite和Coinb)额外允许完全分离私有和公共密钥的创建,以获得更大的安全性和方便性。在这个模型中,服务器可以设置为只知道特定确定性钱包的主公钥。这允许服务器创建尽可能多的公钥来接收资金,但是MPK协议不会允许攻击者从钱包中花钱。它们也可以在Electrum和Armory中使用,以实现完全离线存储和花费,离线计算机知道私钥,而在线的计算机只知道MPK。通过USB存储器,两种计算机之间可以通过USB存储器进行交易,避免将离线计算机暴露给基于网络的攻击。
由硬件钱包(TREZOR)实现的确定性钱包将生成的私钥保持离线状态,即使花钱时也不将它们暴露给计算机。

类型

类型1 确定性钱包

类型1确定性钱包是一种从已知的起始字符串生成地址的简单方法,因此它不允许高级功能,如主公钥。要生成一个私钥,需要使用SHA256(string + n),其中n是一个ascii编码的数字,它从1开始,并随着需要额外的键而增加。
这种类型的钱包可以由Casascius比特币地址实用程序创建。

类型2 分层确定性钱包

这种钱包类型在bip0032中进行了描述,并在TREZOR、Electrum和CarbonWallet中得到了充分的实现。种子是一个随机的128位值,用户可以使用常用的英语单词作为12个单词的种子短语。该种子在10万轮SHA256之后使用,以减缓对弱用户选择字符串的攻击。
这种钱包类型的最初描述和工作原理都归功于格雷戈里·麦克斯韦。

Armory确定性钱包

Armory有自己基于“根键”和“链码”的2型确定性钱包格式。早期版本的Armory需要备份“根键”和“链码”,而较新的版本则以不可逆转的方式从私钥派生链码。这些新的Armory(0.89+)只需要一个256位的根键。这种旧格式打算逐步淘汰,以支持标准BIP0032格式。

猜你喜欢

转载自blog.csdn.net/u012402124/article/details/81350039