Warum wird der „klassische“ Multi-Paxos Byzantine Consensus nicht für öffentliche Blockchains verwendet?

Jede Lösung für das Problem des byzantinischen Generals kann als Konsensmethode verwendet werden, auf der ein verteiltes Hauptbuch basiert.

Warum hat sich Satoshi Nakamoto dann für den superteuren (in Strom- und CPU-Zyklen) Proof-Of-Work entschieden?

Mir fallen folgende Gründe ein:

  • Proof of Work braucht Zeit, was bedeutet, dass Blöcke Zeit brauchen. (Aber heutzutage ist das eigentlich ein Nachteil?)
  • Miner werden vom PoW ausgezahlt. (Aber könnte das nicht auch in einer Multi-Paxos-Umgebung funktionieren, in der im Grunde alle Miner für die nächste Runde Anführer werden möchten?)
  • Eine Proof-of-Work-Kette funktioniert immer noch, wenn sich das Netzwerknetz in zwei Teile aufteilt. Dadurch werden separate Blöcke in jeder Hälfte des Netzwerks erstellt, was tatsächlich ein Problem darstellt, wenn die beiden Hälften wieder verbunden werden (weil dann eine der beiden Ketten verworfen wird, was, wenn der Netzspalt mehrere Minuten dauerte, bevor er geheilt wurde, bedeutet, dass Menschen und externe Systeme könnten auf der Grundlage ihrer jetzt ungültigen Guthaben gehandelt haben.)

Diese Gründe sind eindeutig nicht gut genug. Welche wirklichen Gründe gibt es also, Proof-of-Work über zB Multi-Paxos oder eine andere „klassische“ Lösung für das Problem der byzantinischen Generäle zu verwenden?

Ist das Problem der byzantinischen Generäle nicht unlösbar? en.wikipedia.org/wiki/Two_Generals%27_Problem
@croraf Deshalb behaupten alle BFT-Systeme, einschließlich Bitcoin, letztendlich konsistent zu sein. Das heißt: Solange eine richtige Nachricht in sehr ferner Zukunft zwischen Knoten ankommt, wird sie konsistent sein. Sie sind daher nur Lösungen für diese eingeschränkte Version des Problems. Die allgemeine Version erweist sich tatsächlich als unlösbar.
Bitcoin ist nicht einmal schlussendlich konsistent, sondern nur probabilistisch konsistent (die Wahrscheinlichkeit, dass ein bestimmter Zustand endgültig ist, nähert sich exponentiell 1, erreicht ihn aber nie).

Antworten (3)

Nakamoto Consensus hat einige Eigenschaften, die BFT-Algorithmen überlegen sind. (Es hat auch einige Eigenschaften, die minderwertig sind, aber das ist eine andere Geschichte).

Erstens gehen BFT-Algorithmen davon aus, dass eine zentrale Autorität auswählt, wer die Teilnehmer sind. NC hingegen erlaubt es jedem, zu versuchen, die nächste Runde zu gewinnen.

Zweitens erfordern BFT-Algorithmen im Allgemeinen, dass 2/3 + 1 (z. B. 67 %) der Teilnehmer ehrlich sind. NC setzt eine untere Schwelle von 1/2 + 1 (z. B. 51 %). Das liegt daran, dass das PoW von NC verhindert, dass ein Knoten zwei Nachrichten gleichzeitig rundsendet.

Schließlich hat NC die interessante Eigenschaft, dass in dem Moment, in dem ein Miner „gewinnt“, er auch gleichzeitig die Transaktionen auswählt, die er in den Block aufnehmen wird. Dies bedeutet, dass es für einen Angreifer kein Zeitfenster gibt, um zu versuchen, den gewinnenden Miner zu beeinflussen, damit er gegen die Regeln verstößt.

Beachten Sie, dass Paxos kein BFT-Algorithmus ist. Paxos löst Stop-Fail-Fehler. Das Schlimmste, was ein Knoten tun kann, ist aufhören zu arbeiten. Paxos löst keine "byzantinischen" Fehler, bei denen ein Knoten versuchen kann, zwei verschiedene Dinge zu sagen.

Konsensteilnehmer sind nicht im Voraus bekannt, sodass Sie nicht wissen, auf wen Sie hören und wen Sie ignorieren sollen. Auch Identitäten sind in Bitcoin extrem schwach (Miner haben überhaupt keine Identitäten, Benutzer normalerweise nur ein billiges Schlüsselpaar), so dass Sybil-Angriffe ( https://en.wikipedia.org/wiki/Sybil_attack ) billig sind.

Proof-of-Work schafft eine Beziehung zwischen der Fähigkeit eines Miners, darüber abzustimmen, was der nächste Block sein soll, und realen Kosten (Stromkosten). Sie können Proof-of-Work-Ergebnisse nicht fälschen, also können Sie das Netzwerk nicht fälschen, indem Sie vorgeben, Arbeiten zu erledigen, die Sie nicht tatsächlich ausgeführt haben.

Wenn es keine Kosten für den Betrieb eines „Mining-Knotens“ im Netzwerk gäbe, was würde dann passieren, wenn ein ganzes Amazon-Serverlager mit Knoten dem Netzwerk beitritt? Sie brauchen eine Methode, um sich gegen Sybil/Ddos-Angriffe zu verteidigen.

Um deine Punkte zu beantworten:

  • sich Zeit zu nehmen ist wichtig, es bedeutet, dass Miner daran arbeiten, den nächsten Block zu lösen. Ihre Investition ist sehr eng mit der Netzwerksicherheit verbunden. Mehr Investition = mehr Hashpower = schwieriger die Historie zu ändern = mehr Sicherheit.
  • Ich denke, der Anführer in einer Multi-Paxos-Umgebung könnte so etwas wie eine Blockbelohnung erhalten
  • Das ist wahr, es kommt manchmal vor und führt zu einem „verwaisten Block“. In Bezug auf Ihren ersten Punkt führen kürzere Blockzeiten tatsächlich zu höheren Waisenblockraten, da eine höhere Wahrscheinlichkeit besteht, dass zwei Miner ihre eigenen gültigen Blöcke innerhalb einer kurzen Zeitspanne voneinander finden.

In Bezug auf Paxos sagt das, was ich über Multi-Paxos lese, dass einem Leader-Knoten vertraut werden muss, also scheint es, dass in diesen Systemen ein gewisses Maß an Vertrauen erforderlich ist. Paxos-Systeme halten auch einen Zustand, während die Bitcoin-Blockchain zustandslos ist, das ist also auch ein Unterschied in den Sicherheits-/Fehlermodi.

Bitte bearbeiten Sie keinen Spam, um die Links zu entfernen, wie Sie es in diesem Beitrag getan haben . Dies erschwert den angemessenen Umgang mit dem Spam-Post und führt dazu, dass der Spam länger auf der Website vorhanden ist, und gibt dem Spammer die Möglichkeit, die Bearbeitung rückgängig zu machen, um alle Spam-Flags zu entfernen, die auf die bearbeitete Version gesetzt wurden (was sie sind wahrscheinlich tun, nur weil Sie den Spam-Inhalt entfernt haben). Siehe: Sollen Spam-Posts bearbeitet werden? [Bitte pingen Sie mich an ( @Makyen), sobald Sie dies gelesen haben, damit ich es löschen kann, da es nichts mit Ihrer Antwort hier zu tun hat.]