Skip to content

Multicodec based content identifier (CID) implementation

License

Notifications You must be signed in to change notification settings

cryptidtech/multicid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Multicid

A Rust implementation of the multiformats content identifier (CID) and very long-lived addresses (VLADs) specifications.

Current Status

This crate supports the full CIDv0 and CIDv1 specification as used in IPFS and the VLAD specification used in provenance log based applications. For technical details on either, please refer to their respective specifications linked above.

What are VLADs?

A VLAD is intended to replace public keys as identifiers in distributed systems by combinind a random nonce (i.e. number used once) and a CID for a WASM verification script designed to run in an implementation of the web assembly cryptographic constructs WACC VM. The nonce in the Vlad can be random but in some use cases the bytes inside the nonce are a Multisig digital signature over the CID part of the VLAD. Digital signatures are random enough to serve the purposes of making the VLAD unique while also cryptographically linking the VLAD to the key pair used to create the VLAD. This is a critical security feature for linking VLADs to provenance logs.

Briefly, the reasons why distributed systems should use VLADs instead of public key identifiers is because key material is subject to compromise and rotation. Distributed systems that rely on public key identifiers (e.g. web-of-trust, all other decentralized identity systems) are brittle and the resulting distributed system does not meet the preconditions for a metastable network to emerge. Whenever keys change, the links between the nodes break. Public keys are typically used because they are random enough to number a seemingly infinite number of things without running out and they are also a cryptographic commitment to a validation function that can be used to verify the data they are identifying. VLADs have both of these properties but are not derived from key material and are therefore not subject to compromise or rotation. That makes them much more resilient and stable distributed system links over long spans of time.

About

Multicodec based content identifier (CID) implementation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages