主页 > imtoken官网下载2.0 > 比特币钱包

比特币钱包

imtoken官网下载2.0 2023-12-15 05:11:59

钱包技术概览

比特币钱包只包含钥匙,不包含硬币。每个用户都有一个包含多个密钥的钱包。钱包只包含私钥/公钥对的钥匙串。

用户使用密钥签署交易,从而证明他们拥有交易输出(他们的硬币)。硬币作为交易输出(通常表示为 vout 或 txout)存储在区块链中。

有两种主要类型的钱包,不同之处在于它们包含多个相互关联的密钥。

第一种类型是非确定性钱包,其中每个密钥都是从随机数独立生成的。密钥彼此无关。这个钱包也被称为“Just a Bunch Of Keys”,简称JBOK钱包。

第二种类型是确定性钱包,其中所有密钥都来自主密钥,即种子。此类钱包中的所有密钥都是相互关联的,如果有原始种子,则可以重新生成所有密钥。确定性钱包中使用了许多不同的密钥派生方法。最常见的推导方法是使用树状结构,称为 Hierarchical Deterministic Wallet 或 HD Wallet。

确定性钱包是由种子创建的。为了便于使用,种子被编码为英文单词,也称为助记符。

非确定性(随机)钱包

在第一批比特币客户端(Bitcoin Core,现称为比特币核心客户端)中,钱包只是随机生成的私钥集合。这种类型的钱包称为零类型非确定性钱包。例如,Bitcoin Core 客户端预先生成 100 个随机私钥,从一开始就生成足够多的私钥,并且每个密钥只使用一次。这种钱包现在正被确定性钱包所取代,因为它们难以管理、备份和导入。随机密钥的缺点是,如果您生成许多私钥,则必须保留所有私钥的副本。这意味着钱包必须经常备份。每个密钥都必须备份,否则如果钱包无法访问,钱包控制的资金就会丢失。这种情况直接与避免地址重复使用的原则相冲突——每个比特币地址只能进行一次交易。地址重用将多个交易和地址联系在一起,从而降低了隐私。当您想避免重复使用地址时,类型零非确定性钱包不是一个好的选择一个比特币对应一个密钥吗,因为您创建了太多私钥并保留它们。虽然比特币核心客户端包括零钱包,但比特币核心开发人员不鼓励使用它们。

图片

确定性(种子)钱包

一个比特币对应一个密钥吗_比特币价值比特币最新_比特币密钥破解

确定性或“种子”钱包包含可以使用单项离散函数从公共种子生成的私钥。种子是一个随机生成的数字。例如,该数字还包含可以生成私钥的索引号或“链码”(请参阅​​“分层确定性钱包”)。在确定性钱包中,种子足以恢复所有已生成的私钥,因此在初始创建时进行简单备份就足够了。而且种子也足够钱包导入或导出。这很容易让用户的私钥在钱包之间轻松转移。

图 5-2 显示了确定性钱包的逻辑图。

图片

分层确定性钱包(HD 钱​​包 (BIP-32/BIP-44))

开发确定性钱包是为了更容易从单个“种子”生成多个密钥。确定性钱包的最先进形式是 BIP0032 标准定义的 HD 钱包。 HD钱包包含一个从key派生出来的树状结构,这样父key可以派生出一系列子key,每个子key又可以派生出一系列孙key,以此类推,无限派生。图 5-3 展示了树形结构。

图片

与随机(非确定性)密钥相比,HD 钱包有两个主要优势。

首先,树形结构可以用来表达额外的组织含义。例如一个比特币对应一个密钥吗,当某个分支的子键用于接收交易收入,而另一个分支的子键用于支付费用时。所有密钥都可以在公司环境中使用,可以管理不同的分支机构、子公司、特定职能和会计类别。

比特币价值比特币最新_一个比特币对应一个密钥吗_比特币密钥破解

HD 钱包的第二个好处是它允许用户构建一系列公钥,而无需访问相应的私钥。这允许 HD 钱包在不安全的服务器中使用或为每笔交易发布不同的公钥。无需预加载公钥或预加载衍生品,服务器中没有私钥可用于支付。

种子和助记符(BIP-39)

HD 钱包能够管理多个密码 密钥和地址的强大机制。种子是从一系列英文单词中生成种子的标准化方法,便于在钱包中传输、导出和导入,如果与HD钱包结合使用会更有用。这些英文单词被称为 For mnemonics,标准由 BIP-39 定义。如今,大多数比特币钱包(以及其他加密货币的钱包)都使用此标准,并且可以使用可互操作的助记符导入和导出种子以进行备份和恢复。

让我们从实际的角度来看看以下哪些种子更容易转录、阅读、导出和导入。

十六进制的种子:0C1E24E5917779D297E14D45F14E1A1A

助记符所代表的种子:

军队范防御携带嫉妒的真实垃圾声称回声媒体制造紧缩

从助记符生成种子

助记符 表示熵,长度为 128 到 256 位。熵用于通过使用密钥扩展函数 PBKDF2 导出更长(512 位)的种子。生成的种子用于构建确定性钱包并获取其密钥。

