Cryptography
URDNA2015
Also known as: RDF Dataset Canonicalization 2015, URDNA
The RDF canonicalization algorithm LearnCoin uses to produce a deterministic byte representation of every credential before hashing.
URDNA2015 (Universal RDF Dataset Normalization Algorithm 2015) is the deterministic canonicalization algorithm for RDF datasets. JSON-LD documents can express the same information in many equivalent but byte-different ways; URDNA2015 normalizes them into a single canonical N-Quads serialization so a hash of that output is stable across reorderings, whitespace differences, and @context variations.
For signing credentials, this is non-negotiable. Without canonicalization, two semantically identical credentials would produce different hashes and therefore different signatures — verification would fail on trivial reorderings that shouldn't matter.
LearnCoin canonicalizes every credential with URDNA2015 via the upstream jsonld package, then hashes the N-Quads output with SHA-256 to produce the leaf hash that goes into the Merkle tree. URDNA2015 is the precursor to the W3C RDFC-1.0 Recommendation; they produce the same output in every case LearnCoin has tested.