新手教程|搭建zkLogin的证明服务端

news2024/11/30 12:51:26

zkLogin是Sui的一种原生功能,它允许人们只使用来自如Google、Meta和Twitch等的现有网络凭证来创建Sui地址并签署交易。为确保隐私,集成zkLogin的apps必须创建ZKP (Zero Knowledge proofs,零知识证明),以使凭证对app保持隐藏,同时使交易历史对网络服务保持隐藏。由于生成ZKP可能需要大量资源,在客户端端口上可能会较慢,建议使用专用于ZKP生成的后端服务端口。运行该服务以及salt服务将允许用户通过zkLogin访问您的应用。关于salt服务的更多信息,请阅读Sui文档中有关salt策略的内容。

在后端运行证明服务的一个选项是使用Sui文档中提供的Docker镜像以及在今年九月举行的仪式中建立的公共参考字符串 (Common Reference String, CRS)。

证明服务的设置步骤

1. 下载Docker镜像,标记为prover和prover-fe。

2. 下载Groth16证明密钥zkey文件,稍后将其用作运行prover的参数。

wget -O - https://raw.githubusercontent.com/sui-foundation/zklogin-ceremony-contributions/main/download-zkey.sh | bash

3. 通过运行b2sum zkLogin.zkey来检查您是否已下载正确的zkey文件。

060beb961802568ac9ac7f14de0fbcd55e373e8f5ec7cc32189e26fb65700aa4e36f5604f868022c765e634d14ea1cd58bd4d79cef8f3cf9693510696bcbcbce

4. 在基于Linux的机器 (amd64) 上使用下载的zkey运行prover,并将其运行在PORT1上。

docker run \
  -e ZKEY=/app/binaries/zkLogin.zkey \
  -e WITNESS_BINARIES=/app/binaries \
  -v <path_to_zkLogin.zkey>:/app/binaries/zkLogin.zkey \
  -p PORT1:8080 \
  <prover-image>

5. 运行prover-fe,端口为PORT2。

docker run \
    -e PROVER_URI='http://localhost:PORT1/input' \
    -e NODE_ENV=production \
    -e DEBUG=zkLogin:info,jwks \
    -p PORT2:8080 \
    <prover-fe-image>

6. 适当暴露prover-fe服务,并保持prover服务为内部。

7. 使用以下其中一个端口调用证明服务:

  • /ping以测试服务是否正常运行

运行curl http://localhost:PORT2/ping应返回pong。

  • /v1以创建零知识证明

输入JWT_TOKEN、短暂的公钥、maxEpoch、jwtRandomness、salt和密钥声明名称以获取证明。

curl -X POST 'http://localhost:PORT2/v1' -H 'Content-Type: application/json' \
-d '{"jwt":"$JWT_TOKEN", \
"extendedEphemeralPublicKey":"ucbuFjDvPnERRKZI2wa7sihPcnTPvuU//O5QPMGkkgA=", \
"maxEpoch":"10", \
"jwtRandomness":"S76Qi8c/SZlmmotnFMr13Q==", \
"salt":"urgFnwIxJ++Ooswtf0Nn1w==", \
"keyClaimName":"sub" \
}'


Response:`{"proofPoints":{"a":["17267520948013237176538401967633949796808964318007586959472021003187557716854","14650660244262428784196747165683760208919070184766586754097510948934669736103","1"],"b":[["21139310988334827550539224708307701217878230950292201561482099688321320348443","10547097602625638823059992458926868829066244356588080322181801706465994418281"],["12744153306027049365027606189549081708414309055722206371798414155740784907883","17883388059920040098415197241200663975335711492591606641576557652282627716838"],  ["1","0"]],"c":["14769767061575837119226231519343805418804298487906870764117230269550212315249","19108054814174425469923382354535700312637807408963428646825944966509611405530","1"]},  "issBase64Details":{"value":"wiaXNzIjoiaHR0cHM6Ly9pZC50d2l0Y2gudHYvb2F1dGgyIiw", "indexMod4": 2 },"headerBase64":"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjEifQ"}`

如果出于性能原因,您更愿意从头开始编译prover,请查看Sui的rapidsnark分支资料,您需要编译并以服务器模式启动prover。


