AMA Recap(1)Solana事件引发关于Move的哪些考虑?

Published at August 22, 2022 By Starcoin.

img

  1. 1.Solana安全事件具有偶然性?

    Tim: Solana本次资金被盗和以前的一些安全事件有些不同,这次被盗的地址向链上提交了正常的交易(也就是转账)。而大家了解的常见的安全事故是授权应用后的资金转移(授权漏洞)。事件发生时,被盗的用户都指向了一个常用的叫Phantom的钱包,在原因还没找出之前,行业也是参照以前的一些安全事故的措施,呼用户撤销Phantom上授权的应用,但后续看这个措施对本次事件是没有帮助的,因为黑客掌握了被盗用户的私钥,删除授权并不能阻止黑客进行资金盗取操作。

    Token的授权的常见场景是用户授权给某个应用如借贷平台以及swap之类的常用应用,授权时候用户也可以选择性的设置授权资金的上限,这样当出现安全问题时最多也就丢失上限的资金。

    根据最新的报道,Solana上的Slope钱包上出现1000多个用户助记词泄漏,源于Slope上传了用户助记词到云服务,传输层是TLS没问题,但是助记词在云端明文储存,所以有权限的服务器管理人员可以备份这些信息,从而访问这些人的资金。

    总共受影响的用户地址大概有九千多个,包括Phantom钱包的用户,但是Phantom这部分用户的资金被盗的原因至今还未查出。

    Move小王子: 主要是私钥保存的问题,安全是个全局性的东西,各个环节都能出现。

    Tim: 我补充一下助记词、钱包地址和资金的关系。助记词有的产品也称之为 seed phrase,也就是种子地址,HD类型的钱包都是利用助记词生成钱包里面多个地址,同一套助记词生成的地址跟助记词是对应关系,所以助记词相当于你的钱包的 “用户名+密码”,任何一个人可以使用你的助记词获得你所有的钱包权限。

    Tim: 这次安全问题出现之后,也有一些补偿用户的提议,比如给这些地址发一些空投,但是这个方案其实是不可行的。因为这些用户的助记词已经丢了,发给原地址的资金很容易被黑客第一时间领走,因此空投没有意义,对于两个都拥有同样助记词的用户,我们从区块链世界很难区分谁是主人谁是盗用的,所以发空投不可行。

    对于助记词管理,我也有一些小的建议:

    • 在手机上创建钱包账号时,不要通过微信消息或者邮箱发给自己备份,这些服务虽然传输层是加密的,但服务器本身是有能力查看这些信息,有权限浏览服务器信息的角色理论上有机会盗取你的助记词,所以别这么干。
    • 不要在电脑或者手机上复制粘贴助记词来备份,一些恶意的app会检测剪贴板的内容,所以复制粘贴很可能泄露,甚至有的应用会监测键盘事件。
    • 关注官方动态,保持钱包升级到最新版本。
    • 记得升级浏览器,让攻击脚本失去漏洞。
    • 不用的合约授权及时停掉。

    最安全的方式

    • 创建钱包的时候可以把路径弄成超大数。
    • 手抄下来放保险箱 (需要保险箱子),但不防水不防火。
    • 刻钢板(需要钢板)。
    • 使用带有加密芯片的硬件钱包,不防火。
    • 多搞几个备份。
    • 抄写时可以排序打乱,把index放在其他地方,别人即便拿到也试不出来。
    • 可以把上面方式结合起来一起搞!

    特邀嘉宾Yishi: 关于为什么硬件钱包有用?

    因为客户端(PC,安卓,iOS)这些能够联网的客户端很难确保运行的环境是安全的,闭源软件无法审核,而开源应用不好确保源码的正确性,所以尽量做好小资金和大资金的隔离,热钱包里面放一点就行了;把其他的放到安全的硬件钱包,在任何进行资产操作的时候这个地址会对你的资产进行二次确认,也不用担心病毒和键盘监听之类的风险。

    假如你再遇到类似Solana这个事情,如果使用硬件钱包和热钱包搭配,最多也就损失热钱包的金额。

    之前有一个建议,一个dapp换一个地址,但是从这次事件来说,并没有什么作用因为助记词丢的而不是某个地址。

    很多大型钱包(如MetaMask输入密码后私钥是明文的)由于业务能力不足真的把助记词存到浏览器Local Storage里,而浏览器对于插件的管控都很弱,插件对权限的要求非常多,甚至有的插件会申请读取所有软件的所有数据,恶意插件如果有这么大的授权,就等于说把你的资产安全放到了非常危险的地方,所以安装插件的时候记得读一下插件要求的权限信息。

    Move小王子:大部分开发者关注的是业务的安全性而忽略了用户的安全性,所以实际上安全问题是一整个的系统问题,多方隐私计算在钱包管理上已经非常成熟了,建议钱包开发者引入这个新的技术。

    Tim: 多方计算(MPC)钱包也是一个有意思的话题,它也有一些不同的安全性思路,我们可以请小王子介绍一下。

    Move小王子:SSSS(Shamir’s Secret Sharing Scheme) 模式将私钥分片,指定签名数量,当某一个签名方私钥丢了可以让其他的签名方帮助恢复一方的私钥,多方隐私计算有点类似于多签,但是在执行的时候不会还原你的私钥,所以被黑掉的时候钱不会被损失。

    ZenGo 是做MPC的,但是他们看起来针对的更像是2b的业务,比如说中心化的机构,帮中心化的机构进行钱包去中心化,但是针对个人有半托管形式的。

    感谢社区小伙伴们的耐心等待,这一期Web3圆桌Talk(08.06.2022) 回顾分为2篇推送,下一篇会在本周推送。