The Blockchain Commons technology stack includes a stack of data formats. CBOR (and variant dCBOR) are fundamental binary data serialization formats. Bytewords encodes binary objects as four-letter English words. URs and MURs turn Bytewords into self-describing data objects. Known values encode ontological concepts as unsigned integers. Finally, Gordian Envelope builds on all of that to offer a self-describing, recursive, smart-document storage format.

Why? Data formats are more than just wants to encode data. They also encode specific principles. Blockchain Commons’ data formats embody the Gordian principles in large part by ensuring that open (and interoperable) as well as resilient (and harder to confuse). They also strive to be deterministic on a variety of formats (which supports openness and interoperability) and efficient.

Bytewords

Bytewords translates binary objects into a series of four-letter English words. They can be used to reliably record digital secrets, but they’re also a building block that transforms CBOR into URs and MURs.

For more see:

CBOR

CBOR is an IETF data format (RFC 8949) that we have adopted as the fundamental data representation for higher-level Blockchain Commons data formats such as Gordian Envelope and URs.

For more see:

dCBOR

dCBOR stands for Deterministic CBOR. It’s our own variant of CBOR that always encodes the same on any platform. It’s a necessary building block for using CBOR as the foundation of a deterministic storage system like Gordian Envelope.

For more see:

Gordian Envelope

Envelope is the culmination of many of Blockchain Commons’ other data formats. It’s build on dCBOR and can be encoded as a UR. It’s goal is to provide “smart document” storage. Arbitrary, recursive data storage is permitted, and anything can be encrypted or elided without damaging signatures.

For more see:

Known Values

Known Values correlate ontological concepts to integer values, allowing for efficient and standardized recording of common, repeated concepts.

For more see:

UR: Uniform Resources

URs utilize a minimalistic form of Bytewords to efficiently record binary data as text in a way that’s interoperable and self-describing.

For more see:

MUR: Multipart UR

Multipart URs break URs into multiple pieces to allow for the transmission of smaller data sets, which is important when URs are used for communications as QR codes.