知识库详情
知识库

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

确定性钱包
返回上级
BSV区块链编辑 2022-04-14 18:25 340

确定性钱包是一个能够派生密钥的系统,所有派出来出来的密钥的唯一起始点被称为“密钥种子”。在不需要任何其它信息的情况下,用户可以仅使用密钥种子来备份和恢复钱包;在某些情况下,用户甚至还可以在不知晓私钥的情况下创建钱包地址。密钥种子通常被转化为让人们易读易记的助记词(Seed phrase)形式。截至2019年,大多数钱包都是分层确定性钱包,常称为HD钱包,使用BIP 0032标准。

 

确定性钱包的优势

在早期的比特币客户端中,如Satoshi客户端,会生成一个新的随机私钥缓冲区,以便在未来生成收款和接收找零的地址。但是这导致密钥池缓冲区耗尽后(通常为100个地址)的短时间内,钱包没有备份地址;而确定性钱包可以随时为用户生成他们所需的地址,数量没有限制,且每个地址都是不同的。由于地址是不是随机生成的,而是以一种既定的方式生成的,因此用户可以在多个设备上使用同一个钱包客户端,且不会面临损失资金的风险。用户可以方便地备份助记词,这样可以延续钱包的生命周期。

主公钥(Master Public Key)

一些确定性钱包可以将生成私钥和公钥的环节完全分开,这样可以提高钱包的安全性和便利性。在这种模式下,钱包服务器被设置为仅知道确定性钱包的主公钥(MPK),然后由服务器创建公钥,用于收款。然而,在MPK模式下,用户或者攻击者都不能使用钱包花费资金。此时,用户可以使用MPK实现完全离线的存储和支出,即离线计算机知道私钥,在线计算机只知道MPK。用户可以离线创建比特币交易,然后通过二维码或USB存储等方法传输给另一台联网的计算机,从而避免离线计算机面临网络攻击的风险。

使用硬件钱包实现的确定性钱包可以确保私钥始终为离线状态,这样创建交易时不会泄露私钥。

 

确定性钱包的类型

一型确定性钱包

一型确定性钱包是一种直接由已知的起始字符串来生成地址的简单方法,因此它无法实现MPK等高级功能。生成私钥时使用SHA256(string+n),其中n是一个ASCII编码的数字,它从1开始递增,可以生成更多密钥。

二型分层确定性钱包(HD钱包)

BIP 0032中详细描述了HD钱包,它也是目前最常见的钱包类型。HD钱包的密钥种子是一个随机值,以12个或24个常用英文单词或汉字的形式呈现给用户,被称为助记词。在创建任何密钥之前,种子会经过100,000轮SHA256变换,以减缓对用户选择的较弱字符串的攻击。

使用Diffie Hellman秘密共享的钱包

这种钱包使用了nCrypt 白皮书42中的技术,钱包必须进行配置,以管理并支持生成共享密钥所需的握手消息和椭圆曲线计算。目前,还没有钱包支持这种类型的确定性寻址。

 

其它参考资料

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