Warum wurde als Zielblockzeit 10 Minuten gewählt?

Laut Wiki wurden 10 Minuten als "Kompromiss" gewählt.

Warum gerade zehn Minuten? Es ist ein von Satoshi gewählter Kompromiss zwischen der Ausbreitungszeit neuer Blöcke in großen Netzwerken und der Menge an Arbeit, die aufgrund von Chain-Splits verschwendet wird.

Im ursprünglichen Satoshi-Papier werden jedoch nur 10 Minuten zum Zwecke der Berechnung des Speicherplatzbedarfs angenommen.

Ein Block-Header ohne Transaktionen wäre etwa 80 Bytes groß. Wenn wir davon ausgehen, dass Blöcke alle 10 Minuten generiert werden, sind 80 Bytes * 6 * 24 * 365 = 4,2 MB pro Jahr.

Gibt es an anderer Stelle eine Diskussion, die erklärt, wie die 10-Minuten-Blockzeit zustande kam?

Ich denke, wenn sich die 10-Minuten-Blockanforderung aus irgendeinem Grund als problematisch erweist und die meisten Miner und Benutzer zustimmen, kann diese in Zukunft gesenkt werden.
Mike Hearn erklärte mir einmal, dass Satoshi die Blockausbreitungszeit auf 1 Minute schätzte und 10-Minuten-Blockintervalle wählte, weil 10 % der Mining-Arbeit „verschwendet“ werden. Derzeit ist die Blocklaufzeit jedoch viel, viel schneller.
@pinhead Was genau meinst du mit Verschwendung von 10% der Mining-Arbeit?
@FivePoints in diesem Zusammenhang meinen wir, dass 10 % der abgebauten Blöcke gegen einen anderen Block, der fast zur gleichen Zeit abgebaut wird, "das Rennen verlieren" und veraltet sein werden, was bedeutet, dass die Subventionsauszahlung an den Miner niemals ausgegeben werden kann und die Energie dadurch verbraucht wird Miner, um diesen Block zu produzieren, wird verschwendet.
@pinhead macht Sinn, aber wie wurden diese 10% berechnet? Ist es einfach (Latenz / Blockzeit)?
@ FivePoints genau. Laut Mike Hearn war das offenbar Satoshis Gedanke
@FivePoints-Quelle, für das, was es wert ist: reddit.com/r/Bitcoin/comments/30lxo4/…
@pinhead Es scheint, dass Ihre Abfallabrechnung nicht den gesamten Abfall der Maschinen enthält, die nicht innerhalb von 10 Minuten fertig waren.

Antworten (5)

10-Minuten-Blöcke sind einfach ein Kompromiss.

Kürzere Sperrzeit:

  • PRO - Schnellere 1-Bestätigungszeit (zum Schutz vor 0-Bestätigungs-Doppelausgaben)
  • PRO – Weniger Auszahlungsvarianz für Miner (weniger Abhängigkeit von großen Pools)
  • CON - Benötigt erhöhte Bandbreite (Kommunikation zwischen Knoten)
  • CONTRA – Mehr Forks, längere Forks und längere Reorg-Zeiten
  • NACHTEIL – Ein größerer Teil der rohen Hashpower wird verschwendet, was zu einer geringeren effektiven Sicherheit führt.

Bei einem längeren Blockintervallziel von mehr als 10 Minuten würden sich die Vor- und Nachteile umkehren.

Der Hauptvorteil einer kürzeren Sperrzeit ist die kürzere Zeit für eine Bestätigung. Während die 1-Bestätigungstransaktion eines schnelleren Blocks weniger stark ist als die 1-Bestätigungstransaktion eines längeren Blocks, ist sie immer noch besser als die 0-Bestätigungstransaktion eines beliebigen Blocks.

