对您个人密钥的控制是比特币主权的核心。如果没有这一点,您在某种程度上会将对自己资金的控制权让渡给其他人。正如老话所说,"没有你的密钥,就没有你的币"。比特币对于新手来说有一个令人困惑的方面,涉及您比特币的实际位置。当人们想到钱包时,他们会想象"我存钱的地方"。实际上,您的比特币钱包并不"存储"您的比特币,它仅仅保存您的私钥。您的比特币实际上是区块链上的数据记录,由网络中的所有参与者维护。当您想要花费您的比特币时,您实际上是在提出对区块链中存储的数据进行更新。私钥是协议保证您,和您自己,能够授权更新区块链以花费您的比特币的方式。



那么,您的私钥是什么样的?它们只是一些非常大的数字。真的非常大。以下是一个私钥的二进制格式:
_11100010110110010111110111100000101000100000010001001111010111011010101110111001111111111101010111101001011101001110100111001 01001101111010001100001111101011110011010010111100110111010000011011011011100011010001100011110100010010011110110101010110011 01101010_
256个随机的1和0。正是这个随机数最终保护了您的比特币。听起来可能不多,但正是这种随机性确保了您的钱包安全。私人比特币密钥的可能数量几乎与可观察宇宙中的原子数量相同。这是计算机需要遍历以生成和分类所有潜在可能的私人密钥的数字数量。只要密钥生成的过程是真正随机的,您的密钥就安全。

这是一个私钥的十六进制格式(,二进制格式使用两个数字来编码一个数字:1和0,十六进制格式使用16个数字,从0到9及A到F):
_E2D97BC144089EBB5773FFABA5D3A729BD187D79A5E6E836DC68C7A24F6AB36A_

这就是非压缩钱包导入格式的私钥(WIF)的样子:
_5KYC9aMMSDWGJciYRtwY3mNpeTn91BLagdjzJ4k4RQmdhQvE98G_

WIF格式是人们在比特币早期与其私钥交互的方式。在那个时候,您可以一次生成一个私钥,然后从中生成一个公钥。公钥的生成过程本质上是乘以非常大的数字,但比这更复杂。所有公钥都是在一个表示非常非常大的曲线的图形上,x和y的点,该曲线自身折叠。

在图表的曲线上,在比特币的情况下,有一个点称为“生成点”。这个生成点可以被视为曲线Secp256k1上的“基点”。这是生成密钥和用这些密钥进行签名过程的一个组成部分。以下是比特币曲线的生成点的样子:
_G = 02 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798_

要从您的私钥生成公钥,您需要将生成的私钥乘以生成点。这就是如此简单。现在,图表上的一个点将与您生成的私钥建立数学关系,而只有您自己知道该私钥。

这是一个未压缩的公钥,显示了x和y点:
_04C0E410A572C880D1A2106AFE1C6EA2F67830ABCC8BBDF24729F7BF3AFEA06158F0C04D7335D051A92442330A50B8C37CE0EC5AFC4FFEAB41732DA5108261FFED_

公钥在与其交互的少数情况下通常是 "压缩的",只保留 x 坐标以及一个字节指示 y 坐标是负还是正。这大大减少了它的大小:
_04C0E410A572C880D1A2106AFE1C6EA2F67830ABCC8BBDF24729F7BF3AFEA06158F0C04D7335D051A92442330A50B8C37CE0EC5AFC4FFEAB41732DA5108261FFED_

当您使用您的私钥签署交易时,一切本质上仍然归结为简单的乘法。通过生成一个随机数(nonce)并将其与您的私钥一起使用,以实质性地乘以您签署的交易的哈希值,您创建了一个(由两个值组成的签名:r和s)。这使得某人能够执行算法来验证该消息是使用适当的私钥签署的,而无需透露该密钥。确保只有您可以授权支出您的比特币的,基本上只是非常非常大的数字的乘法。

如果在阅读这篇文章之前您对这些概念不熟悉,所有这些可能看起来有些令人生畏。二进制?十六进制?图表上的点?如何保存WIF?

自从开发出更直观的方法来管理这些数据以来,大多数用户对这些复杂的格式并不熟悉。您更有可能对种子词有经验,这也被称为助记词。

