当前位置: 首页 > news >正文

Web3Auth 如何工作?

Web3Auth 用作钱包基础设施,为去中心化应用程序 (dApp) 和区块链钱包提供增强的灵活性和安全性。在本文档中,我们将探索 Web3Auth 的功能,展示它如何为每个用户和应用程序生成唯一的加密密钥提供程序。

高级架构

Web3Auth SDK 完全存在于用户/应用程序的前端客户端上,并处理 OAuth 提供商和 Auth 网络之间的交互。

下图描述了 Web3Auth SDK 与集成应用程序之间的关系。它还描述了 Web3Auth 提供的产品之间的差异,以便开发人员友好地集成此基础架构。

该图描述了 Web3Auth SDK 与集成应用程序之间的关系

即插即用SDK

Web3Auth 即插即用集成过程旨在方便开发人员使用,只需要初始化 Web3Auth SDK 并设置必要的配置。集成到您的应用程序中后,SDK 有助于嵌入登录功能。这允许开发人员利用 SDK 通过调用连接功能来验证用户身份,该功能可通过登录按钮或任何用户触发的事件激活。

一旦用户启动该过程:

  1. 用户被重定向到我们的门户(auth.web3auth.io
  2. 然后,我们的门户网站auth.web3auth.io处理登录的初始过程
  3. 用户被重定向到登录/OAuth 提供程序并执行与其身份验证提供程序相关的身份验证过程
  4. 用户被重定向回我们的门户,然后门户将处理用户密钥的重建
  5. 最后,一旦用户成功通过身份验证,他们将被重定向回应用程序,并带有特定于应用程序/钱包的派生密钥
下面是显示此过程的图表:

Web3Auth 正在工作

核心套件SDK

Core Kit SDK 是 Web3Auth 即插即用 (PnP) SDK 的骨干。它们构成了 Web3Auth 基础架构的精髓,并允许在去中心化应用程序 (dApp) 中直接使用,以促进更深层次的集成。它们进一步分为两种类型的 SDK:

  1. 单因素身份验证 SDK
  2. 多因素 SDK,例如 tKey SDK
单因素身份验证SDK

这些 SDK 允许将单一身份验证因素(例如社交登录)集成到您的 dApp 中。它们设计简单易用,只需付出很少的努力即可集成到您的 dApp 中,让您可以直接使用 Web3Auth 网络进行钱包管理。这是 Web3Auth 最常见的用例之一,但它本质上是半托管的,因为密钥由 Auth 提供商和 Web3Auth 网络托管。

单因素身份验证 SDK 基础设施

多重身份验证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用作恢复共享。这是一个额外的共享,用户可以将其保存在单独的设备上、下载或基于具有足够熵的用户输入。这可能包括密码、安全问题或硬件设备等选项。

Web3Auth 的私钥 - 密钥重建

与现有的 2FA 系统一样,用户必须证明拥有至少 3 分之 2 (2/3) 的份额才能检索他们的私钥。

MPC SDK

使用 Web3Auth 基础架构,您的密钥会被分成多个部分,并存储在您的设备和我们的 Auth 网络中。这可确保您的密钥始终可用,并且永远不会存储在一个地方。而在传统的 Web3Auth SDK 中,您的密钥是使用阈值签名在前端动态重建的。

使用新的 Web3Auth MPC(多方计算)架构,它永远不会被重建。相反,这些部分密钥存储在不同的位置,并且您的设备用于为您的消息/交易制作部分签名。这些最终返回到前端,在那里使用 TSS(阈值签名方案),这些签名被组合以形成最终签名。您可以使用这个最终签名的消息/交易在区块链上进行交易。

阈值签名方案 (TSS) 是一种用于分布式密钥生成和签名的加密原语。在 Web3Auth 的 Auth 网络中使用 TSS 是一种新范式,可以提供许多好处,尤其是在安全性方面。

展示 Web3Auth 密钥生成的工作原理

正如您在上图中看到的,右侧 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

https://app.tor.us/

OpenLogin

相关文章:

Web3Auth 如何工作?

Web3Auth 用作钱包基础设施,为去中心化应用程序 (dApp) 和区块链钱包提供增强的灵活性和安全性。在本文档中,我们将探索 Web3Auth 的功能,展示它如何为每个用户和应用程序生成唯一的加密密钥提供程序。 高级架构 Web3Auth SDK 完全存在于用…...

问:SQL中join语法的差异?

在SQL中,JOIN语法用于结合来自两个或多个表的数据。不同类型的JOIN会基于不同的条件来合并表中的数据。以下是几种常见的JOIN及其差异: 假设我们有两个表:employees 和 departments。 employees 表: employee_idnamedepartment_id1Alice10…...

计算机网络各层有哪些协议?计算机网络协议解析:从拟定到实现,全面了解各层协议的作用与区别

在数字化时代,计算机网络无处不在,已经成为不可或缺的一部分。为了让不同设备能够有效地进行通信,网络协议作为一种约定和规则,确保了数据在网络中的可靠传输。今天,我们将深入探讨计算机网络的各层协议,详…...

解决方案:机器学习中,基学习器 跟 弱学习器,有什么区别

文章目录 一、现象二、解决方案 一、现象 在工作中,在机器学习中,有时候会看到基学习器 跟 弱学习器,会容易混淆,所以整理一下 二、解决方案 在机器学习中,“基学习器”(Base Learner)和“弱…...

【Python】ftfy 使用指南:修复 Unicode 编码问题

ftfy(fixes text for you)是一个专为修复各种文本编码错误而设计的 Python 工具。它的主要目标是将损坏的 Unicode 文本恢复为正确的 Unicode 格式。ftfy 并非用于处理非 Unicode 编码,而是旨在修复因为编码不一致、解码错误或混合编码导致的…...

第9课-C++String功能的探索

1:C 语言中的字符串 vs C string 类 1.1 C 语言中的字符串 在 C 语言中,字符串本质上是以 \0 结尾的字符数组。C 标准库为此提供了 str 系列函数,如 strlen()、strcpy() 和 strcat() 等。虽然这些函数可以操作字符串,但它们的操…...

基于Hive和Hadoop的保险分析系统

本项目是一个基于大数据技术的保险分析系统,旨在为用户提供全面的汽车保险信息和深入的保险价格分析。系统采用 Hadoop 平台进行大规模数据存储和处理,利用 MapReduce 进行数据分析和处理,通过 Sqoop 实现数据的导入导出,以 Spark…...

国庆节快乐前端(HTML+CSS+JavaScript+BootStrap.min.css)

一、效果展示 二、制作缘由 最近,到了国庆节,自己呆在学校当守校人,太无聊了,顺便做一个小demo帮祖国目前庆生!!! 三、项目目录结构 四、准备工作 (1)新建好对应的文件目录 为了方便&#xff…...

【重学 MySQL】四十九、阿里 MySQL 命名规范及 MySQL8 DDL 的原子化

【重学 MySQL】四十九、阿里 MySQL 命名规范及 MySQL8 DDL 的原子化 阿里 MySQL 命名规范MySQL8 DDL的原子化 阿里 MySQL 命名规范 【强制】表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只出现数字。数据库字段名的修改代价…...

PyTorch源码系列(一)——Optimizer源码详解

目录 1. Optimizer类2. Optimizer概览3. 源码解析3.1 构造方法3.1.1 全局设置情形3.1.2 局部设置情形3.1.3 覆盖测试3.1.4 逐行讲解 3.2 add_param_group3.3 step3.4 zero_grad3.5 self.state3.6 state_dict3.7 load_state_dict 4. SGD Optimizer5. 极简版Optimizer源码6. 自定…...

Java - LeetCode面试经典150题(三)

区间 228. 汇总区间 题目 给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。 列表中…...

基于SpringBoot+Vue+MySQL的民宿预订平台

系统展示 用户前台界面 管理员后台界面 商家后台界面 系统背景 随着旅游业的蓬勃发展,民宿作为一种独特的住宿方式,受到了越来越多游客的青睐。然而,传统的民宿预定方式往往存在信息不对称、效率低下等问题,难以满足游客的个性化需…...

Hadoop krb5.conf 配置详解

krb5.conf文件是Kerberos认证系统中的一个关键配置文件,它包含了Kerberos的配置信息,如KDC(Key Distribution Centers)和Kerberos相关域的管理员服务器位置、当前域和Kerberos应用的默认设置、以及主机名与Kerberos域的映射等。以…...

工程师 - DNS请求过程

DNS(Domain Name System,域名系统)是互联网的重要基础设施之一,其主要功能是将人们容易记忆的域名(例如 www.example.com)转换为计算机能识别的IP地址(例如 192.0.2.1),类…...

Solidity智能合约中的事件和日志

1. Solidity 中的事件和日志概述 1.1 什么是事件? 在 Solidity 中,事件(Event)是一种允许智能合约与外部世界进行通信的机制。通过触发事件,可以记录合约执行中的关键操作,并将这些操作发送到链上。事件的…...

第四十一篇-Docker安装Neo4j

创建目录 mkdir /opt/neo4j-data创建 docker run \ -d --name neo4j \ -p 7474:7474 -p 7687:7687 \ -v /opt/neo4j-data/data:/data \ -v /opt/neo4j-data/logs:/logs \ -v /opt/neo4j-data//conf:/var/lib/neo4j/conf \ -v /opt/neo4j-data/plugins:/plugins \ --env NEO4J…...

数电基础(组合逻辑电路+Proteus)

1.组合逻辑电路 1.1组合逻辑电路的分析 1.1.1组合逻辑电路的定义 组合逻辑电路的定义 (1)对于一个逻辑电路,其输出状态在任何时刻只取决于同一时刻的输入状态,而与电路的原来状态无关,这种电路被定义为组合逻辑电路…...

自给自足:手搓了一个睡眠监测仪,用着怎么样?

很久不分享手搓党作品拉! 今天分享一个“基于毫米波雷达的睡眠监测仪”作品! 用Air700E开发板毫米波雷达,手搓一个开箱即用的睡眠监测仪,不花冤枉钱! 来仔细瞧瞧! 一、项目原理及硬件制作 毫米波是指频率…...

Miniforge详细安装教程(macOs和Windows)

(注:主要是解决商业应用anaconda收费问题,这是轻量级的代替,个人完全可以使用anaconda和miniconda) Miniforge 是一个轻量级的包管理器,类似于 Anaconda 和 Miniconda。它主要用于安装基于 conda 的 Python 环境,专注于…...

HDFS Shell作业1

1.在HDFS上建立/user/stu/自己学号,和/user/stu/input目录。 命令: hdfs dfs -mkdir -p /user/stu/22 hdfs dfs -mkdir /user/stu/input 2.用两种不同的方法上传albums.csv至HDFS的学号目录和input目录中。 命令: hdfs dfs -put par…...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

聊一聊接口测试的意义有哪些?

目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开&#xff0c;首…...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA&#xff1a;通过低成本全身远程操作学习双手移动操作 传统模仿学习&#xff08;Imitation Learning&#xff09;缺点&#xff1a;聚焦与桌面操作&#xff0c;缺乏通用任务所需的移动性和灵活性 本论文优点&#xff1a;&#xff08;1&#xff09;在ALOHA…...