Prinzipien und Praxis der verteilten Technologie 45 Vorlesungen – 05 Vorlesung 05: Konsensfrage: Wie bestätigt die Blockchain Buchhaltungsrechte?

In diesem Kurs erklären wir hauptsächlich „Konsensfrage: Wie bestätigt die Blockchain die Buchhaltungsrechte?“

Blockchain kann als eines der heißesten Technologiefelder der letzten Jahre bezeichnet werden. Blockchain entstand aus Satoshi Nakamotos Bitcoin. Als zugrunde liegende Technologie von Bitcoin handelt es sich im Wesentlichen um eine dezentrale Datenbank, die sich durch die Dezentralisierung von Zentralisierung, Offenheit und Transparenz auszeichnet. Als Distributed-Ledger-Technologie kann jeder Knoten an Datenbankdatensätzen teilnehmen.

Blockchain ist eine Technologie, bei der Sicherheit und Glaubwürdigkeit wichtiger sind als Effizienz. Wenn Internet-Technologie Kommunikationsprobleme löst, löst Blockchain-Technologie Vertrauensprobleme.

Heute konzentrieren wir uns auf das Kernproblem der Blockchain: Als verteiltes Hauptbuch verwaltet jeder Teilnehmer eine Kopie der Daten. Wie bestätigt man also die Buchhaltungsrechte und wer wird das endgültige Hauptbuch sein?

Blockchain-Konsens

Blockchain ist ein dezentrales verteiltes Hauptbuchsystem. Das Konsensproblem der Blockchain ergibt sich tatsächlich aus dem Konsistenzproblem verteilter Systeme.

Konsens ist, wie der Name schon sagt, ein allgemeines Verständnis. Das Konsensproblem untersucht, wie mehrere Mitglieder eine Einigung erzielen, typischerweise durch Abstimmung.

Der Konsensmechanismus spielt eine zentrale Rolle in der Blockchain. Der Konsensmechanismus bestimmt, wer das Recht hat, Konten zu führen, sowie das Auswahlverfahren und die Gründe für das Recht, Konten zu führen. Verschiedene virtuelle Währungen verwenden unterschiedliche Konsensmechanismen. Zu den gängigen Konsensmechanismen gehören POW, POS, DPOS usw.

Wir haben bereits erwähnt, dass das C in CAP Konsistenz ist. Was ist der Unterschied zwischen Konsistenz und Konsens?

Konsistenz konzentriert sich auf die Konsistenz und Einheit von Inhalten in chronologischer Reihenfolge, während sich Konsens auf den Konsens bezieht, den viele Teilnehmer über einen bestimmten Inhalt erzielen. Daher wird Konsistenz im Allgemeinen als „Konsistenz“ und Konsens als „Konsens“ übersetzt.

Problem der byzantinischen Generäle

In früheren Kursen haben wir mehrere klassische Konsensalgorithmen geteilt. Wenn der Konsensmechanismus auf ein verteiltes System ausgeweitet wird, muss das System durch einen Hauptprozess koordiniert werden, und alle Entscheidungen des Systems werden durch den Hauptprozess getroffen, um Konsistenz zu erreichen.

Da es sich bei der Blockchain um ein dezentrales verteiltes System handelt, gibt es im verteilten System weder einen Teamleiter noch eine Master-Rolle, daher muss eine Art Konsensmechanismus vorhanden sein, um die Systemkonsistenz sicherzustellen.

Im Allgemeinen wird in der Netzwerkkommunikation ein Knotenausfall, d. h. die Situation, in der der Kanal unzuverlässig ist, als „nicht-byzantinischer Fehler“ bezeichnet, und eine böswillige Reaktion, d ein „byzantinischer Fehler“.

Warum wird es byzantinischer Fehler genannt? Eigentlich stammt es aus einem Story-Modell:

