Mycoria is an open and secure overlay network that connects all participants

171 doener 73 5/8/2025, 5:40:52 AM mycoria.org ↗

Comments (73)

dhaavi · 4h ago
Author here - thanks for the post!

A little more background info for my fellow HN people:

I've spent that last 8 years building privacy technology at Safing as Co-Founder/CTO. The biggest technological achievement there was undoubtedly the SPN (previously called Port17/Gate17): A privacy network (ie. a layer-5 proxy), fitting in the niche between VPNs and Tor. Impossible to misconfigure, good speeds and way superior privacy to VPNs using onion encryption and decoupled authentication/authorization. Funnily enough, this (decoupled auth) is what was later implemented by Apple Private Relay and Google One VPN.

SPN worked great for the most part, but scaling was hard. With the decision to make it a layer-5 proxy for decreased metadata and improved privacy, this meant that also traffic and congestion control had to be re-implemented - no easy feat, and still causing issues.

Meanwhile, I have followed and read a lot about cjdns and Yggdrasil over the past few years and was intrigued by their ideas how to do networking.

After some interesting talks in November 2023, I was at the point where I just wanted to know how far I would get - with all the experience and knowledge I had up to that point - implementing a scalable layer-3 mesh network, that still allowed for some privacy and full security. I spent most evenings of a couple months building it and was surprised how well it went.

Sadly, after a decent MVP and a first friend using it in small scale production, I did not have the time to work on it further.

But I am currently starting a new project, where I will make good use of it, so it will see quite some more development in the coming years!

So, Mycoria works, at least on small scale for now, but is more or less MVP.

Thanks for reading, I hope you have fun poking around and trying it out!

I am also happy to answer any questions you have here!

teleforce · 3h ago
Hi Dhaavi, Mycoria looks very promising and it reminded me of the early days of peer-to-peer system with Napster and Gnutella [1].

Any specific reason why you didn't use the standard based segment routing for source routing support, that can be adopted at layer 3 instead of custom layer 4 transport [2]?

For security analysis did you use BAN logic and ProVerif tool for verification [3], [4]?

[1] Gnutella:

https://en.wikipedia.org/wiki/Gnutella

[2] Segment routing:

https://en.wikipedia.org/wiki/Segment_routing

[3] Burrows–Abadi–Needham (BAN) logic:

https://en.wikipedia.org/wiki/Burrows%E2%80%93Abadi%E2%80%93...

[4] ProVerif:

https://en.wikipedia.org/wiki/ProVerif

dhaavi · 2h ago
Thanks!

I wasn't really aware segment routing, tbh. However, I do think with where Mycoria is going, the additional control to change things as needed will be required.

I have used VerifPal https://verifpal.com/ for security analysis before, but not yet with Mycoria.

Spackonewz · 1h ago
...i wonder what happens to humankind if all there is, is only Wikipedia.

What happened to referring to individual, topic-specific sites? WP has so many issues with both its data, and their governance.

Oh i guess it's just people being lazy. _I_ don't trust WP for domain-specific knowledge at all.

Meneth · 21m ago
Every Wikipedia page links to their sources. Have you tried reading those?
bovermyer · 2m ago
Just ignore him. He only created his account an hour ago, he's probably just a troll.
notepad0x90 · 3h ago
Hi Dhaavi, this looks like a great project and your vision for it is excellent.

But the consistent theme I see with similar solutions is that they ignore the commercial aspect of such solutions. I don't know if you have mass adaption in mind, but the more people use it, I would presume the privacy and anonymity properties would improve? If so, then have you considered introducing participation incentives (financial or not)? That seems to be the critical problem in this space that needs solving, standardized anonymous payment for infrastructure service providers in the network.

dhaavi · 2h ago
Currently, this is just a fun project for me. I have technical ideas, but I don't have growths plans or the like - and it is nice that it does not have to.

Yes, I would expect the privacy would increase by some degree with more users, but I don't know by how much.

Although I will be using the technology in future projects, so Mycoria will benefit from that.

mhitza · 3h ago
I've only read your landing page, so I don't fully understand the technical part yet.

Can you do a comparison with I2P?

