Warum hat Bitcoin keine Checkpoints mehr?

Ich habe gelesen, dass Checkpoints in Bitcoin entfernt wurden, weil sie keinen sinnvollen Angriff verhinderten.

Warum sollte ein regulärer Checkpoint nicht Mehrheitsangriffe verhindern? Wenn beispielsweise alle N Blöcke ein Checkpoint erstellt wird und (zum Beispiel) 3/4 der Hash-Power zustimmen, wäre dies nicht möglich, um dies als Mechanismus zu verwenden, um eine dauerhafte Bestätigung der Transaktionen vor dem Checkpoint zu erstellen? Vorausgesetzt natürlich, dass die Clients nach diesen Prüfpunkten suchen und ihre Aufnahme in die gültige Kette erzwingen würden.

Wenn N groß ist, hilft es nicht viel, da Mehrheitsangriffe sehr schädlich sein können, selbst wenn sie nur ein paar Blöcke zurücksetzen. Wenn N klein ist, hat derjenige, der die Checkpoints setzt, eine unverhältnismäßige Macht bei der Bestimmung, welcher der „richtige“ Zweig der Blockchain ist, was gegen das Ziel der Dezentralisierung verstößt.
Kann zum Zeitpunkt des Checkpoints nicht der rechte Zweig der Blockchain derjenige mit mehr PoW sein?
@confused00 Ja, das wäre es, wenn N sechs Blöcke wäre. Im Falle einer Netzwerkaufspaltung (sagen wir, jemand hat die Seekabel nach Neuseeland durchtrennt), wie sollte dies dann gelöst werden, wenn das Netzwerk wieder verbunden wird?

Antworten (1)

Das Problem ist, dass Sie davon ausgehen, dass ein Mehrheitsangriff ein Angriff ist, der verhindert werden kann. Es ist nicht. Es ist eine grundlegende Aufschlüsselung der Sicherheitsannahmen.

Die Annahme von Proof of Work (PoW) ist, dass die Mehrheit der Hashrate kooperieren und in einer einzigen Kette zusammenlaufen wird, weil dies finanziell am vorteilhaftesten ist. Wenn das nicht mehr der Fall ist, ist PoW kaputt und wir sollten uns einfach etwas anderem zuwenden – nicht versuchen, es zu reparieren.

Sie denken vielleicht, dass das Hinzufügen von Kontrollpunkten hilft, diese Situation zu verbessern, aber bedenken Sie Folgendes:

  • Entweder werden die Checkpoints für alte Blöcke (Wochen oder Monate alt) erstellt, in diesem Fall wird eindeutig nichts verhindert. Eine wochenlange Neuordnung würde die Währung und das Vertrauen in sie restlos zerstören und dadurch nicht verhindert werden.

  • Oder die Checkpoints werden für die letzten Blöcke (Tage oder Stunden vielleicht) erstellt, in diesem Fall können sie tatsächlich beeinflussen, welche Kette unter bestimmten Umständen im Netzwerk akzeptiert wird, aber gleichzeitig ersetzen sie effektiv den PoW-basierten Konsens durch "Entwicklerentscheidung". " Konsens ... etwas, das überhaupt kein komplexes Peer-to-Peer-Protokoll benötigt, da Entwickler effektiv Systeme ausführen müssen, um das System in Schach zu halten.

Also haben Checkpoints entweder eine Wirkung – und ändern die Sicherheitsannahmen in eine uninteressante, oder sie tun es nicht – und sie spielen keine Rolle.

Um Ihre Frage zu beantworten: Der Hauptgrund für das Entfernen von Checkpoints liegt in der Verwirrung, die sie verursachen. Sie lassen die Leute denken, dass sie Teil des Sicherheitsmodells des Systems sind (wie Ihre Frage zeigt). Das ist nicht der Fall. Es wurde als Notwendigkeit eingeführt, um eine Optimierung (Überspringen der Skriptvalidierung) und einen unabhängigen Denial-of-Service-Angriff (die Festplatte eines neuen Knotens, die während der Synchronisierung mit Blöcken mit geringem Schwierigkeitsgrad gefüllt wird) zu implementieren. Seit einigen Änderungen im P2P-Protokoll (Header-basierte Synchronisation) brauchen wir keine Checkpoints mehr, um diese Dinge sicher zu erledigen.

Diese Antwort verfehlt den zeitlichen Aspekt von Angriffen. Die meisten Münzen außer Bitcoin können 51 % haben
@ user239558 Dann sind sie kaputt.
Es gibt eine Art von Mehrheitsangriff, die Sie nicht erwähnt haben und die Checkpoints sauber lösen. Die Konstruktion einer längeren, aber ungültigen Kette. Wenn ein Angreifer eine Kette mit nur einer ungültigen Transaktion erstellt, stimmt der Rest der Kette für immer mit dem Bitcoin-Konsens überein. Checkpoints ersparen neuen Knoten die Validierung beider Ketten bis zurück zu diesem ungültigen Block. Der Angriff ist einer, der neue Knoten stören und sie am Eintritt in das Netzwerk verzögern würde, möglicherweise um eine lange Zeit. Wir können nicht davon ausgehen, dass Bitcoin immer die meiste Hashpower haben wird.
@BTI verstehe nicht. Wenn es eine andere Mehrheitskette gibt (was meiner Meinung nach die Minderheitskette von Natur aus unsicher macht, aber ok), wird der Fork beim ersten Block stattfinden, der für Bitcoin ungültig ist. Das ist höchstens ein Block, der validiert und abgelehnt werden muss. Seine Nachfolger werden nicht einmal heruntergeladen.
Sie haben Recht, dass eine weitere Mehrheitskette eine Minderheitskette gefährdet. Da sehe ich deinen Punkt. Sie sagten jedoch, "es gibt höchstens einen Block, der validiert werden muss" - aber woher wissen Sie, welcher Block das ist? Ich nehme an ... Sie könnten andere Knoten um Hinweise bitten, was Ihnen wahrscheinlich dabei helfen wird, herauszufinden, wo die Aufteilung stattfindet. Ich denke, das löst das Problem ausreichend. Danke fürs Nachmachen! Ich muss darüber nachdenken und wahrscheinlich meine Position revidieren.
Sie validieren Blöcke einzeln, vom übergeordneten zum untergeordneten Element. Wenn Sie an irgendeiner Stelle einen ungültigen Block finden, markieren Sie ihn und alle seine Nachkommen als ungültig. Wenn Sie den Block, der die Gabelung verursacht, nie bemerken, bedeutet das einfach, dass Sie die Gabelung nicht gesehen haben.
"Wenn das nicht mehr der Fall ist, ist PoW kaputt und wir sollten einfach zu etwas anderem übergehen." Ich denke, die Funktion von PoW würde beeinträchtigt , nicht gebrochen. Gezwungen zu sein, zwischen zwei alternativen Ketten (oder einer kleinen Anzahl von ihnen) mit einer beträchtlichen Menge an PoW zu wählen, ermöglicht immer noch eine effektivere Konvergenz zum Konsens, als überhaupt kein ehrliches Signal zur Koordinierung zu haben.