Monotone Erasure Codes
Dieser Beitrag führt monotone Löschcodes ein, um beliebige Vertrauensannahmen in verteilten Systemen zu unterstützen, und stellt effiziente Konstruktionsalgorithmen für lineare Varianten vor, deren Anwendung zur Schaffung kommunikationseffizienter, verallgemeinerter asynchroner überprüfbarer Informationsverteilungsprotokolle (AVID) für Blockchain-Konsens demonstriert wird.
Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen
Stellen Sie sich vor, Sie besitzen ein kostbares, geheimes Rezept für den besten Kuchen der Welt. Sie möchten dieses Rezept so speichern, dass Sie es aus den verbleibenden Freunden wiederherstellen können, falls einige Ihrer Freunde ihre Notizen vergessen oder verloren gehen.
Der alte Weg: Der „Einheitsgröße"-Ansatz
Traditionell verwendeten Systeme eine Methode namens Verlustbehaftete Kodierung (wie Reed-Solomon-Codes). Stellen Sie sich dies vor wie das Schneiden Ihres Rezepts in 10 gleiche Stücke und das Geben eines Stücks an jeden Ihrer 10 Freunde. Die Regel war einfach: „Wenn Sie irgendeine Gruppe von 6 Freunden haben, können Sie die Stücke zusammenfügen und den Kuchen backen."
Dies funktioniert hervorragend, wenn Sie davon ausgehen, dass beliebige 4 Freunde verschwinden könnten. Aber was, wenn Ihre Freunde nicht alle gleich sind?
- Freundin Alice lebt in einem stürmischen Gebiet und verliert oft ihre Post.
- Freund Bob ist sehr zuverlässig, hat aber nur eine winzige Briefkastenöffnung.
- Freund Charlie ist superzuverlässig und hat einen riesigen Briefkasten.
Die alte Regel „10 Stücke, 6 benötigt" ist hier ineffizient. Sie behandelt Alice (die oft versagt) genauso wie Bob. Wenn Alice ihr Stück verliert, haben Sie möglicherweise nicht genug Stücke von den anderen, um den Kuchen zu backen, selbst wenn Sie viele zuverlässige Freunde haben. Sie könnten am Ende Alice ein riesiges Stück geben, nur um auf der sicheren Seite zu sein, was Platz verschwendet, oder Bob ein zu kleines Stück geben, das nicht ausreicht.
Die neue Idee: „Monotone Verlustbehaftete Codes"
Dieser Artikel stellt einen intelligenteren Weg vor, das Rezept zu schneiden und zu verteilen, genannt Monotone Verlustbehaftete Codes. Anstatt einer starren Regel wie „6 Personen benötigt", respektiert dieses System eine Vertrauenskarte (oder Zugriffsstruktur).
Stellen Sie sich die Vertrauenskarte als ein benutzerdefiniertes Handbuch vor, das besagt:
- „Wenn Sie Alice haben, müssen Sie auch Bob und Charlie haben, damit es funktioniert."
- „Aber wenn Sie nur Bob und Charlie haben, reicht das aus!"
- „Wenn Sie David und Eve haben, benötigen Sie eine dritte Person, aber es ist egal, wer das ist."
Das System weist unterschiedlich große Stücke des Rezepts verschiedenen Freunden basierend auf dieser Karte zu:
- Alice (unzuverlässig) erhält möglicherweise ein sehr kleines Stück (oder gar kein Stück), da das System weiß, dass man sich nicht allein auf sie verlassen kann.
- Bob und Charlie (zuverlässig) erhalten größere, kritischere Stücke.
- David und Eve erhalten mittlere Stücke.
Das Magische daran ist, dass es egal ist, welche Gruppe von Freunden erscheint: Solange sie gemäß der Vertrauenskarte ein „gültiges Team" bilden, verfügen sie über genügend Gesamtinformationen, um den gesamten Kuchen wiederherzustellen. Wenn sie kein gültiges Team sind (z. B. nur Alice und ein zufälliger Fremder), können sie es nicht.
Wie sie es gebaut haben
Der Artikel bietet zwei Hauptmethoden zum Erstellen dieser benutzerdefinierten Codes:
- Der schnelle Baumeister: Diese Methode nimmt Ihre Vertrauenskarte (beschrieben als Logikbaum aus „UND"- und „ODER"-Verknüpfungen) und schneidet das Rezept schnell in Stücke. Sie ist schnell und funktioniert für jede Karte, verschwendet aber manchmal ein wenig Platz (wie das Schneiden eines Stücks etwas zu groß, nur um auf der sicheren Seite zu sein).
- Der perfekte Baumeister: Diese Methode verwendet ein wenig Mathematik (Lineare Programmierung), um die exakt kleinstmöglichen Stücke für Ihre spezifische Vertrauenskarte zu finden. Es ist wie ein Meisterkoch, der den exakten Millimeter Teig berechnet, der für jeden Freund benötigt wird, um Verschwendung zu minimieren. Dies ist die effizienteste Methode, erfordert jedoch mehr Rechenzeit.
Sie entdeckten auch einen Sonderfall namens Partitionierte Zugriffsstrukturen (wie das Stellar-Netzwerk, bei dem Knoten in Organisationen gruppiert sind). Für diese entwickelten sie einen super-effizienten Algorithmus, der die perfekten Stückgrößen sehr schnell findet.
In die Praxis umgesetzt: Das „GAVID"-Protokoll
Der Artikel hört nicht nur beim Speichern des Rezepts auf; er zeigt, wie man diese Codes verwendet, um Nachrichten über ein chaotisches, asynchrones Internet zu senden, in dem Menschen lügen oder langsam sein könnten.
Sie entwickelten ein neues Protokoll namens GAVID (General Asynchronous Verifiable Information Dispersal – Allgemeines asynchrones verifizierbares Informationszerstreuen).
- Der alte Weg: Funktionierte bisher nur, wenn man genau wusste, wie viele Personen ausfallen könnten (z. B. „maximal 3 Lügner").
- Der neue Weg (GAVID): Funktioniert mit der komplexen Vertrauenskarte. Es ermöglicht einem Absender, die Rezeptstücke im Netzwerk zu zerstreuen. Selbst wenn einige Freunde lügen oder langsam sind, können sie, solange ein „gültiges Team" (ein Kernel) ehrlicher Freunde die Stücke sammelt, verifizieren, dass das Rezept echt ist, und es wiederherstellen.
Warum dies wichtig ist
In der Welt der Blockchains und verteilten Systeme sind nicht alle Computer gleich geschaffen. Manche sind vertrauenswürdiger als andere. Dieser Artikel liefert die mathematischen Werkzeuge, um aufzuhören, alle gleich zu behandeln. Er ermöglicht es Systemen, effizienter zu sein (weniger Daten zu speichern) und robuster (komplexe Vertrauensbeziehungen zu bewältigen), indem die Datenverteilung an die spezifische Zuverlässigkeit jedes Knotens angepasst wird.
Zusammenfassung:
- Alter Code: „6 von 10 Personen benötigt, egal wer sie sind."
- Neuer Code (Monoton): „Eine spezifische Kombination von Personen benötigt, basierend darauf, wem Sie vertrauen. Geben Sie mehr Daten den zuverlässigen, weniger den unzuverlässigen."
- Ergebnis: Eine intelligentere, effizientere Art, Daten in Systemen zu speichern und zu teilen, in denen das Vertrauen variiert.
Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?
Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.