实战之:使用命令行钱包修改HIVE账户的恢复账户

前些天的帖子中,给大家介绍了HIVE账户的Recovery account(恢复账户),结论大概就是:Owner key很重要(最高权限),恢复账户也很重要(一旦账户被盗可以用于重设Owner key)。

image.png
(图源 :pixabay)

既然恢复账户如此重要,我们当然要将其设置为一个我们所信任的,并且万一我们账户被盗,可以确认我们的身份并愿意配合我们重设Owner key。

想到自己的HIVE账户还是一个失联账户,并且维持了N多年之久,后怕惊出一身冷汗,所以我决定尽快、赶紧、立刻修改我的恢复账户。

不过进行这项操作之前,还是先用测试账户进行一下测试比较好。

获取账户的Owner Key

取决于账户注册方式的不同,Owner key的获取也并不相同,比如我使用脚本注册时,可能直接在注册时就指定Owner key。

但是很多网页钱包,可能会使用一个叫做密码(Password)的机制,其实与传统意义上的密码并不相同,这个密码仅仅是用来生成各种密钥的字符串。

规则大致如下:

s = hashlib.sha256(bytes(account+role+passwd, 'utf-8')).digest()
private_key = hexlify(s).decode('ascii')
wif = base58CheckEncode(0x80, private_key)

也就是说,通过对账户名+角色(owner、active、posting、memo)+密码进行运算,就可以得到对应的私钥。

不过对于非程序员而言,上述方式可能有点难于理解且难于操作,其实网页钱包就提供了对应的工具:

https://wallet.hive.blog/@yourid/permissions

打开上述链接,并用你的账户密码登录:

Reveal spoiler

image.png

然后在上边的这个位置点Reveal,这时候我们就会拿到Owner key密钥(私钥)啦。

导入Owner key私钥

打开命令行钱包并连接节点:

cli_wallet_v1.27.0 -w yourwallet -s ws://127.0.0.1:8091

连接上钱包以后,我们需要先对其进行解锁:

unlock yourpasswd

然后需要在其中导入我们之前获取的Owner key私钥,命令如下:

import_key YourPrivateOwnerKeyHere

好了,现在我们已经做好前期准备了,那就是获取Owner key以及导入Owner key私钥到命令行钱包。

修改账户的恢复账户

下面我们来修改账户的恢复账户,在操作之前,我们需要先看一下帮助,了解一下如何操作。

在命令行钱包中敲入如下指令,就会打印出所有指令的帮助信息:

help

这条信息对应修改恢复账户:

wallet_serializer_wrapper<annotated_signed_transaction> change_recovery_account(const string & owner, const string & new_recovery_account, bool broadcast)

其中owner是我们要修改的账户,new_recovery_account是我们要设置的新的恢复账户。

比如我们要设置oflyhigh.test的恢复账户设置为oflyhigh.demo,那么相应的指令为:

change_recovery_account oflyhigh.test oflyhigh.demo true

这时钱包就是使用oflyhigh.test的Owner 私钥,广播出如下交易:

Reveal spoiler

image.png

hiveblocks.com可以查询到类似如下信息,说明广播成功:
image.png

生效时间

修改账户恢复账户并不是即时生效的,而是要提交修改申请30天后生效。

如果没有这个生效等待时间,那么就存在一种可能,黑客马上修改恢复账户,那么我们就没机会使用恢复账户和配合我们重设Owner key啦。所以说这个生效时间考虑的还是相当周到的啦。

我们可以使用如下指令来查询我们的修改恢复账户的请求:

curl -s --data '{"jsonrpc":"2.0", "method":"database_api.list_change_recovery_account_requests", "params": {"start":"oflyhigh.test", "limit":1, "order":"by_account"}, "id":1}' http://127.0.0.1:8081

上述请求应答如下:

{"jsonrpc":"2.0","result":{"requests":[{"id":230348,"account_to_recover":"oflyhigh.test","recovery_account":"oflyhigh.demo","effective_on":"2022-12-05T09:12:09"}]},"id":1}

注意这个"effective_on":"2022-12-05T09:12:09",可见我的修改请求,要在30天后才能生效呢。

结论

通过上述学习和测试,我发现使用命令行钱包修改HIVE账户的恢复账户是可行的。

准备将自己账户的恢复账户也重新设置一下,那么问题来了,设置成谁比较好呢?还有就是,这篇实战教程,你学废了嘛?

相关链接

Sort:  

棒,学习了👍👍👍

超级大神,神一样的o哥操作

已添加书签 感谢😊

眼睛都看懂了,就是手跟不上😂我怕我操作一下,账号就废了!!

哈哈,操作一定要谨慎

感谢分享,新知识增加了

🤣我想说我看了头麻了,对于我们这样的小白