Wäre es möglich, einen funktionierenden Bitcoin-Fork zu erstellen, der jede Millisekunde einen Transaktionsblock bestätigt?

Wie schnell könnten Sie möglicherweise eine Blockchain wie Bitcoins betreiben? Könnten Blöcke so schnell wie eine Mikrosekunde hinzugefügt werden, während sie immer noch eine funktionale Währung haben?

Antworten (3)

Sie könnten mit so schnellem Block-Mining keine funktionale Bitcoin-ähnliche Fork erstellen. Es gibt einen Kompromiss zwischen der Geschwindigkeit der Blockerstellung und der Konsistenz des Netzwerks. In Bitcoin werden die Blöcke selten genug erstellt, damit sich das gesamte Netzwerk schnell auf die kanonischen Blöcke einigen kann und Transaktionen sich schnell genug ausbreiten können, dass sie dazu neigen, ziemlich schnell in Blöcke aufgenommen zu werden (vorausgesetzt, dass Miner sie nicht aufgrund von niedrig/nein ignorieren Honorare).

Wenn ein Fork, der auf einen Block abzielt, eine Millisekunde generiert, würde dies bedeuten, dass die Netzwerklatenz dazu führen würde, dass Tausende von Blöcken auftreten, bevor Sie überhaupt den ersten sehen können. Bei Bitcoin kommt es aufgrund von Ausbreitungsverzögerungen gelegentlich zu Forks der Blockchain, die aber vom Netzwerk sehr schnell aufgelöst werden. Ein Fork mit Millisekundenblöcken (und einer großen Benutzerbasis) hätte sicherlich Tausende von konkurrierenden Forks zu einem bestimmten Zeitpunkt, und es würde Zehntausende, vielleicht sogar Millionen von Bestätigungen erfordern, bevor klar würde, dass ein Fork dominant ist. (Zu diesem Zeitpunkt würde es Tausende von Gabeln dieser Gabel geben.)

Außerdem hat jeder Block auch ohne Transaktionen eine Mindestgröße an Overhead, sodass die Größe der Blockchain mit einer unverschämten Geschwindigkeit wachsen würde. Das Gleiche würde für die Netzwerkbandbreite gelten: Die Menge an Geschwätz zwischen den Knoten wäre unverschämt: Keiner der Knoten könnte mit der Lautstärke Schritt halten. Vor allem angesichts der Tatsache, dass das Volumen zwischen allen konkurrierenden Forks der Blockchain so viele Duplizierungen aufweisen würde.

Wie Colin Dean betont, hat Litecoin ein 2,5-Minuten-Ziel festgelegt. Daher ist es möglich, die Zielblockerzeugungsgeschwindigkeit zu ändern. Aber jedes Mal, wenn Sie tiefer gehen, werden der Overhead und die Konsistenz schwieriger.

Was ist das theoretische Maximum? Das ist schwer zu sagen, da so viel davon abhängt, wie global verteilt und groß das Netzwerk ist. Meine wilde Vermutung angesichts der aktuellen Technologie: Alles, was viel weniger als eine Minute dauert, hätte viele Gabeln und viel Overhead. Alles, was weniger als ein paar Sekunden dauert, würde mit ziemlicher Sicherheit keinen stabilen Konsens über die Blockchain erzielen.

Und siehe hier für eine theoretische Analyse der Frage und einen Verbesserungsvorschlag.

Vielleicht sind Sie verwirrt darüber, was der Zweck einer Sperre ist und warum mehrere Sperren bestätigt werden müssen, bevor Sie eine Transaktion als gültig betrachten können. Die traditionelle Führung wird wahrscheinlich am besten als angegeben

Eine vollständige Bestätigung erfordert: „Eine Stunde Rechenzeit oder 6 Blöcke, je nachdem, welcher Wert größer ist.“

Das Ziel im Bitcoin-Netzwerk ist es, sicherzustellen, dass jemand mit einem wirklich leistungsstarken Computer dem Rest des Netzwerks nicht schaden kann, indem er doppelte Ausgaben verursacht und vergangene Transaktionen ungültig macht. Das Warten darauf, dass die gesamte Bevölkerung von Bitcoin ihre Computer eine Stunde lang laufen lässt, garantiert ziemlich sicher, dass ein Angreifer Ihre Transaktion nicht rückgängig machen kann.

Warum wurde als Verzögerung zwischen jedem Block 10 Minuten gewählt?

Es wurde gewählt, um die folgenden Ziele in Einklang zu bringen:

  1. Machen Sie die Kettenspaltungen seltener.

  2. Machen Sie die Kettenteilungen handlicher, wenn sie sich teilen.

  3. Bestätigen Sie Transaktionen so schnell wie möglich.

Eine Split-Chain erhöht lediglich die Gesamtzeit, die eine Transaktion zur Bestätigung benötigt (vorausgesetzt, sie befindet sich am Ende der Aufteilung). Wenn es zu häufig zu Kettenspaltungen kommt, nimmt das Vertrauen in das System ab.

Möchten Sie kleinere Blöcke, damit Ihre Bestätigung früher erfolgt?

Das Verkürzen der Bestätigungszeit löst das Problem nicht.

Außerdem, jetzt, da wir ASIC-Miner an Bord haben und Blöcke schneller bestätigt werden, bedeutet das nicht wirklich, dass Ihre Transaktionen zuverlässiger sind, es bedeutet immer noch, dass Sie mehr als 10 Blöcke warten sollten, bevor Sie die Transaktion als „sicher“ betrachten. .

Die Dinge werden sich in Zukunft beruhigen, wenn die Schwierigkeit nicht zu einem neuen Ziel in die Höhe schießt, und an diesem Punkt wird es in Ordnung sein, nur 6 Bestätigungen zu warten (angenommen, 6 Bestätigungen = 1 Stunde).

TL;DR

Sicher, die Auswahl von 10 ist umstritten, aber eine vernünftige Wahl. Aber Ihre Idee, jede Millisekunde einen Block zu erstellen, macht Nr. 1 und Nr. 2 (oben) fast unmöglich zu handhaben. Ganz zu schweigen von der "schwierigen" Auswahl, der Netzwerkausbreitung und dem Mining-Vorgang, um ein Ziel zu erreichen, die alle mindestens 1 Sekunde dauern, um abgeschlossen zu werden.

Ein gültiger vernünftiger Wert liegt im Bereich von 5 bis 15 Minuten.

Litecoin ist eine Alternative zu Bitcoin, die als Feature eine stark reduzierte durchschnittliche Zeit von 2,5 Minuten zwischen Blöcken statt 10 Minuten hat.

Somit ist es möglich, einen Fork des Bitcoin-Protokolls zu erstellen, der die Blockfrequenz beschleunigt.

Es ist jedoch nicht möglich, diese Blockfrequenz innerhalb des kanonischen Bitcoin-Protokolls zu beschleunigen, ohne die Hash-Rate zu beschleunigen. Der Schwierigkeitsfaktor wirkt dieser Beschleunigung jedoch entgegen, sodass sich die Beschleunigung nur für bis zu zwei Wochen lohnen würde, die durchschnittliche Zeit zwischen automatischen Schwierigkeitsanpassungen.