此文比较偏技术性,主要用来帮助我在使用时查阅,不感兴趣的只看开头就好。
0x00 结论
首先Steem帐号是可以被恢复的,但需要满足以下两个条件:
- 主密码已被修改
- 拥有30天之内登录过的主密码
切记:忘记主密码,任何人无法帮你找回!
0x01 从哪找回
- 从 Steemit 注册的账号,前往 https://steemit.com/recover_account_step_1 提出恢复申请,需要验证你的邮箱或电话
- 从 CNsteem.io 注册的账号,使用注册邮箱给 [email protected] 发邮件,提出申请
- 通过朋友帮忙,使用 Steemconnect 或其他工具注册的,可以参考以下步骤。
0x02 如何找回
由于steem-python 还未实现帐号恢复的API,以下直接使用Steem 的 cli wallet 进行操作,为方便说明,以下skenan是被盗人,cnsteem是恢复人,他们分别使用不同的机器。
PS: Steemit通过 Steem-JS进行帐号恢复,但要求密码必须是Base58格式,我用随机生成的密码尝试时报错,有空再去研究一下
1.安装并使用Steem Cli
docker pull steemit/steem
docker run -d -p 2001:2001 -p 8090:8090 --name steemd-default steemit/steem
docker run -it steemd-default cli_wallet -s wss://steemd.privex.io
# 第一次使用需要设置密码
set_password "yourstrongpassword"
unlock "yourstrongpassword"
2.skenan生成新的密钥
unlocked>>> suggest_brain_key
{
"brain_priv_key": "STONKER OAKWOOD KICKOUT COCKLET ALKYLIC INFLECT DEALER WILDED ANDROL ENNUI PESO CYNICAL CAUNCH JUVIA UNLORD FILTH",
"wif_priv_key": "5JrUcHKYa1XLBcw4wJ3DvVPS2rV3xoLDzHxKQNG7mgPhHoFhbxf",
"pub_key": "STM8dv5WnybKYkZ9zZ8qFWfrwiPTiCeMxFTiw3UrCm1HAt6LyLV4Z"
}
3.skenan将pub_key发送给cnsteem
4.cnsteem登录自己的Steem-cli向网络提出恢复请求
unlocked >>> import_key "cnsteem的Active Key"
unlocked >>> request_account_recovery "cnsteem" "skenan"
{"weight_threshold": 1, "account_auths": [],
"key_auths":[["STM8dv5WnybKYkZ9zZ8qFWfrwiPTiCeMxFTiw3UrCm1HAt6LyLV4Z",1]]} true
5.skenan向网络确认恢复请求
# 导入新私钥
unlocked>>> import_key 5JrUcHKYa1XLBcw4wJ3DvVPS2rV3xoLDzHxKQNG7mgPhHoFhbxf
# 导入旧私钥
unlocked>>> import_key 5J...
# 确认恢复请求,第一个SMT5为旧私钥的公钥,第二个是新私钥的公钥
recover_account "skenan" { "weight_threshold": 1,"account_auths": [],
"key_auths": [["STM5...",1]]} {"weight_threshold": 1,"account_auths": [],
"key_auths": [["STM8dv5WnybKYkZ9zZ8qFWfrwiPTiCeMxFTiw3UrCm1HAt6LyLV4Z",1]]} true
6.使用新的私钥登录Steemit,它会提示你重新更改密码
0x03 总结
根据以上的演示,正常来讲,恢复人从头到尾没有见过被盗人的新私钥和旧私钥,严格保证了密码的安全性。如果你想图方便并信任我,在请求恢复的时候也可以直接发送你的主密码。
(Picture from @maiyude)
支持我更好的维护CNsteem.com 和 CNsteem.io,就选我当见证人吧:https://v2.steemconnect.com/sign/account-witness-vote?witness=skenan&approve=true