助记种子或助记词是为了解决与您的私钥交互的问题而创建的。

正如我们之前所看到的,私钥最终是一长串随机生成的1和0。想象一下试图复制它们,并确保在解密时没有错误:
_11100010110110010111110111100000101000100000010001001111010111011010101110111001111111111101010111101001011101001110100111001 01001101111010001100001111101011110011010010111100110111010000011011011011100011010001100011110100010010011110110101010110011 01101010_

只需复制一个数字的单一错误,您的密钥备份就会变得无用。这就是助记种子发挥作用的地方。256个连续的1和0并不是与机密信息交互的友好方式。错误地转录这个数字意味着您将失去对账户的访问权。

_卡车 延长 愤怒 驴子 提醒 细节 改革 笔记本电脑 分开 悲伤 因为 胖_

这更容易管理,不是吗?只有12个单词。那么它是如何工作的呢 - 从一组随机的1和0转变为一串对你真正有意义的单词?一种编码方案,就像二进制或十六进制一样!

上述助记词中的这12个词每一个都代表一个二进制数字,采用一种编码方案,将某些1和0的串映射到单词上。如果我们回到之前给出的WIF私钥示例,它只是一个在某种编码方案中编码的数字,在这种情况下是58进制,它使用了所有的数字和字母,除了0和1,以及O和l (,并考虑大小写)。排除这些字符是特意为了解决由于1和字母l或0和字母O之间的混淆而导致的转录错误。bech32和bech32m,由Segwit和Taproot使用,进一步推动了这一点,仅使用这个字符集(qpzry9x8gf2tvdw0s3jn54khce6mua7l)。

比特币改进提案 39 (BIP 39) 引入了一种标准化的编码方案,其中专门创建的字典中的每个词按字母顺序与从 00000000001 到 11111111111 的二进制数相关联。上述示例种子对应于此:

卡车:11101001001
扩展:10110110001
愤怒:01011110011
驴: 01000001001
提醒:10110101110
电脑 : 01111101000
改革:10110100010
细节 : 00111100010
除法:11010010001
悲伤:01100110100
因为:00010011110
脂肪:01010011011

在二进制中,这看起来像:
11101001001 10110110001 01011110011 01000001001 10110101110 01111101000 10110100010 00111100010 11010010001 01100110100 000 10011110 0101001 1011

总共有2048个单词,每个单词都与一串特定的11位二进制数字相对应,特别设计以便人们更容易与他们的私钥进行互动。当您为您的私钥生成随机数时,您的钱包将此数字切分成11位二进制数的块,并将其与BIP 39助记词字典进行匹配。这始终是同一个大数字,但现在可以以法语单词的形式读取。由于您的大脑对这种格式比对长串的二进制数字要熟悉得多,这大大降低了您错误记录某些内容并在过程中丢失比特币的机会。

您可能已经注意到,在上面给出的单词种子的原始二进制编码中,四个数字 ( 被单独放置,最后一个“单词”实际上只有 8 位数字。这是一个校验和,用于确保助记词是正确的。当您生成一个随机数时,没有足够的数字来准确匹配 12 ) 或 24( 个单词。钱包会哈希您生成的现有数字,并将哈希的前几个数字添加到您的随机数的末尾。这为您提供了足够的数字,以匹配最后一个单词。

最后一个词允许您对您的种子备份进行安全性验证。如果您在钱包中输入了错误的助记词,校验和将不匹配。每个由12个或24个词组成的种子都有多个潜在有效的校验词,但如果最后一个词与正确种子的校验和不匹配,您的钱包将警告您该词无效。这为人们提供了一种直观但数学化的方式来确保他们的备份是正确的,这与解密和备份原始二进制数的混乱过程截然不同。

总之,BIP 39 助记种子提供了一种更友好和安全的方法来管理您的比特币密钥,同时保持了支撑系统安全的数学复杂性。这一创新极大地方便了公众使用比特币,从而促进了其日益增长的采用。
LA-8.78%
BTC-3.19%
CELA-0.58%
ON-13.73%
查看原文
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 评论
  • 转发
  • 分享
评论
0/400
暂无评论
交易,随时随地
qrCode
扫码下载 Gate App
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)