Jedna z najznámejších kryptomenových búrz BitMEX včera upozornila, že na bitcoinovom blockchaine sa mohla udiať takzvaná “double spend” transakcia v hodnote 0.00062063 BTC, respektíve 21 dolárov. Keby sa táto skutočnosť potvrdila, pre Bitcoin by to bolo naozaj zle. Znamenalo by to, že sieť nie je taká bezpečná, ako sa roky tvrdilo, čo by mohlo teoreticky viesť ajk fatálnemu crashu celého systému.
Informácia BitMEXU preto začala rezonovať v rámci kryptokomunity a je dosť možné, že mala vplyv aj na včerajší pád ceny Bitcoinu. Zaujímavé však bolo sledovať, že väčšie kryptomenové média jej nevenovali až príliš veľkú pozornosť. Možno z dôvodu, že podľa všetkého o skutočný double spend útok nešlo (respektíve určite nešlo).
Double spend útok je pokus o dvojitú úhradu. Zjednodušene povedané pokus zaplatiť rovnakými mincami (bitcoinami) dvakrát. Keby to bolo možné, Bitcoin by vlastne stratil pointu. Jeho platby by sa totiž dali falšovať podobne akoby keby ste chceli zaplatiť tou istou 20-eurovou bankovkou v dvoch obchodoch v rovnakom čase.
Pokusy o double spend útok však nie sú v rámci bitcoinovej siete úplne netypickým javom. Pomalé potvrdzovanie transakcií im otvára dvere. Je to však skôr dizajnová funkcia Bitcoinu než jeho chyba, na čo upozornil vo svojom článku aj Bloomberg. A práve toto je dôvod, prečo sú transakcie za definitívne potvrdené vnímane až v momente, kedy majú od ťažiarov viac konfirmácii, zväčša hovoríme o šiestich (6 konfirmácii = 6 vyťažených blokov, teda bežne ide o približne hodinu).
Keď BitMEX na Twitteri uviedol správu, v ktorej skonštatoval, že mohlo dôjsť k skutočnému double spend útoku, bitcoinová verejnosť pochopiteľne spozornela. ,,Nejde o RBF (náhradu za poplatok, ale skutočný double spend útok. Iba 22 dolárov, ale mohlo ísť aj o 22 miliónov,” tvrdil BitMex Research.
[1/2] There was a stale Bitcoin block today, at height 666,833. SlushPool has beaten F2Pool in a race.
It appears as if a small double spend of around 0.00062063 BTC ($21) was detectedhttps://t.co/o8lz9xagYG pic.twitter.com/IEdPu8JEjt
— BitMEX Research (@BitMEXResearch) January 20, 2021
Skutočnosť, že táto správa mohla mať vplyv na včerajšie bitcoinove výpredaje naznačuje aj výrazný rast záujmu o vyhľadávanie pojmu “double spend“. Opakujeme, že ak by sa double spend útok naozaj podarilo realizovať, Bitcoin by bol vo vážnom ohrození.
Antonopoulos vysvetlil, ako to funguje
Andreas Antonopoulos, jeden z najrešpektovanejších odborníkov na Bitcoin však upozornil, že nič také sa nestalo. Ide podľa jeho názoru o šírenie poplašnej správy od nezodpovednej inštitúcie (zrejme tým narážal na Bitmex).
A more detailed explanation of the whole
"A double-spend broke Bitcoin" FUD that was circulated by an irresponsible publication.
1/
— Andreas (@aantonop) January 21, 2021
Antonopoulos s tejto téme venoval v osobitnom „tweete“, ktorý sme takmer kompletne preložili, aby sme vám priniesli vysvetlenie od odborníka na túto tému:
,,Podrobnejšie vysvetlenie problematiky:
Šírenie správy o double spend útoku bolo poplašnou a nezodpovednou vecou.
V blockchainovom reťazci došlo k reorganizácii, čo je bežný jav, ktorý je súčasťou prevádzky bitcoinu. Je to výsledok decentralizovaného konsenzu v rámci Proof-of-Work. Robia to všetky Proof Work chainy.
Dva bloky boli vyťažené takmer súčasne a súťažili o rovnako výšku, čo znamená, že mali rovnaký rodičovský blok a pokúšali sa predlžiť reťazec rovnakého bloku. Avšak len jeden napokon môže uspieť. Je možné, že odlišné nody a ťažiari vidia jeden alebo iný blok skôr a dospejú k názoru, že vyhrali. Je to normálne v decentralizovanom konsenzus algoritme.
Z dvoch pôvodne konkurenčných blokov je jeden rodičom a druhý posledným potomkom kratšieho reťazca. Reťaz s najväčšou kumulatívnou obťažnosťou je vybraný všetkými. Vznikajú pri tom “orphans” (siroty) z druhého reťazca, pretože ten je zahodený.
Toto je opäť normálne. K reorganizácii jedného bloku dochádza v priemere každých pár týždňov v dôsledku decentralizovaného PoW. Dvojbloková reorganizácia prebieha menej často, možno niekoľkokrát ročne. Reorganizácia 3 blokov je extrémne vzácna. Myslím si, že sa ešte nikdy nestala.
Čo sa stane s transakciami vo vyradenom bloku? Pokiaľ sú taktiež vo víťaznom bloku, tak je všetko v poriadku. Pokiaľ sa v ňom nenachádzajú, každý uzol ich vloží naspäť do svojho mempooolu ako nepotvrdené a čakajú na ďalšiu príležitosť.
Počas reorganizácie existuje šanca, že sa niekto pokúsi o dvojosobnú útratu (double spend). Nejde o dvojnásobné výdaje z pohľadu blockchianu ako celku. Prežije len jedna úhrada, nedochádza k dvojitému míňaniu (platbe).
Z pohľadu príjemcu platby môžu byť vidieť transakcie, ktoré vyzerajú, že majú 1 potvrdenie (ocitne sa v bloku) a potom zmiznú, keď je tento blok vyradený.
Málokedy sa môže stať, že odosielateľ vtedy urobí inú transakciu do súťažného/výherného bloku. Povedzme, že ide o platbu za menšiu čiastku (viac zmien naspäť) alebo na odlišnú adresu.
Pretože originálna transakcia je späť (odstránený blok) je jedinou skutočnou transakciou. Blockchain zabránil dvojnásobnému útoku tým, že odstránil jednu transakciu a zaznamenal tú druhú.
Príjemca sa mohol domnievať, že transakcia bola platená pri bloku 1 (po prvej konfirmácii pozn.red.), avšak nebola. To je dôvod prečo potvrdenia (konfirmácie) poskytujú pravdepodobnosť a nemennosť. Šanca na reoganizáciu klesá každým ďalším potvrdením (každým ďalším vyťaženým blokom pozn.red.)
Ako vidíte, šanca na reorganizáciu klesá exponenciálne ako sa pridávajú ďalšie bloky. Konečnosť je založená na pravdepodobnosti.
Je to popísané v Satoshi whitepaperi na strane 8. V skutočnosti je to jediná matematická rovnica v celej práci a popisuje klesajúcu pravdepodobnosť reorganizácie, čo ukazuje, prečo je dobrým východiskom 6 potvrdení, čo je číslo, pri ktorom sa transakcia považuje za finálne realizovanú.
Takže kedy považovať transakciu za dokončenú a kedy je bezpečné dať zákazníkovi televíziu alebo fiat alebo akúkoľvek inú hodnotu, ktorú si vymieňate? Záleží to na množstve.
Pri predaji môjho auta za 11 000 dolárov som počkal na 3 konfirmácie. Mne to stačilo.
Záleží to taktiež od rizikovosti obchodu. Predal by som dom na 0 konfirmácii, pretože viem, kde býva. Nemôže s ním utiecť (s domom pozn.red.). Niektoré veci sú však nebezpečnejšie. Počkal by som napríklad až na 6 konfirmácii pri výmene za inú kryptomenu, pretože keď ju už odošlem, nemôžem ju dostáť naspäť.
Behom tejto poslednej (medializovanej) reorganizácie bola v oboch konkurenčných blokoch transakcia v hodnote 22 dolárov zahrnutá ako konkurenčná transakcia. Nevieme prečo. Nevieme kto to spravil. Ale nie je na tom nič nemožné. Je to súčasť protokolu.
V prípade 22 dolárov by mnohí akceptovali platbu už pri 1 potvrdení. V najhoršom prípade prídete o 22 dolárov za niečo, čo ste dali na oplátku okamžite a nevratne. To nie je veľký problém.
V skutočnosti nevieme, či príjemca tejto platby prišiel o peniaze. Možno čakali na 2 potvrdenia a nedoručili medzitým druhú časť hodnoty (čakali a teda nerealizovali obchod pozn.red.). V takom prípade teda o nič neprišli. Považujú to za neplatné, pretože neobdržali 2 konfirmácie.
V nejakom článku bolo citované, že mohlo ísť ale o 22 miliónov dolárov. No nemohlo! Ak platíte bitcoinom v hodnote 22 miliónov dolárov, predpokladám, že rozumiete tomu, ako bitcoin funguje od roku 2008, presne tak, ako je uvedené v jeho whitepaperi. Túto platbu nedoručíte hneď po 1 konfirmácii.
V tomto a aj v ďalších článkoch o FBF a SegWit (zrejme sa odvoláva na článok BitMexu alebo Cointelegraph pozn.red.) je taktiež uvedených niekoľko ďalších nesprávnych vyhlásení. Tu je pravda: Toto je normálna funkcionalita akéhokoľvek PoW blockchainu. Reorganizácia s dvoma rôznymi verziami transakcie môže nastať v každom druhom reťazci PoW chainov.
Nič divné ani mimo konsenzus algoritmus sa nestalo. Bitcoin naďalej funguje presne tak, ako by mal. Jediná vec, ktorá sa stala, je zlá žurnalistika, ak sa to tak dá nazvať. Na bublinovom trhu môže obehnúť celú planétu, než bude odhalená.”
Zdroj: twitter.com