如何将以太坊验证节点0x00提款凭证修改为0x01提款地址?
如果您的质押提款凭证前缀为0x00
,意味着您还没有为验证节点设置提款地址。本文将指导您按步将0x00
地址转为0x01
地址,用于处理收益部分自动提款(链上自动提取收益部分转入你的提款地址),整个流程主要分为四个步骤:
- 确定验证者提款地址是否是
0x00
- 获取验证者节点的生成索引编号
- 使用官方CLI工具生成更新提款凭证签名消息
- 广播签名消息
注意:每个验证人仅能设置一次,一旦设置,该地址将无法更改。因此,在执行这些步骤时,请务必小心,并确保使用的地址是由只有您能访问的冷钱包/硬件钱包生成的。
1 . 确定验证者提款地址是否是0x00
如果您的验证者提款凭证已经设置(您在创建时使用了 eth1_withdrawal_address),则无需进行其他操作。如果您不确定,请将下面链接中的YourEthDepositAddress替换为您用于存入32个ETH的以太坊地址进行检查 https://beaconcha.in/validators/deposits?q=YourEthDepositAddress
如果您的提款凭证(Withdrawal credential)前缀显示为0x00
,则执行层提款地址尚未设置,请继续阅读并设置。
2 . 获取验证者节点的生成索引编号
2.1 验证器的创建索引
当您第一次创建验证器时,它被分配了一个索引位置。如果创建了单个验证器,则索引位置为0
。如果您创建了多个,它将是一个从0
开始的数字序列。
例如,如果您创建了3个验证器,并希望为第二个验证器生成撤销凭据,则索引位置将为
1
。如果要为所有3生成提款凭证,则索引位置将为0
。如果要为3个验证器中的最后2个生成撤回凭据,则应为1
。
且其的值必须是单个数字。
2.2 验证者的链上ID
每个验证者在加入信标链时都会被分配一个链上ID。要查找验证器链上ID,请使用步骤1中的链接查找与您ETH存款地址关联的验证者。
单击验证者密钥(Validator Key)。它将加载一个在顶部显示验证者索引的页面。
在此示例中,链上ID为107619。如果有多个验证者,请用逗号分隔验证者链上ID。例如107619,107620,107621。
2.3 验证者的旧BLS提款凭据
旧BLS为最初在创建时分配给您的验证者的提款凭证。使用步骤1中的查找功能查找与您的ETH存款地址关联的验证者。
“提款凭证(Withdrawal credential)”列包含每个验证者的旧BLS提款凭证。在此示例中,凭证为0x009690e5d4472c7c0dbdf490425d89862535d2a52fb686333f3a0a9ff5d2125e。如果您有多个验证者,请用逗号分隔BLS提款凭证。例如0x00.,0x00.,0x00.。
2.4 新提款凭证的ETH1地址。
新提款凭证的eth1地址必须在您的控制范围内。这是所有ETH质押奖励将被发送的地方。如果要退出验证者,它也是发送ETH存款的地址。
与此地址关联的私钥必须在您的控制范围内,否则您将无法访问已撤销的ETH。
它应该是一个有效的以太坊地址。例如,0xd8da6bf26964af9d7eed9e03e53415d37aa96045。
2.5 用于创建验证者的助记词。
该助记词是在生成验证者文件时由stake-deposit-CLI工具创建的助记词。需要在稍后生成签名消息时提供。 请注意,不要将其保存到文本文件中。
注意:如果您使用了多个助记词来创建验证者,则需要收集验证者信息,然后分别运行下面的步骤,为每个助记词及其关联的验证者生成一条签名消息。
收集上述信息后,生成的文本文件可能如下所示:
验证节点创建索引: 0
验证节点链上ID: 1000,1001
旧的提款凭证(0x00开头):0x00c223a861a98d56881969d0ecf771dfd76c1b7c1d423a7f9019a44ff7aec040,0x009690e5d4472c7c0dbdf490425d89862535d2a52fb686333f3a0a9ff5d2125e
新的提款地址: 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045
将文件保存到USB驱动器,以便稍后复制。
3. 使用验证者信息生成签名消息
3.1 可用于生成密钥变更信息的工具
stake-deposit-CLI
工具可用于生成签名的消息,请下载,解压,然后复制到U盘。 点击链接,获取最新版本并下载:https://github.com/ethereum/eth2.0-deposit-cli/releases/
- 在Windows上解压缩文件。
- 使用以下命令下载并解压缩Linux版。修改下面的URL以匹配最新版本的下载链接。
$ cd ~
$ curl -LO https://github.com/ethereum/staking-deposit-cli/releases/download/v2.5.0/staking_deposit-cli-d7b5304-linux-amd64.tar.gz
$ tar xvf staking_deposit-cli-d7b5304-linux-amd64.tar.gz
$ cd staking_deposit-cli-d7b5304-linux-amd64
- 将文件复制到USB驱动器。 现在,USB驱动器应包含上面创建的文本文件以及
deposit
或deposit.exe
二进制文件。
3.2 生成签名消息
stake-deposit-CLI
工具将使用助记词对消息进行签名。由于助记词的敏感性,强烈建议您在未连接到网络的计算机上运行该工具。
选项1: 将USB驱动器连接到以前从未连接过互联网的计算机上操作,并将文件复制到该机器上。
选项2:从当前计算机运行。互联网连接可能会导致泄露助记词。如果没有未连接过互联网的计算机,请在继续之前断开当前计算机上的网络连接。 在安全计算机上,运行二进制文件并复制/粘贴文本文件中的数据以提供所需信息。
Linux:
$ ./deposit generate-bls-to-execution-change
Windows:
deposit.exe generate-bls-to-execution-change
选择你所需的语言:
选择网络。主网用于生产,其他为测试网
输入助记词
输入索引位置
输入验证者索引号码
输入旧的BLS提款凭证
输入将作为新提款地址的eth1地址
再次输入以确认。注意!地址一旦设置,将不能更改。
完成
注意:该验证步骤用于确保旧的BLS提款凭证是由助记词创建的。如果它们不匹配,则该过程将失败。例如:“[错误]给定的提款凭证与助记词生成的旧BLS提款凭证不匹配。”
在指定位置创建SignedBLsToExecutionChange
JSON文件。目录的内容如下所示。
该文件包含每个验证者的凭证更改数据。它已签名,因此您不应手动修改任何内容。
仔细检查,特别是“执行地址”。如果发现错误,请删除JSON文件,并使用正确的值重新生成该文件。
如果您是在无网的计算机上运行,请将SignedBLsToExecutionChange
JSON文件复制到USB驱动器上。
4. 广播签名消息以更新验证者
将带有上面创建的SignedBLsToExecutionChange
JSON文件的USB驱动器连接到可以联网的计算机上。
如果您要在mainnet
提交签名邮件,请使用此链接:https://mainnet.beaconcha.in/tools/broadcast
如果要提交到testnet
,请将URL调整为相应的测试网。
按照提示提供JSON文件,再次仔细检查所有内容后,单击Submit&Broadcast按钮
注意:在这里有额外验证以确保提供的旧BLS提款凭证与验证者索引匹配。如果不匹配,提交将无效。例如:“FromBLSPubKey与索引为1000的验证者的WithdrawalCredentials不匹配”。您应返回并使用正确的值重新生成签名消息JSON文件。
如果成功收到您的请求,将显示回执。
现在,您已经提供了一条已签名的消息来更新您的验证者提款凭证,该消息将于上海升级后通过信标链进行广播。
至此,0x00地址变更为0x01地址的全部操作已经完成。
如您在操作过程中遇到任何问题,请随时到可乐电报群,跟我们联系。