A black electronic device with an open lid

加密钱包是如何工作的:密钥、签名和种子短语

By AI News Crypto Editorial Team阅读 10 分钟

加密钱包的工作原理归结为一个任务:生成和保护可以产生有效加密签名以移动记录在区块链上的资金的秘密。现代钱包通过将一个主备份(种子短语)转化为一个完整的密钥和钱包地址树来工业化这个任务,你可以在不创建新备份的情况下旋转这些密钥和地址。

关键要点

  • 钱包并不存储硬币。区块链记录所有权,而钱包存储可以签署交易以支出的秘密。
  • 一个私钥生成授权支出的签名,而公钥和钱包地址是其他人用来支付你的。
  • 一个种子短语可以完全恢复一个钱包,因此任何获得它的人都可以提取资金。
  • 大多数现代钱包是分层确定性钱包,它从一个种子派生出许多账户和地址,使用标准化的派生路径。

钱包作为密钥,而不是硬币存储

在屏幕上,钱包看起来像一个账户:顶部是余额,一个“接收”按钮,一个“发送”按钮。在后台,它更像是交易台上的签名机器。链条保持账本。钱包的工作是向网络证明按下“发送”按钮的人有权移动特定资金。

这就是为什么“钱包如何存储加密货币”是一个误导性短语。硬币并不在应用程序或设备内部。比特币的账本跟踪可支配的价值部分,而钱包通过持有授权支出的秘密来控制它们。Bitcoin.org的术语直截了当:一个钱包包含私钥,允许它支出在区块链上分配给它的比特币,显示余额,并创建支付。

三个标识符经常混淆,因此将它们清晰分开是有帮助的。钱包地址是你分享以接收资金的字符串,Bitcoin.org指出它理想上应该只使用一次以保护隐私。公钥是可以用来验证签名的非秘密对应物。私钥是用于通过加密签名证明支出权利的秘密数据,如果被揭露,它允许从关联的钱包中支出。

最后一部分是备份。一个种子短语不是应用登录,也不是“可重置密码”。Bitcoin.org将恢复短语定义为一系列单词,从中可以完全恢复一个钱包,并警告说,任何获得它的人都可以访问相应的比特币。这个单一事实解释了大多数钱包恐怖故事:真正的风险是失去或泄露签名的能力。

钱包如何发送和接收

接收是简单的一半,因为它不需要秘密。钱包生成一个新的钱包地址,发送者支付它,网络在链上记录该支付。然后钱包扫描区块链(直接或通过服务)以检测属于其地址的输出,并更新余额显示。

发送是钱包机制重要的地方。在比特币上,余额表示为UTXOs,Bitcoin.org将其定义为可以在未来交易中支出的未花费交易输出。一次支出消耗一个或多个UTXOs作为输入,并创建新的UTXOs作为输出。钱包选择要支出的UTXOs,构建一个指定接收者输出的交易,通常还有一个“找零”输出返回给发送者,然后用适当的私钥签署交易。网络可以验证这些签名而不需要了解私钥。

思考流程的简单方法是:

1. 钱包收集与其地址相关的可支配UTXOs并构建草稿交易。 2. 钱包用相关的私钥材料签署交易,生成加密签名。 3. 签名交易被广播到网络,并等待被包含在区块中。

费用不是钱包收取的“税”。Bitcoin.org将交易费用定义为发送者选择的,以激励矿工,并指出较高费用的交易往往会更快确认,尤其是在网络繁忙时。这使得费用滑块变成了优先级旋钮:紧急程度决定费用选择,而不是发送的金额。

确认是结算时钟。Bitcoin.org将确认定义为交易被包含在区块中,每个后续区块减少反转风险。钱包将其呈现为“0确认,1确认,6确认”,但机制是相同的:链,而不是钱包,最终确定转账。

种子短语和确定性恢复

种子短语的存在是因为原始密钥无法由人类管理。BIP39标准化了一种方法,让钱包将主恢复材料表示为单词列表,然后将这些单词转换为用于生成加密密钥的二进制种子。Vault12的概述强调了操作点:BIP39旨在使密钥管理对人类的错误率降低,同时保持底层加密的强度。