Das Byzantinische Reich war im Mittelalter das Türkische Reich. Es verfügte über enormen Reichtum und war von zehn Nachbarländern umgeben, die es schon lange gab. Allerdings hatte das Byzantinische Reich hohe Mauern und war so uneinnehmbar, dass kein einziges Nachbarland dies konnte erfolgreich einmarschieren. Jede Invasion durch einen einzelnen Nachbarn schlägt fehl, und es ist auch möglich, dass neun weitere Nachbarn in das Objekt eindringen.
Die Verteidigungsfähigkeit des Byzantinischen Reiches war so stark, dass mindestens die Hälfte seiner zehn Nachbarn gleichzeitig angreifen musste, um durchbrechen zu können. Wenn jedoch einer oder mehrere der Nachbarn einem gemeinsamen Angriff zustimmen, es aber während des eigentlichen Angriffs zu Verrat kommt, kann es sein, dass die Eindringlinge alle vernichtet werden.
Daher handelten beide Parteien vorsichtig und wagten es nicht, ihren Nachbarn so leicht zu vertrauen. Das war das Problem der byzantinischen Generäle.

( Bild aus Wikipedia )

Im byzantinischen Problem geht es für die Nachbarländer vor allem darum, wie alle Generäle einen Konsens zum Angriff auf das Byzantinische Reich erzielen können. Die Kernbeschreibung des Problems der byzantinischen Generäle besteht darin, dass es zwar Verräter in der Armee geben kann, der Angriff jedoch konsequent sein muss. Dies wurde auf den Computerbereich ausgeweitet und zu einer Fehlertoleranztheorie weiterentwickelt:

Wenn eine Gruppe von Generälen ein bestimmtes Ziel erreichen will, etwa gemeinsam anzugreifen oder sich gemeinsam zurückzuziehen, wird alleiniges Handeln nicht funktionieren. Sie müssen zusammenarbeiten und einen Konsens erzielen; aufgrund der Existenz von Verrätern wissen die Generäle nicht, wie das geht Konsens erreichen.

Tatsächlich wurden das Problem der byzantinischen Generäle sowie der Paxos-Algorithmus und die logische Uhr, die wir zuvor erwähnt haben, alle von Leslie Lamport vorgeschlagen.

Lamport kann als einer der Begründer verteilter Systeme bezeichnet werden. Aufgrund einer Reihe von Beiträgen im verteilten Bereich gewann Lamport 2013 den Turing Award.

Welcher Zusammenhang besteht zwischen dem Problem der byzantinischen Generäle und den Buchhaltungsrechten, über die wir heute sprechen werden?

Beim Besitz von Rechnungslegungsrechten liegt der Schlüssel darin, wie man die Entstehung eines böswilligen Konsenses, also einer falschen Rechnungslegung, vermeiden kann, ähnlich wie beim Umgang mit Verrätern unter byzantinischen Generälen.

Bitcoin ist die am weitesten verbreitete Anwendung der Blockchain-Technologie. Wie ermittelt man die Buchhaltungsrechte in Bitcoin? Die Antwort ist der POW-Mechanismus. Als nächstes analysieren wir den POW-Workload-Proof-Mechanismus.

Arbeitsnachweis des Kriegsgefangenen

PoW (Proof of Work) gilt als die sicherste byzantinische Lösung, die verifiziert wurde. Sie wurde zunächst zur Spam-Abwehr eingesetzt. Ein typisches Beispiel ist das Anti-Spam-System von Google Mailbox.

Google Mailbox erfordert, dass jeder Absender, der eine E-Mail an den Google-Server sendet, zunächst eine bestimmte Berechnungsarbeit abschließen muss, was zu einer kurzen Verzögerung führt, z. B. einer Verzögerung von 1 Sekunde. Wenn es sich um einen normalen E-Mail-Versand handelt, beträgt diese Zeit akzeptabel; wenn es sich um einen Werbe-E-Mail-Absender handelt, da ein großer Aufwand an Sendearbeit erforderlich ist und diese wertlose Berechnung nicht tolerierbar ist.

Der Ursprung des Bergbaus

Mining ist ein visueller Ausdruck im Bitcoin-System. Woher kommt also das Mining?

Beim Bitcoin-Mining handelt es sich um den Prozess der Bestätigung von Transaktionen, die innerhalb eines bestimmten Zeitraums im Bitcoin-System stattfinden, und deren Aufzeichnung auf der Blockchain, um neue Blöcke zu bilden. Aufgrund der Notwendigkeit, um Buchhaltungsrechte zu konkurrieren, werden Computer zur Berechnung von Hash-Werten und verwendet Lösen Sie Probleme durch zufällige Kollisionen. Dieser Prozess ist Mining.