密钥扩展函数有两个参数:助记符和盐。 salt 的目的是增加构建能够进行暴力攻击的查找表的难度。 Salts 在 BIP-39 标准中还有另一个用途,允许引入密码短语作为保护种子的额外安全因素,我们在 BIP-39 可选密码短语部分对此进行了详细描述。

比特币价值比特币最新_比特币密钥破解_一个比特币对应一个密钥吗

创建助记词后的步骤 7-9 是:

7、PBKDF2密钥扩展函数的第一个参数是第6步生成的助记词。

8、PBKDF2密钥扩展函数的第二个参数是salt。由字符串常量“助记符”与用户提供的可选密码字符串连接而成。

9、PBKDF2 使用 HMAC-SHA512 算法,使用 2048 个哈希来扩展助记符和盐参数,产生一个 512 位的值作为其最终输出。这个 512 位的值就是种子。

图 5-7 显示了如何从助记符生成种子

种子

BIP-39 中的可选密码

BIP-39 标准在派生种子时允许使用可选密码。如果没有使用密码,助记词会使用由常量字符串“mnemonic”组成的盐进行扩展,从而从任何给定的助记词中产生一个特定的 512 位种子。如果使用密码短语,密钥扩展功能也将使用相同的助记词生成不同的种子。事实上,给定一个助记符,每个可能的密码短语都会产生不同的种子。基本上没有“错误”的密码短语,所有密码短语都是有效的,它们都会导致不同的种子,形成一大堆可能未初始化的钱包。这批钱包非常大(2^512),用暴力或随机猜测几乎不可能。

表示 BIP-39 中没有“错误”的密码短语。每个密码都会导致一些钱包,只是未使用的钱包是空的。

一个比特币对应一个密钥吗_比特币密钥破解_比特币价值比特币最新

可选密码带来两个重要功能:

但请务必注意,使用密码也有丢失风险:

钱包标准

随着比特币钱包技术的成熟,出现了一些通用的行业标准,使得比特币钱包具有广泛的互操作性、易用性以及安全灵活的特性。这些常用的标准有:助记码,基于BIP-39高清钱包,基于BIP-32多用途高清钱包结构,基于BIP-43多币种多账户钱包,基于BIP-44

随着这些标准的发展,它们可能会发生变化或过时,但现在它们形成了一套互锁技术,已成为比特币事实上的钱包标准。

p>

派生密钥私有子密钥的扩展和派生

分层确定性钱包使用 CKD(子密钥派生)函数从父密钥派生子密钥。

子密钥派生函数基于单项哈希函数。这个函数结合了:

Chaincode 用于将确定性随机数据引入过程中,使索引无法充分导出其他 Subkey。因此,除非您已经拥有链码,否则拥有子密钥不会使其发现自己的姊妹密钥。初始链码种子(位于密码树的根部)由随机数据组成,然后链码从它们各自的父链码派生而来。

比特币密钥破解_比特币价值比特币最新_一个比特币对应一个密钥吗

这三项(父私钥、链码、索引)被组合并散列以生成子密钥。密码树下一层重复此过程,每个子密钥可以依次成为父密钥并继续创建自己的子密钥,直到无限代。

扩展键

正如我们之前看到的,密钥派生函数可用于在密钥树的任何级别创建子密钥。这只需要三个输入:一个键、一个链码和所需子键的索引。密钥和链 将代码的这两个重要部分结合起来后,称为扩展密钥。术语“扩展密钥”也被认为是“可扩展密钥”,因为这样的密钥可用于派生子密钥。

扩展密钥可以简单地存储和表示为一个简单的 512 位序列,将 256 位密钥与 256 位链码连接起来。有两个扩展键。扩展私钥是私钥和链码的组合。可以用来导出子私钥(子私钥可以导出子公钥)。公钥和链码组成扩展公钥,可用于扩展子公钥,详见“生成公钥”章节。

将扩展密钥想象为 HD 钱包中密钥树结构的一个分支的根。您可以导出此分支的所有其余部分。扩展私钥可以创建一个完整的分支,而扩展公钥只能创建一个公钥的分支。

表示扩展密钥由私钥(或公钥)和链码组成。扩展键可以创建子键,并且可以在键树结构中创建整个分支。共享扩展密钥可以访问整个分支。

公共子密钥派生

如前所述,分层确定性钱包的一个有用特性是它们可以直接从公共父密钥派生而无需通过私钥派生公共子密钥的能力。这为我们提供了两种派生子公钥的方法:通过子私钥或直接通过父公钥。

因此,扩展密钥可用于派生 HD 钱包结构分支中的所有公钥(并且仅是公钥)。

此快捷方式可用于创建非常私密的仅公钥配置。在配置中,服务器或应用程序可以拥有带有或不带有私钥的扩展公钥的副本。这种配置可以创建无限数量的公钥和比特币地址。但是任何发送到该地址的比特币都不能使用。同时,在另一台更安全的服务器上,扩展私钥可以衍生出所有对应的可以签署交易和花钱的私钥。

图 5-11 说明了扩展父公钥以派生子公钥的传输机制。

图片