Ich weiß, ich weiß. Es gibt unzählige Krypto-Projekte, viele Konsensmechanismen: basierend auf Arbeit und Besitz, Gold, Öl, gebackenen Piroggen (ja, das gibt es). Was bringt uns ein weiterer? Das möchte ich nach dem Lesen der "vereinfacht" technischen Dokumentation des Projekts *Constellation (). Natürlich ist das keine vollständige Beschreibung des Algorithmus, aber mich interessiert die Meinung der Habr-Community, ob ein solcher Konsens einen Platz hat oder ob er überflüssig ist.
Es gibt nicht viele Buchstaben, daher, wenn Sie einfach nur schreiben möchten: "Uah, genug von Krypto", dann bitte ich Sie darum, sich zurückzuhalten. Wenn Sie an neuen Entwicklungen im Bereich verteilte Systeme interessiert sind und etwas in den Kommentaren beisteuern möchten, dann lade ich Sie herzlich ein.
P.S. Ich bin nicht der Autor der Technologie, ich kann die vollständige Übertragung der Essenz nicht garantieren, daher freue ich mich über Kommentare mit Korrekturen, falls solche vorhanden sind.
Die Evolution von synchronen Konsensen zu asynchronen
Die Knoten werden durch einen deterministischen Prozess ausgewählt (der gleiche, der in DHTs verwendet wird, beispielsweise bei BitTorrent), der die Aufgaben der Knoten dynamisch anpasst, um die Validierung zu „erleichtern“ oder, um es klarer auszudrücken, um Konsens zu erreichen. Wir wählen Gruppen aus 3 Knoten aus und führen Konsensrunden parallel durch, sodass ein Knoten in mehreren Blöcken als Facilitator fungieren kann. Dadurch können wir Transaktionen asynchron verarbeiten, was im Wesentlichen bedeutet, dass gleichzeitig mehrere Blockchains entstehen. Der Prozess ähnelt einem Netz, das aus vielen Fäden besteht, im Gegensatz zu Knoten, die im Laufe der Zeit eine einzige Kette bilden. Asynchrone oder parallele Verarbeitung ist die Grundlage für skalierbares Programmieren, da sie alle Ressourcen des Computers nutzt und die gesamten Berechnungen beschleunigt. Dieses Netzwerk wird als gerichteter azyklischer Graph oder DAG in der Informatik bezeichnet.

Die Bandbreite eines linearen Blockchains gegenüber dem multiplikativen Effekt eines DAG, bei dem wir mehrere parallele Blockchains haben.

Geometrische Umsetzung der linearen Blockchain im Gegensatz zu DAG. Die schwarzen Punkte sind Blöcke, die weißen Punkte sind Knoten.
Wir nutzen in jeder Konsensrunde 3 Knoten, da uns dies interessante mathematische Prozesse für die Überlegung über den Zustand bietet, indem es eine "Oberflächenebene" über die Daten in Form von Verbindungen zwischen Dreiecken bildet. Der Protokoll verwendet dann die Dreiecke, um die optimale Oberfläche zu "nähen", die keine überflüssigen oder widersprüchlichen Daten enthält und die minimal möglichen Dreiecke aufweist. Algorithmisch entspricht dies dem "minimalen Schnitt" in einem Graphen, während es mathematisch einer Ableitung oder einer Optimierungsfunktion ähnelt (bei der die Funktion den kürzesten Weg findet, den sie über die Oberfläche kreuzen kann). Dieser kürzeste Weg entspricht der optimalen Speicherung von Daten (Transaktionen) in einer Gruppe von Datenbankverfügbarkeiten. Gegenläufige dreieckige "Fliesen" sorgen dafür, dass die Ereignisfläche glatt und konfliktfrei bleibt.

Geometrische Umsetzung der Konflikterkennung / -verarbeitung. Ein konfliktierender Block erzeugt zusätzliches Oberflächentiling. Wir entfernen die zusätzliche Fliese, um eine flache (= konfliktfreie) Ereignisfläche zu erhalten.
Konsens basierend auf Reputation
In einem optimalen dezentralisierten P2P-System der Reputation sollte jeder Knoten in der Lage sein, sein Vertrauen zu anderen Knoten selbstständig zu bestimmen. Unser System nutzt ein spezielles Modell, das transitive Beziehungen oder Verbindungen, die ein Knoten zu anderen Knoten hat, bei der Zuweisung einer globalen Bewertung einbezieht. „Sie sind nur so gut wie Ihr Unternehmen“. Das Endergebnis ist eine „Verzerrung“ oder ein Gradient, der auf dem Transitiven Vertrauen oder der Reputation aller Knoten in einem $DAG oder einem Standardkanal basiert. Dies kann als Bürste oder Reibe für Käse betrachtet werden, die über die „Oberfläche“ wischt und auswählt, welche „dreieckigen Fliesen“ entfernt und welche beibehalten werden sollen. So funktioniert die Logik des Konflikts, die tatsächlich die „dreieckigen Fliesen“ entfernt.

