独立密钥生成
Last updated
Last updated
物理现金的钱包持有现金,因此许多人错误地认为比特币钱包包含比特币。事实上,许多人称为比特币钱包的东西(我们称之为钱包数据库,以区别于钱包应用程序)只包含密钥。这些密钥与记录在区块链上的比特币相关联。通过向比特币全节点证明您控制这些密钥,您可以花费相关的比特币。
简单的钱包数据库包含接收比特币的公钥以及允许创建授权支出这些比特币所需的私钥。其他钱包的数据库可能仅包含公钥,或者仅包含授权支出交易所需的某些私钥。它们的钱包应用程序通过与外部工具(如硬件签名设备或多重签名方案中的其他钱包)合作来生成必要的签名。
钱包应用程序可以独立生成后续计划使用的每个钱包密钥,如图5-1所示。所有早期的比特币钱包应用程序都这样做,但是用户需要在每次生成和分发新密钥时备份钱包数据库,这可能频繁到每次生成新地址以接收新支付时。如果未能及时备份钱包数据库,用户将无法访问未备份的密钥收到的任何资金。
对于每个独立生成的密钥,用户需要备份大约32字节,再加上开销。一些用户和钱包应用程序尝试通过仅使用单个密钥来最小化需要备份的数据量。虽然这样做可能是安全的,但严重降低了该用户及其所有交易对象的隐私。重视隐私的人和他们的同行为每笔交易创建新的密钥对,生成的钱包数据库只能合理地使用数字媒体进行备份。
现代钱包应用程序不会独立生成密钥,而是使用可重复(确定性)算法从单个随机种子派生密钥。