Rhizome bundle
The bundle is the fundamental unit of data that is transported and stored by the Rhizome file distribution service.
A Rhizome bundle consists of a manifest and an optional payload.
Sender and recipient
If a bundle does not indicate the
Serval Identity (SID) of its intended recipient, it is for general consumption (broadcast)
If a bundle does not indicate the
Serval Identity (SID) of its sender, then it is of unknown origin (anonymous)
Bundle integrity
Rhizome does not modify any manifest once it is created
Rhizome does not modify any payload
Rhizome creates a random 256-bit Elliptic Curve private key for every bundle, called the Bundle Secret or BS
The 256-bit public key derived from the Bundle Secret is called the Bundle ID or BID
Rhizome does not reveal the Bundle Secret to any other application or node
Rhizome computes the 512-bit SHA512 hash of the payload, called the Payload Hash or PH (also File Hash or FH)
At injection, Rhizome inserts the Payload Hash into the bundle's manifest
Rhizome signs every complete manifest using the Bundle Secret
Rhizome nodes will only store and transmit manifests with valid signatures
Only an application possessing the original Bundle Secret can alter the manifest or payload
The net result of Rhizome's crytpo system is that:
any party may create a new bundle (with a new Bundle ID)
only the originating party may modify the manifest or payload of an existing bundle (keeping the same Bundle ID)
thus, once a bundle is created, all new payloads with the same Bundle ID are guaranteed to be from the same original sender
Payload security