7个版本
0.1.6 | 2023年10月18日 |
---|---|
0.1.5 | 2023年10月4日 |
0.1.2 | 2023年9月13日 |
0.1.1 | 2023年6月20日 |
#6 in #可验证凭证
在3个crate中使用了(通过rebase_witness_sdk)
315KB
8K SLoC
Rebase
Rebase是一个用于构建凭证见证和客户端以与之交互的库。Rebase基于SSI构建,并使用DID和可验证凭证(VCs)来创建可移植的、指定的凭证。Rebase提供了处理见证的加密签名证明、将加密密钥链接到传统配置文件和身份,以及处理委托以提高拥有数据模型的应用程序的开发人员和用户的体验的抽象,以及来自Spruce的其他库。
以下是Rebase核心库的简要概述
通常,用于在服务器端构建客户端/见证的Witness SDK是所需的内容,而从浏览器与见证交互时,则需要Client SDK。
架构
这是Rebase所启用的凭证流程图,每个步骤的颜色编码以显示负责该部分凭证流程的模块
每个颜色编码的模块都对应于此项目src
文件夹中的一个文件夹。在src
文件夹中的另外三个目录是
context
:一个用于设置context_loader的模块,对消费者来说应该是不相关的。test_util
:一个仅用于内部测试的模块。types
:一个包含所有类型和枚举定义的模块,以避免循环依赖问题。
Rebase背后的主要思想是抽象VC发行中使用的密钥类型的数据流。密钥类型在两个级别上得到支持,作为Subject
和作为Issuer
。所有Issuer
都必须实现Subject
。通常,Subject
是密钥对的公钥,而Issuer
是加密密钥对的完整密钥对。
《flow》模块表示创建凭证所需的数据和所需的验证检查。每种流程类型(包括传统的身份,如“Twitter”、“GitHub”、“Email”,连接两个密钥的凭证,或主体简单证明的凭证)都包含在《statement》、《proof》、《content》和《flow》中的条目。通常,《proof》包括《statement》,而《flow》则是基于其他三者。
因为《flow》模块和《issuer》/《subject》模块只以抽象的方式相互处理,所以每当添加一个新的《flow》时,它都会与所有现有的《issuer》/《subject》兼容,反之亦然。
实现一个新的《flow》就像实现三个底层特性(《statement》、《proof》和《content》)和创建《proof》的验证,然后实现《flow》类型一样简单。目前支持的十个流程的示例包括(由主体签名的结构和语句并由发行者见证的证明,DNS,Email,GitHub,NFT所有权,POAP所有权,Reddit,SameController(连接两个密钥),SoundCloud和Twitter)。
创建分支或向此存储库提交PR的主要目的是添加新的流程。希望很快我们会有一个关于如何做到这一点的指南,但现在这里有很多示例。
要查看此库的使用方法,请查看Rebase Witness SDK及其演示项目Rebase CloudFlare Worker。
依赖项
~41–59MB
~1M SLoC