Linked Data Proofs provide a mechanism to for ensuring the authenticity and integrity of Linked Data documents using mathematical proofs.
Linked Data Proofs can be used to:
This section describes the most common attributes of a Linked Data Proof.
type
(required)Indicates the proof type that is used. For example, an Ed25519Signature2018
type indicates that the proof includes a digital signature produced by an ed25519
cryptographic key.
proofPurpose
(required)Indicates the purpose the proof was created for. It acts as a safeguard to prevent the proof from being misused for a purpose other than the one it was intended for. For example, a proof can be used for purposes of authentication
, for asserting control of a Verifiable Credential (assertionMethod
), and several others.
verificationMethod
(required)Indicates when the proof was generated. Must be specified in the ISO8601 format.
domain
(optional)A string value that specifies the operational domain of a digital proof. This could be an Internet domain name like example.com, an ad-hoc value such as mycorp-level3-access, or a very specific transaction value like 8zF6T$mqP.
proofValue
(required)A valid representation of the proof value that can be used to verify the proof. This value is generated by the proof algorithm. What representation is considered valid depends on the specified verificationMethod
. More info can be found here.
A proof set is simply an array of proof objects under the proof
key. It's useful when the same data needs to be secured by multiple entities, but where the order of proods doesn't matter.
For example:
{
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://www.w3.org/2018/credentials/examples/v1"
],
"title": "Hello World!",
"proof": [{
"type": "Ed25519Signature2018",
"proofPurpose": "assertionMethod",
"created": "2019-08-23T20:21:34Z",
"verificationMethod": "did:example:123456#key1",
"challenge": "2bbgh3dgjg2302d-d2b3gi423d42",
"domain": "example.org",
"jws": "eyJ0eXAiOiJK...gFWFOEjXk"
},
{
"type": "RsaSignature2018",
"proofPurpose": "assertionMethod",
"created": "2017-09-23T20:21:34Z",
"verificationMethod": "https://example.com/i/pat/keys/5",
"challenge": "2bbgh3dgjg2302d-d2b3gi423d42",
"domain": "example.org",
"jws": "eyJ0eXAiOiJK...gFWFOEjXk"
}]
}
A proof chain is the same as a proof set, except that in a proof chain the order of proofs does matter. In this case the array is specified by the proofChain
key (instead of proof
).
For example:
{
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://www.w3.org/2018/credentials/examples/v1"
],
"title": "Hello World!",
"proofChain": [{
"type": "Ed25519Signature2018",
"proofPurpose": "assertionMethod",
"created": "2019-08-23T20:21:34Z",
"verificationMethod": "did:example:123456#key1",
"domain": "example.org",
"jws": "eyJ0eXAiOiJK...gFWFOEjXk"
},
{
"type": "RsaSignature2018",
"proofPurpose": "assertionMethod",
"created": "2017-09-23T20:21:34Z",
"verificationMethod": "https://example.com/i/pat/keys/5",
"domain": "example.org",
"jws": "eyJ0eXAiOiJK...gFWFOEjXk"
}]
}
or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Syncing