原文题目:科普,ETH2站立指南
作者:Carl beekhuizen
感谢:Sacha Yes Saint Leger和Danny Ryan对本文的评论。
利益证明制度的核心是其签名方案。签名用于验证发出操作的验证器的身份,即确定哪个操作是由哪个验证器发出的(它是“好”操作还是“坏”操作)。
我们不仅可以根据验证者的签名消息来确认TA是否符合协议,还可以通过显示违反一致性规则的消息来证明验证者的恶意。
实际上,在ETH2系统中,验证者的身份是根据其公钥来确定的。每个验证者有两组密钥:签名密钥对和撤回密钥对。
签名密钥对
所谓的“签名密钥”是指验证者在签署见证消息和提议的块时使用的密钥。因为验证器必须在每个epoch中对至少一条消息进行签名,所以客户端软件必须托管签名密钥。
取款密钥对
因为客户端软件总是连接到Internet,所以一定有丢失和窃取签名密钥的可能。为了减少此类事件的影响,验证器可以执行的操作被分为两组不同的密钥。
如上所述,签名密钥用于履行验证者的职责。另一方面,“取款密钥”用于控制验证者的资金。
在验证者的整个生命周期中,验证者只需在少数情况下使用取款密钥。这意味着取款钥匙可以放在冰冷的钱包里,存放在安全的地方。
注:验证者的资金转账和取款功能在第一阶段之前不会上线。
译者注:作者在原文中经常使用单数形式“a签名密钥”和“a带rawal密钥”作为签名密钥和撤回密钥,但这里我将其翻译为“签名密钥对”和“撤回密钥对”因为根据我们对密码学的理解,为了保证身份的一致性,我们需要使用公钥密码学(公钥-私钥对):验证者使用两个公钥对应于签名私钥和撤回私钥预先在注册表中注册,然后在其生命周期中,当使用其私钥签署消息时,可以确认其身份。提款过程与我们目前使用以太坊账户的方法相同。
怎么会有这么多钥匙!
如果你想抵押32 ETH,你必须保存和使用两套无关的钥匙,这太麻烦了。
在ETH2中,我们可以使用eip-2333和eip-2334来解决这个问题:这两个eip提出了一组标准,描述签名密钥和撤回密钥是如何关联的,以及如何从同一助记符(助记符)派生这两组密钥。
助记词
助记符是通过编码保护密码的另一种方法,也是普通用户存储和备份私钥的最简单方法。简而言之,这意味着
0x1e9f2afcc0737f4502e8d4238e4fe82d45077b2a549902b61d65367acecbccba
这样的私钥,转换为
sausage SOLution loud iSOLate focus glide frame door clown million shuffle impulse
这种文字可读性强,然后写下来或写下来,这样就更容易保存,也不容易出错。
从一个键派生其他键
使用钱包时,您可能会遇到类似于m/44’/60’/0’/0/0这样的路径。此路径用于描述键之间的关系。
根据EIP 2333,通过从一个键(即一组助记符)推导出其他键而形成的系统类似于一棵树,派生键由树的“种子”(即原始键)和树的路径确定。
利用种子计算树的根,根据树的根和枝推导出密钥,并逐层构造整个密钥树。因此,可以认为整个密钥树完全由树的分支和根之间的关系决定。根据这个描述,我们可以看到整个密钥树是无限的,因为它可以无限地被推导出来。使用时,只需记住哪些分支使用和资助了密钥。)
在使用过程中,这种密钥派生的方法使我们能够找到任何我们想要使用的密钥:从树的根开始,逐个分支计算中间密钥,**计算出我们想要使用的密钥(叶)。
一个有趣的结果是,我们可以从一个随机数(例如一组助记符)开始,得到无穷多个键。在ETH2中,一组助记符可以生成验证器所需的任意多个密钥。例如,如果需要用一组助记符生成三个取款私钥,可以推断如下:
每个分支都标有“/”,因此“m/2”表示从主密钥派生的第二个分支。
EIP 2334表示验证者的签名密钥可以使用撤回私钥的第0分支。在实践中,这意味着只要遵循这个标准,知道取款的私钥,就可以计算出相应的私钥进行签名。计算过程如上图所示:
为了尽可能地简化,我们给出了这样一个例子。事实上,路径将更长(例如,EIP 2334要求使用m/12381/3600/I/0和m/12381/3600/I/0/0派生用于提取和签名的私钥)。但逻辑是完全一样的。
记住:如果你知道你的记忆法,你可以推断出取款的私钥,然后是签名的私钥。
存储密钥
验证器客户端使用密钥库文件来交换密钥。
Keystore是一种文件格式,它包含由用户密码加密的私钥,因此可以在计算机之间安全地存储和传播(只要密码不存在于同一台计算机上)。
如果准备好开始验证,可以将密钥库导入到客户端(当然,还需要输入密码,以便客户端可以导出私钥)。
成为验证者
成为验证器的第一步是生成密钥。请确保使用安全软件在安全环境中生成私钥,并在生成后将其记录下来。
因为阶段0没有取款功能,不能转账,所以您不需要使用密钥库来存储取款的私钥,所以足以确保您的助记功能是安全的。
如果您的验证器客户端需要您的签名私钥,那么在您输入私钥(加密的密码也是您自己输入的)之后,您可以获得相应的密钥库文件。运行的验证器越多,获得的密钥就越多。
要注册为验证器,您需要为每个验证器准备32 ETH保证金,添加保证金数据(包括验证器的公钥),并将其发送到ETH1链上的保证金合同。
保证金数据将记录在保证金合同中。ETH2节点可以观察合同,从而获得保证金数据。当您的保证金数据链接到ETH2之后,您将正式成为一个验证者。
最简单的方法
我们一直在开发一个友好的界面来帮助验证者完成注册过程。我们的下一个更新将涵盖ETH2 lauchpad和如何使用它。
文章标题:《科学邮报》|以太坊2.0登台指南:关键
文章链接:https://www.btchangqing.cn/26055.html
更新时间:2020年05月26日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。