This specification describes a Linked Data vocabulary for asserting Verifiable Credentials related to Blockchain.
The following terms are used to describe concepts involved in the generation and verification of the Linked Data Proof signature suite.
Please review [[LD-PROOFS]] for more details regarding linked data proof suites.
The blockchain vocabulary is available via:
{ "@context": ["https://w3id.org/blockchain/v1"] }
The following classes are available for specifying information related to blockchain.
A blockchain account id.
Term | blockchainAccountId |
URL | https://w3id.org/security#blockchainAccountId |
Expected Value | A blockchain account id. |
A JWK private key.
Term | privateKeyJwk |
URL | https://w3id.org/security#privateKeyJwk |
Expected Value | A JWK private key. |
A verificationMethod type for blockchains.
Term | BlockchainVerificationMethod2021 |
URL | https://w3id.org/security#BlockchainVerificationMethod2021 |
Expected Value | Class |
A linked data proof type for blockchain verification methods.
Term | BlockchainSignature2021 |
URL | https://w3id.org/security#BlockchainSignature2021 |
Expected Value | Class |
The Blockchain vocabulary defined in this document may be used to construct linked data proofs.
Parameter | Value | Specification |
---|---|---|
canonicalization algorithm | https://w3id.org/security#URDNA2015 | [[RDF-DATASET-NORMALIZATION]] |
digest algorithm | SHA-256 | [[SHA-3]] |
signature algorithm | JSON Web Signature (JWS) Unencoded Payload Option | [[RFC7797]] |
{ "id": "https:/w3id.org/security#BlockchainSignature2021", "type": "SignatureSuite", "canonicalizationAlgorithm": "https://w3id.org/security#URDNA2015", "digestAlgorithm": "https://tools.ietf.org/html/rfc5754#section-2.2", "signatureAlgorithm": "https://tools.ietf.org/html/rfc7797" }
This specification describes a Linked Data vocabulary for asserting Verifiable Credentials related to Blockchain.
The Blockchain vocabulary can be used with decentralized identifiers.
{ "@context": [ "https://www.w3.org/ns/did/v1", "https://w3id.org/blockchain/v1" ], "id": "did:example:123", "assertionMethod": [ { "id": "did:example:123#test-id", "type": "BlockchainVerificationMethod2021", "controller": "did:example:123", "blockchainAccountId": "0xF20cC6c5B9fef13Cb75300BbD059C176D18d3d01@eip155:1" } ] }
The blockchain vocabulary can be used with verifiable credentials.
{ "@context": [ "https://www.w3.org/2018/credentials/v1", "https://w3id.org/blockchain/v1" ], "id": "http://example.gov/credentials/3732", "type": ["VerifiableCredential"], "issuer": { "id": "did:example:123" }, "issuanceDate": "2020-03-10T04:24:12.164Z", "credentialSubject": { "id": "did:example:456" }, "proof": { "type": "BlockchainSignature2021", "created": "2019-12-11T03:50:55Z", "jws": "eyJhbGciOiJFUzI1NkstUiIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..6X2f25HwuRcSHXTIWgkkQILIUyfZqMaQcfTgfCyofyNvSGmkPCaTawFqCPFu8NZTdVUiP6OWuioCfFq0CVfpWAA", "proofPurpose": "assertionMethod", "verificationMethod": "did:example:123#test-id" } }
Do not include PII in verification method identifiers.
Review safecurves.cr.yp.to before selecting eliptic curve types.