Die Geschwindigkeit der ersten Bestätigung scheint ein großer Vorteil zu sein, aber in Wirklichkeit ist das Risiko doppelter Ausgaben bei den meisten geringwertigen und zeitkritischen Transaktionen wie dem Kauf einer Tasse Kaffee, der Bezahlung eines Taxis oder der Nutzung eines Verkaufsautomaten sehr hoch niedrig. Denken Sie daran, dass das Akzeptieren von Kreditkarten nicht ohne Risiko ist, aber Händler haben lange akzeptiert, dass sie mit einigen Verlusten konfrontiert sein werden. Wenn diese Verluste jedoch minimal sind, kann dies nur als Kosten für die Geschäftstätigkeit angesehen werden. So viele Händler könnten einfach 0-Bestätigungs-Transaktionen akzeptieren, ohne sich einem größeren Risiko auszusetzen als durch Kreditkartenbetrug.

Der andere Faktor, der das reale Potenzial kürzerer Zielblockierungsintervalle verringert, besteht darin, dass für viele Händler selbst „schnellere“ Bestätigungszeiten immer noch nicht schnell genug sind. Für eine Point-of-Sale-Transaktion ist eine durchschnittliche Bestätigungszeit von 2 Minuten immer noch deutlich länger als das, was die meisten Händler für praktikabel halten würden. Die durchschnittliche Kreditkartentransaktion dauert etwa 20 Sekunden (einschließlich Verzögerungen durch den Kunden). Die gesamte Branche hat erhebliche Ressourcen aufgewendet, um auch nur ein paar Sekunden einzusparen. Änderungen wie das Ermöglichen, dass der Kunde die Karte durchzieht, das Durchziehen, bevor alle Artikel angerufen wurden, und das Nichterfordern von Unterschriften bei geringem Wert dienen dazu, ein paar Sekunden in einem ohnehin schnellen Prozess zu sparen, und die Kosten für diese Änderungen werden als akzeptabel angesehen, um sie leicht zu verbessern die Effizienz einer Kasse.

Der andere Faktor ist, dass die Reduzierung des Zielintervalls nur die durchschnittliche Bestätigungszeit reduziert, aber die Hälfte davon länger ist und der Schwanz sehr lang sein kann. Aufgrund der zufälligen Natur von Blocklösungen dauern etwa 15 % der Blöcke länger als das 2-fache des Ziels, 3 % länger als das 3-fache des Ziels und > 7,5 Minuten und etwa 0,5 % dauern länger als das 4-fache des Ziels. Diese Ungewissheit macht es für ein zeitkritisches Unternehmen schwierig, grundsätzlich auf Bestätigungen zu warten. Wenn die meisten Transaktionen in 30 Sekunden bestätigt werden, aber einige Minuten dauern, wird dies zu Kundenfrust am Point of Sale führen.

Wenn die BTC-Wirtschaft groß genug wird, könnten wir eine erweiterte Verwendung von „grünen Adressen“ sehen, um den Bedarf an sofortiger Akzeptanz ohne Bestätigungen zu decken. Solche Dienstleistungen könnten von großen Unternehmen erbracht und durch eine Versicherung gegen Betrug abgesichert werden (gegen eine geringe Gebühr pro Transaktion). Dies wäre eine praktikablere 0-Bestätigungslösung als eine einfache Verringerung des Blockintervalls.

Davon abgesehen war das 10-Minuten-Ziel wahrscheinlich zu konservativ und eine kürzere Blockzeit hat einige Vorteile.

Ihr Fehler ist, dass Sie denken, dass "Double Spend Attack" "51% Attack" bedeutet. Sie können versuchen, die Ausgaben mit weniger zu verdoppeln, aber der Erfolg ist nicht garantiert. Je mehr Blöcke gewartet haben, desto geringer ist Ihre Chance. >50% ist der Punkt, an dem Ihnen der Erfolg garantiert ist, egal wie viele Blöcke gewartet werden. Die Erfolgswahrscheinlichkeit bei einem <50%-Angriff hängt von der Anzahl der Blöcke ab und nicht von der Zeitdauer. Dies ist ein Vorteil kürzerer Blöcke.
Eine kürzere Blockzeit hat eine weitere gewinnbringende Varianz für Miner. Außerdem ist der zusätzliche Speicherplatz für kurze Blöcke vernachlässigbar, da der Großteil der Daten die Transaktionen und nicht die Blockheader sind.
Sie haben einige Tippfehler: Die ersten 2 Einträge für "Längere Blockzeit" sollten "CON" und "PRO" und nicht "PRO" und "RRO" sein.
@MeniRosenfeld Danke für die Korrekturen und ich habe Varianzunterschiede hinzugefügt und die Speicherunterschiede entfernt, da Sie korrekt sind, die Unterschiede werden eher gering sein. Ich habe auch den zeitbasierten Aspekt entfernt, denn obwohl ich gehört habe, dass mehr Bestätigungen erforderlich sind, habe ich kein endgültiges Wissen. Es gibt genug andere bekannte Unterschiede.
Sehr schönes Update, ich wünschte, ich könnte noch einmal upvoten. ;)
Außerdem: Kürzere Blöcke bedeuten mehr Speicherplatz für gekürzte und SPV-Knoten.

Ich fand diesen Teil des Wikis auch frustrierend und habe ihn gerade bearbeitet. Über Korrekturen würde ich mich freuen. Hier ist, was ich geschrieben habe:

Zehn Minuten wurden von Satoshi ausdrücklich als Kompromiss zwischen der Zeit für die erste Bestätigung und dem Arbeitsaufwand aufgrund von Kettenspaltungen gewählt. Nachdem ein Block abgebaut wurde, dauert es einige Zeit, bis andere Miner davon erfahren, und bis dahin konkurrieren sie tatsächlich mit dem neuen Block, anstatt ihn zu erweitern. Wenn jemand einen weiteren neuen Block basierend auf der alten Blockkette schürft, kann das Netzwerk nur einen der beiden akzeptieren, und die gesamte Arbeit, die in den anderen Block geflossen ist, wird verschwendet. Wenn Miner beispielsweise durchschnittlich 1 Minute brauchen, um sich über neue Blöcke zu informieren, und alle 10 Minuten neue Blöcke kommen, dann verschwendet das gesamte Netzwerk etwa 10 % seiner Arbeit. Die Verlängerung der Zeit zwischen den Blöcken reduziert diese Verschwendung.

Als Gedankenexperiment, was wäre, wenn das Bitcoin-Netzwerk um den Mars erweitert würde? Von den entferntesten Punkten ihrer Umlaufbahnen dauert es etwa 20 Minuten, bis ein Signal von der Erde zum Mars gelangt. Mit nur 10 Minuten zwischen neuen Blöcken wären die Miner auf dem Mars immer 2 Blocks hinter den Minern auf der Erde. Es wäre für sie fast unmöglich, zur Blockchain beizutragen. Wenn wir mit solchen Verzögerungen zusammenarbeiten wollten, bräuchten wir zwischen neuen Blöcken mindestens ein paar Stunden.

Da Bitcoins die erste Kryptowährung sind, die Blockgenerierung usw. verwendet, kann man davon ausgehen, dass 10 Minuten willkürlich gewählt wurden. Jeder Wert, der groß genug ist, um den neuen Block durch das Netzwerk zu verbreiten, bevor ein anderer Miner wahrscheinlich einen neuen Block generieren würde, wäre gut. Auf der anderen Seite sollten die Blöcke nicht zu knapp sein, da es zu lange dauern würde, Bestätigungen zu erhalten. Eine Stunde Rechenzeit gilt als sicher vor Manipulationen, also kann Ihnen das Aufteilen dieser Zeit in ordentliche Teile 10 Minuten geben.

Es gibt wahrscheinlich keine Diskussion zu diesem Thema, da die erste Bitcoin-Version allein von Satoshi erstellt wurde, sodass die genauen Gründe nicht sicher herausgefunden werden können, bis er seine wahre Identität preisgibt oder zur Community zurückkehrt.

Die Analyse in Satoshis Artikel bezieht sich überhaupt nicht auf die Zeit, die man warten sollte – das hängt allein von der Praktikabilität ab, eine hohe Hashrate für lange Zeit aufrechtzuerhalten. Er diskutierte die Anzahl der zu wartenden Blöcke – er zeigte zum Beispiel, dass, wenn der Empfänger 6 Blöcke wartet und der Angreifer 10 % der Hashrate des Netzwerks hat, ein Double-Spend-Versuch nur eine Erfolgswahrscheinlichkeit von <0,025 % hat. Bei 1 Minute pro Block sind das 6 Minuten usw.

Die Blockzeit wurde von Satoshi Nakamoto als Kompromiss zwischen 2 Faktoren bestimmt

1.Netzwerklatenz:
Nachdem ein Block abgebaut wurde, dauert es einige Zeit, bis andere Miner von diesem Knoten erfahren, und während dieser Zeit konkurrieren andere Miner immer noch mit diesem Block (was Mining bedeutet), anstatt diesen Block hinzuzufügen Kette. Dies führt zu einer Verschwendung von Mining-Ressourcen, die dadurch verursacht wird, dass mehrere Miner ihre Blöcke noch minen, aber das Netzwerk nur einen hinzufügen kann. Außerdem ist es eine Tatsache, dass es einige Zeit dauern wird, bis jeder neue abgebaute Block auf allen Knoten angezeigt wird, da Netzwerkverzögerungen eine Sache sind.

2.Bestätigungszeit:
Wir können sicher sein, dass ein Block erst dann bestätigt wird, wenn er der Kette/dem Netzwerk hinzugefügt wurde, nachdem einige Blöcke zu dieser Kette hinzugefügt wurden. Und um die Bestätigung zuverlässiger zu machen, müssen etwa 5-6 Blöcke nach unserem Block zur Kette hinzugefügt werden. Das wird sicherlich einige Zeit dauern. Aber wir müssen diesen Prozess beschleunigen.

Nun benötigt der Netzwerkverzögerungsfaktor eine längere Blockzeit, während der Bestätigungszeitfaktor eine kürzere erfordert. Daher wurde ein Kompromiss gewählt, der 10 Minuten beträgt. Diese Zeitdauer wurde sicherlich nach einigen Berechnungen gewählt. Der theoretische Grund für die Blockzeit ist jedoch derselbe wie in dieser Antwort beschrieben.

AFAICS, der einzig mögliche Vorteil der längeren Blockzeit ist die Reduzierung des Bandbreiten-Overheads aufgrund der geringeren Wahrscheinlichkeit von Blockchain-Splits.

Ich bezweifle sogar diesen Kompromiss, denn wenn die Transaktionsdaten den größten Teil ausmachen, gibt es den ausgleichenden Effekt, dass kürzere Blockzeiten weniger zu übertragende Daten bedeuten.

Ich bin sehr skeptisch, dass mit kürzerer Blockzeit mehr Arbeit verschwendet werden muss, wenn die Schwierigkeit auf die Zeit abgestimmt ist, um zu einem Konsens zu gelangen. Mathematisch verdienen die Miner einen Prozentsatz der neu erstellten Blöcke, der ungefähr proportional zu ihrem Prozentsatz der System-Hash-Power ist, unabhängig von der relativen Aufteilung ihres Glücks zwischen Arbeitsschwierigkeiten und (zufälligen) verwaisten Ketten.

Sofern es keinen Beweis gibt, bezweifle ich die Behauptung, dass kürzere Blockzeiten längere Zeiten schaffen, um zu einem Konsens zu gelangen (dh Re-Org-Splits), denn wenn es beispielsweise 4-mal mehr Splits mit 1/4 der Blockzeit gibt, gibt es ungefähr 7 weitere Iterationen, um innerhalb der gleichen Dauer zu einem Konsens zu gelangen.

G̶i̶v̶e̶n̶ ̶t̶h̶a̶t̶ ̶i̶r̶r̶e̶v̶e̶r̶s̶i̶b̶i̶l̶i̶t̶y̶ ̶i̶s̶ ̶a̶ ̶f̶u̶n̶c̶t̶i̶o̶n̶ ̶o̶f̶ ̶n̶u̶m̶b̶e̶r̶ ̶o̶f̶ ̶b̶l̶o̶c̶k̶s̶&̶m̶d̶a̶s̶h̶;̶ ̶n̶o̶t̶ ̶o̶f̶ ̶t̶i̶m̶e̶— ̶a̶n̶d̶ ̶t̶h̶e̶ ̶d̶i̶s̶a̶d̶v̶a̶n̶t̶a̶g̶e̶ ̶o̶f̶ ̶d̶e̶l̶a̶y̶s̶ ̶i̶n̶ ̶t̶r̶a̶n̶s̶a̶c̶t̶i̶o̶n̶s̶,̶ ̶i̶t̶ ̶s̶e̶e̶m̶s̶ ̶a̶ ̶s̶h̶o̶r̶t̶e̶r̶ ̶b̶l̶o̶c̶k̶ ̶t̶i̶m̶e̶ ̶i̶s̶ ̶c̶o̶m̶p̶e̶l̶l̶i̶n̶g̶.̶

Ich würde es begrüßen, wenn Downvoter zumindest versuchen würden, ihre Logik mit einem Kommentar unter meiner Antwort zu verteidigen. Das gibt mir die Gelegenheit, mit ihnen zu diskutieren und ihnen zu zeigen, warum sie meiner Meinung nach falsch liegen (oder meinen Fehler einzugestehen). Es geht darum sicherzustellen, dass wir gemeinsam die richtige Logik haben.

Diese Antwort vernachlässigt die Zeitkosten, die durch Blockübertragung und Blockverifizierung entstehen. Da diese Zeit für einen vollen Block eine ungefähr festgelegte Menge ist, ist sie ein größerer relativer Anteil eines kürzeren Blockintervalls als eines längeren Blockintervalls.
@Murch, ich habe diese Antwort ein paar Tage oder Wochen geschrieben, nachdem ich mein Studium von Blockchains, Kryptographie und Bitcoin begonnen hatte. Meine Ansichten haben sich seitdem erheblich geändert. Unter der Annahme, dass das Transaktionsvolumen pro Block bei einer höheren Blockfrequenz reduziert wird, ist Ihre Behauptung einer konstanten Ausbreitungs- und Verifizierungszeit jedoch nicht korrekt. Craig Wright hat behauptet, dass sich das Bitcoin-Netzwerk innerhalb von etwa einer Sekunde auf 99 % der Hashrate ausbreitet.
Da praktisch alle Bergleute mit Glasfaser verbunden sind und veröffentlichte Daten darauf hindeuten, dass es nur etwas langsamer als Lichtgeschwindigkeit ist, ist <1 Sekunde keine schwierige Behauptung … Die bedeutendste Auswirkung in diesem Jahr war jedoch wahrscheinlich, dass Bergleute auf eine neuere Version aktualisiert haben von Bitcoin Core, um die Segwit-Aktivierung zu signalisieren. Anfang dieses Jahres sahen wir noch mehrere verwaiste Blöcke pro Woche. Eine Blockzeit von zB 60 Sekunden hätte uns auf mehrere verwaiste Blöcke pro Tag zurückgeführt. Da die Daten zum Anschauen da sind, ist es verwirrend, dass Sie den Effekt zu leugnen scheinen.
@Murch, hat SegWit die durchschnittliche Blockgröße um den Faktor 10 reduziert? Wenn nicht, gehen die von Ihnen zitierten Daten vermutlich nicht auf meinen Standpunkt ein. Ich verstehe jetzt (nicht, dass ich es 2016 getan hätte, als ich diese Antwort schrieb), dass kürzere Blockzeiten auch die asymmetrischen Vorteile für Haschratenkoalitionen erhöhen, wie z. B. Pools, die ihre Gewinnblöcke sofort sehen (keine Ausbreitungsverzögerung). So könnten exzessive Waisenkinder im egoistischen Bergbau in Aktion treten. Beachten Sie, dass Ethereums Variante von GHOST eine Teillösung für einiges davon ist.