Wir veröffentlichen eine neue Version unseres Pollen-Testnetzes: v0.3.0. Wie in unserem letzten Forschungsstatus-Update erwartet, enthält diese Version die vollständige Integration des Moduls Dezentralisierter Zufallszahlengenerator (dRNG)! Die vollständige Liste der Änderungen enthält:
- Hinzufügen der Unterstützung mehrerer dRNG-Ausschüsse: Pollen, X-Team und Custom
- Hinzufügen eines Taktsynchronisations-Plugins über NTP
- Hinzufügen einer grundlegenden CodeQL-Analyse-Pipeline für allgemeines Scannen von Schwachstellen
- Hinzufügen grundlegender HTTP-Authentifizierung
- Änderung des Nutzlastlayouts, so dass es dem für Chrysalis Phase 2 spezifizierten Layout ähnlicher ist
- Verbesserung von rand-seed, um die Ausgabe in eine Datei zu schreiben
- Verbesserung des Docker-Netzwerks, indem MongoDB, Grafana und Prometheus optional gemacht werden, so dass die Start- und Abschaltzeiten gering sind, wenn sie nicht benötigt werden
- Upgrade auf das neueste hive.go
- Upgrade der NodeJS-Abhängigkeiten des Dashboards
- Behebt mehrere Sicherheitsprobleme
- Refactoring der gesamten Codebasis, um ihre Paketstruktur flach und konsistenter mit Hornet zu gestalten
- Verschieben von Datenstrukturen nach hive.go
- Entfernen der JWT-Authentifizierung aufgrund von Sicherheitsproblemen des Pakets dgrijalva/jwt-go
Wie bei der vorherigen Version setzt dieser Versions-Bump sowohl das Netzwerk als auch das Tangle und alle Salden und tokenisierten Vermögenswerte zurück.
Hier findest du Anweisungen, wie du deinen Node einrichten oder aktualisieren kannst.
Wie unser dRNG funktioniert
Ein dRNG kann auf viele verschiedene Arten implementiert werden, unter anderem:
- Überprüfbare geheime Weitergabe und Schwellenwert-Signaturen
- Kryptographische Sortierung
- Überprüfbare Verzögerungsfunktionen
Nach Prüfung einiger bestehender Lösungen entschieden wir uns für eine Variante des Drand-Protokolls, die ursprünglich von der DEDIS-Forschungsgruppe entwickelt wurde und derzeit von der Drand-Organisation durchgeführt wird. Dieses Protokoll wurde bereits von anderen Projekten wie The League of Entropy verwendet. Kurz gesagt, Drand arbeitet in zwei Phasen: Aufbau und Generierung.
In der Einrichtungsphase führt eine Gruppe von Nodes, einen so genannten Ausschuss, ein Protokoll zur Generierung verteilter Schlüssel (Distributed Key Generation, DKG) aus, um ein kollektives privates und öffentliches Schlüsselpaar zu erstellen, das von den Mitgliedern des Ausschusses gemeinsam genutzt wird. Jedes Mitglied erhält eine Kopie des öffentlichen Schlüssels sowie einen Anteil des kollektiven privaten Schlüssels, so dass kein einzelnes Mitglied den gesamten kollektiven privaten Schlüssel kennt. Diese Anteile werden dann von den Ausschussmitgliedern verwendet, um ihre Beiträge in der nächsten Phase zu unterzeichnen.
Die Generierungsphase arbeitet in diskreten Runden. In jeder Runde erzeugt der Ausschuss einen neuen Zufallswert, indem er sich auf ein deterministisches Schwellenwert-Signaturschema wie BLS stützt. Jedes Ausschussmitglied erstellt in Runde r die partielle BLS-Signatur σ_r auf der Nachricht m=H(r |||| ς_r-1), wobei ς_r-1 die vollständige BLS-Schwellwertsignatur aus der vorherigen Runde r-1 bezeichnet und H eine kryptografische Hash-Funktion ist. Sobald mindestens t Mitglieder ihre Teilsignaturen σ_r gesendet haben, kann jeder die volle BLS-Schwellensignatur ς_r (durch Lagrange-Interpolation) wiederherstellen, die dem neuen Zufallswert entspricht. Dieses Ergebnis, dRNG-Beacon genannt, wird von jedem Ausschussmitglied im Tangle veröffentlicht, so dass alle IOTA-Knoten die Gültigkeit der neuen Zufälligkeit gegenüber dem kollektiven öffentlichen Schlüssel überprüfen können. Dann geht der Ausschuss zur nächsten Runde über und wiederholt das oben beschriebene Verfahren.
Wenn du mehr über drand erfahren möchtest, empfehlen wir dir, einen Blick auf das Github-Repository und unseren IOTA-Caféposten zu werfen.

Integration von drand in die IOTA
Teil des Coordicide-Projekts ist es, zu definieren, wie das Drand-Protokoll in die IOTA integriert werden kann. Die größte Herausforderung besteht hier darin, einen Konsens darüber zu finden, welche Node als Ausschussmitglied fungieren kann. Ein Ansatz könnte darin bestehen, die Knoten mit dem höchsten Mana auszuwählen und die Auswahl des Ausschusses von Zeit zu Zeit zu aktualisieren. Da es keinen perfekten Konsens in Bezug auf Mana gibt und verschiedene Knoten unterschiedliche Manawerte haben können, verlangen wir von allen Knoten, die an der Mitarbeit im Ausschuss interessiert sind, dass sie eine spezielle „Antragsbotschaft“ vorbereiten, die den Manawert eines bestimmten Knotens bestimmt. Dann wird der Ausschuss aus den besten n Kandidaten für die höchsten Mana-Werte gebildet. Ein solcher Ausschuss würde regelmäßig aktualisiert werden, um Knoten, die offline gehen, und Änderungen des Manawertes zu berücksichtigen. Alternativ kann auch ein Ausschuss mit einem Präfix gewählt werden, z.B. könnte die Gemeinschaft darüber abstimmen, welcher Knoten dem Ausschuss angehören soll. Im Idealfall wird IOTA verschiedene Ausschüsse haben, von denen jeder eine empfohlene Priorität hat, so dass das Netzwerk frei entscheiden kann, welchem zu folgen ist.
Mit dieser Veröffentlichung bietet das Pollen-Testnet Unterstützung für 3 Ausschüsse:
- Pollen: verwaltet durch das GoShimmer-Team
- X-Team: verwaltet durch das Gemeinschaftsmitglied des GoShimmer X-Teams
- Benutzerdefiniert: Jede Gruppe von Benutzern kann ihren eigenen Ausschuss erstellen
Wenn du mehr über die Einrichtung deines eigenen benutzerdefinierten Komitees erfahren möchtest, kannst du unser dRNG-Repository besuchen, das die erforderliche Software sowie ein Wiki enthält, das alle Schritte zur Einrichtung eines Komitees und zur Konfiguration von GoShimmer beschreibt. Wir haben auch die GoShimmer-Wiki-Seite mit einem neuen Abschnitt aktualisiert, der die neue dRNG-API beschreibt.
Wir möchten uns noch einmal bei unseren Mitgliedern der GoShimmer X-Team-Gemeinschaft für ihre Hilfe und Unterstützung während der Testphase des dRNG-Moduls bedanken.
Wie immer begrüßen wir deine Kommentare und Fragen entweder hier auf Medium oder im Kanal #tanglemath auf unserer Discord. Du kannst auch an der #goshimmer-Diskussion auf Discord teilnehmen.
Original Übersetzt von Angello Caposello: https://blog.iota.org/pollen-testnet-v0-3-0-release-notes-29413140db88
Schreibe einen Kommentar