quote:
Dezelfde vraag kwam van de week voorbij op een ander forum, daar kwam dit antwoord:
quote:
Kijk eens naar het tijdstip waarop dat block en het block ervoor is gemined. Het verschil is minder dan een minuut.
Wat er gebeurt in mining pools is dat de pool de miners een block-template stuurt om op te kauwen. Dit bevat alle transacties en andere details die voor het minen belangrijk zijn. Zodra er een pool (of een willekeurige andere node) een nieuw block binnenkrijgt, dan zal deze het block eerst verifieren door alle transacties te controleren. Het probleem is alleen dat dit proces een niet verwaarloosbare hoeveelheid tijd kost. De miner/pool die het vorige block gemined heeft, heeft hier een voordeel, omdat zij al weten dat het eigen block geldig is. Ze kunnen dus direct aan de slag met het volgende.
Een willekeurige andere pool heeft dat voordeel niet en heeft een aantal keuzes. Hij kan eerst het volledige block valideren en daarna pas beginnen aan een nieuw block. Dit is erg inefficient, want de miners zitten een tijd lang nutteloos werk te leveren. Een betere keuze is om de aanname te maken dat het block geldig is, en de miners alvast aan een nieuw block te laten werken. In de tussentijd, controleer je de geldigheid van het vorige block, maar omdat een ongeldig block vrijwel nooit voorkomt, is de kans dat je later tegen de miners moet zeggen "begin maar opnieuw, block was ongeldig" erg klein.
Maar de vraag is dan: Welke transacties stop je in je nieuwe block? Als je direct nadat je een nieuw block ontvangt, begint met het volgende block, dan weet je niet welke transacties in jouw mempool al zijn opgenomen in het block. Als je ook maar 1 transactie die al bevestigd is opneemt in jouw nieuwe block, dan wordt deze direct ongeldig.
De veiligste weg is dan ook om de miners eerst te laten minen naar een leeg block, met enkel de coinbase transactie. Zodra het vorige block volledig gecontroleerd is en de transactie mempool is bijgewerkt, kan er een nieuw block template worden gemaakt en verstuurd naar de miners, dit maal wel met transacties.
Hier nog meer uitleg:
-
https://bitcoinmagazine.c(...)y-blocks-1468337739/-
https://news.bitcoin.com/reason-bitcoin-miners-empty-blocks/