硬件钱包的工作原理

加密货币爱好者最常见的问题之一是像Ledger Nano S这样的硬件钱包是最安全的加密货币存储方式吗?如果设备被盗或被破坏怎么办?

在这篇文章中,我们将尝试解释这样的设备如何以技术的方式工作,详细说明它如何做它的功能以及它如何灵活而又安全。

BIP

当区块链作为比特币背后的技术出现时,一群程序员/科学家想要提出一个新功能,他们必须以比特币网络的所有参与者可读和可理解的方式形式化并呈现该想法。这些正式提案被称为比特币改进提案或BIP。

通过为新想法奠定良好的基础,这使得其他区块链能够采用他们喜欢的好主意并丢弃他们没有的主意。

其中一个好主意就是BIP 39,BIP 39使用数学来弄清楚如何使用一组24个常规单词来获取种子 – 一个大的随机数,后来生成加密钱包的更多密钥。

BIP 39还定义了一种方法来保护这24个单词,并附加一个计为单词25的密码。如果没有选择密码,则使用空密码,因此它基本上总是24个字+密码(空或不)。

好奇心:这个密码短语与您在各种界面中使用的密码不同,因为如果使用了错误的密码,它就不会产生错误消息。任何密码短语与24个单词组合产生一个有效的种子,这在合理的拒绝情景中是有用的 – 我们将在后面解释的勒索保护机制。

这个生成的种子数用于为您感兴趣的每个加密货币生成一个根密钥 – 一个不可编组的字母和数字组合。每个区块链都有自己的方法从种子生成根密钥,在比特币的例子中这是BIP 32,它产生一个像这样的键:

xprv9s21ZrQH143K3QTDL4LXw2F7HEK3wJUD2nW2nRk4stbPy6cq3jPPqjiChkVvvNKmPGJxWUtg6LnF5kejMRNNU3TGtRBeJgk33yuGBxrMPHi

然后,此密钥用于生成多个私钥,然后这些私钥成为给定区块链的加密货币钱包。

困惑?

这一切都归结为:BIP 39用于选择某些单词组合,这些单词可能会或可能不会受密码保护,然后用于生成具有公式的钱包,例如BIP 32中描述的公式。

那么这一切与Ledger这样的设备有什么关系呢?

Ledger

当您首次打开Ledger设备时,它将生成上述256位种子。该种子编号将用于计算24个单词,然后显示在设备的屏幕上。

然后,用户应将这24个字写在一张纸上,该纸放在Ledger的包装盒中,并保证纸张安全,远离Ledger本身。

除此之外,Ledger还需要使用可以有四到八位数的PIN。如果在设置之后连续错误地输入了PIN三次,则分类帐将自毁其上的所有数据。

如果Ledger被摧毁,被盗或丢失,设备的原始所有者可以使用纸上的文字来恢复其内容 – 无论是在备份Ledger还是在像MyEtherWallet这样的软件钱包中- 从而重新获得所有资金和地址。这是可能的,因为您需要重新生成根密钥的是那24个字和密码(如果设置)。

重要的是再说一遍:相同的根密钥将始终从24个字的相同组合生成,并且将从该根密钥生成相同的地址。因此,要回收使用BIP 39字短语生成的所有钱包,您只需将24个字的单个组合插入到支持该生成方法的硬件或软件中。

合理的可否认性

我们之前提到了勒索保护,所以让我们在本节中解释一下。

当您打开密码时,Ledger不会要求您提供密码,但它会询问您的密码。首次设置设备时,无法设置密码; 只有在“设置”中才能随后添加它。

这使您可以将单独的PIN附加到密码短语,以便拥有两个(或更多)密码。每个PIN都将绑定到自己的密码短语,并且由于上述事实,24个字+密码短语总是产生有效的种子(没有“密码不正确”警告),因此很容易定义一个诱饵PIN,以便给强迫你的人放弃。

在这种情况下,输入辅助诱饵PIN不会破坏Ledger的数据,但会在添加到24个单词时打开与该密码相对应的钱包。强盗不会知道你没有给他真正的密码,他将获得虚假地址。为了增加效果,在地址中添加一些微不足道的加密货币,使它们看起来真实; 零余额地址不会令人信服。

猜测键的可能性

许多人想知道猜测24个单词并以某种方式访问​​某人的钱包是多么容易,特别是考虑到BIP 39甚至不使用整个字典,而只是2048个单词。

这24个字有2 256或115792089237316196423570985008687907853269984665640564039457584007913129639936可能的组合。如果我们假设我们有一台不可能的计算机,它能够每秒猜测100 万亿个组合,那么我们需要尝试它们:

115792089237316195423570985008687907853269984665640564039457584007913129639936 / 100000000000000 = 1157920892373161954235709850086879078532699846656405640394575840 seconds

这大约是36717430000000000000536992568032848736216424136408984408年,而且只有当你的计算机比人类想象的任何东西都强大时才会这样。

如果你知道所有的单词,而不是顺序怎么办?在这种情况下,可能的组合数量是24!(24阶乘)。

24! = 620448401733239439360000

因此,同样强大的计算机将采取:

620448401733239439360000 / 100000000000000 = 6204484017 seconds

那是196.6岁。

因此,即使你知道某人的所有单词,但只需要猜测顺序,你就需要200年使用一台即使按照今天的标准也具有难以想象的强大功能。如果您不知道需要猜测哪些单词,则每个缺失单词的数字乘以2048。因此,在这种情况下不知道其中一个会增加猜测所有组合到400,000年所需的时间。

结论

Ledger是一种非常安全的存储加密货币的方式。它远远优于任何类型的基于USB的存储,您只需将密钥保存到文件中并将其丢弃即可。

设备有自己的处理器来计算密钥,这意味着您的根密钥永远不会离开设备。这样可以防止潜在的病毒或自动处理您正在使用它的计算机上安装的恶意软件。除此之外,Ledger要求对任何交易进行额外的硬件确认:您需要在发送资金时按下设备上的按钮,否则它不起作用。没有偷偷摸摸的资金吸收Ledger。

如果您丢失或销毁了您的Ledger,只需在第一次设置设备时获得的24个字中进行冲压就可以获得所有资金。这些话应该保持安全,远离窥探的眼睛。

原创文章,作者:搜够小编,如若转载,请注明出处:http://www.sogoubaike.cn/archives/110509