Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
# Workspace for version 4 of the protocol
# Telehash protocol version 4 workspace

> This is a work-in-progress, do not consider anything here to be final.
> Any work in here is considered a work-in-progress, do not consider anything here to be final.

## Overview

Telehash began almost 10 years ago and has had two major evolutions in that time, the earlier ones being more focused on a distributed hash table and more recently focusing on the security and end-to-end privacy.

This next evolution continues that tradition by moving the protocol's self-defined primary data structures all to use newer standards instead, [JOSE](https://datatracker.ietf.org/wg/jose/documents/) and [CBOR](https://datatracker.ietf.org/wg/cbor/documents/). The lightweight nature of v3 has led to adoption in IoT use cases and v4 is embracing constrained environments as a principle architecture.
This next evolution continues that tradition by moving the protocol's self-defined primary data structures all to use newer standards instead, [_JavaScript Object Signing and Encryption_ (JOSE)](https://datatracker.ietf.org/wg/jose/documents/) and [_Constrained Binary Object Representation_ (CBOR)](https://datatracker.ietf.org/wg/cbor/documents/). The lightweight nature of Telehash version 3 (v3) has led to adoption in IoT use cases and version 4 (v4) is embracing constrained environments as a principal architecture.

## Scratch / Notes

* All messages will become a JWE
* Handshakes will contain a JWS + ephemeral JWK and establish a single channel (instead of a v3 'link'), multiple channels can exist simultaneously between peers
* All JWE/JWS bodys will be [JCOR](https://github.com/quartzjer/JCOR) (CBOR-based JSON)
* Primary/Required JWA is ECC P-256, implementations should support others
* All messages will become [_JSON Web Encryption_ (JWE)](https://tools.ietf.org/html/rfc7516) objects.
* Handshakes will contain a [_JSON Web Signature_ (JWS)](https://tools.ietf.org/html/rfc7515) + ephemeral [_JSON Web Key_ (JWK)](https://tools.ietf.org/html/rfc7517), and will establish a single channel (instead of a v3 'link'). Multiple channels can exist simultaneously between peers
* All JWE/JWS bodys will be re-encoded as minimized CBOR using [_JSON Constrained Representation_ (JCOR)](https://github.com/quartzjer/JCOR) (CBOR-based JSON)
* Primary/Required [_JSON Web Algorithm_ (JWA)](https://tools.ietf.org/html/rfc7518) is ECC P-256, implementations should support others
* Bindings will be defined for common transports (HTTPS, CoAP, MQTT, XMPP, USB/CDC, UART, etc)
* Reliable channels will not be in v4, messages must be stand-alone or a reliable transport must be used instead
* Communities are being introduced to increase metadata privacy, every endpoint must be part of one or more communities
Expand Down