关于 Sui Network

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

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

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

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

相关文章

一款快速获取目标网站关键信息的工具

1.摘要 今天要介绍的这款工具是一个快速收集网站信息的开源脚本, 采用Python语言编写, 该工具可以快速收集网站的页面标题、网站上次更新日期、DNS信息、子域、防火墙名称、网站使用的技术栈、证书等信息, 默认支持对验证码和JavaScript内容执行绕过操作。 2.工具安装使用 使…

2023 辽宁省大学数学建模 B 题 数据驱动的水下导航适配区分类预测

“海洋强国”战略部署已成为推动中国现代化建设的重要组成部分&#xff0c;国家对 此提出“发展海洋经济&#xff0c;保护海洋生态环境&#xff0c;加快建设海洋强国”的明确要求。 《辽宁省“十四五”海洋经济发展规划》明确未来全省海洋经济的发展战略、 发展目标、重大任…

开源的网站数据分析统计平台——Matomo

Matomo 文章目录 Matomo前言一、环境准备1. 整体安装流程2.安装PHP 7.3.303.nginx配置4.安装matomo4.1 访问安装页面 http://192.168.10.45:8088/index.php4.2 连接数据库4.3 设置管理员账号4.4 生成js跟踪代码4.5 安装完成4.6 警告修改4.7 刷新页面&#xff0c;就可以看到登陆…

浅谈安科瑞电力监控系统在百事亚洲研发中心的应用

摘要&#xff1a;介绍百事亚洲研发中心&#xff0c;采用智能电力仪表、采集配电现场的各种电参量和开关信号。系统采用现场就地组网的方式&#xff0c;组网后通过现场总线通讯并远传至后台&#xff0c;通过Acrel-2000型电力监控系统实现配电所配电回路用电的实时监控和管理。 …

MathType7.4.8.0下载安装教程

MathType是一款专业的数学公式编辑器,兼容Office word,excel等700多种程序,用于编辑数学试卷、书籍、报刊、论文、幻灯演示等文档轻松输入各种复杂的数学公式和符号。 可以帮助用户快速的在各种文档中插入符号和公式&#xff0c;多复杂的公式都可轻松编辑完成&#xff0c;还可…

Vue分页控件报错 “pagerCount“

报错信息&#xff1a;[Vue warn]: Invalid prop: custom validator check failed for prop “pagerCount”. <template><div class"pagination"><el-paginationsmallbackground:layout"layout":total"total":current-page"…

利用shp文件构建mask【MATLAB和ARCGIS】两种方法

1 ARCGIS &#xff08;推荐&#xff01;&#xff01;&#xff01;-速度很快&#xff09; 利用Polygon to Raster 注意&#xff1a;由于我们想要的mask有效值是1&#xff0c;在进行转换的时候&#xff0c;注意设置转换字段【Value field】 【Value field】通过编辑shp文件属性表…

最后一个大更新!Win11 2023正式发布:Copilot终于来了

美国当地时间周二&#xff0c; 微软正式宣布为所有符合条件的Windows 11电脑发布Windows 11 2023更新(Windows 11 23H2)。 考虑到微软计划在2024年发布下一代Windows(可能是Windows 12)&#xff0c;这也使得23H2成为Windows 11的最后一个重大更新。 此次更新的重点就是AI功能&a…

【CSS】CSS基础知识扫盲

1、 什么是CSS&#xff1f; CSS即层叠样式表 (Cascading Style Sheets). CSS 能够对网页中元素位置的排版进行像素级精确控制, 实现美化页面的效果. 能够做到页面的样式和结构分离 2、 CSS引入方式 CSS代码编写的时候有多种引入方式&#xff1a; 内部样式、外部样式、内联样…

全球最杰出的大神程序员们(14位)

一、全球杰出的程序员介绍 一起来认识一下全球最杰出的大神程序员们。可惜没看到国人的面孔&#xff01;&#xff08;排名不分先后&#xff09; 1、Jon Skeet 个人名望&#xff1a;程序技术问答网站 Stack Overflow 总排名第一的大神&#xff0c;每月的问答量保持在 425 个左…

