Blockchain: Wie Blöcke miteinander verbunden werden und Konsensmechanismen

Wie ist die Reihenfolge der Verbindung zwischen der

Blockchain (Blockchain Link)

Experten als verteiltes Hauptbuch verstanden werden. Im vorhandenen Buchhaltungssystem liegen die Rechnungsrechtsrechte in den Händen des zentralen Servers.

2. Die Blockchain ist eine Kettendatenstruktur, die Datenblöcke in der Reihenfolge kombiniert und verschlüsselt.

3 Blockketten: Fügen Sie jedem Block einen Blockheader hinzu. Der Hash -Wert des übergeordneten Blocks wird aufgezeichnet. Jeder Block speichert den Hash -Wert des übergeordneten Blocks und alle Blöcke sind angeschlossen, um eine Blockchain zu bilden.

Welche der folgenden Aussagen stimmt?

Die Blockchain ist eine Kettendatenstruktur, die Datenblöcke in der Reihenfolge kombiniert und verschlüsselt garantiert.

2. Die Blockchain ist der Begriff im Bereich der Informationstechnologie. Die Blockchain zeichnet die Transaktion im Block mit Sicherheit sicher. Es ist der verteilte öffentliche Direktor, dass jeder ein Konto beibehalten kann.

3. Schließen Sie die verschiedenen Eigenschaften des Blockheaders miteinander an, um den Hash dieser Zeichenfolge zu berechnen. Hash = SHA256 (Blockheader) ist die Berechnung der Blockheidungen und der SHA256 ist ein Hasing -Algorithmus der Blockchain.

dem Vertrauens- und Sicherheitsproblem der Transaktion, hauptsächlich durch die Blockchain, getrennt, wird nicht durch die Dezentralisierung jedes unabhängigen Knotens moduliert (der vom verteilte Knoten abhängige Übereinstimmungsmechanismus). Es ist möglich, die Karriere von 0 zu verändern, um eine neue Technologie -GO -Sprache (Webentwicklung, Micro -Service, Vertrieb) zu entwickeln. System, Blockchain -Anwendung)

Wie verbindet ich Blöcke mit Blockchains?

Wie können Sie sicherstellen, dass die Blockchains in den Sequenzen verbunden sind? Die Blockchain besteht aus einer Reihe von Blöcken, die mit kryptografischen Algorithmen erzeugt werden. Jeder Block ist voller Transaktionsaufzeichnungen, und die Blöcke sind mit einer Kettenstruktur verbunden, die ein Blockchain -Buch ist. Wenn der Bergmann einen neuen Block generiert, muss er den neuen HSH -Wert und eine Zufallszahl basierend auf dem Hash des vorherigen Blocks, einer neuen Transaktionseinheit und einer Zufallszahl berechnen. Mit anderen Worten, jeder Block wird auf der Grundlage früherer Datendaten generiert, und dieser Mechanismus bietet die Einzigartigkeit von Blockchain -Daten. Da subtile Änderungen der Transaktionen das Ergebnis des Hash -Werts vollständig verändern, können Bergleute nicht täuschen und um die Rechenleistung konkurrieren.

Wie man die Blockchains -Übereinstimmung sortiert, und in welcher Reihenfolge Blockchain Datenblöcke in Sequenz

Vier Konsensmechanismen für Blockchain

Konsensusmechanismus der Blockchain verbindet, kann in die folgenden vier Kategorien unterteilt werden: Nachweis des Nutzungsmechanismus, des Einsatzes und der Beweise der Arbeit der Arbeit.

Blockchain ist eine Kette, die aus einem Block nach dem anderen besteht. Einige Informationen werden in jedem Block gespeichert und mit einer Kette ihrer jeweiligen Zeit verbunden. Diese Kette wird auf allen Servern gespeichert. Solange es einen Server im gesamten System gibt, der funktionieren kann, ist die gesamte Blockchain sicher. Diese Server werden in Blockchain -Systemen als Knoten bezeichnet und bieten Speicherplatz und Datenunterstützung für das gesamte Blockchain -System.

Blockchain --- Konsensalgorithmus

