Web3Auth 用作钱包基础设施,为去中心化应用程序 (dApp) 和区块链钱包提供增强的灵活性和安全性。在本文档中,我们将探索 Web3Auth 的功能,展示它如何为每个用户和应用程序生成唯一的加密密钥提供程序。
高级架构
Web3Auth SDK 完全存在于用户/应用程序的前端客户端上,并处理 OAuth 提供商和 Auth 网络之间的交互。
下图描述了 Web3Auth SDK 与集成应用程序之间的关系。它还描述了 Web3Auth 提供的产品之间的差异,以便开发人员友好地集成此基础架构。
即插即用SDK
Web3Auth 即插即用集成过程旨在方便开发人员使用,只需要初始化 Web3Auth SDK 并设置必要的配置。集成到您的应用程序中后,SDK 有助于嵌入登录功能。这允许开发人员利用 SDK 通过调用连接功能来验证用户身份,该功能可通过登录按钮或任何用户触发的事件激活。
一旦用户启动该过程:
- 用户被重定向到我们的门户(
auth.web3auth.io
) - 然后,我们的门户网站
auth.web3auth.io
处理登录的初始过程 - 用户被重定向到登录/OAuth 提供程序并执行与其身份验证提供程序相关的身份验证过程
- 用户被重定向回我们的门户,然后门户将处理用户密钥的重建
- 最后,一旦用户成功通过身份验证,他们将被重定向回应用程序,并带有特定于应用程序/钱包的派生密钥
下面是显示此过程的图表:
核心套件SDK
Core Kit SDK 是 Web3Auth 即插即用 (PnP) SDK 的骨干。它们构成了 Web3Auth 基础架构的精髓,并允许在去中心化应用程序 (dApp) 中直接使用,以促进更深层次的集成。它们进一步分为两种类型的 SDK:
- 单因素身份验证 SDK
- 多因素 SDK,例如 tKey SDK
单因素身份验证SDK
这些 SDK 允许将单一身份验证因素(例如社交登录)集成到您的 dApp 中。它们设计简单易用,只需付出很少的努力即可集成到您的 dApp 中,让您可以直接使用 Web3Auth 网络进行钱包管理。这是 Web3Auth 最常见的用例之一,但它本质上是半托管的,因为密钥由 Auth 提供商和 Web3Auth 网络托管。
多重身份验证SDK
该基础设施的一个组成部分是 tKey SDK,它是用于实现 Web3Auth PnP 和 Core-Kit 的基础 SDK。
"tKey" 是 Threshold Key 的缩写,负责管理使用阈值加密生成的钱包份额。tKey SDK 通过 Shamir 的秘密共享方案生成份额来管理钱包。
在典型的 2 出 3 (2/3) 设置中,为用户提供三个共享:ShareA、ShareB 和 ShareC。
- ShareA在 Web3Auth 的 Auth 网络中进行管理和划分,可以通过用户拥有的 OAuth 登录提供商(如他们的 Google 帐户)进行访问。
- ShareB存储在用户的设备上。存储方法因设备和系统而异。例如,在移动设备上,共享可以存储在使用生物识别技术保护的设备存储中。
- ShareC用作恢复共享。这是一个额外的共享,用户可以将其保存在单独的设备上、下载或基于具有足够熵的用户输入。这可能包括密码、安全问题或硬件设备等选项。
与现有的 2FA 系统一样,用户必须证明拥有至少 3 分之 2 (2/3) 的份额才能检索他们的私钥。
MPC SDK
使用 Web3Auth 基础架构,您的密钥会被分成多个部分,并存储在您的设备和我们的 Auth 网络中。这可确保您的密钥始终可用,并且永远不会存储在一个地方。而在传统的 Web3Auth SDK 中,您的密钥是使用阈值签名在前端动态重建的。
使用新的 Web3Auth MPC(多方计算)架构,它永远不会被重建。相反,这些部分密钥存储在不同的位置,并且您的设备用于为您的消息/交易制作部分签名。这些最终返回到前端,在那里使用 TSS(阈值签名方案),这些签名被组合以形成最终签名。您可以使用这个最终签名的消息/交易在区块链上进行交易。
阈值签名方案 (TSS) 是一种用于分布式密钥生成和签名的加密原语。在 Web3Auth 的 Auth 网络中使用 TSS 是一种新范式,可以提供许多好处,尤其是在安全性方面。
正如您在上图中看到的,右侧 TSS 架构的最终输出是可用于在区块链上进行交易的签名。
Web3Auth 钱包管理基础设施
Web3Auth 的钱包管理基础设施通过将用户的钱包分布在各种密钥共享中来增强安全性,从而避免直接暴露种子短语。这些密钥共享形成一个"信任网络",并实现类似于多因素账户处理的钱包管理。用户使用 OAuth 登录、受信任的设备和其他因素来管理他们的加密密钥对。重要的是,完整的私钥不存储在钱包基础设施系统内的任何地方,包括我们的数据库或任何参与节点。
要创建社交登录份额,用户需要与 Web3Auth Auth 网络交互,其中密钥生成通过 5/9 共识系统进行。此设置可保证钱包保持非托管状态,确保 Web3Auth、社交登录提供商或持有密钥份额的任何其他方都不能声称拥有完全所有权。
Web3Auth - Key Management SDKs with MPC and AA enabled
Documentation | Web3Auth 核心文档DKG(Distributed Key Generation)以及各种原理的清楚解说
https://tor.us/ 节点管理网络 ->BEW Sequence Wallet