二叉树OJ题进阶(二叉树层序遍历、根据二叉树创建字符串、判断完全二叉树、二叉树的构建及遍历、二叉树的最近公共祖先(2种))

文章目录 二叉树OJ进阶一、 二叉树层序遍历1.思路2.代码 二、根据二叉树创建字符串1.思路2.代码 三、判断完全二叉树1.思路2.代码 四、二叉树的构建及遍历1.思路2.代码 五、二叉树的最近公共祖先方法一&#xff1a;思路代码方法二&#xff1a;思路代码 二叉树OJ进阶 一、 二叉树…

线性代数 第五章 特征值与特征向量

一、特征值定义 二、特征值求法 定义法&#xff1b;&#xff1b;相似。 三、特征向量求法 定义法&#xff1b;基础解系法&#xff1b;&#xff1b;相似。 四、特征值性质 不同特征值的特征向量线性无关k重特征值至多有k个线性无关的特征向量 五、相似的定义 若&#xff…

企业邀约媒体的方式方法?-(快速精准)

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 快速而精确地邀约媒体通常需要有计划和策略性的方法。以下是一些方法&#xff0c;可以帮助企业有效地邀请媒体&#xff1a; 1. 媒体列表构建&#xff1a;首先&#xff0c;建立一个精心筛…

JavaScript从入门到精通系列第二十八篇:详解JavaScript中的字符串的方法

大神链接&#xff1a;作者有幸结识技术大神孙哥为好友&#xff0c;获益匪浅。现在把孙哥视频分享给大家。 孙哥链接&#xff1a;孙哥个人主页 作者简介&#xff1a;一个颜值99分&#xff0c;只比孙哥差一点的程序员 本专栏简介&#xff1a;话不多说&#xff0c;让我们一起干翻J…

Zabbix技术分享——使用SNMPv2监控网络设备

前言&#xff1a;SNMP介绍 SNMP&#xff08;简单网关协议&#xff0c;Simple Network Management Protocol&#xff09;是专门设计用于在 IP 网络管理网络节点&#xff08;服务器、工作站、路由器、交换机及HUBS等&#xff09;的一种标准协议&#xff0c;它是一种应用层协议。 …

unraid 安装并设置 zerotier 内网穿透安装 unraid 局域网内其他设备

Read Original 最近看了以下两个文章&#xff0c;感谢发布的各种精彩文章&#xff0c;让我受益匪浅。OPENWRT 的固件在设置了&#xff0c;【自动允许客户端 NAT】后&#xff0c;可以直接访问局域网其他设备&#xff0c;而我 unraid 部署 zerotier 后&#xff0c;只能访问 unra…

全球高分辨率地表太阳辐射数据集包含36年(1983.7-2018.12)

简介&#xff1a; 全球高分辨率地表太阳辐射数据集包含36年&#xff08;1983.7-2018.12&#xff09;的全球地表太阳辐射数据&#xff0c;其分辨率为3小时&#xff0c;10公里&#xff0c;数据单位为W/㎡&#xff0c;瞬时值。该数据集可用于水文建模、地表建模和工程应用&#x…

Zephyr-7B-β :类GPT的高速推理LLM

Zephyr 是一系列语言模型&#xff0c;经过训练可以充当有用的助手。 Zephyr-7B-β 是该系列中的第二个模型&#xff0c;是 Mistralai/Mistral-7B-v0.1 的微调版本&#xff0c;使用直接偏好优化 (DPO) 在公开可用的合成数据集上进行训练 。 我们发现&#xff0c;删除这些数据集的…

GD32 单片机 硬件I2C死锁解决方法

死锁的复现方式 在I2C恢复函数下个断点&#xff08;检测到I2C多次超时之后&#xff0c;应该能跳转到I2C恢复函数&#xff09;使用镊子&#xff0c;将SCL与SDA短接&#xff0c;很快就能看到程序停到恢复函数的断点上&#xff0c;此时再执行恢复函数&#xff0c;看能否正常走出&…

Redis系列之Redis入门级(带你初步认识Redis)

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是君易--鑨&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的博客专栏《LInux实战开发》。&#x1f3af;&#x1f3af; …