Pow-Algorithmus ist ein Mechanismus, um zu verhindern, dass verteilte Service-Ressourcen missbraucht werden und Dienstangriffe verweigert werden. Es erfordert, dass Knoten komplexe Vorgänge ausführen, die geeignete Mengen und Ressourcen ausgeben, und ihre Berechnungsergebnisse können von anderen Knoten schnell bestätigt werden, um sicherzustellen, dass Dienste und Ressourcen nach realen Bedürfnissen verwendet werden.

Das grundlegendste technische Prinzip des POW -Algorithmus ist die Verwendung eines Hash -Algorithmus. Angenommen, Sie finden den Hash -Wert -Hash (s), und wenn die ursprünglichen Daten R (RAW) sind, ist das Berechnungsergebnis (Ergebnis).

r = Hash (s)

Das Merkmal der Hash -Funktion Hash () ist, dass das Ergebnis für jeden Eingangswert R erhalten wird und nicht von R umgekehrt werden kann, wenn sich die Eingabeinformationsdaten R um das 1 -Bit ändert, das Ergebnis vollständig geändert wird. Im POW -Algorithmus des Bitcoin wird die Schwierigkeit der Algorithmen und der Zufallswert n eingeführt, um die folgende Formel zu erreichen:

rd = Hash (R+N) Hash -Funktionsergebnisse, jeder Bergmann muss viele Operationen ausführen, bevor er das richtige Ergebnis erzielen kann. Der POW -Algorithmus verwendet diese Methode, um die Berechnung von Ressourcen zu konsumieren, und die Überprüfung dauert nur eine Zeit.

?

POS -Algorithmus erfordert Knotenprüfer, um bestimmte Mittel zur Berechtigung für Bergbau und Verpackung zu verpflichten.

Im POS -Modus erzeugt jede Währung 1 Währungsalter pro Tag. Wenn Sie zu diesem Zeitpunkt einen POS -Block überprüfen, wird das Währungsalter auf 0 entfernt und die entspre chenden digitalen Währungszinsen vom Block erhalten.

Der Prozess der Knoten in der Blockerzeugung durch den Posorithmus lautet wie folgt: Wenn ein normaler Knoten ein Knoten zur Blockgenerierung werden will, muss er zunächst die Vermögenswerte verspre chen.

?

DPOS -Algorithmus ähnelt dem Possenhmus und verwendet auch Aktien und Eigenkapitalsysteme.

Aber der Unterschied besteht darin, dass der DPOS -Algorithmus eine vertrauenswürdige Hebemethode anführt, die der Auswahl von N -Supernoden für die Registrierung von Konten und Blöcken durch Auswahl von Vertretern ganzer Personen ähnelt.

Wähler wählen ihre Stimmen für einen Knoten.

n -Accounting -Knoten werden abwechselnd Blöcke abgeben, und die Knoten überwachen sich gegenseitig.

Wenn man sich auf eine kleine Anzahl ehrlicher Knoten verlassen, können unnötige Schritte im Blocksignaturprozess entfernt werden, was die Transaktionsgeschwindigkeit verbessert.

?

Byzantinisches Problem:

Byzantin war die Hauptstadt des alten Römischen Reiches des östlichen Römischen Reiches. Im Krieg müssen alle Generäle einen Konsens erreichen und entscheiden, ob sie gemeinsam einen Krieg beginnen sollen.

Es kann jedoch Verräter in der Armee geben, und diese Menschen werden die Generäle betreffen, um einen Konsens zu erreichen. Die byzantinische allgemeine Frage bezieht sich auf die Frage, wie die verbleibenden Generäle eine vereinbarte Entscheidung treffen, wenn sie als Verräter bekannt sind.

BFT:

BFT ist eine byzantinische Verwerfungstoleranz. Die byzantinische Hypothese ist ein Modell der realen Welt aufgrund von Hardwarefehlern, Computer und Netzwerken können aufgrund von Networking oder Unterbrechungen und böswilligen Angriffen unvorhersehbares Verhalten erleben. Die byzantinische Fehlertoleranztechnologie ist für diese Abweichungen ausgelegt und die normativen Anforderungen für die Lösung der Probleme erfüllt.

byzantinisches Fehlertoleranzsystem:

