BIP39 颠覆比特币管理的原因:助记词种子的科学

robot
摘要生成中

比特币的自主主权取决于秘密钥匙的管理。自古以来的谚语“无钥者失币”在加密资产的世界中依然是真理。然而,秘密钥匙本身非常复杂,用户日常操作面临巨大挑战。为解决这一问题,基于BIP39标准设计了助记词种子短语。

秘密钥的本质与传统管理方法

比特币钱包实际“拥有”的不是比特币本身,而是秘密钥匙。简单来说,秘密钥匙是一个极其巨大的数字。更具体地说,它是由256个随机的1和0组成的二进制数,其总数据说几乎等于宇宙中的原子数。

用十六进制表示,这个秘密钥匙的形式如下:

E2D97BC144089EBB5773FFABA5D3A729BD187D79A5E6E836DC68C7A24F6AB36A

在比特币早期,用户使用WIF(钱包导入格式)来管理秘密钥匙。例如“5KYC9aMMSDWGJciYRtwY3mNpeTn91BLagdjzJ4k4RQmdhQvE98G”。但只要出现一位数字的转录错误,整个备份就变得毫无用处。由此产生的操作难题促使人们对更易于人类操作的秘密钥匙管理方式的需求日益增加。

BIP39助记词:将256位转化为12个英文单词

比特币改进提案39(BIP39)标准化了将秘密钥匙转换为便于人类记忆和转写的形式的方法。随机生成的256位秘密钥匙会与一个特别设计的包含2048个单词的词典对应,转换成12个或24个英文单词。

例如,从比特币钱包生成的随机值中得到的助记词种子短语如下:

track update anger donkey remind laptop reform detail divide sadness for fat

这样,二进制的复杂性被直观的单词列表取代,用户可以用纸笔记载或在脑中记忆,变得更加现实。大脑比起长长的0和1字符串,更擅长处理连续的单词序列,因此,转写错误导致的币的损失可能性大大降低。

选择2048个单词的原因与BIP39的设计思想

BIP39助记词词典中的每个单词都映射到11位二进制数。12个单词总共是132位(11×12),再加上用作校验的4位,总共正好是136位。这与生成秘密钥匙所需的随机比特数无缝对应。

选择2048个单词的原因如下:

  • 2¹¹=2048的数学效率
  • 用户易于记忆的单词数量上限
  • 前4个字母不重复的设计

特别重要的是,所有2048个单词的前4个字母都不同,即使用户只输入部分单词,也能由钱包准确识别。这一设计有效防止了转写错误和混淆。

校验码机制的验证系统

在生成秘密钥匙的随机比特时,钱包会用SHA512对其哈希,取哈希值的前几位(对于256位秘密钥匙是8位)作为校验码,加入到原始比特列中。这样,12个(或24个)单词就由校验码决定。

校验码的作用是检测用户误输入的种子短语。例如,单词顺序调换或某个单词错误时,校验码不匹配,钱包会发出警告。这无需复杂的二进制验证,就能保证数学上的正确性。

从单一种子生成多个密钥对

BIP39助记词的真正强大之处在于,可以从一个种子短语层层派生出多个秘密钥匙和公钥对。

用户输入的助记词种子被钱包读取后,首先用SHA512处理。输出的512位哈希值的前半部分作为秘密钥匙,后半部分作为链码。之后,生成新的密钥或地址时,会用链码和已有的密钥作为SHA512的输入,得到新的比特列。

通过不断派生,用户可以用单一的备份种子(助记词)作为层级确定性钱包(HD Wallet),恢复多个地址和密钥对。即使钱包丢失,只要有12或24个单词的种子短语,就能重新生成所有的密钥。

密码学与数学支撑的实用性

BIP39助记词短语融合了高度的密码学和实用性。复杂的数学(椭圆曲线密码、哈希函数、层级确定性派生)在背后支撑,为用户提供了简单易用的界面。

如今,大多数比特币钱包都遵循BIP39标准,实现不同钱包间的种子互通。用户可以安全地用纸笔记载秘密钥匙,确保安全。

比特币被称为“由数学保护的金钱”,正是因为像BIP39这样巧妙的设计,才使其成为可能。

BTC3.04%
查看原文
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 评论
  • 转发
  • 分享
评论
0/400
暂无评论
交易,随时随地
qrCode
扫码下载 Gate App
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)