Blöcke, Skalierung und Segwit-Frage

Etwas neu bei Bitcoin, ich versuche, die Technologie zu verstehen ... Nach meinem Verständnis gehen alle Transaktionen in einen Block, alle 10 Minuten wird der Block abgebaut und alle darin enthaltenen Transaktionen werden bestätigt. Mit jedem bestätigten Block (also alle 10 Minuten) werden die älteren Blöcke schwieriger zu hacken. Der Blockchain-Algorithmus weiß, dass er seine eigene Schwierigkeit so anpassen muss, dass alle 10 Minuten ein Block abgebaut wird. Ist das oben Richtige?

Wenn ja, wie kommt es dann, dass das Skalierungsproblem die Blockgröße und nicht die Blockfrequenz ist? Wenn sich das Netzwerk selbst an die Rechenleistung anpassen kann, warum nicht jede Minute einen Block auflösen, während die mit jedem Block zu produzierende BTC-Menge verringert und die Blockgröße bei 1 MB gehalten wird?

Vielen Dank

Antworten (1)

Sie haben Recht, dass eine Änderung der Blockgröße oder der Blockfrequenz erfolgreich die Bestätigung von mehr Transaktionen pro Zeiteinheit ermöglichen würde.

Eine Änderung der Blockfrequenz bedeutet jedoch eine Änderung der Schwierigkeitsanpassungsformel. Dies erfordert eine Hard Fork, genau wie die Änderung der maximalen Blockgröße. In beiden Fällen betrachten Netzwerkknoten, die die neuen Regeln nicht übernehmen, die neuen Blöcke als ungültig, und wenn nicht alle der Übernahme der neuen Regeln zustimmen, wird die Währung effektiv in zwei Teile geteilt.

Wenn Sie sowieso einen Hard Fork haben, hat das Ändern der Blockgröße etwas weniger technische Fallstricke als das Ändern der Schwierigkeitsanpassungsformel. Beispielsweise führt eine Erhöhung der Frequenz zu einer höheren Rate an verwaisten Blöcken, bei denen zwei Miner jeweils fast gleichzeitig gültige Blöcke finden und keiner auf dem anderen aufbaut.

Außerdem bedeutet die Erhöhung der Blockfrequenz, dass „Bestätigungen“ nicht mehr dasselbe bedeuten würden wie früher. Wir denken an „6 Bestätigungen“ als Benchmark für eine Transaktion, die extrem schwer rückgängig zu machen wäre, aber was das wirklich bedeutet, sind „60 Minuten Mining-Zeit“. Wenn Sie die Frequenz so anpassen würden, dass die durchschnittliche Blockzeit eine Minute beträgt, müssten jetzt alle „60 Bestätigungen“ als Maßstab für gleichwertige Sicherheit verwenden, und alle Software, die Bestätigungen zählte, müsste aktualisiert werden. (Denken Sie zum Beispiel an Börsen, die dem Konto eines Benutzers keine Gutschrift erstatten möchten, bis ihre Einzahlungen ausreichend bestätigt sind). Jede Software, die nicht aktualisiert wird, verliert 90 % ihrer Sicherheit gegen Doppelausgaben-Angriffe. Dies wäre also störender als das Ändern der Blockgröße.

Hier ist ein Beispiel. Die aktuelle Bitcoin-Schwierigkeit liegt bei etwa 6,8e11. Das bedeutet, dass durchschnittlich 6,8e11 * 2^32 = 2,9e21 Hash-Operationen benötigt werden, um einen Block abzubauen. Angenommen, Sie haben eine Transaktion in Blocknummer 400000 in der Hauptkette und sie hat 6 Bestätigungen, also befinden wir uns jetzt auf Blockhöhe 400005. Um doppelte Ausgaben zu tätigen, müsste jemand eine widersprüchliche Transaktion in einem widersprüchlichen Block erstellen, dessen Elternteil war Block 399999, also würde der neue Block auch auf der Höhe 400000 liegen. Dann müssen sie 5 weitere Blöcke auf ihrem neuen Block abbauen, damit ihre neue Kette mindestens so lang ist wie die bestehende, und hoffen, dass zukünftige Miner wird auf ihrer neuen Kette statt auf der alten abbauen. Dies erfordert also das Mining von 6 Blöcken = 6 * 2,9e21 = 1,7e22 Hash-Operationen.

Stellen Sie sich jetzt vor, Sie möchten, dass die durchschnittliche Blockzeit stattdessen 1 Minute beträgt, also reduzieren Sie die Schwierigkeit auf 6,8e10. Es braucht jetzt nur noch 2.9e20 Hashes, um einen Block abzubauen. Eine Transaktion mit 6 Bestätigungen unter diesem neuen Schema benötigt also nur 1,7e21 Hashes zum Umkehren. Wenn Sie die gleiche Sicherheit wie zuvor wünschen, dh 1.7e22 Hashes zum Umkehren benötigen, müssen Sie 60 Bestätigungen abwarten.

Danke, ich verstehe Ihre Punkte zu Hard Fork und verwaisten Blöcken, aber beim letzten bin ich mir nicht ganz sicher. Warum sollte die Sicherheit 60 Minuten und nicht sechs Hashes betragen?
@EliahuHorwitz: Ich habe ein Beispiel hinzugefügt, das helfen kann.
Vielen Dank! Gibt es neben Segwit und Sharding noch andere Skalierungsvorschläge? Ist das bei IOTA implementierte Tangle-Netzwerk gut?
Bitte als neue Frage stellen (aber zuerst nach bestehenden Fragen suchen).