W sieci Bitcoina doszło wczoraj do powstania osieroconego bloku. Ostatni raz doszło do tego w październiku 2019 roku. W jakich warunkach ma miejsce double spending w Bitcoin i co to tak naprawdę oznacza?
Stale block (osierocony blok) sieci Bitcoin, który mógł doprowadzić do podwójnego wydatkowania nie był złośliwym atakiem, ale wynikiem jednej z transakcji, która nie została przeniesiona do kolejnego bloku. Problem został szybko rozwiązany.
Osierocone bloki pojawiają się w chwilach, gdy górnicy rozwiązują ten sam blok w tym samym czasie, ale często na innych krańcach globu. Geograficznie bliższe węzły wychwycą blok, który został wydobyty w ich pobliżu, co skutkuje małym forkiem w łańcuchu. Właściwy blok jest chwilę potem pobierany do głównego łańcucha.
To pierwszy stale block od października 2019 r.
Pojawienie się stale blocków to relatywnie rzadkie zjawisko. Jak pokazuje tweet BitMEX Research, do identyfikacji osieroconego bloku doszło w ramach bloku numer 614 732. Ostatni raz taką sytuację zauważono w październiku ubiegłego roku.
Bitcoin had a stale block today, at height 614,732.
— BitMEX Research (@BitMEXResearch) January 27, 2020
* Size: 0.97 MB, Time: 05:37:37UTC, Miner: https://t.co/yVUGGpvX6f
* Stale block – Size: 0.98 MB, Time: 05:37:56UTC, Miner Poolinhttps://t.co/uzJXPMgOmm
This is the first stale block we have found since 16 Oct 2019 pic.twitter.com/zmSg9gsL5T
Stale block o wielkości 0,98 MB, wydobyty w mniej niż pół sekundy po wykopaniu bloku przez BTC.com, został wydobyty przez Poolin, a następnie natychmiast osierocony. Zanim jednak to nastąpiło, blok zawierał 39 transakcji. 38 z nich trafiło do następnego bloku. Wydaje się, że w kontekście ostatniej tx o wartości wejściowej 0,00034801 (3 USD) doszło do podwójnego wydatkowania (double spending).
We have conducted a double spend analysis. Apart from the coinbases, the stale block included 39 txs not in the winning block. 38 of these made it into the next block 614,733. The other had an input of 0.00034801 (US$3) & appears to have been double spenthttps://t.co/3w5c0zsL7N
— BitMEX Research (@BitMEXResearch) January 27, 2020
Incydent o tak małej wielkości doprowadził BitMEX Research do wniosku, że nie był to żaden atak. Według nich ta sytuacja pokazała, że blockchain Bitcoin działa bardzo sprawnie.
Double spending na Bitcoinie
Dyskusja odnośnie wczorajszego wydarzenia dotyczy de facto tego, czy 3-dolarową transakcję należy rozpatrywać w kategoriach podwójnego wydatkowania czy też nie.
A double spend happened. If it was successful or not would depend on how many confirmations the receiver would wait for. In this case the receiver would only need to wait for 2 confirmations, or he could even see that there were 2 conflicting txs in the mempool. This is normal.
— Bitcoin noob (@thebtcnoob) January 27, 2020
Potwierdzenia w łańcuchu bloków mogą różnić się od siebie. Jednak im więcej potwierdzeń, tym bardziej prawdopodobne, że transakcja jest prawdziwa, a nie że mamy do czynienia z przypadkiem podwójnego wydatkowania lub osieroconego bloku. Inny komentator wątku na Twitterze przypomina, że zwykle wystarczą trzy potwierdzenia, aby upewnić się o jakości danej transakcji.
This is Bitcoin working as it should & that was effectively a double spend. Lesson to learn: 1 confirmation is not enough, not even for $3. It has never been: 6 confirmations might be overkill, but in general one should wait at least 3, and increasingly more for relevant amounts
— Ferdinando M. Ametrano (@Ferdinando1970) January 27, 2020
Jakie jest Wasze zdanie na ten temat? Zapraszamy do dyskusji.