Mit anderen Worten: Das Bitcoin-System stellt ein mathematisches Problem dar und jeder beeilt sich, die optimale Lösung zu finden. Mining ist der Buchhaltungsprozess, die Miner sind die Buchhalter und die Blockchain ist das Hauptbuch.

Die POW-Implementierung von Bitcoin

Die POW-Implementierung in Bitcoin besteht darin, durch Berechnung einen Wert (Nonce) zu erraten, um das angegebene Hash-Problem zu lösen. Das Folgende ist die Blockstruktur von Bitcoin. Sie können sehen, dass der Blockheader ein Zufallszahlenfeld hat, das den Nonce-Wert darstellt:

Satoshi Nakamoto hat im Bitcoin-System eine Frage eingerichtet, um den Hash des Blockheaders zu berechnen, indem er den Wert der Nonce ständig anpasst. Er muss einen Nonce-Wert finden, damit der berechnete Hash-Wert einem bestimmten festen Wert entspricht.

Die spezifische Hash-Methode verwendet im Allgemeinen den SHA256-Algorithmus. Sie können dieses kleine Tool zum Testen überprüfen https://tool.oschina.net/encrypt?type=2 .

Vereinfachen wir den Berechnungsprozess. Nehmen wir an, dass der im 100. Block angegebene Blockwert die folgende Zeichenfolge ist. Der Knoten, der diese Zeichenfolge zuerst berechnet, kann Bitcoins erhalten:

f7684590e9c732fb3cf4bf0b8e0f5ea9511e8bbaacb589892634ae7938e5700cDa
der Hash-Algorithmus ein irreversibler Algorithmus ist, kann der Originaltext nicht aus dem spezifischen Hash-Wert abgeleitet werden. Auf diese Weise kann jeder Knoten nur eine erschöpfende Methode verwenden, dh verschiedene Zeichenfolgen auswählen, z. B. die Anfangszeichen a, b, c , 1, 2, 3,..., versuche es weiter.

Das Bitcoin-System selbst passt den Schwierigkeitsgrad an und steuert die Zeit zur Lösung des Problems. Im Allgemeinen wird etwa alle 10 Minuten ein Block ausgegraben. Während dieser 10 Minuten kann der Computer nur weiter berechnen und verschiedene Zeichenfolgen ausprobieren.

Dieser Prozess testet tatsächlich die Serverleistung jedes Knotens, also die Rechenleistung. Wenn Sie über eine sehr leistungsstarke Rechenleistung und Zehntausende von Servern verfügen, können Sie schnell den Nonce-Wert erhalten, der die richtige Antwort darstellt: lagou, und der entsprechende Hash-Wert stimmt mit den Anforderungen der Frage überein.

Als nächstes können Sie den Nonce-Wert in die Struktur einfügen und über das P2P-Netzwerk senden. Nachdem andere Systemknoten ihn erhalten haben, stellen sie fest, dass der Nonce-Wert legal ist und die Anforderungen erfüllen kann, und betrachten Ihr Mining als erfolgreich.

Als Ergebnis der Lösung des Problems erhalten Sie die dem System entsprechende Bitcoin-Belohnung sowie die Bearbeitungsgebühren, die durch alle Transaktionen in diesem Block entstehen. Wenn andere Knoten feststellen, dass jemand sie bereits berechnet hat, geben sie die Berechnung auf und öffnen dann das nächste Blockthema, um den Nonce-Wert des nächsten Blockheaders zu finden.

Als größtes implementiertes Blockchain-System wurden die Blockinformationen von Bitcoin dynamisch generiert. Der folgende Screenshot zeigt die neuesten Blockinformationen von Bitcoin. Die Blockinformationen stammen von https://www.blockchain.com/ . Sie können auch auf den Link klicken, um die neueste Blockhöhe anzuzeigen.

Blockchain-Forks und 51 %-Angriffe

Das Hash-Problem ist irreversibel und beruht hauptsächlich auf Brute-Force-Berechnungen. Wer mehr Rechenleistung hat, hat eine höhere Wahrscheinlichkeit, das Problem zuerst zu lösen. Wenn Sie mehr als die Hälfte der Rechenleistung des gesamten Netzwerks kontrollieren, können Sie die Richtung der Kette im Netzwerk steuern. Dies ist auch der Ursprung des sogenannten 51%-Angriffs.

Da jeder Knoten in der Blockchain, wie bereits erwähnt, an der Abrechnung teilnehmen kann, kann es im System zu Kettenverzweigungen (Fork) kommen, und schließlich wird eine Kette zur längsten Kette.