Der defekte Knoten wird als byzantinischer Knoten bezeichnet und der normale Knoten ist ein Nicht-Byzantinerknoten.

vorausgesetzt, das verteilte System hat N-Nodes und vorausgesetzt, das gesamte System überschreitet M-Nodes nicht (NEHRE 3M+1), was das Problem der geringen Effizienz des ursprünglichen byzantinischen fehlertoleranten Algorithmus löst. Der Satz von Knoten, das heißt, das Masternododen p = vod | R |. V: Nummer anzeigen, | R | Anzahl der Knoten, P: Master -Knotennummer.

Der Konsensprozess des PBFT -Algorithmus lautet wie folgt: Der Kunde initiiert eine Nachrichtenanforderung und wird an jeden Replikationsknoten gesendet und weitergeleitet, und eine Vorschlagsnachricht wird von einem der Master (Manager) und Sendungen initiiert. Andere Knoten erhalten die ursprüngliche Nachricht und senden eine Vorbereitung nach Abschluss der Bestätigung. Jeder Knoten empfängt 2F+1 -vorbereitete Nachricht, was bedeutet, dass er vorbereitet wurde und eine Verpflichtungsnachricht sendet. Wenn der Knoten 2F+1 verpflichtet und der Client dieselben Antwortmeldungen erhält, bedeutet dies, dass die vom Client eingeleitete Anforderung im gesamten Netzwerk eine Vereinbarung getroffen hat.

Der spezifische Vorgang ist wie folgt:

Der Client C sendet die Anforderung O, T, C an den Hauptknoten p. Anfrage: Enthält den Nachrichteninhalt m und den Meldung Digest D (M). Der Client unterschreibt die Anfrage.

Wenn der Hauptknoten die Anfrage des Clients empfängt, muss die folgende Bestätigung durchgeführt werden:

a. Für korrekte Anforderungen ordnen Sie eine Nummer n zu, die hauptsächlich zum Sortieren von Client -Anfragen verwendet wird. Senden Sie dann eine Pre-Proporte, V, N, D, M-Nachricht an andere Replikatknoten. V: Nummer anzeigen, D Client -Nachrichten Digest, M -Nachrichteninhalt. Pre-Pare, V, N, D führt die Masterknotensignatur aus. N ist [h], das sich in einem bestimmten Bereich befinden muss.

Replikat-Knoten Ich Empfange die Pre-Pre-Repair-Nachricht aus dem Master und muss die folgende Bestätigung durchführen:

a.

illegale Anfrage wird geworfen. Für die richtige Anfrage sende der Replikatknoten I eine Vorbereitung, V, N, D, I-A-Nachricht an andere Knoten, einschließlich des Master, V, N, D, M, der der gleiche Inhalt wie die oh2e Vorbereitungsnachricht ist. Ich bin die aktuelle Replikationsnummer. Vorbereiten, V, N, D, ich führe eine Signatur von Replicatnode in. Protokollvorbereitete Protokoll durch und bereite Nachrichten im Protokoll vor, um unvollendete angeforderte Operationen während der Ansichten wiederherzustellen.

Der Master- und der Replikatknoten empfangen die Vorbereitungsnachricht und muss die folgende Bestätigung durchführen:

a.

d Wenn der Replikatknoten I 2F+1 -Überprüfung eine Nachricht erstellt, sendet er eine Verpflichtung, V, N, D, I -Nachricht an die anderen Knoten, einschließlich des Meisters, und V, N, D, I, was der oben genannten Nachricht entspricht. Commit, V, N, D, Ich führe die Unterschrift von ReplicatNode in. Protokoll verpflichtet die Protokolle im Protokoll, mit dem unvollendete Anforderungsvorgänge während der Ansichten wiederhergestellt werden. Registrieren Sie die Nachrichten, die von anderen Replikationsknoten im Protokoll gesendet werden.

Der Master und der Replicat -Knoten empfangen die Verpflichtungsnachricht und müssen die folgenden Ausführung ausführenBestätigung:

a.

