作者:ChenLi,IvyZeng和IvoEntchev?
来源:Youbi
对于第一次接触Web3的Web2用户来说,初次上手的体验是不大愉悦的。传统的EOA钱包需要经过钱包生成,私钥管理,保存助记词等一系列复杂繁琐的流程。下一代无助记词钱包试图通过抽象私钥和助记词来解决这个摩擦点,只需点击几下就可以使用常用的Web2社交账号登录,实现一套更熟悉的登录流程。因此,无助记词钱包是Web3迈向大众普及的重要进步。
钱包提供方实现无助记词钱包的一种方式是完全中心化的账户托管解决方案。然而,这与Web3应用的初衷背道而驰。正确的解决方案不应该以用户失去对账户的所有权和自托管为代价,来达到抽象化的便利性。而应该根据用户的需求在两者之间取得适当平衡。
我们正处于将Web2消费者引入Web3的拐点。登录流程将在下一阶段的增长中至关重要。因此,创造一种既符合Web3去中心化的精神,又具备Web2的便利性和互操作性的登录和账户管理体验至关重要。
正因为登录和账户管理体验如此重要,我们一直在密切关注Web3账户基础设施的创新。许多开发者也想了解Web3用户登录的最新进展和我们对钱包的看法。本文正是为此而来。
取舍:无助记词密钥管理VS自主保管
最近所有钱包产品的迭代都可以通过它们对两个主要但相互牵制的特性的追求进行分析:无助记词密钥管理和自主保管。无助记词密钥管理是新用户无缝进入Web3的基础。这意味着用户不需要助记词或私钥就可以在新环境中登录账户。因此,他们的进入流程和账户管理是抽象的,类似于Web2。
从技术层面上来说,这种抽象是通过钱包提供方将客户账户的权限委派给服务器或第三方来实现的。例如,Magic?Link要求用户获得授权后才能访问加密密钥,并使用主密钥进行解密。其它方法则是通过将私钥拆分为多个片段并将它们存储在不同的位置来减少暴露整个密钥的风险,从而实现更大程度的去中心化。
显而易见,用户需要在无私钥和自主保管两个特性之间作出取舍,这对许多加密货币使用者来说很重要,理由也很充分。当钱包服务依赖于第三方时,这些第三方就拥有审查交易,甚至接管资产的权力。它们可能会受制于政府监管和干预。对服务提供商依赖程度较高的钱包服务,在发生恶意攻击或事故时也更容易中断。
那么,如何在无私钥和自托管这两者间权衡以获得最佳用户体验呢?对于Web3应用程序,我们可以假设其首要目标是无缝转化Web2用户,他们习惯于使用用户名/密码或社交登录,但不会立即拥有大量的链上资产。而接下来,随着用户资产的增长,他们往往对安全性和去中心化有更高的要求,此时开发人员应该考虑对两种特性的权衡进行调整升级。
美众议院金融服务委员会主席:“现在是时候将 SBF 绳之以法了”:金色财经报道,美国众议院金融服务委员会主席马克辛·沃特斯 (Maxine Waters) 表示,她对山姆·班克曼-弗里德 (Sam Bankman-Fried) 被捕的时间感到“失望”和“惊讶”, 因为他计划于明天出席听证会作证。在一份声明中,马克辛·沃特斯称“现在是时候开始将 SBF 绳之以法了”。(the block)[2022/12/13 21:41:25]
找到正确的平衡:现有无助记词钱包的比较
基于上述框架,我们对一些有代表性的无助记词钱包进行了调研,并根据它们的自主保管程度和其它相关因素对进行了分析。这些钱包是:MagicLink,Web3Auth,ParticleNetwork,Sequence,UniPass。
安全云存储、MPC和智能合约等新技术丰富了新一代钱包的设计空间,为用户带来一系列管理和使用其Web3账户的新功能。以上针对EOA钱包的改进方案对用户体验有不同程度的改善。
诸如Metamask、Imtoken和Phantom等EOA钱包是最本地化与独立的钱包,当然不可避免也是使用体验最繁琐的类型。用户需要学习如何安全保存他们的助记词或私钥,以及如何使用它们将账户导入到新设备中。账户地址来源于私钥,如果私钥丢失或被盗,账户地址将被永久锁定或无法访问。
最直接的替代方案是使用托管服务。例如MagicLink。托管人可以仅通过电子邮件或社交登陆授予账户访问权限。然而,托管服务的便利性往往伴随着密钥安全风险和中心化风险。
更复杂的方法通常涉及MPC,如Web3Auth和ParticleNetwork。通过将密钥拆分为几个部分,登录时必须由多个密钥持有者进行身份验证,从而分散了管理权,降低了集中化的风险。
除此之外,也有成功者将智能合约结合在MPC之上,引入了账户管理逻辑,允许用户重构或重置由MPC管理的主密钥,进一步降低了中心化风险。账户管理逻辑的核心就是选择所谓的守护人,以实现深度自定义,消除对钱包服务提供商或特定守护人的依赖。
除了处理无助记词密钥管理和自主保管之间的取舍之外,这些无助记词钱包还可以从用户体验的六个维度进行评估。
Curve 社区发布不再将 UST 池提供激励的提案:5月19日消息,Curve 社区发布新提案建议将 UST 池移除出 Gauges,不再向其提供流动性激励,此举旨在防止添加流动性时产生的高滑点以及部分用户通过流动性池不均匀的分布获利等情况。[2022/5/19 3:27:16]
Gas费用:创建智能合约账户在链上产生的Gas费用
延迟:创建和导入过程花费的时间
更换设备的便捷性:平滑地切换到一个新的环境或设备
安全性:单点故障的存在,包括任何单独的一方,如服务提供商或集成前端,是否有能力暴露、重构或重置完整的密钥或凭据,以完全控制账户
托管:服务可用性和抗审查能力
功能性:能够实现额外的账户管理逻辑
在这些补充因素中,比起Gas费用、延迟和附加功能这些显著影响用户体验的因素,安全性和托管因素对用户来说相对是无感的。
然而,安全漏洞或服务中断等偶然事件可能对企业或个人造成灾难性的影响。
Magic?Link?托管EOA钱包
?Magic?Link是一个支持电子邮件和社交登录的无助记词钱包。在得到Magic?Link的授权后,客户在新设备登陆账户时,从托管人处下载一份他们的私钥副本即可,从而避免保存和使用助记词。Magic?Link将私钥的加密版本外包给AWS?HSM以直接服务客户端,这样Magic?Link就不会以纯文本的形式存储私钥。
从技术上来说,Magic?Link就相当于Metamask,但增加了云托管的好处,允许用户使用在线身份验证切换设备。然而,为了给用户带来最好的体验,Magic?Link官方使用唯一的身份验证服务器来授予对解密密钥的访问权,这使得它在工作流中成为潜在的单点故障。黑客或工作人员一旦获得访问身份验证服务器的权限,就可以完全控制用户的账户。此外,解密密钥对于每个用户可能都不是唯一的,这就产生了使用其它账户的密钥绕过身份验证服务器的可能性。
我们对Zerion集成的Magic?Link进行了测试和评估,以下是我们的发现。
Compound 创始人:Reservoir合约持有为用户预留的大部分 COMP,并将 0.50 COMP/block 滴入协议中:金色财经报道,针对今日早些时候再次发生的代币异常分发事件,Compound 创始人 Robert Leshner 发布推文称,Reservoir 合约持有大部分为用户预留的 COMP,并以每区块 0.50 COMP的比例注入协议。几周内没有人调用过该函数dip (),社区开发人员希望提案 63 或 64(在治理程序中)能够在调用之前生效。今天早上调用drip() 函数时,它将积压(202,472.5,自上次调用该函数后大约两个月的COMP)发送到协议中以分发给用户。这使处于风险中的COMP总数达到约 49万枚,其中 13.6 万枚在 Comptroller 合约中,到目前为止 11.7万已归还给社区。展望未来,对通过治理流程的补丁以及正在努力管理此错误的社区成员感到乐观,这些补丁将修复分发漏洞。[2021/10/4 17:22:56]
Gas费用:低,因为它是一个EOA钱包
延迟:低,和Metamask一样
更换设备:很容易,私钥会被传输到拥有访问令牌的新设备。
安全性:低,单点故障,完整私钥在前端暴露
非托管:低,对认证服务器依赖程度高,因而服务可用性差、抗审查能力弱
功能性:低,不是智能合约钱包
Web3Auth?分布式托管EOA钱包
?Web3Auth是一家流行的钱包服务提供商,它还支持社交登录,允许用户通过社交账号连接,以在各种应用里验证他们自己。目前已经有各种Web2和Web3应用程序集成了Web3Auth,如Chess.com、Opensea和Skyweaver。毫无疑问,对于任何面向C端用户的应用,社交登录都是一种极具吸引力,甚至是最无缝的身份验证方式。
然而,就像Magic?Link一样,社交登录工作流需要服务器生成登录请求并使用应用程序密钥进行签名,因此必须是中心化的。尽管智能合约可以使用公开给授权服务器的公钥来验证签名,但这对终端用户来说不是个友好的过程。
为了降低风险,Web3Auth在OAuth密钥中添加了其它密钥,然后需要多把密钥共同签名重构完整密钥。当用户第一次登录他们的社交账户时,首先,以去中心化的方式,通过Shamir?Secreting?Sharing生成三个密钥分片,而后分开存储。以下是这些分片的存储方式:
Lurpis:波卡生态 Bifrost 将 Staking 和应用层由互相对立的关系转化成了上下兼容的关系:金色财经报道,在8月27日举办的《金色百家谈 | DeFi如何在PoS网络中进行收益突围?》的直播节目中,Bifrost联合创始人Lurpis表示,波卡生态 Bifrost 将 Staking 和应用层由互相对立的关系转化成了上下兼容的关系,可以让构建在 PoS 网络中的 DeFi 应用不再因为收益竞争的问题流失用户,用户也可以通过 Bifrost 获得 Staking 和 DeFi 利息的双重收益。
目前 Bifrost 已经获得 Web3 基金会 Grant、同时也是 Substrate Builder Program 和 Web3 Bootcamp 成员。[2020/8/27]
设备分片:生成并存储在用户的设备上,每次在新设备上登录时都会重新生成
OAuth登录分片:在OAuth服务器上生成,然后在节点网络中进一步分割保存,并在OAuth代码得到验证时才会获取一次
备用/2FA分片:由用户保留的额外分片,可保存在单独的设备、云或电子邮件上。登录新设备时必须用到该分片。
目前,OAuth分片和备用分片都由Web3Auth通过Auth网络控制,这两个分片被用来重构完整的私钥。在集成了Web3Auth的服务中,如Opensea和Sequence,用户可以通过社交账号直接认证身份并登陆应用,不需要任何其它要求,这使得Web3Auth成为唯一的账户托管者。
Web3Auth可以把备份密钥分发到第三方存储。如此一来,当用户从新设备登录时,就可以调用备份密钥来在环境中创建新设备共享。将备份密钥的存储委托给第三方可以减少安全漏洞和审查的风险。Bitizen.org就是这种分布式托管的一个很好的例子,它使用2/3?TSS和客户自己的云盘来存储备份密钥共享。然而因为服务提供方对用户的云存储有完全的访问权限,隐私问题是不容小觑的缺点。
Gas费用:低,不是智能合约钱包
动态 | Travala 将 EOS 添加为其平台预定的默认支付选项:据MEET.ONE 报道,Travala 近日宣布将 EOS 添加为其平台预定的默认支付选项。用户可以用加密货币支付的方式预定该平台上的 160 万+ 酒店住宿。 相比其他竞争对手,Travala 通过采用加密货币支付的方式,能够给消费者和商家提供更为公平的定价体系。该平台目前已支持 17+ 不同种类的加密货币(包括 EOS), 为用户节省高达 15%的预定费用。 Travala 是新一代的在线旅行社,接受各类加密货币支付。[2019/9/27]
延迟:低,立即登录
更换设备:简单,社交登录和密码,或者只是社交登录
安全性:低,单一的托管人。私钥完整暴露到前端
非托管:低,服务高度依赖Web3Auth,没有抗审查能力
功能性:低,不是智能合约钱包
ParticleNetwork?分布式托管EOA钱包
?Particle?Network是另一款以电子邮件或社交登录为特色的钱包服务,采用基于2/2?MPC-TSS的算法。在密钥生成过程中有两方,客户和官方,他们共同计算公钥,各自持有一段私钥。只有客户这一方才能启动签名过程。
签名时,由TSS技术生成的证明将上传到链上,而无需显示私钥。当客户端进行设备切换或账号恢复时,通过邮件OTP或社交登录验证后,就会调用存储在云端的客户端密钥。
TSS多签名算法比SSS更安全,因为整个过程中它不会暴露完整的私钥。然而,在2/2?TSS方案中,两片密钥少了任何一片都无法恢复,这将使账户面临永久锁定的更高风险。
目前,Particle?Network允许用户下载存储在云端的密钥,从而轻松实现在新设备上的社交登录。然而,该密钥不受密码保护,服务提供商完全可以访问该账户。
Gas费用:低,不是智能合约钱包。
延迟:低,2/2?MPC非常高效。
更换设备:简单,邮件OTP或社交登录
安全性:中等,完整的私钥并不存在,也没有永远的暴露。社交登录的验证仍然是中心化的
非托管:低,服务器端可以暂停服务或审查交易。
功能性:低,不是智能合约钱包
我们对ParticleNetwork钱包的测试是在https://wallet.particle.network上进行的。
Sequence?分布式托管智能合约钱包
?Sequence是一个多签智能合约钱包,通过将三个密钥中的一个委托给Web3Auth,同时支持电子邮件或社交登录。它允许开发人员更灵活地管理账户的安全性。此外,作为智能合约钱包,Sequence支持在不同用例中设置额外的逻辑来改善用户体验。目前已有一些游戏和Web3应用采用了Sequence。
Sequence钱包目前使用三个私钥保证安全性,这三个私钥足以创建一个多数权重来完全控制账户:会话密钥、一个守护人密钥和一个Torus密钥。
会话密钥存储在浏览器的IndexedDB中。
守护人密钥保存在Horizon上。
Torus密钥是由Torus网络生成的密钥,也称为Web3Auth。关于它的特性,请参考上一节。
与Web3Auth相比,Sequence为开发人员或客户端添加了进一步分散托管的选项。目前Sequence允许用户在登录新设备时,直接用社交账号同时调用Torus密钥和守护人密钥,以减少摩擦,改善用户体验。
Gas费用是智能合约钱包的一个额外因素。账户创建、签署事务和密钥重构都是在链上进行的,因此需要消耗Gas。交易签名成本可以忽略,但在Polygon上创建账户和密钥重构的成本为$0.005-0.01,而在Ethereum上的成本约为此的1000倍。因此智能合约钱包在侧链和二层网络更可行。
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服务来简化重置主密钥的流程。但是用户并不依赖于官方服务器,开源前端可以在本地运行,在账户恢复/社交恢复的流程中完全跳过服务器。
在这种设计中,仍然可以认为守护邮件(gardianemail)扮演着托管人的角色,但这是被动的,因为整个过程不存在具体的服务提供方,就不会面临审查风险。这种方式大大降低了服务提供者被内部或外部恶意攻击的风险,降低托管服务商被审查的可能性。账户的访问不仅由电子邮件服务的安全环境保护,而且对于外部来说还是隐身的。
由于存在Gas费用,用户通常使用2/2?TSS密钥登录账户,而不调用智能合约更昂贵的函数。如图8所示,要登录到一个新的设备或环境,用户首先使用电子邮件OTP从云端下载被keystore加密的用户密钥,并用keystore的密码解密它。然后可以在本地使用该密钥来启动交易签名。一旦用户密钥签署了交易,Unipass持有的另一个密钥将自动参与签名。Unipass密钥充当一个看门人,自动监视交易的内容,以检查潜在的前端攻击。
Unipass还支持会话密钥,它被授权在预定义的条件下自动签署交易,比如在一定的交易金额下、在一段时间内,添加白名单地址。这得益于智能合约的功能。使用会话密钥可以极大地改善某些场景下的用户体验。
Gas费用:低至中。
创建账户的费用在Polygon上:80k-130k?wei为$0.0033-$0.005
延迟:中等
更换设备:中等。邮件OTP+密码。用户不能简单地通过社交登录导入账号
安全性:高。黑客需要破解两封邮件才能进入客户的账户,这几乎是不可能的。
非托管:中等。高服务可用性,即使UniPass官方停止服务,客户仍然可以访问他们的钱包;未发现托管行为。
功能性:高。UniPass是一个智能合约钱包,因此它可以实现额外的账户管理逻辑。
总结
随着Web3用户转换门槛的降低,越来越多的开发人员开始意识到钱包本身,以及它作为用户流量入口的作用。过去,项目方要在无助记词密钥管理和自主保管之间取舍,现在,MPC和智能合约减轻了这种压力。分布式托管解决方案,特别是Unipass的被动托管解决方案,为用户和开发人员提供了最均衡的用户体验和安全特性。在接下来的12个月里,随着一批面向消费者的Web3应用程序的到来,这种均衡的解决方案可能会被更广泛地采用。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。