In der realen Gesellschaft, in der die Interessen aller Beteiligten groß sind, ist das Spiel zwischen Rechenleistung jedoch oft nicht so einfach. Am Beispiel von Bitcoin wurde es in BCH (Bitcoin Cash) und BTG (Bitcoin Gold) gespalten. ) und andere gegabelte Münzen.

Vor- und Nachteile des POW-Mechanismus

POW hat viele Vorteile. POW ist das erste Unternehmen, das einen dezentralen Konsensalgorithmus vollständig implementiert, und Knoten können frei ein- und austreten, was die Implementierung erleichtert. Aufgrund der hohen Anforderungen an die Rechenleistung sind auch die Kosten für die Zerstörung des Systems enorm.

Auch die Mängel des POW-Mechanismus liegen auf der Hand. Der größte Nachteil ist die Energieverschwendung. Riesige Rechenleistung wird durch endlose Mining-Aktivitäten verschwendet und generiert an sich keinen Wert.

Das ist auch etwas, was viele Leute an der Blockchain kritisieren. Sie verschwendet viel Energie und gewinnt nur eine Menge wertlosen Datenspeichers. Aus einem anderen Blickwinkel betrachtet zeigt dies auch, dass es in einem dezentralen Szenario wichtig ist, Vertrauen aufzubauen. Wie schwer.

Andererseits ist auch zu erkennen, dass in den Bergen im Südwesten eine große Anzahl digitaler Währungsminen gebaut werden, die lokale billige Stromressourcen nutzen oder direkt mit Kraftwerken gebaut werden.

Andere Konsensmethoden

Neben dem POW-Mechanismus gibt es noch andere Konsensmethoden, typischerweise POS und DPOS.

POS-Einsatznachweis

POS (Proof of Stake) ähnelt dem Mechanismus einer Aktionärsversammlung im wirklichen Leben. Je mehr Anteile die Leute haben, desto mehr Stimmrechte haben sie und desto einfacher ist es, Buchhaltungsrechte zu erlangen.

POS verwendet eine Einzahlung, um darauf zu wetten, dass ein legaler Block zu einem neuen Block wird, und die Einnahmen sind die Zinsen auf das Hypothekenkapital und die Gebühren für Transaktionsdienstleistungen. Je mehr Einzahlungsnachweise vorgelegt werden, desto größer ist die Wahrscheinlichkeit, Buchführungsrechte zu erhalten, und desto größer ist die Wahrscheinlichkeit, dass legitime Buchhalter Gewinne erzielen können. Die berühmte digitale Währung ETH (Ethereum) nutzt den POS-Mechanismus im Konsensalgorithmus.

DPOS delegierter Nachweis des Einsatzes

Der typische Vertreter, der den DPOS-Mechanismus (Delegated Proof of Stake, Delegated Proof of Stake) anwendet, ist EOS. Wenn POS einer Aktionärsversammlung ähnelt, bei der verglichen wird, wer die meisten Aktien hält, dann ähnelt DPOS dem Vorstandssystem des Unternehmens . Im Rahmen des DPOS-Konsenssystems wird eine bestimmte Anzahl von Vertretern ausgewählt, die für die Erstellung von Blöcken verantwortlich sind.

Zusammenfassen

Man kann sagen, dass Blockchain eine der am weitesten verbreiteten Anwendungen verteilter Systeme ist. Heute stellen wir den Ursprung des Blockchain-Konsensproblems, das Problem der byzantinischen Generäle und den typischen POW-Lösungsmechanismus vor.

Blockchain ist ein sehr breites Thema. Nehmen Sie als Beispiel das Problem der byzantinischen Generäle. Vor der Blockchain gab es zwei Lösungen: mündliche Vereinbarung und schriftliche Vereinbarung. Der Inhalt der Kolumne befasst sich hauptsächlich mit verteilten Systemen. In den folgenden Kapiteln wird die Diskussion von Blockchain-bezogenen Themen nicht fortgesetzt. Wenn Sie mehr über Blockchain-Technologie und -Anwendungen erfahren möchten, finden Sie unten einige relevante Informationen:

Supongo que te gusta

Origin blog.csdn.net/g_z_q_/article/details/129151620
Recomendado
Clasificación