Substrate的Recovery模块分析

Substrate的Recovery模块分析

Substrate的social recovery模块主要作用就是利用社会工程学的原理来保存私钥,如果万一你的私钥丢失了,还能通过这套恢复系统给找回来。

区块链产品,私钥保管是最基础的,但是总有很多人(甚至是大多数人)保管私钥是没有任何经验的,最终都会丢失掉,所以一个能恢复私钥的系统,那就能够在推广区块链产品的时候更加友好。

Substrate的social recovery是其密钥管理改善最为核心的一环,任何其他Substrate项目都能引入此模块使用其功能。

总的来说,Substrate social recovery是一种基于多重签名钱包的M-of-N社会恢复工具。

区块链产品的用户需要设置三个参数:

  • 好友总数。
  • 好友最小阈值。
  • 延迟时间。

创建区块链产品的开发者在初始化需要设定两个参数,这两个参数是可链上治理的:

  • 存款金额。
  • 每个用户的最大总好友数。

工作机制

  • 第一步,设置恢复配置:
    • 用户最多选择他们信任的N个朋友。
    • 用户选择阈值M。
    • 用户选择恢复过程的最小延迟时间。
    • 用户存入可退还的配置押金,确保清除了以前的数据/账号。
  • 第二步,失去账号的访问权限:
    • 这一步其实就是模拟丢失私钥。
  • 第三步,启动恢复过程:
    • 用户创建一个新账号。
    • 用户用足够的资金为这个新账号注资,以支付追回押金和交易费用。
    • 用户调用recovery模块的声明丢失账号的接口,尝试恢复有存款的新账号。
    • 用户联系朋友担保自己的恢复尝试。
    • N个朋友中至少有M个批准。
    • 等待延迟时间过去。
  • 第四步,清理旧账号:
    • 关闭恢复过程,这将退还押金。
    • 删除恢复配置,该配置将退还其他押金。
    • 通过recovery模块请求其他模块,例如取消绑定,删除身份信息。
    • 最后,将所有资金从丢失的账号转移到新账号。

如何防止恶意恢复尝试

首先,朋友的最低阈值需要获得批准才能启动恢复。这种社会工程的攻击难度是很高的,需要M个朋友中有N个背叛了你,攻击者才能取得成功。

当然,如果黑客通过模仿社交工具等欺骗好友获得N个朋友的批准,攻击者仍然需要等待延迟时间才能使用您的资金。在这段时间,如果拥有真正权限的您,只要检查一次账号,就可以取消恢复过程并获得攻击者的抵押存款。

攻击者也是有成功的,需要抵押,如果搞不好,偷鸡不成反而丢了一把米。

如果有人尝试恶意恢复攻击,那您要及时更改好友组,那些容易被欺骗的好友不再值得信任。

设置较长的延迟时间

其实,很多人的账号很长时间都不看的,一两个月不去看账号是很正常的事情,这个时候,较长的延迟时间就是必须的,建议设置6-12个月的延迟期。

设置更高阈值

比如2/3的阈值就是比较低的,3/4设置4/5是更加明智的。

问题

首先这个区块链产品要是广泛使用的,你的朋友中使用该产品的,并且他们都在你的好友列表中,这个数量就要有N个。目前这个阶段,这对于很多区块链产品都是一个不小的门槛。

其次,这个在一定程度上增加了实用的便利性,但在另外一种程度上,还是增加了黑客攻击的可能性。

最后,每个用户需要一定的学习时间。虽然用户设置起来也是非常方便,选中几个信任的好友,修改或者使用默认的延期时间,就可以设置恢复配置,但对于很多不懂社会工程学的小白用户,多少还是要弄懂很多概念的。

你可能感兴趣的:(Substrate的Recovery模块分析)