A “stable” network is what we have right now. While seen through a static lens our network may seams stable, the actual experience of it is quite chaotic. Node IPs changes all the times and also churn out. We organize the network into a DHT and maintain bootstrapping nodes but without all this effort it would fragment or become stale and useless.
The idea of metastability is taken from physics but in our case mean something different. The concept is quite simple, when links are self-healing, networks tend towards order. Although, this order would happen at a logical and not network level.
Assuming new nodes can be introduced to the network, remembers links and those links are self-healing, this network could last indefinitely and require low bandwidth and compute from each nodes. The implication is that metastable networks can persists without ANY central components and the birthday paradox teaches us that the threshold for the number of nodes required to achieve metastability is much lower than one would think.
In a libp2p network, we already have most of what is needed to achieve metastability. PeerIDs and multi-addresses are remembered, act as identifiers and links but lack the self-healing properties. If a PeerID is rotated and IP changed, that node cannot be reliably found again, the link is broken. In contrast, the web has DNS to “heal” broken links via name association. Imagine if this wasn’t the case… We can’t use DNS because it’s permissioned but with clever cryptography, a self-healing link system is possible.
Provable provenance logs could be used with our future Kademlia DHT to bind VLADs to multi-addresses. This system can achieve much more than just metastability but that’s another discussion.
WDYT?
edit: more explanation below
Assumimg we have a way to introduce nodes into the network the first time, (boot nodes, QR code, etc…)
- Nodes SHOULD store ALL valid routing info gathered via ambient discovery, for later use (even if stale). VLADs, key material, PeerIDs and Multi-addresses.
- Nodes, when online, SHOULD continually try to refresh ALL their cached routing info (sync it up!).
- Only cryptographically valid routing info MUST be kept.
Birthday paradox and whatnot, we don’t need that many nodes to achieve metastability. This network is not vulnerable to attacks and is actually useful, in contrast to the stable overlay networks we have right now. If individual nodes are attacked then they can use RLN-relay, TOR or a mixnet.
On top of this very simple overlay network many things can be built.
- Decentralized DB, permissioned via provable provenance logs (p-logs) and synced (RBSR, Waku sync). Store only the data you want from who you want.
- Distributed hash table for looking up specific VLADs and their associated content (can be encrypted content too). DHT search is very useful but costly to maintain. Nodes only cache p-logs they care about.
- De-MLS group chat (assuming we can “admin” it somehow). Members can always find latest key materials, multi-addresses and sync messages.
Because of metastability Waku becomes de facto signaling networks for ALL.