Reticulum is an elegant engineers approach to networking. It’s a complete replacement of the network stack, it’s entirely encrypted, and can communicate and can correctly organize global-scale mesh-networks over any connection >5b/s without the need for distributed hash tables, or any resource usage besides bandwidth. This makes it far lighter than GNUnet, and friendly to low-power, low bandwidth, embedded networks and devices.

This makes it viable as a global network, as it is super cheap to interact with. And it can run on any device, including your smartphone natively.

Bandwidth is a physical resource of the natural world. Reticulum is based on the principle of creating systems that (as far as is possible for a computer program) understand the physical limits of real-world resources, and manages them responsibly and intelligently, with well-thought out algorithms.

When that is ultimately not possible any more, human beings have to step in and expand capacity or make other thoughtful decisions on how to manage the available resources. I believe this is the most efficient, holistic and human-friendly approach to creating technologies that actually help us and better our lives.

  • someone from forums
  • Is this still an overlay network, or an actual replacement?

    Reticulum is the cryptography-based networking stack for building local and wide-area networks with readily available hardware. Reticulum can continue to operate even in adverse conditions with very high latency and extremely low bandwidth.

    The vision of Reticulum is to allow anyone to operate their own sovereign communication networks, and to make it cheap and easy to cover vast areas with a myriad of independent, interconnectable and autonomous networks. Reticulum is Unstoppable Networks for The People.

    Sounds like an own network! Really cool!

    •  boxy   ( @boxy@slrpnk.net ) OP
      link
      fedilink
      English
      7
      edit-2
      3 months ago

      Network replacement. The reason this comes from left field for us meshnet tech peeps is because while we have been looking at gnunet and thinking about things from the network side, the radio heads have been building their own mesh nets for ages, and this is the current cutting edge. Same social space behind LoRA.

      While we were building from the top-down (ie. trying to start with the singular project), these people started from the bottom up, and got a lot farther. Growing out of radio networking protocols.

      This gives them a very fresh perspective, which is why their solution is so elegant and simple. None of that fancy math bullshit that requires heavy calculations.

  • This is a very cool concept and it seems quite mature for something in beta. I do however have my doubts over choosing to use python for something as often used as the network stack. As I understand it, one of the goals for this project is efficiency, and while python is very efficient to write, it is notably very inefficient during runtime.

  • Interesting project, thank you for introducing. :)

    I haven’t tested anything, but only checked their specs (sadly I didn’t find out how they manage without a distributed hashtable).

    Reticulum does not use source addresses. No packets transmitted include information about the address, place, machine or person they originated from.

    Sounds like mix networks like I2P and (to a lesser degree, since its role is proxying out to the Internet) like TOR. Mix networks send traffic using the Internet, so the bottom protocol layers (TCP and UDP) use IP addresses. Higher protocol layers (end to end messages) use cryptographic identifiers.

    There is no central control over the address space in Reticulum. Anyone can allocate as many addresses as they need, when they need them.

    Sounds like TOR and I2P, but people’s convenience (easily resolving a name to an address) has created centralized resources on these nets, and will likely create similar resources on any network. An important matter is whether the central name resolver can retroactively revoke a name (in I2P for example, a name that has been already distributed is irrevocable, but you can refuse to distribute it to new nodes).

    Reticulum ensures end-to-end connectivity. Newly generated addresses become globally reachable in a matter of seconds to a few minutes.

    The same as aforementioned mix networks, but neither of them claims operability at 5 bits per second. Generally, a megabit connection is advised to meaninfully run a mix network, because you’re not expected to freeload, but help mix traffic for others (this is how the anonymity arises).

    Addresses are self-sovereign and portable. Once an address has been created, it can be moved physically to another place in the network, and continue to be reachable.

    True for TOR and I2P. The address is a public key. You can move the machine with the private key anywhere, it will build a tunnel to accept incoming traffic at some other node.

    All communication is secured with strong, modern encryption by default.

    As it should.

    All encryption keys are ephemeral, and communication offers forward secrecy by default.

    In mix networks, the keys used as endpoint addresses are not ephemeral, but permanent. I’m not sure if I should take this statement at face value. If Alice wants to speak to Bob tomorrow, some identifier of Bob must not be ephemeral.

    It is not possible to establish unencrypted links in Reticulum networks.

    Same for mix networks.

    It is not possible to send unencrypted packets to any destinations in the network.

    Same.

    Destinations receiving unencrypted packets will drop them as invalid.

    Same.

    P.S.

    I also checked their interface list and it looks reasonable. Dropping an idea too: an interface for WiFi cards in monitor/inject mode might help some people. If the tool gets popular, I’m sure someone will build it. :)

    •  boxy   ( @boxy@slrpnk.net ) OP
      link
      fedilink
      English
      3
      edit-2
      3 months ago

      This may have some similarities on the surface, however this is a mesh radio network designed for an extreme challenge of navigating a un-known-sized network, with unknown structure, with extreme computing and bandwith limitations.

      • Yep, indeed, I’m already discovering differences too. :) A good document for techies to read seems to be here.

        https://reticulum.network/manual/understanding.html

        I also think I see a problem on the horizon: announce traffic volume. According to this description, it seems that Reticulum tries to forward all announces to every transport node (router). In a small network, that’s OK. In a big network, this can become a challenge (disclaimer: I’ve participated in building I2P, but ages ago, but I still remember some stuff well enough to predict where a problem might pop up). Maintenance of the routing table / network database / is among the biggest challenges when things get intercontinental.

          •  boxy   ( @boxy@slrpnk.net ) OP
            link
            fedilink
            English
            3
            edit-2
            3 months ago

            GNUnet is more of an attempt to replace the entire internet, with replacements for every feature of the modern web, while Reticulum is a far more solarpunk and permacomputing vision. It’s a very practical, implementation-first approach.

            It’s primarily a cheap, easy, practical tool for a local community, which can be linked with other communities around the world using any means practical.

  • Only connections under five bits per second? Whew, where do you even get one! Seems near useless… ;P I assume that’s some kinda typo, at the least.

    Kinda curious about the tech, though. If it’s not bullshit it could be interesting. … Though how they’re gonna do much at five bits per second… gonna fill up a ton of memory quick unless it’s just for tiny messages and load-balances very well. Actually, this just smells worse and worse as I think about it. Hmmmmm. Will have to poke my snoot in there when I get home. 🤔

  • @boxy tell me if I’m missing something, but it seems like maintaining routing tables won’t scale well.

    Here’s my thinking: there’s no hierarchy to destination addresses (I.e. there no equivalent to /16 or /24 subnets), which means every transport node needs to keep track of all the individual addresses instead of just route prefixes. If there are billions of destinations, at 16 bytes each, that would require about 100G of ram.

    You could reduce this by maybe a factor of 10 by using a big bloom filter that contains pairs of (address, route). But 10G is still pretty large. And you’d need two of them if you ever wanted to expire old entries.

    •  boxy   ( @boxy@slrpnk.net ) OP
      link
      fedilink
      English
      13 months ago

      This project is slowly growing from small personal radio mesh networks. It sounds like you have some interesting points and I’m not sure the devs are truely ready for huge-scale networks. I would highly recommend getting involved if you have something to add.