钱包与用户入门:三密钥系统足够安全吗?解密探秘!
钱包和用户:三密钥系统的安全性能如何?
作者:Norswap,来源:作者推特@norswap;编译:松雪,LianGuai
嘿,数字资产投资者们!今天我给你们带来的是一篇有关钱包和用户入门的文章,由我亲自为大名鼎鼎的0xFable思考出来的。在这篇文章里,我们将讨论一些热门话题,比如我理想的账户架构、安全考虑以及现有的web3登录提供商的概况。把你的安全头盔戴好,准备好被我的幽默和专业知识炸到吧!
打造理想账户架构
在用户入门的过程中,让他们去安装钱包软件并保护助记词可能行不通。我们需要一些友好的、相当安全的、并且相当面向未来的东西。所以,我打造了我的理想账户架构,每个用户都有自己的智能账户,拥有三把密钥,就像你有三把钥匙打开你的财宝之门:
- 设备密钥,就像你家的钥匙一样,是用来开门的。
- 补充密钥,比如你让朋友帮忙看管的备用钥匙。
- 备份密钥,就像你把财宝藏在银行保险箱里一样,交给第三方保管。
听起来挺简单的吧?但如果你觉得它技术含量低或者不安全,那说明你被其他提供商给忽悠了,它们实际上并没有比这更安全,有时候甚至不如这种方法安全。接下来我会详细解释。
在这个设置中,你可以使用设备密钥进行基本操作,不需要用户进行交互。而对于资产转账和交易,你可能需要补充密钥。现在想象一下,用这套架构,你就像玩游戏一样简单搞定一切,而资产转账和交易这些复杂的操作只需要简单多了的补充密钥。
简单模式就是让用户用Google/Apple/Facebook等登录,然后添加确认提示。这样入门就变得容易了。但如果用户需要更高的安全性,可以用传统的EOA(External Owned Account)替换这个密钥(不过这可能需要在另一台设备或硬件钱包上)。不过其实也没有必要,因为任何一对密钥都可以用来代替第三把钥匙。
所以,备份密钥是当其他密钥丢失或提供商不可用或威胁到时,用来保护你的资产安全的。你可以把备份密钥简单地存在云上,就像把文件存在Dropbox/Google Drive一样,这样入门就变得简单又无成本。如果需要,这个密钥也可以由硬件钱包或优质提供商替换。
安全分析
现在你可能会问,这样安全吗?我可以负责任地说,大体上是相对安全的!要同时侵入两个设备或实体才能导致资金丢失。但是,当然总会有一些配置风险可能降低安全性,比如将备份密钥存在你的Google云端硬盘上,同时将补充密钥分配给你的Google账户。或者使用热钱包作为补充密钥,其实和设备密钥有相同的风险。
用户可能会误丢备份密钥。所以定期提示他们轮换设备密钥可能是个好主意,这样会迫使他们找到备用密钥。
如果备份密钥被简单地存储,那它也很容易被盗。这比热钱包还要糟糕,热钱包在磁盘上加密密钥并且需要密码才能在内存中解密。所以,定期更换密钥似乎是个好主意。而且,增加密钥的可用性(允许你使用设备身份验证来登录应用程序)将解决这个问题。
另外,了解社交登录也就意味着你对提供商的信任。提供商实际上拥有一个万能钥匙,他可以为所欲为,但他向你保证,他只会在你需要的情况下使用它。不要被貌似奇特的密码学主张给愚弄了,这也是我的结论。
最后,请注意,只要免费密钥是由dapp创建者提供的登录名,或者没有确认提示,那么dapp创建者就很容易欺骗用户。因为他们编写了拥有设备密钥的前端,还有控制或者可以控制免费密钥。
供应商情况
看看目前的情况,据我所知还没有人提供这种功能。问题通常是要么没有备份密钥,要么安全保障由同一实体(比如Coinbase钱包)提供。
市场上的供应商主要分为两类:
- 提供综合多密钥解决方案的供应商,可以使用智能合约或使用多方计算(MPC,一种密码学技术)将多个密钥合并为单个EOA。
- 低层级供应商会代管用户的密钥,并允许他们在登录后对事务进行签名。
当然,你会发现有很多这样的供应商。它们其实并没有区别,这也有点滑稽。
而且,只要商业模式是透明的,这些服务通常会向你收取每用户每年0.02到0.05美元的费用。对我来说,这是相当合理的。
有趣的是,所有这些工具都被定位为开发工具,似乎没有一家公司试图将这些技术应用于成为用户的主要钱包。也许他们都害怕成为你(买买买!)的主要对象呢。
当然,要和现有的dapp一起使用,你还是需要安装钱包软件。但好吧,好处是你至少去掉了助记词这个麻烦。但你也可以去告诉你常用的dapp,要它们集成我的系统,这样你就不需要安装钱包软件了。你轻松入门,dapp们则轻松盈利。不是很完美吗?
对供应商的担忧
当然除了这些都没问题,这些解决方案通常会引入一些大型的中心化问题,比如REST API或一些MPC计算。一旦这些供应商挂了,你就无法自己进行这些计算了(这些计算公开发布了吗?审计了吗?)。所以,如果你想和供应商终止合作,目前还不清楚会发生什么。他们可是拥有(一些)你用户的密钥!这和我对Rollups即服务(RaaS)的担忧很相似。
其实,一个RaaS创始人告诉我,终止合作时要权衡轻松退出和避免创始人欺骗用户之间的关系,这对RaaS而言是非常重要的。嗯,这个观点也适用于这里!
好了,我现在告诉你一个使用上述架构轻松切换供应商的方法:用户在链上提交他们社交账户的哈希值(比如[email protected])。每个社交登录供应商都有一个私钥(每个用户都不需要有一个密钥,并且通常这样也更安全)。智能账户就是指保存当前提供者账户的单例合约。切换供应商就像更改这个账户一样简单。
最后,我强烈推荐你阅读这条推文:https://twitter.com/gregthegreek/status/1716390418156281993
他的一个要点是,为每个应用程序发行一个账户将是一场用户体验噩梦。我非常同意,这也是这些供应商应该真正考虑成为可以跨应用程序运行的成熟钱包的另一个原因。
最后的思考
好啦,看到这里我们已经离理想的入门目标越来越近了。理想情况下,这些易于使用的钱包会与用户直接建立联系。然后,dapp们只需要和钱包建立合作伙伴关系,确定默认的登录钱包是谁。
如果现在的解决方案无法做到这一点,那我的解决方案只能是推出我自己的系统。不过它其实挺简单的,你只需要把你自己的社交登录提供程序插入我刚刚给你构思好的架构中就行。不过,我倾向于使用外部供应商。因为,如前所述,如果dapp创建者控制免费密钥,那么这个系统就不是完全去中心化的。
嗯,现在你知道了!我给你带来了有关钱包和用户入门的幽默且专业的文章。希望你喜欢!如果你有什么想法或问题,记得留言和我互动哦!
We will continue to update 算娘; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles