Fragen zur Blockgröße und zur Difficulty

Hallo, ich habe vor kurzem meinen ersten Kauf mit Bitcoin gemacht ( :smiley: ). Nun musste ich ca. eine Stunde (6 Bestätigungen) abwarten, bis mein Kauf als bezahlt verbucht war. Ich verstehe, dass es wichtig ist den Speicherbedarf der Blockchain möglichst gering zu halten. Aber warum halbiert man dann nicht einfach die Blocksize und lässt alle 5 Minuten einen Block finden? Dann bleibt der Speicherbedarf ja gleich aber Zahlungen werden schneller bestätigt? Oder würde man dann halt sagen, dass man 12 Bestätigungen abwarten muss, da ja der Aufwand für die 12 Blöcke im 5-Minuten-Intervall der gleiche wie für die 6 Blöcke im 10-Minuten-Intervall ist? Nichtsdestotrotz wäre die Transaktion schneller in der Blockchain ohne den Speicherbedarf zu erhöhen. Warum nimmt man so eine „low hanging fruit“ nicht einfach mit?

Meine Zweite Frage richtet sich an das Difficulty-Adjustment. Dort wird ja die difficulty alle 2048 Blöcke anhand der benötigten Zeit so angepasst, dass die nächsten 2048 Blöcke im Schnitt 10 Minuten brauchen sollten. Aber woher weiß das Bitcoin-Netzwerk denn wie spät es ist? Da wird ja sicherlich keine Abfrage zu time.microsoft.com gestellt oder? :smiley:

Nein, deine Wallet zeigt dir das nur so an. Mit der ersten Bestätigung ist deine Transaktion abgeschlossen und du kannst dich zurück lehnen. „In der Blockchain“ ist deine Transaktion mit der ersten Bestätigung, und dieser Block ist auch der einzige Ort an dem deine Transaktion überhaupt auftaucht. Die folgenden Blöcke haben gar nichts mehr mit deiner Transaktion zu tun, außer dass sie die Sicherheit bzw. Endgültigkeit erhöhen.

Man wartet, vor allem bei großen Beträgen, eben gerne ein paar weitere Blöcke ab, da es dann zunehmend unwahrscheinlicher und irgendwann praktisch unmöglich wird dass es zu einer Fork kommt die deine Transaktion nicht aufnimmt. Die 6 hat sich hier einfach über die Jahre durchgesetzt, ist aber nur ein Richtwert.

Das hat Satoshi im Whitepaper auch angesprochen und mit Zahlen untermauert:

Du siehst dass hier im Beispiel die Wahrscheinlichkeit für einen erfolgreichen Angriff exponentiell abnimmt. Zahlst du nur einen Kaffee wartest du auf weniger Bestätigungen als wenn du gerade ein Haus verkauft hast. Das ist aber alles individuelle Präferenz.

Nein, bleibt er nicht wenn plötzlich doppelt so oft ein neuer Block dazu kommt. Die Anforderungen eine Full Node zu betreiben steigen (mehr Speicherbedarf) und auch die Synchronisation im Netzwerk wird mit sinkender Blockzeit zunehmend schwieriger.

Bitcoin kann durch Blockgröße und Blockzeit nicht skalieren, genauso wenig wie eine Autobahn mit einer zusätzlichen Überholspur nachhaltig skalieren kann. Du bist dann vielleicht etwas schneller aber löst keine grundlegenden Probleme.

Wenn es um die Frage geht wie viele Bestätigungen man zur Sicherheit abwarten sollte, müsste man den alten Wert verdoppeln, das ist richtig. Um die 5 Minuten zu erreichen müsste die Schwierigkeit entsprechend gesenkt werden. Es gibt dazu aber wie gesagt keinen guten Grund.

Du hast auch selbst schon richtig erkannt dass die 10 Minuten kein absoluter Wert ist der irgendwo festgelegt ist sondern nur durchschnittlich über die Schwierigkeit angepeilt wird. Theoretisch kann eine Transaktion innerhalb einer Sekunde bestätigt werden, wenn halt genau nach deiner Veröffentlichung ein Block gefunden wird (und deine Gebühr gepasst hat).

Siehe diesen Beitrag (und folgende):

4 „Gefällt mir“

Vielen Dank für deine ausführliche Antwort. Das hilft mir weiter.

Das verstehe ich nicht. Ich hatte gemeint, dass man die Blockgröße halbiert und die Blockzeit von ca. 10min auf ca. 5min halbiert. Dann werden ja genausoviele Transaktionen in die Blöcke hinzugefügt und der Speicherbedarf bleibt in etwa gleich, oder? Dann hätte man bei gleichem Speicherbedarf den zusätzlichen Vorteil, dass eine Transaktion im Durchschnitt doppelt so schnell in die Blockchain hinzugefügt wird.

Das verstehe ich. Du meinst damit also, dass es bei einem 5 Minuten Intervall schwieriger wäre das gesamte Netzwerk und auch Teilnehmer mit einer langsamen Internetverbindung zu synchronisieren, oder?

Das wäre ein Schritt nach vorne und einer zurück, damit erreichst du was TPS angeht gar nichts.

Deine Transaktion wird dann nicht automatisch schneller bestätigt, denn die Blöcke sind kleiner und du musst entsprechend länger warten.

1 „Gefällt mir“

Die TPS werden nicht erhöht, das stimmt. Aber man hätte die Möglichkeit (bei entsprechender Fee) mit seiner Transaktion doppelt so schnell in die Blockchain zu kommen. Aber warscheinlich ist das die erschwerte Synchronisation im Netzwerk nicht wert.

Das stimmt, aber die Frage ist halt ob das überhaupt nötig ist. Eine Bitcoin on-chain Transaktion die innerhalb von wenigen Minuten bestätigt sein muss ist wahrscheinlich im Lightning Netzwerk besser aufgehoben.

Außerdem hast du so oder so nie eine Garantie da halt alles von Wahrscheinlichkeiten abhängig ist. Es kann im schlimmsten Fall sein dass du eine ganze Stunde trotz niedrigerer Difficulty warten musst.

Ganz allgemein nochmal zusammengefasst spricht gegen eine geringere Blockzeit:

  • Die Synchronisierung im Netzwerk. Blöcke brauchen einige Sekunden bis sogar Minuten um das komplette Netzwerk zu erreichen.

    Je niedriger die Blockzeit, desto höher der Wettbewerbsvorteil vom Miner der den Block gefunden hat (und anderen Minern die direkt mit diesem verbunden sind), da der Zeitvorteil zunehmend wichtiger wird.

  • Niedrigere Schwierigkeit bedeutet auch automatisch eine höhere Wahrscheinlichkeiten für Forks. Das macht Transaktionen mit wenigen Bestätigungen auch entsprechend unzuverlässiger und widerspricht damit der ursprünglichen Motivation komplett.

    Du musst dann auf doppelt so viele Bestätigungen warten um das gleiche Niveau an Sicherheit zu erhalten und dein eigentlich erhoffter Zeitvorteil geht verloren.

  • Die Inflation neuer Bitcoin wird beschleunigt. Damit muss das Netzwerk bzw. die Miner zu einem früheren Zeitpunkt dazu in der Lage sein sich komplett durch Transaktionsgebühren über Wasser zu halten.

    Wenn dann die Nachfrage noch nicht hoch genug ist gefährdet das die Sicherheit. Da werden dann diese Diskussionen relevant:

  • Trifft bei deinem Beispiel nicht zu, aber der Vollständigkeit halber: Bei gleich bleibender Blockgröße erhöhen sich die Anforderungen um eine Node zu betreiben durch die schneller wachsende Timechain und damit höheren Speicherbedarf.

  • Das verringern der Blockzeit wäre eine Regelausweitung und es bräuchte eine Hard Fork.

Ich will damit jetzt aber nicht sagen dass die aktuellen 10 Minuten der perfekte goldene Wert ist, den man auf gar keinen Fall in Frage stellen darf. Man kann da durchaus drüber diskutieren! :slight_smile:

1 „Gefällt mir“