Antheos in Brief: One Protocol for Any Device on Any Link

At night, four machines stand in a row: a green circuit board, a small wheeled rover with an aerial, a relay box with an aerial, and a rack of servers. A copper wire joins the board to the rover, radio waves pass between the two aerials, and a person walks from the relay box to the rack holding out a small drive. The same green token with three dots rides on the wire, sits between the radio waves and forms the body of the drive.
One message, unchanged, on a serial wire, on a radio link and in the hand of a person carrying a drive across the room.

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

LevelSpecificationStateWhat it gives
1Transport, Version 1.10StableBuses, the finding of services, and sessions
2Security, Version 0.4DraftA layer that seals what a session carries, and asks no device to reveal an identity
2Defence, Version 0.1DraftA bus that admits only devices holding its key, with a proof on every frame
3Objects, Version 0.2DraftObjects, 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

Free to read

Larry L. Peterson and Bruce S. Davie, Computer Networks: A Systems Approach (the open edition, 2024, from which Morgan Kaufmann printed the sixth). Its Section 1.3, Architecture, explains layering and encapsulation, in which one protocol carries another's message whole, as an existing network carries Antheos. Read it free at book.systemsapproach.org.

Read on