一个web3应用,从用户体验来说,跟web2应用(指中心化的服务和应用)最大的区别,那肯定就是账户管理了。在web2服务中,创建账户时,因为我们提交了足够的隐私信息,服务提供商可以从很多方面了解我们是谁,所以我们忘记密码,甚至丢失账号,我们都不担心,因为服务提供商可以帮我们找回账号和密码。但是在web3,我们需要自己照顾好我们的账号,丢失账号,那就是永久丢失了,再也找不回这个账号,即使里面存放了1万个比特币。对一个技术极客来说,管理好自己的web3账号,这根本不是一个事,他甚至就是把私钥整个记在头脑中,不用依赖任何介质。但是对于一个普通人来说,无论是记私钥,还是备份助记词,都是巨大的挑战,任何一点的疏忽,都会造成巨大的无法挽回的损失。如何让普通用户得到类似web2的账号管理体验,是web3应用能不能得到大规模应用的前提。
我们可以来畅想下,理想的web3账户管理应该是什么样的。假设web3网络上有一个分布式的人工智能,按照DAO社区部署的智能合约工作,具备极高的智力,负责用户身份验证和账户管理的工作。因为是分布式的,所以它有能力自主维护一个自己的密钥,用于它自身的身份证明,也能用于加密自己所有数据的加解密。这个密钥仅保存在AI自己构建的最高安全等级的分布式内存中(比如通过SSS算法将密钥分片保存在很多机器的内存上),不会保存在任何存储设备中。也就是它可以拥有自己的数据,任何第三方都不能解密这些数据。因为它有自己的密钥,而且是基于智能合约工作的,所以它可以帮用户保存隐私数据,这样任何第三方就不会拿到用户数据。如果有这样的AI,用户的身份验证就不会那么复杂,用户完全可以享受类似web2的账户管理服务。但是很可惜目前并没有这样的分布式的智能服务,web3账户管理还处在非常早期的阶段。
现在最先进的钱包的账户管理,其中之一就是MPC钱包和CA钱包。但这两种钱包其实不是直接解决私钥管理的问题,而是把一个私钥的管理,变成了由多个人管理多个私钥,本质并没有改变,反而让钱包的使用更复杂了。如果这个钱包是银行金库,设定一个复杂的规则来管理银行金库是必要的,但并不适合个人账户的管理。
另外一种流行的web3账户管理方式的半托管的方式。现在很多钱包采用了社交恢复,或者绑定守护者账号,或者由钱包服务商提供半托管服务,都属于这种。半托管方式基于密钥分片算法(SSS),由各方持有一个分片,恢复时,只要能凑到满足阈值的分片,就可以恢复钱包。这是一种用户体验很不错的方式,但是存在一些安全隐患。比如委托两个A、B两方保存一片,万一他们串通私自合并呢?或者他们管理不善,丢了呢?或者是服务倒闭了呢?自己保存的一片,也是有可能丢失的。这些方式都有一定的依赖性,容易造成单点故障的问题。
简单总结,MPC和智能合约钱包的技术并不适合个人,半托管技术需要解决一些问题,有望获得大面积推广。对一个普通用户来说,他习惯的方式是这样,他创建了一个账户之后,如果忘记密码或者丢失账户,他希望是能凭借一些数据或者努力,就可以找回自己的账户。这种恢复的路径不会只有一条。自己在线上操作的找回密码或找回账户的方式很好,人工服务帮忙找回也是不错,总之不会有单点故障的问题,更不需要用户自己拿起笔写下助记词或者保存一片密钥分片。在这过程中,用户能不能恢复账号,凭借的是三点:
通过其他的账号证明(社会层面的,这是守护者账号)
通过指纹或人脸识别来证明(生理层面的)
通过回答隐私问题或者密码来证明(精神意识层面的)
我之所以是我自己,正是因为在社会层面上,在身体上,在意识上,这三者的统一,我才是我。web2的服务也不过就是充分利用了这三个层面上的数据,通过充分掌握一个人在这三个层面上的数据,来帮助用户恢复账号的,而这个过程,不需要用户额外记忆一段没有任何规律的文字,也不需要用户额外保存一片不知道什么内容的数据。我们认为,这就是问题的关键。一个web3账号,如果能做到这两点,被普通用户接受的概率就会非常高。
这就是我们努力的方向。芥子空间(TinyVerse Space)的账户是一个用户自我管理,多因素验证,多恢复路径的账户,目的是在安全性和易用性上面,找到一个最佳的平衡点,帮助用户没有障碍进入web3网络。它不需要用户额外记忆,用户只需要利用自己熟记的数据或者是记忆深刻的人生经历,甚至是个人的隐私数据就可以恢复账号;它也不需要用户额外保存什么数据,所有的数据都保存在分布式存储网络上。在账户的备份和恢复过程中,没有任何第三方会获得个人隐私数据,因为所有的数据都是个人私钥加密的。我们也不会成为单点故障的点,因为我们只是提供工具,而所有数据都在像ipfs这样的分布式存储网络上。这过程所涉及到的技术,我们将在后面逐步分享。