illegale Anfrage wird geworfen. Wenn der Replik -Knoten I 2F+1 -Überwachungskommissionsbericht erhalte, bedeutet dies, dass die meisten Knoten im aktuellen Netzwerk einen Konsens erzielt haben, die Anfrageoperation des Kunden O und Rückgabe von Antworten, v, t, c, i, r an den Client. Verwüsten. Datenaufzeichnungsmeldungen aufzeichnen, die von anderen Replikationsknoten im Protokoll gesendet werden.

?

Wenn die Meisterschaft das böse macht, kann sie verschiedenen Anforderungen dieselbe Sequenznummer zuweisen oder die Sequenznummer verteilen oder die benachbarte Sequenznummer abgeschlossen machen. Der Sicherungsknoten sollte dafür verantwortlich sein, die Legalität dieser Seriennummern aktiv zu überprüfen.

Wenn der Hauptknoten die Anfrage des Clients nicht angeschlossen oder nicht ausstrahlt, legt der Client einen Zeitüberschreitungsmechanismus fest. Der Replikatknoten entdeckt, dass die Meisterschaft böse macht oder offline geht und das ViewChange -Protokoll startet.

ViewChange-Protokoll:

Replikatknoten senden View-Change, V+1, N, C, P in Nachrichten an andere Knoten. N ist die neueste StableCheckpoint-Nummer, C ist 2F+1-validiertes Checkpoint Message Kit, und P ist der Vorbereitende und bereitet die Meldung für unvollendete Anfragen aus der aktuellen Replikat vor.

Wenn die Master -Kiefer P = V+1MOD | R | Wenn 2F gültige Meldungen zur Änderungsänderung empfängt, wird die neue Ansicht V+1, V, O -Nachrichten an andere Knoten gesendet. V ist eine gültige Sammlung von Anzeigenänderungen. O ist die unvollendete Meldungssammlung vor der Vorbereitung des Meisters erneut. Die Auswahlregeln für die Erfassung von Vorbereitungsnachricht:

?

Im oh2en Algorithmus -Prozess, um sicherzustellen, dass die vorherige Anforderung unter ViewChange wiederhergestellt werden kann, zeichnet sich jeder ReplicatNode einige Nachrichten zum lokalen Protokoll auf.

Die einfachste Möglichkeit ist, die Konsenssynchronisation des aktuellen Zustands nach der Antwortmeldung durchzuführen. Diese Status -Synchronisationsmeldung ist die Checkpoint -Nachricht.

Replicate -Knoten im Sender -Checkpoint N, D zu anderen Knoten. Wenn Replica -Node I 2F+1 -validierte Checkpoint -Nachricht empfange, wird die Nachricht im vorherigen Protokoll gelöscht und N als aktuelles Stablecheckpoint verwendet.

Dies ist eine ideale Situation.

Um zu verhindern, dass die Behandlungsanforderung von I zu schnell ist, können Sie ein Intervall der oben genannten hohen und niedrigen Wasserspiegel [H, H] festlegen, um dieses Problem zu lösen. Der niedrige Wasserspiegel H entspricht der Anzahl der vorherigen Stablecheckpoint und der hohe Wasserstand H = H+L, wobei L der von uns angegebene Wert ist, der einem ganzzahligen Multiple der Anzahl der Anforderungen k während des Kontrollpunkts für den Behandlungszeitraum entspricht. Wenn der Replikatknoten in der Anforderung über den Hochwasserspiegel H überschreitet, wird zu diesem Zeitpunkt gestoppt. Warten Sie, bis sich Stablecheckpoint ändert, bevor er weiter fortgesetzt wird.

?

In Blockchain -Szenarien ist es im Allgemeinen für private Ketten- und Allianzkettenszenarien geeignet, die eine starke Textur erfordern. Zum Beispiel ist PBFT im IBM-geführten Blockchain-Hyperledger-Projekt ein optionales Konsensprotokoll. In Hyperledgers Arzneimittelprojekt werden Konsensmodule als steckbare Module ausgelegt, die Konsensalgorithmen wie PBFT und Floß unterstützt.

?

?

Die Flotte basiert auf einem von Führungskräften betriebenen Konsensmodell, bei dem ein prominenter Leiter ausgewählt wird, und der Manager ist voll verantwortlich für die Verwaltung des Cluster, und der Manager ist für die Verwaltung der Replikationsprotokolle zwischen allen Knoten zum RAFT-Cluster verantwortlich.