随机性是成败的细节。Vault12指出,用于创建BIP39种子短语的数字必须是随机的,因为可预测性会崩溃安全模型。通过适当的随机性,暴力破解不是现实的威胁。Vault12将24个单词的BIP39短语的搜索空间量化为2048^24,大约3 × 10^79种组合,并将其描述为在今天的技术下有效不可猜测。

恢复的含义是绝对的:种子短语可以完全恢复钱包。Bitcoin.org的术语明确了后果,这也是处理种子的原因就像处理现金。如果有人获得这些单词,他们可以在其他地方恢复钱包并生成有效的签名。如果这些单词丢失且没有其他备份,链上没有“忘记密码”功能。

BIP39还定义了一个可选的密码短语。Vault12将其框架视为一种附加保护,如果种子短语被暴露,但它也增加了复杂性并提高了丢失的风险。在操作上,启用它意味着恢复集不再是“12或24个单词”。而是“单词加上密码短语”,忘记其中任何一个都可能像丢失种子一样有效地使资金无法使用。

HD钱包和派生路径

2012年2月是大多数钱包解释者跳过的安静转折点。Trezor的BIP32写作归功于Pieter Wuille提出BIP32,并指出它在2012年2月发布,以解决旧的非确定性钱包中的一个严重可用性问题:每个新地址可能需要一个新的备份。

BIP32的修复是以树的形式组织的确定性密钥派生。所有密钥和地址都源于一个主私钥,子私钥和公钥是确定性派生的,这意味着相同的主密钥总是再生相同的集合。Trezor还强调了层次结构:子密钥和孙密钥可以组织成分支,这就是钱包在仍然可以从一个根恢复的同时分离账户和用途的方式。

这就是“钱包兼容性”头痛的来源。分层确定性钱包可以从同一个种子派生许多不同的分支,因此如果两个应用程序查看不同的分支,它们可以显示不同的余额。BIP44标准化了这个映射。Trezor和Vault12都将BIP44描述为基于BIP32的结构,具有熟悉的派生路径格式:m / purpose' / coin_type' / account' / change / address_index。该派生路径是钱包在密钥树中遵循的文件路径。

Trezor将标准结合在用户实际体验的方式中:当Trezor设备初始化时,它使用BIP39生成一个12、18或24个单词的恢复种子,而该种子成为BIP32密钥派生的主输入。从那里,钱包可以生成新的接收地址以保护隐私,而无需每次都创建新的备份。

这也解释了一个常见的故障排除模式。当“资金丢失”时,第一次检查通常不是区块链。它是钱包是否使用与最初生成地址的钱包相同的派生路径、硬币类型和账户分支。

选择钱包类型和权衡

钱包类型只是对一个问题的不同回答:签名在哪里发生,谁可以接触秘密。Bitcoin.org的钱包指南以简单的术语列出了移动、桌面、网络和硬件钱包的权衡。

硬件钱包被描述为存储资金最安全的方法之一,显然的代价是它们在移动设备上不太方便,并且没有围绕快速二维码工作流程设计。网络钱包可以从任何有浏览器的地方访问,但Bitcoin.org警告说,如果平台被黑客攻击,资金就会面临风险。桌面钱包提供控制,Bitcoin.org直接标记环境风险:通用计算机可能容易受到针对钱包的恶意软件攻击。

两个标准比市场营销标签更重要。第一个是控制:Bitcoin.org指出某些钱包提供完全控制,因此没有第三方可以冻结或提取资金,但这将安全和备份钱包的责任转移给用户。第二个是验证。一些钱包可以作为完整节点运行,独立验证区块和交易,而不信任第三方,Bitcoin.org指出这需要大量内存和资源。

