# Web3Auth & UniPass **Published by:** [Yooma](https://paragraph.com/@yooma/) **Published on:** 2023-02-13 **URL:** https://paragraph.com/@yooma/web3auth-unipass ## Content 目前加密货币钱包(例如 MetaMask)的密钥管理标准是通过种子短语完成的。创建账户后,用户需要备份其助记词(12/24个单词),这是保护用户资产的重要步骤。尽管这看起来很简单,但对于 Web2 的新用户来说,仍需要付出一些学习和时间成本,这可能是他们使用 Web3 的一个障碍。然而,无助记词钱包可以帮助 Web2 用户无缝切换到 Web3,这意味着他们可以使用类似于电子邮件的 Web2 登录方式来登录到 Web3。 对于 MetaMask、Imtoken 等(EOA)钱包来说,确实存在一些繁琐的流程。例如,用户需要学习如何安全地保存助记词、如何将账户导入到新设备等。然而,可以使用托管服务来代替这些流程,从而使用户更轻松地接入 Web3。下文涉及到的名词:DKIM(DomainKeys Identified Mail)Threshold Signature Scheme(TSS)Multi-Party Computation(MPC)Shamir's secret sharing (SSS)(Shamir 秘密共享)Threshold Signature Scheme(TSS)Web3Auth(用于 Web3 wallets和应用程序的可插入身份验证基础架构)使用Web3Auth 可以让用户通过 Google、Twitter、GitHub 等在各种应用中进行注册登录。用户也可以通过发送电子邮件的方式,进行无密码设置的注册。 Web3Auth使用SSS,通过将密钥(这个密钥不是特定于任何一个账户地址的私钥。Web3Auth使用这个密钥来生成和管理不同的账户。下同)分成几个部分(share threshold)(下文中shareA/B/C),登录时需要ABC中的两个share,这样即使服务方保存了其中一个Share也无权访问账户,进一步降低中心化的风险以及当用户丢失其中一个share可以通过另外两个重构密钥,增加了安全性。 实现原理:用户第一次使用他们的社交账户(Gmail/Twitter)登录时,会为用户生成三个Shares:ShareA、ShareB 和 ShareC,然后分开存储ShareA 存储在用户的设备上:实现是特定于设备和系统的。例如,在移动设备上,共享可以存储在通过生物识别技术保护的设备存储中。ShareB 由节点运营商的登录服务管理:该共享在节点网络中进一步拆分,并通过传统的身份验证流程检索。ShareC 是一个恢复共享:由用户保留的额外共享,可能保留在单独的设备上,下载或基于具有足够熵的用户输入(例如密码、安全问题、硬件设备等)在丢失device/share的情况下,由于share threshold中内置了冗余,用户可以重构他们的密钥(用户需要证明拥有至少 3 (2/3) 个中的 2 个shares,才能重构密钥)。用户也可以在此基础上增加密钥的share。 在易用性方面,无论是否第一次登录或是更换设备登录都是非常方便,直接使用社交或邮箱登录即可。 不过账户地址的安全性比较低,用户在集成了Web3Auth的应用上登录后,前端可以账户地址的私钥,有了私钥就可以对该账户地址进行任何操作(例如转账、交易等)。 此外,值得注意的是,Web3Auth 并不是钱包,它只是用于身份验证的基础架构。UniPass(分布式被动托管智能合约钱包)UniPass 也是一个建立在 MPC 密钥管理之上的智能合约钱包,使用守护邮件 (gardian email)的域名密钥(DKIM)来验证重置请求,而不是使用社交密钥,相比于传统的中心化钱包,UniPass具有更高的安全性和私密性。 DKIM 的身份验证可以通过发送电子邮件简单地完成,整个流程不涉及任何需要授权用户请求的服务器,从而有效地消除了中心化风险。 DKIM: 是一种用于确保电子邮件完整性和可靠性的电子邮件身份验证方法。它通过对发件人在发送邮件时对消息内容进行签名,并在接收邮件时验证签名以确定消息内容是否被改变或者篡改。这使得接收者可以验证邮件的真实来源和内容的完整性。DKIM 通过把发送者的签名附加到消息的头部,并通过一种公钥加密技术在接收邮件时验证签名。 UniPass 之所以被称为“被动托管”,是因为它并不需要用户将私钥交给任何第三方服务进行存储,而是通过智能合约实现一种安全的自我管理方式。这种方式下,用户的私钥是保存在区块链上的,由用户自己掌控,不会被第三方访问或篡改。 使用邮箱协议用到的密码学与链上智能合约交互。 账户智能合约部署流程:创建账户-→账户发生交易-→部署账户智能合约。 UniPass钱包的账户智能合约需要先部署才能使用,因此需要一定的费用支持,这与MetaMask(EOA)钱包不同。(如果账户没有足够的余额来支付智能合约部署所需的 gas 费用,则账户智能合约将无法部署。因此,如果一个账户在收到转账之前没有足够的 ETH 来支付智能合约部署的 gas 费用,那么它将无法部署智能合约并处理转账。在这种情况下,转账交易将会失败,转账的资金将会返还到发送者的账户中。) 兼容ERC-4337协议 (让应用帮助用户支付创建账户的 gas 费,也可以帮助用户代付交易手续费。甚至使用任意的 ERC20 代币支付交易手续费。)其他智能合约钱包解决方案往往还需要依赖外部( EOA) 钱包做私钥管理。UniPass Wallet 通过多方安全计算(MPC)的签名技术(TSS),避免了依赖于外部 EOA 钱包的安全性和可用性,同时也实现业务流程中私钥全程可用不可见的高安全性。 如果用户要更换设备需要邮件OTP+密码,不像Web3Auth直接使用社交账号登录即可。UniPass具有高可用性,即使他们官方停止服务,用户也是可以访问他们的钱包。 ## Publication Information - [Yooma](https://paragraph.com/@yooma/): Publication homepage - [All Posts](https://paragraph.com/@yooma/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@yooma): Subscribe to updates - [Twitter](https://twitter.com/_yoonama): Follow on Twitter