?

In der folgenden Abbildung wird der Cluster (S1) während der Start -up ausgewählt und bietet Dienste für alle Befehle/Anfragen des Kunden an. Alle Knoten in einer Flotte -Cluster wartenEin verteiltes Protokoll (Replikat -Log), um den vom Client ausgegebenen Befehl (Protokolleintrag) zu speichern. Der Manager akzeptiert Protokolleinträge vom Kunden und kopiert ihn zwischen allen Followern (S2, S3, S4, S5) in der Flotte.

In einem Flottencluster ist eine minimale Anzahl von Knoten erforderlich, um die erwartete Konsensgarantie, die auch als Quorum bezeichnet wird, bereitzustellen. Die Mindestanzahl von Stimmen, die für die Durchführung einer Operation in einer Flotte -Cluster erforderlich sind (N/2+1), wobei N die Gesamtzahl der Mitglieder in der Gruppe ist, dh mindestens die Hälfte der Stimmen, weshalb Cluster normalerweise seltsam sind. Daher benötigen wir im oh2en Beispiel mindestens 3 Knoten, um eine Einigung zu haben.

Wenn der gesetzliche Schiedsgerichtsknoten aus irgendeinem Grund nicht verfügbar ist, dh die Abstimmung nicht die Hälfte überschreitet, gibt es keine Einigung in dieser Verhandlung und ein neues Protokoll kann nicht eingereicht werden. Timb/Tikv

log: Alibabas Dedger

Service Discovery: Consultcd

Clusterplanung: Hashicorpnom

kann nur ernsthaft gelten.

Wenn wir eine neue Flotte oder ein Führer unzugänglich sind, wird ein neuer Führer durch Verhandlungen zwischen allen Mitgliedsknoten im Cluster gewählt. In einem bestimmten Fall können die Knoten zur Flotte der Cluster in einer der folgenden Bedingungen stehen: ein Nachfolger, ein Kandidat oder ein Führer.

Wenn das System beginnt, sind alle Knoten Follower. Das System hat einen höheren Begriff (Konzept) als das an sich, es wird in Konsequenzen umgewandelt.

RAFT verwendet einen herzschlagbasierten RPC-Mechanismus, um festzustellen, wann eine neue Auswahl beginnt. Während der normalen Zeiträume sendet der Manager regelmäßig an alle verfügbaren Follower Herzbeatnachrichten (in der Praxisprotokoll und des Herzschlags können zusammen gesendet werden). Daher beginnen andere Knoten im Anhängerstatus und bleiben im Folgungsstatus, solange er einen periodischen Herzschlag vom aktuellen Leiter erhält.

Wenn der Nachfolger seine Zeitüberschreitung erreicht, startet er den Wahlprozess mit:

Drei Ergebnisse der Auswahl können basierend auf den Antworten des Kandidaten anderer Knoten im Cluster gezogen werden.

Implementierung von Konsensusalgorithmen basiert normalerweise auf replizierten Zustandsmaschinen. Unterschiedliche Knoten sollten Eingaben mit denselben und deterministischen Funktionen behandeln, anstatt unsichere Werte wie die lokale Zeit einzuführen. Die Verwendung von ReplyedLog ist eine sehr gute Note.

Mit dem Manager können alle zeitgenössischen Anfragen des Kunden auf der Führungsseite eine geordnete Protokoll (Status) -Sequenz bilden, um die Behandlungsreihenfolge dieser Anfragen darzustellen. Der Manager sendet dann seine eigene Protokollsequenz an den Nachfolger, um die globale Konsistenz des gesamten Systems aufrechtzuerhalten. Beachten Sie, dass es keine starke Textur ist, sondern die endgültige Textur.

Protokolle bestehen aus Protokolleinträgen mit geordneter Nummerierung (Logindex). Jeder Protokolleintrag enthält beim Erstellen des Körpers (Term), und die Daten im Protokoll können von einem einfachen Typ bis zu einem Blockchain -Block von jedem Typ sein. Jeder Protokolleintrag kann mit einem [Term, Index, Daten] -Sequenzpaare dargestellt werden, wobei der Term den Term darstellt, Index Indexnummern darstellt und Datenprotokolldaten repräsentiert.