DAG mit konfliktierenden Kacheln, die durch einen „verzerrten“ Raum verlaufen, der einer Käsereibe ähnelt und darauf abzielt, die konfliktierenden Kacheln zu entfernen oder „auszulöschen“.
Teilweises/Vollständiges Skalieren eines Knotens
In der Netzwerktheorie ist die optimale Verteilung im Allgemeinen als „ohne Skalierung“ bekannt, die als hierarchische Anordnung mit großen zentralen Knoten beschrieben werden kann, die viele kleinere periphere Knoten steuern. Diese Verteilung ist in der Natur und vor allem im Internet zu beobachten. Constellation nutzt diese Architektur für das „Skalieren“ oder die Erhöhung der Bandbreite oder Breite unseres Graphen.

Der Effekt der hierarchischen Aufteilung. Wir können weitere Knoten hinzufügen, um die Bandbreite zu erhöhen.
Hylochain – Unterstützung für kanalbasierte Anwendungen
Unser Ansatz für die Anwendungsunterstützung kann als "dezentralisierte Plattform für Smart Contracts" betrachtet werden. Anstelle eines zentralen Netzwerks, das die gesamte Logik ausführt und alle Daten der Anwendung verarbeitet, koordiniert Constellation die Anwendungsdaten mit "Standardkanälen", die man als Fernsehsender ansehen kann, die alle Daten aus dem Standardbetrieb übertragen. Jeder Standardkanal kann eigene Prüflogik implementieren, um das Oracle-Problem durch durchgängige Authentifizierung der Datenproduzenten und transitive Überprüfung zusammengesetzter Standardbetriebe zu lösen. Netzwerke von Standardkanälen bieten parallele Anwendungsunterstützung und beschleunigen die Entscheidungsfindung, die in einem Netzwerk mit Smart Contracts durch den traditionellen synchronen Konsens begrenzt ist.

Zwei Standardkanäle, die "kompatibel" über das Netzwerk $DAG sind. Sie können interagieren oder interpretiert werden, da beide "integriert" mit $DAG durch die Implementierung hybrider Knoten $DAG + Kanal sind.
Der Grund, warum es Hylochain genannt wird, liegt darin, dass in unserem Ansatz zur Unterstützung von Anwendungen das funktionale Programmiermodell der Rekursionsschemata zur Erstellung einer MapReduce-Schnittstelle verwendet wurde. Insbesondere können die Rekursionsschemata Hylomorphismus und Metamorphismus integriert werden, um überprüfbare Abfragen und Stream-Verbindungen über Standardkanäle zu erstellen, indem algebraische Datentypen auf die gleiche Weise validiert werden, wie Opcodes für Smart Contracts überprüft werden. Das Endergebnis ist eine funktionale MapReduce-Schnittstelle, die Dateningenieuren bekannt ist und mit bestehender Big-Data-Technologie kompatibel ist.

Hylomorphe und metamorphe Standardkanäle im Vergleich. Im metamorphischen Zustand werden Daten aus zwei Standardkanälen in einen Block im Metakanal gesendet. Im Hilo nehmen wir den vorherigen Zustand des Kanals und verwenden ihn, um (eine spezifische Frage zu stellen) zwei andere Kanäle abzufragen und dann das Ergebnis der Abfrage in einem Block zu speichern.
Tokenomik und ihre Verbindung zu Hylochain
Nachdem der Standardkanal erstellt wurde, kann er in den Kanal $DAG integriert werden, jedoch unter Verwendung der ACI- oder Application Chain Interface. Diese Schnittstelle ist einfach ein JSON-Objekt mit Konfigurationsinformationen und einem öffentlichen Schlüssel, der mit dem Kanal selbst verknüpft ist. Der Grund, warum wir den öffentlichen Schlüssel mit dem Standardkanal verknüpfen, besteht darin, einen Broker-Mechanismus für die Daten des Standardkanals zu schaffen. Wenn der Standardkanal bereitgestellt wird, entscheiden die Entwickler selbst, wie die Zahlungen aus dem Netzwerk $DAG zwischen Knoten und Betreibern verteilt werden.

Ein Strom für den Kauf von Zugang zu Informationen oder zur Modifikation von Informationen. Die Anfrage wird an $DAG gesendet, die Gelder werden auf das Konto des Kanals überwiesen, das Ergebnis wird an den Käufer gesendet und die Transaktions-Checksumme wird an das Netzwerk $DAG gesendet, das dann die Mittel für den Standardkanal freigibt.
Quelle: habr.com
