Dies ist eine maschinelle Übersetzung. Das Original in Englisch ist hier: Update 06 April, 2023
Es ist an der Zeit, all diese mysteriösen Akronyme, Wiederbesuche und verwirrenden Ankündigungen zusammenzutragen, die das Forum in den letzten paar außergewöhnlichen Wochen übersät haben, um Ihnen – und uns – die Möglichkeit zu geben, darüber nachzudenken, was zur Hölle los ist.
Allgemeiner Fortschritt
Das gesamte Team war diese Woche mit libp2p, Kademlia und verwandten Themen beschäftigt, also gibt es weniger aufzulisten als gewöhnlich.
@bzee konzentriert sich auf NAT-Traversal-Fähigkeiten in libp2p für Hole Punching, @oetyng integriert derzeit DBCs in das neue System. Er hat gerade eine erste Runde der verbesserten Dokumentation für DBCs abgeschlossen und die Benennung geklärt und die Typsicherheit erhöht, um die kognitive Belastung zu verringern. Das hat auch das Träger-DBC-Konzept und eine Menge API + Code dafür entfernt. Als nächstes müssen die Elder-Signaturen aus DBCs entfernt werden, da diese nicht mehr verwendet werden.
@roland räumt den Code auf und vertieft sich zusammen mit @chriso in die Neuveröffentlichung von Daten. Und @bochaco hat gerade den Chunk/Registercode portiert bekommen. Sobald die Neuveröffentlichung abgeschlossen ist, werden wir einige umfangreiche interne Tests durchführen.
@qi_ma experimentiert mit der libp2p
-Crate und spielt mit Testnets aus der stableset_net
-Codebasis und untersucht darüber hinaus den Chunk-Upload/Fetch-Flow.
Mehr über libp2p et al
Bisher sind unsere Pläne für libp2p
in Ausbrüchen aufgeregten Geschwätzes aufgetaucht, also ist es an der Zeit, alles an einem Ort zusammenzufassen, um eine bessere Vorstellung davon zu bekommen, wie es mit DBCs, Sybil-Schutz und allem anderen zusammenpasst.
Zuerst das Warum. Kurz gesagt, da wir DBCs und Daten so modifiziert haben, dass sie von DBCs unterstützt werden, hat dies die Tür zu einem einfacheren Ansatz für das zugrunde liegende Netzwerk geöffnet. Und das ermöglicht es uns, einige der komplexeren Teile des Netzwerks zu entfernen, was bedeutet, dass sich das Team um viel weniger Gedanken machen muss, was ein großer Gewinn ist. Unser Team ist engagiert, aber klein und kann sich jetzt auf die Wertschöpfung konzentrieren.
Libp2p
selbst wird von Filecoin, Eth und Avalanche verwendet, was nicht nur bedeutet, dass viele Augen auf den Code gerichtet sind, sondern uns auch die Möglichkeit für Kooperationen und Interoperabilität in der Zukunft gibt.
Libp2p
hilft jetzt bei QUIC aus - der Bibliothek, die Verbindungen zwischen Knoten verwaltet und einer der Hauptkämpfe, die wir mit Messaging hatten. Vielleicht ebenso wichtig ist, dass es mit Lochstanzen umgehen kann. Wie das geht, ist ziemlich kompliziert, aber es wird hier beschrieben, wie Knoten, die sich hinter einer Firewall oder einem Heimrouter befinden, eine P2P-Verbindung herstellen können. Die meisten Leute sollten in der Lage sein, eine Verbindung herzustellen, ohne mit der Portweiterleitung herumspielen zu müssen. Hoffentlich wird sich die Kiste im Laufe der Zeit verbessern, um noch mehr Router als jetzt zu unterstützen.
Dann gibt es den Denial-of-Service-Schutz (DoS), bei dem es Kontrollen gibt, um die Anzahl aktiver Verbindungen zwischen Knoten zu begrenzen und optional eingehende Verbindungen zu begrenzen.
Wie viele von Ihnen wissen, basiert Safe auf der verteilten Hash-Tabelle (DHT) von Kademlia, die XOR-Routing und inhaltsadressierbare Speicherung ermöglicht. Dies wird auch von libp2p
unterstützt, wenn auch nicht ganz standardmäßig, zumindest auf einem Niveau, mit dem wir arbeiten und das wir verbessern können. Wichtig ist, dass es die Kademlia-Funktion zum Aktualisieren von Knoten implementiert, was bedeutet, dass tote Knoten nicht sehr lange in der Routing-Tabelle verbleiben.
Diese Auffrischung ist im Hinblick auf einen weiteren Angriffsvektor wichtig: Menschen, die offline Milliarden von Schlüsseln generieren und dann versuchen, sich als neue Sybil-Knoten mit Brute Force einzuschleichen. Als Test dafür betrachten wir die Implementierung eines Gatekeepers namens Verifiable Random Functions (VRF).
Ein VRF nimmt einen vorhandenen Schlüssel + Eingabedaten und gibt einen neuen öffentlichen Schlüssel aus + Beweis, dass er aus dem alten Schlüssel plus Eingabedaten abgeleitet wurde. Der Knoten, der beitreten möchte, erstellt also einen Schlüssel und findet die Gruppe von Knoten, die diesem Schlüssel am nächsten liegt. Das VRF nimmt den Schlüssel plus die IDs dieser Gruppe und gibt ein neues Schlüsselpaar plus einen Nachweis aus. Dieser neue öffentliche Schlüssel plus der Nachweis wird dann an diese enge Gruppe zum Beitritt gesendet, woraufhin die Knoten in dieser Gruppe überprüfen können, ob er aus einem gültigen alten Schlüssel und den IDs der Knoten in der Nähe dieses alten Schlüssels generiert wurde.
Da Knoten schnell wechseln (jetzt viel schneller), müssen Schlüssel schnell generiert und verwendet werden. Sie haben eine sehr begrenzte Lebensdauer, wodurch der Angriff der „Offline-Schlüsselgenerierung“ abgeschwächt wird. VRFs sind eine Innovation von Algorand.
Als nächstes auf der Liste der Extras steht die dezentrale IP-basierte Public-Key-Infrastruktur (PKI), die Schutz vor Man-in-the-Middle-Angriffen bietet. Wie vor ein paar Wochen erwähnt, können wir unseren Gruppenkonsensmechanismus effektiv nutzen, um unsere eigene Zertifizierungsstelle zu werden zu zertifizieren Nachrichten als sicher.
Unser Weg zu spezialisierten Nodes, etwa für Archivierung und Audit, wird plötzlich viel einfacher, ebenso wie das knifflige Problem, das Protokoll zu aktualisieren, wobei uns verschiedene libp2p-Funktionalitäten dabei helfen.
Also libp2b
und andere Projekte wie rustls
undVRFs kümmern sich um viele der schwierigen Low-Level-Netzwerkprobleme, was bedeutet, dass wir uns auf die wirkliche Innovation konzentrieren können, insbesondere auf unsere Verwendung von DBCs.
Hier zeichnet sich Safe durch einen massiv parallelen und skalierbaren Transaktionsdurchsatz aus. Da Safe in erster Linie ein Datennetzwerk ist, verwenden wir DBCs, um die Daten zu sichern und für die Speicherung zu bezahlen, in diesem Fall mit dem kürzlich hinzugefügten Feld „Grund“, das den Namen der bezahlten Daten speichert. Die Daten speichern auch eine Verbindung zurück zum DBC, um den Kreis zu vervollständigen.
Wir übertragen auch viel Verantwortung für die Sicherheit auf den Client, wobei Client-Signaturen über DBCs und deren Verifizierung alle Daten im Netzwerk sichern. Dabei haben wir Netzwerksignaturen vollständig entfernt, die Dinge vereinfacht und uns gegen Krypto-Cracking-Quantencomputer abgesichert, wenn sie auftauchen.
Für eine UX, die derzeit von nichts anderem auf dem Markt erreicht wird, haben wir Multisig-Funktionalität über BLS-Schlüssel, um dies zu einem wirklich nützlichen und benutzerfreundlichen System zu machen.
Fügen Sie das zu früheren Innovationen wie der Selbstverschlüsselung von Chunks hinzu und das Bild ist ziemlich vollständig. Dieses fehlende Glied von libp2p
vereinfacht das Angebot zu einem leicht erklärbaren Netzwerk und tut dies auf massiv skalierbare Weise, während es ein unglaublich hohes Maß an Sicherheit mit fast keinem historischen Zustand (abgesehen von den DBC-Transaktionen) bietet.
Dies fühlt sich so an und sieht so aus, als würde das sichere Netzwerk jetzt tatsächlich aufwachen und alle Forschungsteile und Tests, die wir durchgeführt haben, ablegen, um einen kleinen, robusten Knoten bereitzustellen, der es Benutzern ermöglicht, einfach dem Netzwerk beizutreten und fast sofort mit dem Sammeln und Speichern von Daten zu beginnen, unabhängig davon wie lange der Knoten online sein wird. Jeder erhält einen sicheren Zugang zu einem neuen Zugang zum wertvollsten Element der Menschheit, dem Wissen.
Nützliche Links
Fühlen Sie sich frei, unten mit Links zu Übersetzungen dieses Entwicklungsupdates zu antworten, und die Moderatoren werden sie hier hinzufügen.
Als Open Source-Projekt sind wir immer auf der Suche nach Feedback, Kommentaren und Community-Beiträgen. Seien Sie also nicht schüchtern, machen Sie mit und lassen Sie uns gemeinsam das sichere Netzwerk erstellen!