EOS密钥被盗后如何恢复?

EOS的账户体系还有一个与绝大多数区块链项目不一样的特征,它提供了“密钥被盗后的恢复”。对其他的区块链项目而言,密钥丢失,则一切都丢失了,无法恢复,而EOS基于它的用户权限机制提供了恢复功能。

这有很大争议,但可能是需要的。过去,区块链项目假设,你得管理好自己的密钥,没人为你负责。但在现实生活中,当丢掉了银行的密码之后,我们希望在提供相关证明之后,银行能帮忙找回密码,帮我们找回自己的钱。

当然,EOS提供的恢复功能只有在非常严格的情况下才可以做到:假设你的私钥被黑客盗走了,在这种情况下,你可以用过去30天中有效的owner 权限对应的私钥,和你预先设定的账户恢复合作伙伴(account recovery partner)重置账户的私钥。这样你可能夺回了账户的所有权。

EOS 白皮书讨论说:“这个过程与简单的多重签名机制有极大的不同。通过多重签名的交易,有一个对象会执行并参与每一笔交易。然而,账户恢复合作伙伴仅参与了恢复的过程,并没有权力参与日常的交易。这极大地降低了相关参与者的成本和法律责任。”

按照BM之前设计的Steem区块链,要保证你的账户中的数字资产不被盗走,还需要其他机制的协同。如果黑客获得你的账户的所有权,可以立刻将你的账户中的数字资产转走,那么,你的数字资产就丢失了,你即便恢复了账户也毫无用处。

在Steem区块链中有这样的机制的示例。比如,如果我们把STEEM币存入一个储蓄账户(也就是转化所谓的STEEM Power),那么我们要从中把STEEM 币取出来,首先要经过一个7天的等待期,然后在接下来的13周中,每周可以取出1/13。如果有这样的机制,那么只要在一定的时间内进行了账户恢复,重新获得账户的控制权,我们的数字资产就还没有被全部盗走。
 

私钥及其重要性

那么什么是私钥呢?有账号就有私钥。私钥是钱包里资金所有权的证明和合约拥有权的证明,其本质是32个byte组成的数组,由256个0或者1随机组成,可以把它理解成银行卡的密码,这个密码除了自己不会有任何人知道,不过银行卡密码是可以自己设置的,而私钥是随机生成的。

私钥是如何被盗的

私钥映射时:

1. 使用了不安全的映射工具。

使用不安全的映射工具,导致映射使用的公私钥是由工具开发者(实际是攻击者)控制的,当 EOS主网上线后,攻击者随即 updateauth 更新公私钥。或者映射工具在网络传输时没有使用 SSL 加密,攻击者通过中间人的方式替换了映射使用的公私钥。

私钥创建时:

1. 让陌生人帮助注册账号

由于注册账号需要已经存在的账号帮忙抵押内存,这使黑客有机可乘。黑客利用最常见的钓鱼手法——帮忙注册账号盗取用户私钥。我们前面已经说过私钥其实有两把,设置双私钥模式会增强安全性,但让他人帮忙注册账号,就意味着Owner和Active权限都将可能掌握在他人手中,这就丧失了其本该有的安全性。

2. 用户使用空助记词或较弱的助记词组合生成的私钥

助记词是私钥的另外一种表现形式,由于私钥随机产生,识记较为困难,为了更好地记忆复杂的私钥,用户可以使用助记词,通过助记词导入钱包。如果用户使用空助记词或是强度较弱的助记词产生的秘钥,很容易遭受“彩虹”攻击。

3. 使用不安全的第三方私钥创建工具

用户使用不安全的第三方私钥创建工具,例如安全保护不够强的钱包,连网在线创建私钥的网站等。

私钥使用时:

1.使用了不安全的 EOS 超级节点投票工具

使用了不安全的 EOS 超级节点投票工具,使得工具开发者(实为攻击者)可窃取EOS 私钥。

2. 用户存储私钥的媒介不安全

用户存储私钥的方式不安全,例如存储在邮箱、备忘录等,可能存在弱口令被攻击者登录,从而被窃取私钥。

3. 在复制粘贴私钥时,被恶意软件窃取

用户在手机或电脑上复制粘贴私钥时,被某些恶意软件监听,导致被窃取。

防范措施

针对私钥安全防范,我们给出以下建议:

1. 使用安全性有保证的映射工具、私钥创建工具和超级节点投票工具。

2. 切忌让陌生人帮自己注册账号。若不得以需要让他人帮忙注册,一定要使用受信任的进程或接口。在注册好后,对Owner和Active私钥做仔细检查,以防万一。

3. 务必备份好Owner 助记词、Active 助记词。特别注意,不管是Owner 助记词,还是Active 助记词,都需要按顺序记下并保护好。一旦有人得到了你的助记词, 那就等同于掌控了你的钱包,不需要任何密码就可以转移你的资产。

4. 不管是私钥还是助记词最好抄写在一张纸上,不要截屏或记录在手机上,也不要通过任何渠道将助记词信息传播给他人(比如截图等等),这是非常危险的行为。

5. 避免在使用时进行私钥的复制、粘贴

6. 不要随意点开来源不明的链接,下载来源不明的文件