隐私是HD设计与行为的交汇点。Bitcoin.org的词汇表表示,一个地址理想情况下应该只使用一次,而Bitcoin.org的钱包指南指出,一些钱包会轮换地址,并可以使用Tor来减少与IP地址的关联。BIP32风格的派生使得地址轮换在操作上成本低廉,因为它不会造成备份的噩梦。

在决策树的末端,更广泛的加密钱包概念重新聚焦:钱包是一个密钥派生和签名系统。用户界面可以是光滑的或笨拙的,但唯一重要的是谁能生成有效的签名,以及失去这种能力有多困难。

常见误解

“我的钱包存储我的加密货币。”链条存储账本。Bitcoin.org的词汇定义钱包为包含私钥的工具,允许支出和创建支付,这就是为什么删除应用程序并不会删除硬币,以及为什么从种子短语恢复会带回余额。

“种子短语就像一个可以重置的登录。”Bitcoin.org将恢复短语定义为足以完全恢复钱包,并警告说,任何获得它的人都可以访问相应的比特币。没有链上重置,唯一的“支持票”是种子短语是否仍然存在并且仍然保密。

“更多地址意味着更多的备份。”BIP32的发布正是为了消除每个新地址需要新备份的需求,而Trezor解释说,所有密钥和地址都源于一个确定性树中的主私钥。备份负担与地址数量无关,但结果是集中化:一个种子短语成为从中派生的所有内容的恢复材料。

“如果两个钱包显示不同的余额,资金就消失了。”BIP44的标准化派生路径结构是为什么相同的种子可以合法地映射到不同的分支。目的、币种、账户或变更路径的不匹配可能使钱包看起来是空的,而链上仍然持有与不同分支中的地址相关的UTXO。

“费用是固定的,钱包收费过高。”Bitcoin.org将费用定义为由用户选择,并指出在网络繁忙时,高费用交易通常会更快确认。钱包可以进行估算,但机制仍然是区块空间的市场。

总结

我看到人们把钱包当作银行应用程序来使用,然后被银行通常为他们做的事情搞得一团糟:密钥保管。昂贵的误解是认为种子短语只是一个设置步骤。它是以文字形式存在的主签名能力,而Bitcoin.org明确表示,任何获得它的人都可以恢复钱包并访问资金。

我也看到“丢失资金”的恐慌,结果发现是派生路径的卫生问题。两个应用程序可以查看同一种子下不同的BIP44分支并显示不同的账户。如果钱包是一个由BIP39种子输入到BIP32树中的签名机器,冷静的做法是验证软件正在扫描哪个分支,而不是假设链条丢失了你的钱。

来源

常见问题

如果硬币不在应用中,数字钱包是如何存储加密货币的?

它们根本不存储硬币。区块链记录所有权,而钱包存储可以生成签名以进行支出的密钥材料。钱包应用主要跟踪它控制的地址,并通过扫描链来显示余额。

钱包地址、公钥和私钥之间有什么区别?

钱包地址是您分享以接收资金的地址,Bitcoin.org建议出于隐私考虑仅使用一次地址。公钥用于验证签名。私钥是用于创建签名的秘密数据,如果被泄露,将允许从相关钱包中支出。

仅凭我的助记词有人能窃取我的加密货币吗?

可以。Bitcoin.org将恢复短语定义为足以完全恢复钱包,并警告说,任何获得它的人都可以访问相应的比特币。如果攻击者恢复了钱包,他们可以签署交易并转移资金。

为什么相同的助记词在不同的钱包中显示不同的余额?

通常是因为派生路径或账户不匹配。BIP44标准化了路径结构 m / purpose' / coin_type' / account' / change / address_index,不同的应用可能默认使用不同的分支。如果它们扫描不同的分支,即使使用相同的助记词,也可能显示不同的账户。

硬件钱包比网络钱包更安全吗?

Bitcoin.org将硬件钱包描述为存储资金的最安全方法之一,但在移动设备上可能不太方便。网络钱包可以通过浏览器轻松访问,但如果平台被黑客攻击,资金就会面临风险。核心区别在于签名密钥存放的位置以及谁可以访问它们。