zkLogin构建者的最佳实践和业务思考

随着zkLogin在Sui主网上线,构建者可以开始为其应用程序提供丝滑的帐户创建服务。与任何新技术集成一样,构建者需要考虑许多重要的问题,以降低风险并成功优化。

本文概述了其中一些考虑因素,并突出了zkLogin文档中提供的明确指导。

zkLogin仅提供自托管地址

大多数具有用户友好型入门流程的Web3解决方案来自托管提供商。这些提供商管理用户的私钥,并提供熟悉的恢复路径,以防用户忘记其密码。虽然这种解决方案适用于愿意满足托管资产所需法规义务的企业,但许多构建者没有时间和预算来进行这个过程。

这就是zkLogin的用武之地,这种原生的自托管路径减少了监管负担,并缩短了简单登录的时间。然而,挑战在于,每个构建者都必须考虑其用户对自托管的舒适程度,以及zkLogin是否适合所有、一部分或完全不适合他们的用户。这种理解将有助于构建者确定可能希望在zkLogin上合并的其他帐户创建和密钥管理系统。

Web凭证应保持在链下

zkLogin使用目前可用的最佳加密方法,以确保链上地址不直接与Web凭证相关联,包括由凭证提供商提供的凭证。例如,如果您使用Google帐户生成Sui地址,Google永远不会被通知,也无法将地址与您关联起来。这种设计是有意的,至关重要,尤其是因为全球隐私法律(例如欧洲的GDPR和美国的CCA)要求凭证提供商必须遵守。应用程序构建者应该尽可能的熟悉许多隐私法律,这些法律管理用户可以与谁分享哪些用户信息以及他们对存储、保护和删除用户数据的义务等内容。

在实施zkLogin时,构建者通常可以选择使用子凭证(用户的唯一字母数字标识符)或实际的Web凭证(例如,电子邮件地址)来生成用户的链上地址。建议将链上帐户派生的问题与身份或发现(例如,用户之间更便于互动的方式)的问题分开。用户可能不希望、不期望或不受益于将其信息不可逆地放在其链上地址中。一种方法是使用名称服务(类似于域名URL)作为用户的身份层,以帮助减轻这种风险。

Prover和Salt管理涉及隐私

Sui文档详细概述了zkLogin生成地址的工作方式。简而言之,用户将使用其OAuth Web帐户登录以生成JSON Web Token(JWT)。然后,应用程序将提供JWT和salt(用于随机数据的常见加密术语)给零知识(zk)证明生成器,然后将证明作为Sui上交易的一部分。这个流程确保Web帐户信息永远不会在链上可见。

作为构建者,您可以选择运行自己的证明生成器和salt管理解决方案,或使用第三方解决方案。具有zk知识的构建者甚至可以选择使用公开可用的常见参考字符串从头开始构建自己的证明生成器。

运营证明生成器和管理salt是一个涉及隐私的任务。执行这些服务的任何实体原则上都将能够将Web凭证与Sui地址相关联,尽管这些信息在链上不可见。如果您正在构建一个涉及隐私的应用程序(例如,用户可能会存储高价值资产或金额的应用程序),则值得考虑自己运行证明生成器和进行自己的salt管理,而不是依赖第三方。

使用第三方服务时,请确保根据您自己的业务政策对产品、第三方服务的使用以及遵守相关的有关向用户披露的法律进行适当的治理。

Salt管理方案的选择

选择Salt管理方案是zkLogin构建者必须做出的最重要决策之一。zkLogin文档概述了Salt管理的几种方案,每种方案都有其自己的便利性、安全性和可恢复性权衡。从高层次来看,主要有两种方案:SSO形式和密码形式。

构建者在使用户进入和防止不良行为者访问资产之间存在矛盾,每个构建者都需要在便捷性和安全性之间找到他们app的合适位置。无论采用哪种方式,使用zkLogin的构建者应始终确保向用户提供所有适用的信息披露。

让我们为所有人建设更好的互联网

