25个版本 (4个重大更改)
新 0.5.4 | 2024年8月19日 |
---|---|
0.5.3 | 2024年6月26日 |
0.4.14 | 2024年6月13日 |
0.4.11 | 2024年5月30日 |
0.1.1 | 2024年3月11日 |
#267 in 加密学
92KB
2K SLoC
prople/did/core
DID (去中心化身份)
是一种新的标识符,专注于去中心化数字身份。一个DID
可以指代
- 事物
- 人
- 组织
- 数据
- 模型
- 等等...
根据W3C标准
本规范中定义的去中心化标识符(DIDs)是一种新的全局唯一标识符类型。它们旨在使个人和组织能够使用他们信任的系统生成自己的标识符。这些新标识符通过使用诸如数字签名之类的加密证明进行身份验证,使实体能够证明对其的控制。
来源: https://www.w3.org/TR/did-core/
去中心化身份是Prople
的主要目标之一。在Prople
中,不使用用户名、电子邮件或密码来识别用户。任何凭证都将由用户拥有和控制。
每个用户都将拥有自己的DID
,格式如下
did:prople:<base58btc_encoded_data>
示例
did:prople:z2xrsP3ExuJQMydq7hPg2d9ti3BKNoRSXE2b634vcdh9LKKujaBWLsPHoRgKcRCJ1ck7N5YcoU8ZmPwVqp5Hfnayj
这个DID
将由用户拥有,没有任何集中式实体可以访问。这个DID
将引用其DID 文档
{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://w3id.org/security/suites/ed25519-2020/v1",
"https://w3id.org/security/suites/x25519-2020/v1"
],
"id": "did:prople:z27EjbBVuun5D3vL1JYWaGa2q5E6twLdVG7xqvJBKhsCyJmbuGgA822La1pDUiHbi8qz4CpBUss3R7Tpg2i4rXvdx",
"authentication": [
{
"id": "did:prople:z27EjbBVuun5D3vL1JYWaGa2q5E6twLdVG7xqvJBKhsCyJmbuGgA822La1pDUiHbi8qz4CpBUss3R7Tpg2i4rXvdx#key-auth-verification",
"controller": "did:prople:z27EjbBVuun5D3vL1JYWaGa2q5E6twLdVG7xqvJBKhsCyJmbuGgA822La1pDUiHbi8qz4CpBUss3R7Tpg2i4rXvdx",
"type": "Ed25519VerificationKey2020",
"publicKeyMultibase": "z24i8PX1tyYgmQbtfhxjxd5pz1HXu71zPexgZ8B69fBeX9foF286HUBZeZsYStZB9ze4chmaRk9GAWQQLkKKgMvqD"
},
{
"id": "did:prople:z27EjbBVuun5D3vL1JYWaGa2q5E6twLdVG7xqvJBKhsCyJmbuGgA822La1pDUiHbi8qz4CpBUss3R7Tpg2i4rXvdx#key-auth-aggrement",
"controller": "did:prople:z27EjbBVuun5D3vL1JYWaGa2q5E6twLdVG7xqvJBKhsCyJmbuGgA822La1pDUiHbi8qz4CpBUss3R7Tpg2i4rXvdx",
"type": "X25519KeyAgreementKey2020",
"publicKeyMultibase": "5378a8ae40b6d651fbb584870d9e1c0bc9de644cc416d827b31d93d701d2cd1b"
}
],
"assertionMethod": [
{
"id": "did:prople:z27EjbBVuun5D3vL1JYWaGa2q5E6twLdVG7xqvJBKhsCyJmbuGgA822La1pDUiHbi8qz4CpBUss3R7Tpg2i4rXvdx#key-assertion-verification",
"controller": "did:prople:z27EjbBVuun5D3vL1JYWaGa2q5E6twLdVG7xqvJBKhsCyJmbuGgA822La1pDUiHbi8qz4CpBUss3R7Tpg2i4rXvdx",
"type": "Ed25519VerificationKey2020",
"publicKeyMultibase": "z25sf5SoAavJnpeNucvj4mxKBzYpXpM2SHd9SM14T49omXn8sh72Jyv5yq8MVxHWPY4uz1VQFBAMK445RGL6NvkrP"
},
{
"id": "did:prople:z27EjbBVuun5D3vL1JYWaGa2q5E6twLdVG7xqvJBKhsCyJmbuGgA822La1pDUiHbi8qz4CpBUss3R7Tpg2i4rXvdx#key-assertion-aggrement",
"controller": "did:prople:z27EjbBVuun5D3vL1JYWaGa2q5E6twLdVG7xqvJBKhsCyJmbuGgA822La1pDUiHbi8qz4CpBUss3R7Tpg2i4rXvdx",
"type": "X25519KeyAgreementKey2020",
"publicKeyMultibase": "513de55519a46dff69c76dd60a009975c999e02c0531ecca853f2e1a6724c848"
}
]
}
在DID
中,用户将拥有自己的VC (可验证凭证)
和VP (可验证声明)
。凭证将由发行者
生成并发送给持证人
。
holder
本身将根据提供的 VC
生成 VP
。一个 VP
可能包含多个 VC
。用户可以将一个 VP
作为每个提供的 VC
(或 VC
组)的 个人用户。
verifier
将使用来自 holder
的 VP
,并应能够通过它的 证明 验证其数据结构/格式。该 证明 本身,生成并应能够使用加密技术(在 Prople
中的 EdDSA
)进行验证。
Prople
用户将在其代理的存储中有自己的 DID
,包括他们的 VC
和 VP
。
安全 的 VC
示例
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://example.gov/credentials/3732",
"type": ["VerifiableCredential", "ExampleDegreeCredential"],
"issuer": "https://university.example",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"degree": {
"type": "ExampleBachelorDegree",
"name": "Bachelor of Science and Arts"
}
},
"proof": {
"type": "DataIntegrityProof",
"cryptosuite": "eddsa-rdfc-2022",
"created": "2021-11-13T18:19:39Z",
"verificationMethod": "https://university.example/issuers/14#key-1",
"proofPurpose": "assertionMethod",
"proofValue": "z58DAdFfa9SkqZMVPxAQp...jQCrfFPP2oumHKtz"
}
}
不安全(无证明) 的 VP
示例
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"type": "VerifiablePresentation",
"verifiableCredential": [{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"id": "http://university.example/credentials/1872",
"type": ["VerifiableCredential", "ExampleAlumniCredential"],
"issuer": "https://university.example/issuers/565049",
"validFrom": "2010-01-01T19:23:24Z",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"alumniOf": {
"id": "did:example:c276e12ec21ebfeb1f712ebc6f1",
"name": "Example University"
}
}
}]
}
安装
[dependencies]
prople-did-core = {version = "0.5.4"}
依赖项
~20–33MB
~627K SLoC