Antheos in Brief: One Protocol for Any Device on Any Link
A thermostat, a motor controller and a program on a server each hold a processor, and each speaks a language its maker chose. Antheos is a protocol written so that any of them can find what another offers and use it, over whatever link happens to join them, with no machine in charge.
This page says what Antheos is, who it is for and what exists of it today. It is a short way in. The specifications are the authority, and every claim here cites the section it rests on.
What it is
Antheos is "an anonymous, lightweight, decentralized communication protocol" (Section 1 of its Level 1 specification). Its world holds two kinds of thing: "Only devices and buses exist. No routers, no controllers, no central authority" (Section 2).
An instance is whatever communicates: a "Device, software, or HID endpoint". A bus is whatever carries its messages: a "Device, software, system, or person facilitating instance communication" (Section 3). A wire is a bus. So is a socket, and so is a person who walks a file across a room.
Every message is a head of typed words, followed by an optional tail of binary data. The head is text that a person can read. A Ping to the instance at bus address 4T9X2 is 18 bytes:
☻↕!→P►↕@♦U→4T9X2►♥☻ starts the message and ♥ ends its head. Each word starts at ↕ and ends at ►, and its body follows →. They are glyphs that code page 437, the character set of the IBM PC of 1981, gave to control bytes, and Antheos reserves seven of them as delimiters (Section 4.1).
Three choices that set it apart
It rides on any link. Antheos is carried by "any transport that can carry bytes" (Section 2), and the specification's own list runs "from a UART serial line to a TCP socket, from a LoRa radio to a human carrying a USB drive" (Section 1). "No message names a bus or a kind of bus" (Section 2), so a message that crosses three links is the same message on each of them.
It asks for no name. An instance draws a random address, its BID, each time it connects to a bus, and holds a separate one on each bus (Section 5.4). Level 1 carries none of the lasting identifiers it defines for a maker, a device type and a serial number (Section 5).
Services are found by asking. An instance that needs a capability sends a Query naming it, providers answer with an Offer, and the asker sends an Accept (Section 10). Offers sent without a Query "are prohibited" (Section 10.2), so a device does not announce what it has to everyone in range.
Once an Offer is accepted, the two instances talk in a session, with a small set of verbs such as Call, Status, Notify and Finish (Section 11). "Every verb does exactly one thing" (Section 1).
Four specifications
| Level | Specification | State | What it gives |
|---|---|---|---|
| 1 | Transport, Version 1.10 | Stable | Buses, the finding of services, and sessions |
| 2 | Security, Version 0.4 | Draft | A layer that seals what a session carries, and asks no device to reveal an identity |
| 2 | Defence, Version 0.1 | Draft | A bus that admits only devices holding its key, with a proof on every frame |
| 3 | Objects, Version 0.2 | Draft | Objects, methods and events, carried inside Antheos messages |
Level 1 is "complete, self-contained" (Section 1): a device may implement it and nothing else. The levels above add to it and change nothing in it.
Who it is for
Antheos is for anyone who builds a device, or the software in one, that has to work with things they did not make: a sensor board, a robot's joints, a tool on a workbench, a service in a rack.
The floor is low. A minimum instance must find where messages and words begin and end, claim a BID with Establish and Conflict, read the sizes of the binary blocks after a head, and drop whatever it cannot process (Section 14.1). Everything else is optional. "The same protocol frames flow from server clusters to 8-bit microcontrollers. Constrained devices handle what they can and drop what they cannot" (Section 2).
The text is free to build on. The Level 1 specification is published under the MIT License (Section 16).
What it is not yet
Antheos is four specifications and no published implementation. Three of the four are drafts, which may still change in ways that break compatibility.
Level 1 alone "provides no encryption, authentication, or integrity protection" (Section 15), and it says so before it lists the attacks that follow. The two Level 2 drafts are the answer to that, and both say that no cryptographer has reviewed them.
A protocol is proven when two people build it apart and their devices understand each other. For Antheos that test is still to come.
Sources
- Antheos Protocol, Version 1.10, Level 1 Specification - Transport, cited by section
- Antheos Security Layer, Version 0.4, Level 2 Specification - Security
- Antheos Defence Layer, Version 0.1, Level 2 Specification - Defence
- Antheos Object Layer, Version 0.2, Level 3 Specification - Objects