Leere Blöcke btc Blockchain

Hi Leute

Heute im Livestream hat jmd am Schluss die Frage gestellt, weshalb es in der Blockchain zwischendurch leere Blöcke gibt.

Er hat den Block 662364 genannt. Habs gecheckt und tatsächlich ist keine tx im Block.
Die Coinbase tx ist als einziges vermerkt.
Befinden sich keine tx im mempool und der Block muss trotzdem geminet werden oder wie muss man sich das vorstellen?

cheers
dyba10

Gute Frage. Block 662363, 662364 und Block 662365 wurden zur gleichen Zeit geminet.

Wenn ich raten müsste haben zwei Miner den Block 662363 gefunden und verteilt. Die zwei Verteilungen haben eine Kollision gebildet und die am weitesten verteilte Kette wurde benutzt und weiter gerechnet. Vielleicht wurde der verworfenen Kette trotzdem der Blockreward gegeben. Warum dann gleich auch 662365 in der gleichen Minute einging, keine Ahnung. Schon komisch. Was aber sicher ist, ist das Bitcoin so stabil geschrieben ist, dass es sich wieder fängt nach einer Kollision, was aber auch geraten ist.
662363 2020-12-21 15:22:22 F2Pool/Mined by hl7a1066
662364 2020-12-21 15:22:19 F2Pool/Mined by yhe2c12
662364 2020-12-21 15:22:43 F2Pool/Mined by kz2srm
Ich nehme deshalb die Kollision an, weil Block 662364 vor Block 662363 geminet wurde, sich aber wahrscheinlich langsamer verteilt hat und die Nodes sich dann entschieden haben die Kette mit Block 662363 weiter zu priorisieren und vielleicht Block 662364 nur einen Reward gekriegt hat. Vielleicht tritt wie gesagt nach einer Kollision auch eine Ausnahmeregel in Kraft mit einer sehr leichten Aufgabe um eine längere Kette zu gewährleisten.

Wahrheitsgehalt 63% gefühlt. Wüsste nicht ob man das bei einer Node nachschauen kann wann es Kollisionen gibt und wie damit umgegangen wird. Hoffe da auch auf eine bessere Antwort.

PS: Was vielleicht auch komisch ist, dass alle drei Blöcke vom selben MiningPool kommen.
Bin da auch ratlos.

1 „Gefällt mir“

Hi… ja, dass keine Tx im Mempool wären, wäre ebenfalls ein Grund, aber das ist in der heutigen Zeit seeeeeeeeeehr sehr unwahrscheinlich. Früher war das noch öfter der Fall… also in der Anfangszeit.

Ansonsten ist es so ähnlich, wie @Chaot112vermutet.
Leere Blöcke kommen vor, wenn Miner zwei Blöcke direkt nacheinander finden.
Wenn ein Miner einen Block von jemand anderem bekommt (also ein neuer Block an die Kette gehängt wird), müssen sie den Block zunächst runterladen und dessen Tx validieren. Das kostet etwas Zeit. Um keine Zeit zu verschwenden, Minen die Miner jedoch direkt aufbauend auf diesen einen leeren Block (damit keine Transktionen enthalten sind, die mit dem vorherigen kollidieren und ihn ungültig machen würden). Wenn sie dann Glück haben und in dieser kurzen Zeitspanne einen passenden Hash finden,propagieren sie den leeren Block, da sie dann immerhin die COinbase-Transaktion bekommen - besser als nichts :wink: .

Wenn du also leere Blöcke in der Blockchain findest, schau dir den Block davor an. In 99% der Fälle wird er nahezu zeitgleich mit den leeren Block gefunden worden sein :slight_smile: .

2 „Gefällt mir“

Warum hat dann der leere Block eine frühere Zeit als der davor ?
So richtig geht es mir noch nicht in den Kopf.
Warum ist der nachfolgende Block 20 Sekunden später gefunden worden?
So ein Ablaufdiagramm wäre vielleicht hilfreich. Hat sich der Blocktrainer nicht
schon einmal darüber geäußert ? Die Diskussion hatten wir schon einmal.

Weil timestamps frei wählbar sind und u.a. für das hashing angepasst werden um einen gültigen hash zu finden.

Hey @ all

hab dieses Format hier noch nicht gesehen und finde das eigentlich ganz angenehm, denn dann brauch nicht wegen jeder kleinen Frage ein neues Thema aufgemacht werden. Übersicht und so.

Dann starte ich mal.

Hab grad mal im Bitcoin explorer geschaut und gesehen das es gerade einen Block mit nur einer einzigen Transaktion gab. Wie kann sowas passieren, währenddessen der Mempool bei 36MB liegt?

Block 664 989

1 „Gefällt mir“

Nicht ohne Grund, denn wie soll man sowas finden? :slight_smile:

Es ist wohl besser, einen Thread themenbasiert zu gestalten und nicht 1000 kleine und große Fragen zu Bitcoin in einen einzigen Thread zu packen.

War ja nur ein Gedanke, ich persönlich finde es hier nämlich recht unübersichtlich. Aber man kann und sollte es auch nicht jedem recht machen. Dennoch vielen Dank, jetzt weiß ich bzgl. der leeren Blöcke Bescheid

1 „Gefällt mir“

Nachdem ich neulich verwundert einen leeren Block auf mempool - Bitcoin Explorer gesehen habe, habe ich ein bisschen nachgelesen und mich gefreut, dass es auch hier im Forum schon einen Thread gibt!

Nur aus Interesse: Wie lange dauert denn dieser Prozess, wenn ich einen Block mit sagen wir 2000 Transaktionen und ca. 1 MB habe?

Man lädt 1 MB herunter. Dann werden 2000 Transaktionen validiert, wobei ein Miner doch sicher Accounts für jede Adresse führt. D.h. es werden geprüft: Block-Hash, Block-Formatierung?, 2000 Balances, 2000 Signaturen, 2000 Hashes der Public Keys. Sehe ich das richtig, oder fehlt etwas Entscheidendes? Dieser Prozess wird doch wahrscheinlich in < 1 s ablaufen, oder?

Und noch eine Zusatz-Frage:

Es gibt ja einen Erwartungswert (Mittelwert) wann der nächste Block gefunden wird, nämlich 10 Minuten wenn die Difficulty gut zur aktuellen Hashrate passt. Kommt es vor, dass große Pools zocken, indem sie vor der Veröffentlichung eines gefundenen Blocks schon einmal mit der nächsten Blocksuche anfangen, falls sie den aktuellen Block schon innerhalb der ersten Sekunden gefunden haben?
Ich habe das gerade versucht mal rechnerisch zu überschlagen und bin der Meinung, dass sich das statistisch absolut nicht lohnt, aber evtl. liege ich ja falsch.