Reticulum Release 0.4.9 Beta, Presentation Release 0.1.0
Part 1 — Introduction
Reticulum Release 0.4.9 Beta, Presentation Release 0.1.0
Do not trust … verify
“Any sufficiently advanced technology is indistinguishable from magic.”
Arthur C. Clarke
Audience — People who like to communicate freely
Problem — The internet is fundamentally broken
Solution — The Reticulum Network Stack
Replace the Internet Protocol Stack
Because it is …
Not private — Personal source addresses
Censurable — Centralized infrastructure
Killable — Centralized infrastructure
Private
Initiator anonymity
End-to-End Encrypted by default
Not Censurable
No centralized infrastructure needed
No DNS and TLS certificate authorities
Not Killable
Works even with packet radio
No personally identifiable source address
Only a 16 byte hashed address (destination)
<13425ec15b621c1d928589718000d814>
A transport node only knows the next hop
Not the complete path to a destination
Lead developer
2014 - 2016 — Protocol design
2017 - 2022 — Reference implementation
Financed through own funds and donations
Reticulum is in beta status
All core protocol features are implemented
The API and wire-format are relatively stable
Supports Android, Linux, macOS
There will be bugs
High-latency, low-bandwidth links
Point-to-point communication
Point-to-multipoint communication
Direct communication with clients in range
Communication over multiple hops in a network
Peer
Send and receive messages
Node
Propagate and store messages
Host pages and files
RNode — LoRa radio transceiver
OpenModem — Packet radio modem and TNC
Reticulum — Network Stack
LXMF — Messaging protocol
Sideband — Peer, LXMF client
Nomad Network — Peer and Node, LXMF client
RNode Firmware — For RNode transceiver
Right Now
Peer-to-Peer text chat
Encrypted QR paper messages
Host pages, files and message boards
Future Plan
Group chat
Chat with image and audio messages
Talk with half-duplex audio
Transport agnostic
Peer-to-Peer to Planetary-Scale
Self-configuring multi-hop routing
Unforgeable packet delivery confirmation
Cryptography-based network stack
End-to-End Encryption
Forward Secrecy
Initiator Anonymity
Build wide-area networks with off-the-shelf tools
LoRa, packet radio, WiFi, Ethernet
Operate under adverse conditions
Extremely low bandwidth
Very high latency
Use carrier pigeons
Encrypted QR paper messages
LoRa radios, data radios, modems
Serial lines, AX.25 TNCs
Amateur radio digital modes
Wifi, Ethernet devices
Fibre-optic transceivers
TCP or UDP over IP networks
I2P network
Encrypted QR Paper Messages
Supports a half-duplex channels with
500 bit/s and MTU of 500 byte
What’s needed to start a secure connection
TLS1.3 Connection — 15 packets, 10.000 bytes
RNS Link — 3 packets, 297 bytes
Maximum Transmission Unit (MTU)
Specifies the maximum size of a data packet
Measured in bytes
Tor and I2P
Run on top of TCP (Tor) or IP (I2P)
Try to solve TCP/IP legacy problems
Reticulum
A completely new network stack
Can replace Ethernet, IP, TCP, TLS and HTTP
No legacy problems
No addresses and ports known from IP, TCP, UDP
Reticulum uses 128 bit (16 byte) destination hashes
Displayed to the user as 16 hexadecimal bytes
<13425ec15b621c1d928589718000d814>
Can be named in a dotted notation
logger.sensor.temperature
Byte to Decimal (8 bit = 1 byte)
00000001 = 1, 00000010 = 2, 00000011 = 3
Dezimal to Hexadecimal
0-9 = 0-9, 10-15 = A-F
0 = 00, 1 = 01, 10 = 0A, 15 = 0F, 16 = 10, 26 = 1A
Byte to Decimal to Hexadecimal Byte
00001111 = 15 = 0F, 00010000 = 16 = 10
00011010 = 26 = 1A, 11111111 = 255 = FF
Single — Asymmetrically encrypted (default)
Routed, point-to-point communication
Plain — Not Encrypted
Not routed, point-to-multipoint broadcasts
Group — Symmetrically encrypted
Not routed, Point-to-multipoint communication
Routing planned for future upgrade
No node knows the complete path to a destination
A transport node only knows the next hop
Interface Device
LoRa Board — Like a LilyGO LoRa32 v2.1 board
RNode Firmware
Host Device
Raspberry Pi — Running a Debian based OS
Reticulum
Connection
USB Cable — Between interface and host device
Interface Device
LoRa Board — Like a LilyGO LoRa32 v2.1 board
RNode Firmware
Host Device
Google Pixel Phone — Running GrapheneOS
Sideband
Connection
Bluetooth — Between interface and host device
Python — Easy to understand for code review
Reticulum
LXMF
Sideband
Nomad Network
C — Fast on microprocessors
RNode Firmware
OpenModem
Build applications that communicate over LXMF
Very open and developer friendly API
Intuitive and easy to use
Provides transfer progress
https://reticulum.network , MIT license
https://github.com/markqvist , MIT license
https://unsigned.io , CC BY-NC-SA 4.0 license
https://r8io.github.io/rns-presentations , MIT license