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

news2024/11/26 17:32:45

随着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.coloradmin.cn/o/1056283.html

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

相关文章

Linux-centos系统安装MySql5.7

1.配置yum仓库 1.1配置yum仓库 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 1.2 安装Mysql yum库 rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm 2.使用yum安装Msql 说明:下载大约5分钟左右 yum -y install mysq…

基于Java的教学评价管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言系统功能结构图系统ER图具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划…

分页前后端完整代码

一、后端代码 User实体类要继承PageVo package com.like.entity;import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.like.common.PageVo; import…

web:[SUCTF 2019]EasySQL

题目 点进页面,页面显示为 没有其他的提示信息,查看源代码看看是否有提示 什么都没有,由题目名为easysql,能想到这道题与sql注入有关 先输入1查看回显 再输入其他数字或字母看看回显 都是无显示 先验证是否存在sql注入 构造pay…

python爬取csdn个人首页中的所有封面

#爬取csdn个人首页中的所有封面 import requests import json import reurlhttps://blog.csdn.net/community/home-api/v1/get-business-list? headers{User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safar…

Scala第十二章节

Scala第十二章节 1.读取数据 2.写入数据 3.案例:学生成绩表 scala总目录 文档资料下载

Origin分段显示柱状图

注意这里生成的是柱状图,而不是直方图。因此用到的是plot -> column/bar/pie -> stacked column: 而不是Statistical->histogram。 先上最终的作图效果: 单个柱的柱状图 第一步先填充数据,如图左所示,然后选…

P1540 [NOIP2010 提高组] 机器翻译(模拟)

[NOIP2010 提高组] 机器翻译 题目背景 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。 题目描述 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于每个英文单词&#xf…

Java类与对象

文章目录 引出概念快速入门对象内存布局属性概念创建对象访问属性对象分配机制成员方法🦖注意事项和细节 引出 ●看一个养猫猫问题 张老太养了两只猫猫: 一只名字叫小白, 今年3岁, 白色. 还有一只叫小花, 今年100岁, 花色. 请编写一个程序, 当用户输入小猫的名字时…

Qt自定义菜单

Qt开发过程中,弹出菜单时我们一般使用QMenu,但是QMenu都是一条项固定的格式,如查想要自己的设计界面就没法使用默认的Action项了,因此我们得用自定义的QMenu。 本篇介绍使用自定义的QMenu设计出UI。我们使用QWidget QWidgetAction来实现。Q…

代码随想录 Day8 栈(FILO)与队列(FIFO) LeetCode T232 用栈实现队列 LeetCodeT225 用队列实现栈

题目详细思路来自于:代码随想录 (programmercarl.com) 栈和队列都是大家不陌生的数据结构,我们之前的栈和队列一般是用数组或链表来实现的 , 这里我们给出实现方式,用于帮助更好的理解. 1.用链表实现栈 /* 基于链表实现的栈 */ class LinkedListStack { private ListNode sta…

记录我的网站的上线的全过程

我的网站开发全过程记录: 提示: 大部分是cv代码,少部分样式进行了修改和借鉴,主要花费时间在部署上面,出现的问题 开始: 三个博主: 在掘金上认识了搜狐前端-- 英杰 , 掘金链接:yingjieweb 的个人主页 - 动态 - 掘金 偶然间看见了英杰的网站,感觉非常不错,产生自己弄的想法,…

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…

【面试经典150 | 矩阵】旋转图像

文章目录 写在前面Tag题目来源题目解读解题思路方法一&#xff1a;原地旋转方法二&#xff1a;翻转代替旋转 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带…

Mac安装Ecplise产品报错:dose not contain the JNI_CreateJavaVM symbol

1. 絮絮叨叨 工作中需要借助Ecplise Memory Analyzer (MAT)分析dump文件&#xff0c;直接下载、安装、运行MAT报错 询问同事后&#xff0c;同事说可以先安装Ecplise&#xff0c;再以插件的形式安装MAT下载、安装好Eclipse&#xff0c;点击运行仍然报错&#xff0c;且错误信息一…

区块链3.0时代 基于GoMars构建的新概念TravelFi能否注入新力量?

区块链技术进入3.0时代 后疫情时代&#xff0c;全球数字化进程不断加快&#xff0c;世界范围内的移动通信、互联网技术及各类数字化应用的社会普及率也正在快速提升&#xff0c;疫情推动了互联网经济的增长&#xff0c;也让数字经济的价值开始显现。 数字经济一词的由来至今已经…

2023最新注册小程序以及云开发环境的创建

前言&#xff1a; 我们前面虽然可以用测试号创建小程序,但是测试号有很多功能会受限,比如我们接下来要讲的云开发,必须是注册小程序后才可以使用, 一&#xff0c;注册小程序 官方注册文档&#xff1a; 产品定位及功能介绍 | 微信开放文档 (qq.com)https://developers.weixin.…

servlet 线程模型 异步

在 servlet 3.0 之前&#xff0c;请求与线程的对应关系是1:1&#xff0c;对应jvm与操作系统的线程的关系。 https://jcp.org/en/jsr/detail?id315 https://jcp.org/en/jsr/detail?id340 从 servlet 3.0 开始&#xff0c;开始有了异步相关功能 容器线程池与业务线程池开始单独…

第九章 动态规划 part13 300. 最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组

第五十二天| 第九章 动态规划 part13 300. 最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组 一、300. 最长递增子序列 题目链接&#xff1a;https://leetcode.cn/problems/longest-increasing-subsequence/ 题目介绍&#xff1a; 给你一个整数数组 nums &#xff…

xilinx的原语的使用

xilinx的原语的使用 在学习FPGA实现千兆网时需要GMII转RGMII&#xff0c;这就涉及了原语的使用&#xff0c;特此记录&#xff01; 一、原语 与RGMII接口相关的原语&#xff1a; BUFG:全局时钟网络 BUFIO&#xff1a;只能采集IO的数据&#xff0c;采集IO数据的时候延时是最低的…