对于第一次接触Web3的Web2用户来说,初次上手的体验是不大愉悦的。传统的EOA钱包需要经过钱包生成,私钥管理,保存助记词等一系列复杂繁琐的流程。下一代无助记词钱包试图通过抽象私钥和助记词来解决这个摩擦点,只需点击几下就可以使用常用的Web2社交账号登录,实现一套更熟悉的登录流程。因此,无助记词钱包是Web3迈向大众普及的重要进步。
钱包提供方实现无助记词钱包的一种方式是完全中心化的账户托管解决方案。然而,这与Web3应用的初衷背道而驰。正确的解决方案不应该以用户失去对账户的所有权和自托管为代价,来达到抽象化的便利性。而应该根据用户的需求在两者之间取得适当平衡。
我们正处于将Web2消费者引入Web3的拐点。登录流程将在下一阶段的增长中至关重要。因此,创造一种既符合Web3去中心化的精神,又具备Web2的便利性和互操作性的登录和账户管理体验至关重要。
正因为登录和账户管理体验如此重要,我们一直在密切关注Web3账户基础设施的创新。许多开发者也想了解Web3用户登录的最新进展和我们对钱包的看法。本文正是为此而来。
取舍:无助记词密钥管理VS自主保管
最近所有钱包产品的迭代都可以通过它们对两个主要但相互牵制的特性的追求进行分析:无助记词密钥管理和自主保管。无助记词密钥管理是新用户无缝进入Web3的基础。这意味着用户不需要助记词短语或私钥就可以在新环境中登录账户。因此,他们的进入流程和账户管理是抽象的,类似于Web2。
从技术层面上来说,这种抽象是通过钱包提供方将客户账户的权限委派给服务器或第三方来实现的。例如,Magic?Link要求用户获得授权后才能访问加密密钥,并使用主密钥进行解密。其它方法则是通过将私钥拆分为多个片段并将它们存储在不同的位置来减少暴露整个密钥的风险,从而实现更大程度的去中心化。显而易见,用户需要在无私钥和自主保管两个特性之间作出取舍,这对许多加密货币使用者来说很重要,理由也很充分。当钱包服务依赖于第三方时,这些第三方就拥有审查交易,甚至接管资产的权力。它们可能会受制于政府监管和干预。对服务提供商依赖程度较高的钱包服务,在发生恶意攻击或事故时也更容易中断。
那么,如何在无私钥和自托管这两者间权衡以获得最佳用户体验呢?对于Web3应用程序,我们可以假设其首要目标是无缝转化Web2用户,他们习惯于使用用户名/密码或社交登录,但不会立即拥有大量的链上资产。而接下来,随着用户资产的增长,他们往往对安全性和去中心化有更高的要求,此时开发人员应该考虑对两种特性的权衡进行调整升级。
找到正确的平衡:现有无助记词钱包的比较
基于上述框架,我们对一些有代表性的无助记词钱包进行了调研,并根据它们的自主保管程度和其它相关因素对进行了分析。这些钱包是:
MagicLink,Web3Auth,ParticleNetwork,Sequence,UniPass
安全云存储、MPC和智能合约等新技术丰富了新一代钱包的设计空间,为用户带来一系列管理和使用其Web3账户的新功能。以上针对EOA钱包的改进方案对用户体验有不同程度的改善。
图1:云计算、MPC和智能合约在钱包设计中的应用
诸如Metamask、Imtoken和Phantom等EOA钱包是最本地化与独立的钱包,当然不可避免也是使用体验最繁琐的类型。用户需要学习如何安全保存他们的助记词词或私钥,以及如何使用它们将账户导入到新设备中。账户地址来源于私钥,如果私钥丢失或被盗,账户地址将被永久锁定或无法访问。
最直接的替代方案是使用托管服务。例如MagicLink。托管人可以仅通过电子邮件或社交登陆授予账户访问权限。然而,托管服务的便利性往往伴随着密钥安全风险和中心化风险。
更复杂的方法通常涉及MPC,如Web3Auth和ParticleNetwork。通过将密钥拆分为几个部分,登录时必须由多个密钥持有者进行身份验证,从而分散了管理权,降低了集中化的风险。
除此之外,也有成功者将智能合约结合在MPC之上,引入了账户管理逻辑,允许用户重构或重置由MPC管理的主密钥,进一步降低了中心化风险。账户管理逻辑的核心就是选择所谓的守护人,以实现深度自定义,消除对钱包服务提供商或特定守护人的依赖。
除了处理无助记词密钥管理和自主保管之间的取舍之外,这些无助记词钱包还可以从用户体验的六个维度进行评估。
Gas费用:创建智能合约账户在链上产生的Gas费用
延迟:创建和导入过程花费的时间
更换设备的便捷性:平滑地切换到一个新的环境或设备
安全性:单点故障的存在,包括任何单独的一方,如服务提供商或集成前端,是否有能力暴露、重构或重置完整的密钥或凭据,以完全控制账户
托管:服务可用性和抗审查能力
功能性:能够实现额外的账户管理逻辑
在这些补充因素中,比起Gas费用、延迟和附加功能这些显著影响用户体验的因素,安全性和托管因素对用户来说相对是无感的。然而,安全漏洞或服务中断等偶然事件可能对企业或个人造成灾难性的影响。
Magic?Link
MagicLink是一个支持电子邮件和社交登录的无助记词钱包。在得到Magic?Link的授权后,客户在新设备登陆账户时,从托管人处下载一份他们的私钥副本即可,从而避免保存和使用助记词。Magic?Link将私钥的加密版本外包给AWS?HSM以直接服务客户端,这样Magic?Link就不会以纯文本的形式存储私钥。
从技术上来说,Magic?Link就相当于Metamask,但增加了云托管的好处,允许用户使用在线身份验证切换设备。然而,为了给用户带来最好的体验,Magic?Link官方使用唯一的身份验证服务器来授予对解密密钥的访问权,这使得它在工作流中成为潜在的单点故障。黑客或工作人员一旦获得访问身份验证服务器的权限,就可以完全控制用户的账户。此外,解密密钥对于每个用户可能都不是唯一的,这就产生了使用其它账户的密钥绕过身份验证服务器的可能性。
图2:MagicLink
我们对Zerion集成的Magic?Link进行了测试和评估,以下是我们的发现。
图3:我们对Magic?Link的评估
Gas费用:低,因为它是一个EOA钱包
延迟:低,和Metamask一样
更换设备:很容易,私钥会被传输到拥有访问令牌的新设备。
安全性:低。单点故障。完整私钥在前端暴露
非托管:低。对认证服务器依赖程度高,因而服务可用性差、抗审查能力弱
功能性:低。不是智能合约钱包
Web3Auth
Web3Auth是一家流行的钱包服务提供商,它还支持社交登录,允许用户通过社交账号连接,以在各种应用里验证他们自己。目前已经有各种Web2和Web3应用程序集成了Web3Auth,如Chess.com、Opensea和Skyweaver。毫无疑问,对于任何面向C端用户的应用,社交登录都是一种极具吸引力,甚至是最无缝的身份验证方式。
然而,就像Magic?Link一样,社交登录工作流需要服务器生成登录请求并使用应用程序密钥进行签名,因此必须是中心化的。尽管智能合约可以使用公开给授权服务器的公钥来验证签名,但这对终端用户来说不是个友好的过程。
为了降低风险,Web3Auth在OAuth密钥中添加了其它密钥,然后需要多把密钥共同签名重构完整密钥。当用户第一次登录他们的社交账户时,首先,以去中心化的方式,通过Shamir?Secreting?Sharing生成三个密钥分片,而后分开存储。以下是这些分片的存储方式:
设备分片:生成并存储在用户的设备上,每次在新设备上登录时都会重新生成OAuth登录分片:在OAuth服务器上生成,然后在节点网络中进一步分割保存,并在OAuth代码得到验证时才会获取一次备用/2FA分片:由用户保留的额外分片,可保存在单独的设备、云或电子邮件上。登录新设备时必须用到该分片。图4:Web3Auth
目前,OAuth分片和备用分片都由Web3Auth通过Auth网络控制,这两个分片被用来重构完整的私钥。在集成了Web3Auth的服务中,如Opensea和Sequence,用户可以通过社交账号直接认证身份并登陆应用,不需要任何其它要求,这使得Web3Auth成为唯一的账户托管者。
Web3Auth可以把备份密钥分发到第三方存储。如此一来,当用户从新设备登录时,就可以调用备份密钥来在环境中创建新设备共享。将备份密钥的存储委托给第三方可以减少安全漏洞和审查的风险。Bitizen.org就是这种分布式托管的一个很好的例子,它使用2/3?TSS和客户自己的云盘来存储备份密钥共享。然而因为服务提供方对用户的云存储有完全的访问权限,隐私问题是不容小觑的缺点。
图5:我们对Web3Auth的评估
Gas费用:低。不是智能合约钱包
延迟:低。立即登录
更换设备:简单。社交登录和密码,或者只是社交登录
安全性:低。单一的托管人。私钥完整暴露到前端
非托管:低。服务高度依赖Web3Auth,没有抗审查能力
功能性:低。不是智能合约钱包
我们对Web3Auth测试是在Treasure.chess.com和Skyweaver.net上进行的。
ParticleNetwork
Particle?Network是另一款以电子邮件或社交登录为特色的钱包服务,采用基于2/2?MPC-TSS的算法。在密钥生成过程中有两方,客户和官方,他们共同计算公钥,各自持有一段私钥。只有客户这一方才能启动签名过程。
签名时,由TSS技术生成的证明将上传到链上,而无需显示私钥。当客户端进行设备切换或账号恢复时,通过邮件OTP或社交登录验证后,就会调用存储在云端的客户端密钥。
图6:ParticleNetwork
Gas费用:低,不是智能合约钱包。
延迟:低,2/2?MPC非常高效。
更换设备:简单,邮件OTP或社交登录
安全性:中等,完整的私钥并不存在,也没有永远的暴露。社交登录的验证仍然是中心化的
非托管:低。服务器端可以暂停服务或审查交易。
功能性:低。不是智能合约钱包
我们对ParticleNetwork钱包的测试是在?https://wallet.particle.network?上进行的。
Sequence
Sequence是一个多签智能合约钱包,通过将三个密钥中的一个委托给Web3Auth,同时支持电子邮件或社交登录。它允许开发人员更灵活地管理账户的安全性。此外,作为智能合约钱包,Sequence支持在不同用例中设置额外的逻辑来改善用户体验。目前已有一些游戏和Web3应用采用了Sequence。
Sequence钱包目前使用三个私钥保证安全性,这三个私钥足以创建一个多数权重来完全控制账户:会话密钥、一个守护人密钥和一个Torus密钥。
会话密钥存储在浏览器的IndexedDB中。守护人密钥保存在Horizon上。Torus密钥是由Torus网络生成的密钥,也称为Web3Auth。关于它的特性,请参考上一节。图8:Sequence
与Web3Auth相比,Sequence为开发人员或客户端添加了进一步分散托管的选项。目前Sequence允许用户在登录新设备时,直接用社交账号同时调用Torus密钥和守护人密钥,以减少摩擦,改善用户体验。
Gas费用是智能合约钱包的一个额外因素。账户创建、签署事务和密钥重构都是在链上进行的,因此需要消耗Gas。交易签名成本可以忽略,但在Polygon上创建账户和密钥重构的成本为$0.005-0.01,而在Ethereum上的成本约为此的1000倍。因此智能合约钱包在侧链和二层网络更可行。
图9:我们对Sequence的评估
Gas费用:低-中
在Ethereum上:270k?gwei大约$5-12用于创建账户。
在Polygon上:$0.0068-0.015创建账户
延迟:中等,第一次登录通常需要15秒,社交登录需要10-20秒
更换设备:简单。社交登录
安全性:低。单点故障。在当前实现中,仅Torus密钥就足以登录
非托管:低。在当前实现中,仅Torus密钥就足以登录
功能性:高。Sequence是一个智能合约钱包,因此支持额外的账户管理逻辑。
UniPass
UniPass也是一个建立在MPC密钥管理之上的智能合约钱包。它继承智能合约和MPC钱包的所有优秀功能。与Sequence相比,它使用守护邮件的域名密钥来验证重置请求,而不是使用守护密钥和社交密钥。用户可以简单地从他们预先设置的电子邮件账户发送电子邮件来重置主密钥。
基于DKIM的重置机制是:用户以某种格式发送电子邮件,包含电子邮件地址的内容由DomainKeys进行哈希计算和签名,然后使用任何RPC服务广播已签名的哈希值,以调用智能合约中的重置功能。在链上验证监护人邮件的域密钥签名,如图10所示。
DKIM的身份验证可以通过发送电子邮件简单地完成,整个流程不涉及任何需要授权用户请求的服务器,从而有效地消除了中心化风险。目前,Unipass服务器通过为用户起草恢复邮件以及提供RPC服务来简化重置主密钥的流程。但是用户并不依赖于官方服务器,开源前端可以在本地运行,在账户恢复/社交恢复的流程中完全跳过服务器。
图10:UniPass?DKIM恢复
在这种设计中,仍然可以认为守护邮件(gardianemail)扮演着托管人的角色,但这是被动的,因为整个过程不存在具体的服务提供方,就不会面临审查风险。这种方式大大降低了服务提供者被内部或外部恶意攻击的风险,降低托管服务商被审查的可能性。账户的访问不仅由电子邮件服务的安全环境保护,而且对于外部来说还是隐身的。
由于存在Gas费用,用户通常使用2/2?TSS密钥登录账户,而不调用智能合约更昂贵的函数。如图8所示,要登录到一个新的设备或环境,用户首先使用电子邮件OTP从云端下载被keystore加密的用户密钥,并用keystore的密码解密它。然后可以在本地使用该密钥来启动交易签名。一旦用户密钥签署了交易,Unipass持有的另一个密钥将自动参与签名。Unipass密钥充当一个看门人,自动监视交易的内容,以检查潜在的前端攻击。
图11:UniPass?2/2?MPC-TSS登录流程
Unipass还支持会话密钥,它被授权在预定义的条件下自动签署交易,比如在一定的交易金额下、在一段时间内,添加白名单地址。这得益于智能合约的功能。使用会话密钥可以极大地改善某些场景下的用户体验。
图12:我们对Unipass的评估
Gas费用:低至中。创建账户的费用在Polygon上:80k-130k?wei为$0.0033-$0.005
延迟:中等
更换设备:中等。邮件OTP+密码。用户不能简单地通过社交登录导入账号
安全性:高。黑客需要破解两封邮件才能进入客户的账户,这几乎是不可能的。
非托管:中等。高服务可用性,即使UniPass官方停止服务,客户仍然可以访问他们的钱包;未发现托管行为。
功能性:高。UniPass是一个智能合约钱包,因此它可以实现额外的账户管理逻辑。
总结
随着Web3用户转换门槛的降低,越来越多的开发人员开始意识到钱包本身,以及它作为用户流量入口的作用。过去,项目方要在无助记词密钥管理和自主保管之间取舍,现在,MPC和智能合约减轻了这种压力。分布式托管解决方案,特别是Unipass的被动托管解决方案,为用户和开发人员提供了最均衡的用户体验和安全特性。在接下来的12个月里,随着一批面向消费者的Web3应用程序的到来,这种均衡的解决方案可能会被更广泛地采用。
图13:我们对领先的无助记词钱包解决方案相关指标的评估
参考链接:
Unipass
Deck:?https://docsend.com/view/ntxvs952zwb3i2uj
Doc:?https://docs.wallet.unipass.id/docs/introduction/intro
Demolink?https://v1.tryunipass.com/
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。