最近Hive及Steem社区有不少小伙伴密码被盗,造成了不小的损失。O婶 @oflyhigh 发布了些被盗名单,可以去看看。有些被盗的小伙伴通过Recovery Account成功救赎,也算是万幸!

密码安全(来源:网络)
区块链的项目更具黑暗丛林特点,和银行等Web2的项目在安全性上完成不同,它几乎要完全依靠自己。而密码的安全又是其中重要的部分,一旦泄露,那么资金基本就会瞬间被掏空!所以,一定要使用强密码! 用官方的话说就是:能记住的密码都不是强密码。

一定要使用Hive官网推荐的强密码!
刚加入Steemit时,好像是16年,就发生了严重的密码泄露事件,造成了很坏的影响和损失。团队很快上线了强密码的强制使用,这才弥补了漏洞。估计有些人是使用了第三方的注册应用,没有使用强密码,这才造成密码被盗事件频繁发生!
关于密码安全和Posting Key、 Active Key这些,可以参看我以前的文章《新人生存指南之十五:密码即一切》, 有详细地说明这些事项。
设置最后防线Recovery Account
如果密码被盗,是可以通过Recovery Account(恢复账户)来恢复的!不过一定要在被盗的30天内执行,否则神仙来了也救不了!
Recovery Account(恢复账户)可以协助你发起 账户恢复请求 (Account Recovery Request)。默认情况下,这个账户通常是创建你账号的那个机构(如 steem,blocktrader等)。如果这个Recovery Account(恢复账户)很给力,那么你的被盗帐户会很快恢复,但是,Recovery Account(恢复账户)没那么配合,那么你就只能在焦虑中苦苦等待,看看资产损失而毫无办法!
作为最后一道防线,Recovery Account(恢复账户)还是蛮重要的。但一直被我们忽视了,我也从未关注过,直到最近的泄漏事件。
Hive官网上还真查不到这个参数设置,只能在区块浏览器上看看。

https://hivexplorer.com/@lemooljiang
确实只有在区块浏览器才能查看到,Recovery Account(恢复账户)是steem。如果我的帐户被盗,大概率是找不到steem这个帐户的主人来帮我恢复帐户吧!
找了一圈,没有看到前端可以修改这个参数,估计只能上代码啰!
修改Recovery Account
如果Recovery Account是steem这些我们找不到人的,还是做下修改,铸好最后一道防线。
只看到beem.py这个包可以修改,查看下beem文档 ,有点头大,还是上AI吧。
丢给Gemini一句: 我正在使用Hive链,请具体介绍beem.py中 change_recovery_account 这个函数的各个参数和用法,并给出具体的使用案例, 它很快生成了对应的代码,跑了下,竟然一下就跑通啰!以下是相应代码:
# 安装包
pip install beem
from beem import Hive
from beem.account import Account
# 1. 指定你要操作的账户
account_name = "lemooljiang"
# 2. 设置你的节点和 Owner Key (更改恢复账户必须使用 Owner Key)
owner_key = "5JUExxxxxx...cv"
# node_url = "https://api.hive.blog"
node_url = "https://api.openhive.network"
# 3. 初始化 Hive 对象
h = Hive(node=node_url, keys=[owner_key])
acc = Account(account_name, blockchain_instance=h)
# 4. 执行更改操作
# new_recovery_account (string):你希望指定的恢复账户名。
# 通常建议设置为你信任的好友、知名的见证人(Witness)或者你控制的另一个安全账户。
# 假设你想把恢复账户改为 O婶
new_recovery = "oflyhigh"
try:
print(f"正在尝试将 {account_name} 的恢复账户更改为 {new_recovery}...")
tx = acc.change_recovery_account(new_recovery)
print("操作已广播!")
print("交易 ID:", tx)
print(f"查询: https://hivexplorer.com/tx/{tx['trx_id']}")
print("注意:更改将在 30 天后正式生效。")
except Exception as e:
print(f"发生错误: {e}")

到区块浏览器上可以查看到相关的操作啰。这个更改将在 30 天后正式生效。
修改Recovery Account的Steem版本
Steem版本略有差异,稍做修改即可。
from beem import Steem
from beem.account import Account
account_name = "lemooljiang"
# 1. 初始化并提供 OWNER KEY (必须是 Owner 权限)
owner_key = "5Jcxxxxxxxx..nhg"
# 假设你想把恢复账户改为 卖鱼的
new_recovery = "maiyude"
nodes="https://api.justyy.com"
stm = Steem(keys=[owner_key],node=nodes)
# 2. 实例化账号对象
acc = Account(account_name, steem_instance=stm)
# 3. 执行修改
try:
# 注意:该函数会向链上发送 'change_recovery_account' operation
tx = acc.change_recovery_account(new_recovery)
print("修改请求已提交!")
print("交易 ID:", tx)
print(f"提醒:该修改将在 30 天后正式生效。当前恢复者仍是: {acc['recovery_account']}")
except Exception as e:
print("执行失败:", str(e))
修改好了,至少心理安稳些了。并且又接触到了新知识,也是开心的。以太坊的帐户恢复想了好多年还没实现,Hive在10年前就实现啰。但是这两者的发展却又是云泥之别,不禁让人唏嘘。