现在是区块链为所有人提供突破性体验的时候了,Sui上的构建者已经准备好为广大受众提供服务。目前,区块链地址大约有1亿个,而Web帐户有40多亿个,zkLogin是将区块链带给主流受众的关键一步。当以经过深思熟虑的方式实施这一功能时,将确保Sui为下一个数十亿用户提供最佳体验。


关于 Sui Network

Sui是基于第一原理重新设计和构建而成的L1公有链,旨在为创作者和开发者提供能够承载Web3中下一个十亿用户的开发平台。Sui上的应用基于Move智能合约语言,并具有水平可扩展性,让开发者能够快速且低成本支持广泛的应用开发。获取更多信息:https://linktr.ee/sui_apac

官网|英文Twitter|中文Twitter|Discord|英文电报群|中文电报群

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/92849.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3 - 使用 xlsx 库将数据导出到 Excel 文件

GitHub Demo 地址 在线预览 xlsx是由SheetJS开发的一个处理excel文件的JavaScript库。它可以读取、编写和操作 Excel 文件 安装xlsx npm install xlsx --save实现一个通过的数据导出工具类 import * as XLSX from xlsx/*** description: 导出excel* param {any} dataList* p…

基于SSM的微博系统网站的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用Vue技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

phpstudy_pro高效率建一个属于自己的网站

1.下载phpStudy_32 2.下载wordpress-6.3-zh_CN 安装好phpstudy后启动phpstudy中对应的服务,并在网站中配置好对一个的应用的路径 ps:根目录中的路径是你想要通过phpstudy部署应用的路径 这里以wordpress为例 将下载wordpress的压缩包解压后,需要修改…

前端页面初步开发

<template><div><el-card class"box-card" style"height: 620px"><el-input v-model"query.name" style"width:200px" placeholder"请输入用户姓名"></el-input>&nbsp&nbsp&nbsp…

【Golang】数组 切片

【Golang】数组 && 切片 1、数组 基本概念 数组是一个由固定长度的特定类型元素组成的序列&#xff0c;一个数组可以由零个或多个元素组成 因为数组的长度是固定的&#xff0c;所以在Go语言中很少直接使用数组 数组初始化 //1、默认数组中的值是类型的默认值 var arr…

Pycharm操作git仓库 合并等

菜单 Git CommitPushUpdate ProjectPullFetchMergreRebase 查询 查询分支 查询本地所有分支 # 查询本地分支 git branch# 查询远程分支 git branch -rPycharm查看当前分支 步骤&#xff1a; Git->Branches 哈喽&#xff0c;大家好&#xff0c;我是[有勇气的牛排]&…

红外遥控器 数据格式,按下及松开判断

红外遥控是一种无线、非接触控制技术&#xff0c;具有抗干扰能力强&#xff0c;信息传输可靠&#xff0c;功耗低&#xff0c;成本低&#xff0c;易实现等显著优点&#xff0c;被诸多电子设备特别是家用电器广泛采用&#xff0c;并越来越多的应用到计算机系统中。 同类产品的红…

FPGA project :HDMI

实验目标&#xff1a;驱动HdMI显示十色等宽彩条。 本实验的重点是&#xff1a; 1掌握TMDS通信协议。 2rgb565转rgb888。 3编写HDMI驱动程序。 4学会看流程图编写代码。 值得注意的事情 1注意数据与解析数据的信号&#xff08;比如传入的数据中0或者1的个数&#xff09;&…

IoTDB 在国际数据库性能测试排行榜中位居第一?测试环境复现与流程详解第一弹!...

最近我们得知&#xff0c;Apache IoTDB 多项性能表现位居 benchANT 时序数据库排行榜&#xff08;Time Series: DevOps&#xff09;性能排行第一名&#xff01;&#xff08;榜单地址&#xff1a;https://benchANT.com/ranking/database-ranking&#xff09; benchANT 位于德国&…

毛玻璃动画交互效果

效果展示 页面结构组成 从上述的效果展示页面结构来看&#xff0c;页面布局都是比较简单的&#xff0c;只是元素的动画交互比较麻烦。 第一个动画交互是两个圆相互交错来回运动。第二个动画交互是三角绕着圆进行 360 度旋转。 CSS 知识点 animationanimation-delay绝对定位…

Vue之transition组件

Vue提供了transition组件&#xff0c;使用户可以更便捷地添加过渡动画效果。 transition组件 transition组件也是一个抽象组件&#xff0c;并不会渲染出真实dom。Vue会在其第一个真实子元素上添加过渡效果。 props render 这里将render分为两部分&#xff0c;第一部分界定真…

线性表的链式存储结构——链表

一、顺序表优缺点 优点&#xff1a;我们知道顺序表结构简单&#xff0c;便于随机访问表中任一元素&#xff1b; 缺点&#xff1a;顺序存储结构不利于插入和删除&#xff0c;不利于扩充&#xff0c;也容易造成空间浪费。 二、链表的定义 ①&#xff1a;概念&#xff1a; 用一组任…

JavaScript高阶班之ES6 → ES11(八)

JavaScript高阶班之ES6 → ES11 1、ES6新特性1.1、let 关键字1.2、const关键字1.3、变量的解构赋值1.3.1、数组的解构赋值1.3.2、对象的解构赋值 1.4、模板字符串1.5、简化对象写法1.6、箭头函数1.7、函数参数默认值1.8、rest参数1.9、spread扩展运算符1.9.1、数组合并1.9.2、数…

docker-compose 网络配置- IP 主机名 hosts配置

docker-compose 配置IP、hostname、hosts配置 配置IP version: "3" networks:bd-network: # 声明网络external: true services:kafka: # 服务名称networks:bd-network: # 连接的网络名称ipv4_address: 172.2.0.102 # 配置IP配置 主机名 version: "3&quo…

mybatis-spring集成数据库连接池开启注解式开发

目录 1. 引入依赖包 2. 集成配置文件 2.1 开启注解式开发 2.2 spring引入外部配置文件 2.3 数据库连接池 2.4 spring整合mybatis 2.5 自动代理 3. 注解式开发的几个常用注解 4. spring-test 附录一&#xff1a;spring常用注解 1. 引入依赖包 <!--spring整合mybat…

网络基础(一)

通信&#xff0c;在古代是通过书信与他人互通信息的意思。 今天&#xff0c;“通信”这个词的外沿已经得到了极大扩展&#xff0c;它目前的大意是指双方或多方借助某种媒介实现信息互通的行为。 如果按照当代汉语的方式理解“通信”&#xff0c;那么古代的互遣使节、飞鸽传书…

IDEA git操作技巧大全,持续更新中

作者简介 目录 1.创建新项目 2.推拉代码 3.状态标识 5.cherry pick 6.revert 7.squash 8.版本回退 9.合并冲突 1.创建新项目 首先我们在GitHub上创建一个新的项目&#xff0c;然后将这个空项目拉到本地&#xff0c;在本地搭建起一个maven项目的骨架再推上去&#xff0…

【KingbaseES】银河麒麟V10 ARM64架构_安装人大金仓数据库KingbaseES_V8R6(CentOS8)

&#x1f341; 博主 "开着拖拉机回家"带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——&#x1f390;开着拖拉机回家_Linux,Java基础学习,大数据运维-CSDN博客 &#x1f390;✨&#x1f341; &#x1fa81;&#x1f341; 希望本文能够给您带来一定的…

焕新古文化传承之路,AI为古彝文识别赋能

目录 1 古彝文与古典保护 2 古文识别的挑战 2.1 西文与汉文OCR 2.2 古彝文识别难点 3 合合信息&#xff1a;古彝文保护新思路 3.1 图像矫正 3.2 图像增强 3.3 语义理解 3.4 工程技巧 4 总结 1 古彝文与古典保护 彝文指的是云南、贵州、四川等地的彝族人使用的文字&am…

十九,镜面IBL--BRDF积分贴图

再回顾下镜面部分的分割求和近似法 现在关注第二部分 最后可化为 也就是说&#xff0c;这两部分积分可以获得F0的系数和F0的偏差。 这两个值可以存储到BRDF积分贴图的RG部分。void main() { vec2 integratedBRDF IntegrateBRDF(TexCoords.x, TexCoords.y); FragColor …