Anführer versucht, einen Replikationsbefehl für die meisten Knoten im Cluster auszuführen. Wenn die Replikation erfolgreich ist, wird der Befehl an den Cluster gesendet und die Antwort an den Client zurückgesendet. Wie bei der zweistufigen Einreichung (2PC) besteht der Unterschied von 2PC darin, dass der Führer nur mehr als die Hälfte der Knoten benötigt, um sich zuzustimmen (im Arbeitszustand).

Anführer und Trailer können zum Absturz gebracht werden, daher können Follow -up -Situationen im Vergleich zum Manager

auftreten, wenn der Manager und der Follower inkonsistent sind. Der Manager zwingt den Anhänger, sein eigenes Protokoll zu kopieren. Fehlende oder zusätzliche Einträge können also in mehreren Begriffen dauern.

?

Bitten Sie die Protokolle der Kandidaten, mindestens so aktualisiert zu werden wie andere Knoten. WennNicht, die Folge wird nicht für den Kandidaten stimmen.

bedeutet, dass jeder Eingabeeintrag in mindestens einem dieser Server vorhanden sein muss. Wenn das Protokoll des Kandidaten in den meisten Protokollen mindestens so zuletzt ist wie die anderen, speichert es alle Festschreibungslisten und vermeiden Protokolle.

Es ist höchstens ein Führer, der während jeder Amtszeit ausgewählt wird. Dies ist sehr wichtig, es kann jederzeit jederzeit in einem Replikationssatz ein Anführer sein. Gleichzeitig gibt es einen zusätzlichen Anbieter im System, das als Brain Spliting (Brain Split) bezeichnet wird und ein sehr ernstes Problem darstellt und zum Verlust von Datenüberschreibungen führt. In Floß garantieren zwei Punkte dieses Attribut:

Daher darf es während eines bestimmten Laufzeit nur ein Leiter geben.

?

Wenn sich der Zustand der Knoten in der Cluster ändert (Clusterkonfiguration wird geändert), ist das System für den Systemausfall empfänglich. Um dies zu verhindern, verwendet RAFT eine Methode, die als zweistufige Cluster-Mitgliedschaft bezeichnet wird. In diesem Ansatz ändert sich der Cluster daher zunächst in einem Medium (als Bundeskonsens bezeichnet), bevor eine neue Mitgliedschaftskonfiguration implementiert wird. Der gemeinsame Konsens ermöglicht es dem System, auf Client -Anfragen zu reagieren, auch wenn sie zwischen Konfigurationen konvertieren, und der Hauptzweck besteht darin, die Verfügbarkeit verteilter Systeme zu verbessern.

Was ist Blockchain -consens?

Der sogenannte "Konsensmechanismus" besteht darin, die Überprüfung und Bestätigung von Transaktionen in einer sehr kurzen Zeit durch die Abstimmung von Sonderknoten abzuschließen. Um es klar auszudrücken, wenn ein chinesischer Weibo Big V, ein amerikanischer virtueller Währungsspieler, ein afrikanischer Student und ein europäischer Reisender sich nicht kennen, aber sie sind sich einig, dass Sie eine gute Person sind, dann können Sie im Grunde zu dem Schluss kommen, dass Sie nicht schlecht sind.

Blockchain als Datenstruktur, die Daten in chronologischer Reihenfolge speichert, kann unterschiedliche Konsensmechanismen unterstützen. Der Konsensmechanismus ist ein wichtiger Bestandteil der Blockchain -Technologie. Das Ziel des Blockchain -Konsensmechanismus ist es, allen ehrlichen Knoten eine glatte Blockchain -Ansicht zu erhalten und zwei Eigenschaften zu erfüllen:

1) Konsistenz. Der Präfixabschnitt der von allen ehrlichen Knoten gespeicherten Blockchain ist genau gleich.

2) Gültigkeit. Die von einem ehrlichen Knoten veröffentlichten Informationen werden schließlich von allen anderen ehrlichen Knoten in seiner eigenen Blockchain aufgezeichnet.