leobuskin · 3h ago
I apologize, wasn't clear from the documentation: router's IPv6-like address is a fingerprint of the public key, but does it also encode geo-prefix and distance (I mean, it's hypothetically doable, I'm curious what's the approach if it is)? or the router's address has no metadata encoded, and only end-user addresses are encoded this way?
dhaavi · 2h ago
Mycoria brute forces a public key/IP pair until it matches the desired geo-prefix.
dfc · 35m ago
I am a little confused how the geo encoded addresses and private addresses work. It seems like the network will be overwhelmed with keeping track of switch labels?
tornadofart · 4h ago
Great technical achievement. What is, for you, the sweet spot between VPN and TOR? What's the tradeoff there?
dhaavi · 4h ago
If you want Tor for your _whole_ existing system, not just the browser, good luck.

If you want actually good privacy with a VPN, also good luck with that. (There are very few good companies doing the best they can here, but they are still limited technologically.)

SPN can be seen as my attempt to solve both of these issues.

nlitened · 3h ago
So, what are the tradeoffs? In some ways it’s better than both VPNs and Tor — but in what ways it’s worse?
dhaavi · 3h ago
Well, it is in the middle: Not as fast as a VPN, not as private as Tor.
synctext · 3h ago
Impressive design! Are you assuming bandwidth is free and abundant?

Mycoria routers, proxies, Tor exit nodes, and VPNs are difficult to run. There needs to be an global incentive, economy, or private community usually. Our Delft University students wrote "The fifteen year struggle of decentralizing privacy-enhancing technology" a decade ago. Scaling to many millions or billions is unsolved.

Have you talked to any lawyer or law professor about your MVP? "Being welcome" has known drawbacks when you operate a central DNS service.

dhaavi · 2h ago
Thanks! Well, every participant has to cover their own server/bandwidth cost. So, from my perspective, yes, bandwidth is free and abundant. Although I hope that Mycoria can/will perform well in lower bandwidth areas.

Interesting. Can you link that paper/article?

The DNS is not central. Everyone maintains their own local mapping. When accessing a website on mycoria, you open a URL like this that first creates the mapping and then forwards you to it: http://router.myco/open/speedtest.de.myco/fd13:6239:a07a:eb4...

lifty · 3h ago
Love the inspiration from Yggdrasil with the hashed key -> IP concept. How do you enforce the geographical part? And what do you use from transport? WireGuard?
dhaavi · 3h ago
Geographical: No enforcement, but if you choose the wrong country, packets will have issues reaching you, because routing is "bucketed" into layers of regions. Routers only hold the bext x routes to each bucket.

Transport is custom in order to support source routing, but I use the WireGuard library for setting up the interface and such.

(I have experience with cryptography in network protocols from Safing/SPN - the cryptography of which was audited without fault. Also, I am _very_ cautious and keep to standards as close as possible.)

atemerev · 2h ago
So basically Mycoria IP addresses/keys leak information about your geographical location?
dhaavi · 2h ago
Just like the Internet we currently have, albeit less accurate, but more stable.

See https://github.com/mycoria/mycoria/blob/master/m/geo_marker....

In the future, non-routable private addresses will solve that for users that require it.

ramaro · 4h ago
This looks really interesting and great job on the docs! I need to give it a shot but the first question that comes to mind is if mycoria exposes the full node in the network, requiring the use of a firewall to restrict access to ports, etc? Asking because this is something that is required in yggdrasil: https://yggdrasil-network.github.io/faq.html#will-my-machine...
dhaavi · 4h ago
Mycoria is secure by default and requires pretty much no configuration to set up.

No-one can access your device by default. You have to actively allow them via the "services" section in the config.

mattlondon · 54m ago
I love these sort of things generally from a technical perspective (I kinda have these fun day-dreams of a cadre of cool nerds and geeks setting up their own commune-networks against all odds in some distant future where they just have basic infrastructure etc)...

But ultimately I always feel uneasy and reluctant to get involved in general decentralized type things as I feel like I'll just be facilitating people sharing/distributing kiddie porn.

At least with Tailscale things are "private", but with this it feels like I would be part of the wider network. Will I be using my nodes to help route CP traffic?

lez · 50m ago
You must abolish all privacy from the internet, and even then, you wouldn't be able to stop CP to happen.

Good luck, Mr. Big Brother!

lionkor · 38m ago
Anything you build will eventually be used for something illegal.

The Internet should never have been invented, then, right? Same with letters, Facebook, cars, guns, knifes, farming, ...

elia_42 · 2h ago
Very interesting. I really enjoyed reading how you handled scalable routing with geo-localised prefixes and with the distance between addresses for packets within the same country code.
dhaavi · 2h ago
Thanks!
doener · 5h ago
eqvinox · 1h ago
> No spooking: Everthing is authenticated

This does generally mean no anonymity (and limited privacy)…

tornadofart · 4h ago
Looks interesting.

What I understood: it is basically overlaying privacy and net neutrality on the internet.

I am therefore restricted to communicating with other users of mycoria and can't access "the whole Internet" via mycoria.

Am I correct?

What isn't clear for end users, IMO:

- What's the primary use case it was built for? Are there applications using it for chatting / exchanging data / whatever?

- what's the difference to similar projects like, say, yggdrasil?

- what's the difference to using a VPN?

dhaavi · 4h ago
Yes, the primary focus is connectivity within the network.

You can use it for pretty much anything you would use a VPN for, but it is much easier to configure and secure by default with a built-in firewall. Only services you actively expose are reachable by others - by default nothing on your device can be accessed by others.

In the future, it will also provide some amount of privacy on the network.

I think the biggest user-facing difference is the ease of configuration (ie. none) - if Mycoria had proper installers.

WhyNotHugo · 1h ago
All nodes on Mycoria end up in one huge network. The PN in VPN is for "private network", so I couldn't say this can do anything that a regular VPN can do.

Any node on the network can find my node via mDNS discovery and access any services which I expose. Services need to be secured in the same way I'd do on the public Internet, and not in the same way I do on a trusted private network between a few trusted nodes.

That said, I do believe this is useful in a lot of scenarios where a VPN might be too much work to set up. While one does need to ensure that all services do authentication, the encryption part is valuable, and this does ease exposing services from non-routable nodes with no consistent public IP.

gspr · 4h ago
> You can use it for pretty much anything you would use a VPN for, but it is much easier to configure

Ease of configuration is very much also a feature of the finest VPN software I've ever used, Wireguard.

dhaavi · 4h ago
Wireguard is absolutely great for its use case!

Mycoria aims to interconnect participants. Eg. you and your friend all have their home server. Everyone wants to connect to their own server, but also to the server of their friends. All of this is super easy with Mycoria. Let a new friend install Mycoria, add them to your friends in the config and give them a URL for accessing. Voila!

Also, Mycoria is an automatic mesh network, I think Wireguard requires a fixed set of peers you configure.

gspr · 3h ago
You certainly can add an remove peers from your Wireguard network on the fly. Granted, this is something you have to do yourself, not something Wireguard has automatic tooling for, so I guess that's a difference :)
ignoramous · 1h ago
> Wireguard requires a fixed set of peers you configure

Not really. One can add as many peers (though there's a artificial limit to just how many, I think) at runtime. It isn't fixed. Products like Tailscale couldn't be built otherwise.

tornadofart · 4h ago
Isn't it a bit different?

A VPN is used to create (the illusion of) privacy when accessing anything on the internet.

But I can't access anything that's not connected to mycoria with it, can I? If I were to access something like Netflix, would I need something like a mycoria reverse proxy server for Netflix?

tinco · 3h ago
The services that are marketed as being VPN providers are actually selling a very restricted form of VPN where they create for you a very small VPN between you and some other node in their fleet and then you route your traffic through that node.

It would be more correct to call such a provider a secure (two-way) proxy service (and in the past people did), but for some reason they went with VPN and that stuck.

Mycoria is basically the textbook definition of a VPN.

lmm · 3h ago
> A VPN is used to create (the illusion of) privacy when accessing anything on the internet.

Not really. Some more recent "VPN" products position themselves that way, but traditionally a VPN has been a way to have something that behaves like a private LAN between computers that are not physically connected to each other (hence the name).

tornadofart · 3h ago
I would say that for most laypersons, VPN is used for two things: accessing your remote work resources and accessing content banned in your country.

As was patiently explained to me, Mycoria relies to quite an extent on the network effect: you can only use it if other nodes are using it, using it by yourself does not make sense. So the informed layperson's perspective is relevant here. That's why I insist on "dumbing it down" :D

Jarwain · 3h ago
To fit a layperson's understanding maybe the term VPLAN or VPWAN would work? Except I'm not sure laypeople really know what a WAN is. I think more people know LAN but then there could be confusion with VLANs.

Names are hard.

Personally this Mycoria reminds me more of a global tailnet I.e tailscale's VPN

Jarwain · 3h ago
And I guess as an extension, at least currently, Mycoria is an option for building "darknet services" except the privacy aspects aren't quite there yet compared to tor?
dhaavi · 4h ago
Yes, Mycoria is primarily about connections between network participants, eg. access your server at home without public IP, or a hybrid/fully remote team with a couple servers here and there.

In an open mesh network, you still want privacy from the other network participants.

Mycoria might have exit nodes similar to Tailscale in the future, but it won't be a fan-out multi-exit system like SPN, for example.

tornadofart · 4h ago
So 2 use-cases within grasp:

Firms could replace their VPNs for remote work with mycoria and have better security and control.

I could also set this up for my home network and access my (for example) NAS securely.

For the use-case "I want to access a publicly available page anonymously", we still need a VPN / TOR.

dhaavi · 3h ago
Yes, that is a good distinction!
Jarwain · 3h ago
To be sure I understand, in that first usecases where a company is replacing their VPN with Mycoria, would access controls/restricting access to devices is all firewall based? That technically there's a network path to all the other devices on Mycoria just limited by firewall rules?

What comes to mind to me analogously (more from my experiences than anything) is like a global tailnet that leans on firewalls to segment things?

A cross between tor and a vpn is quite appropriate too

9dev · 3h ago
Have you seen Reticulum[0] yet? How much overlap does the Mycoria networking layer have with it?

[0]: https://github.com/markqvist/Reticulum

dhaavi · 2h ago
I think I have seen it, but that was a while ago.

Will read through it later! Thanks!

dgrr19 · 2h ago
Is this like tailscale?
dhaavi · 2h ago
It has a lot of similarities and you can use it as a replacement for the core features.
palata · 2h ago
Any example of something Tailscale can do that Mycoria can't, and the reverse? Just to get a better understanding of the differences :-).
dhaavi · 2h ago
Tailscale is P2P network with optional relays, Mycoria is a mesh network.

Tailscale has central policies. Mycoria is more like a collective where you can offer services to everyone else within the network.

dgrr19 · 1h ago
but does mycoria work with NATs?
thenthenthen · 3h ago
(How) does this deal with DNS poisoning like the GFW ?( https://dl.acm.org/doi/10.1145/2994620.2994636 )
dhaavi · 2h ago
The DNS is not central. Everyone maintains their own local mapping.

When accessing a website on mycoria, you open a ULR like this that first creates the mapping and then forwards you to it: http://router.myco/open/speedtest.de.myco/fd13:6239:a07a:eb4...

OsrsNeedsf2P · 3h ago
What is the average latency of this? I was running a game server on I2P for fun (since I was getting ~100ms ping vs 600ms on Tor) but I'm curious if this can do better
attila-lendvai · 4h ago
also, how does this compare to something like https://ethswarm.org ?
dhaavi · 3h ago
I'll have to read up on that.

But to be honest, the web3 / blockchain vibes are an instant turn off.

(Let's see how the votes turn out for this comment. ;) )

Note: If you _need_ a blockchain in your VPN, I would say https://nym.com/ is the most trustworthy of them out there at the moment.

tornadofart · 3h ago
Blockchain- the tech still waiting for its use case :)
jksflkjl3jk3 · 3h ago
Evading government capital controls and taxation has proven to be a pretty solid use case, even if frowned upon by some.
ignoramous · 1h ago
> Note: If you _need_ a blockchain in your VPN, I would say nym.com is the most trustworthy of them out there at the moment.

There's a wholespace of what's known as "dVPNs". I like the concept behind saurik et al's https://orchid.com/vpn; it was specifically marketed as a Tor replacement (with built-in micropayments): https://news.ycombinator.com/item?id=15576457

sebstefan · 2h ago
> Every Mycoria Router has an ID. For example:

> fd1f:2cf7:903:b50b:e4cb:5c4c:270e:360c

> This does not merely look like an IPv6 address, it is one. But it's also more than that: These addresses are generated by first creating a public/private key pair and then hashing the public key. This means, this IPv6 address is also the fingerprint of the public key of the router

> This way you can distribute both the Mycoria address of a router and its public key with a single data point: An IPv6 address.

What?

* Then how does a computer figure out how to ping that?

* You say it's distributing both the address and the public key with a single data point, but you're hashing it. So, you can restore the public key from the IP if you already know the public key, does everyone store every public key that's currently in use? Are there central stores somewhere that are eventually consistent?

dhaavi · 2h ago
This is a simplified conclusion. The IPv6 address is the fingerprint of the public key. They actual keys are exchanged over the network before any real traffic is sent.

There is not central store. This is done on the fly.

sebstefan · 2h ago
It wasn't a conclusion it was a guess

Thanks!

attila-lendvai · 4h ago
is this something like libp2p, but comes bundled with some tools to be a standalone thing?

a rationale/comparison section on the front page would be nice.

dhaavi · 3h ago
Interesting, did not expect that question.

I would have thought libp2p is library enough to not be comparable. Am I wrong?

Mycoria is a ready-to-run software.

sibellavia · 1h ago
that's correct. libp2p is designed as an agnostic library that could be used in projects similar to Mycoria. it offers the building blocks to build a p2p network. as a side-note, I've tried to use libp2p in the past, but ended up writing transports, NAT traversal, and fundamental structs for my p2p network from scratch, ditching libp2p.
jonathanstrange · 1h ago
IMHO, libp2p has the worst API and project structure I've ever seen in an open source project. The project almost feels like sabotage. For example, I once asked whether there is an example of using libp2p to send one file from an endpoint to another one. Someone answered a year later and explained that there was no such functionality. They were really surprised someone might want to use libp2p to send a file from A to B.

I eventually figured out how to do it but decided not to use the library. However, there is still a real need for an easy to use p2p library for Go that can do some NAT traversal. It's a real pity that the developer of github.com/perlin-network/noise stopped working on it.

ilaksh · 3h ago
How does this compare to tinc?
goodpoint · 2h ago
Does it do onion routing like Tor? Does it protect from traffic correlation or timing attacks?
dhaavi · 1h ago
Nope. I did that with the last network I built: https://safing.io/spn/

Mycoria focuses a more on scalability, but still has some privacy focus.