neprihlásený Štvrtok, 21. novembra 2024, dnes má meniny Elvíra
Bitcoin umožnil v utorok minúť mince dvakrát, detailná analýza incidentu

DSL.sk, 13.3.2013


Chyba a incident, ku ktorému v noci z pondelka na utorok prišlo u digitálnej meny Bitcoin, otvoril okno na reálne minutie tých istých digitálnych mincí dvakrát.

Minimálne jeden užívateľ toto dočasné zlyhanie meny využil a dvakrát minul tých istých cca 212 BTC, v prepočte pri súčasnom kurze na úrovni 35 eur za BTC cca 7420 eur. Následne ale poškodenej strane opakovane daných 212 BTC zaplatil.

Kľúčové pre funkčnosť Bitcoinu a zabránenie viacnásobnému míňaniu tých istých digitálnych mincí je vytváranie jednej akceptovanej reťaze tzv. Bitcoin blokov obsahujúcich zrealizované platné transakcie, tzv. blockchain. Ak náhodou príde k rozdvojeniu tejto reťaze a vznikne ich viac, za aktuálne platnú je považovaná najdlhšia.

Problémy Bitcoinu odštartovali v pondelok o 23:39 vytvorením tohto bloku 225430, ktorý vytvoril miningový pool Slush.

Slush používal implementáciu 0.8 Bitcoinu, ktorá oproti predchádzajúcim verziám prešla z databázy BDB na LevelDB. Vygenerovaný blok bol 225430 bol korektný, klienti 0.7 a starší ho ale kvôli problému a obmedzeniam v implementácii vychádzajúcej z použitia BDB a vzhľadom na jeho veľkosť neoverili ako platný. Ako český prevádzkovateľ Slush poolu Marek Palatinus aka slush potvrdil pre DSL.sk, k vygenerovaniu problematického bloku prišlo potom, ako po konzultácii s hlavným vývojárom Bitcoin klienta Gavinom Andresenom zvýšil limit veľkosti bloku na 990 KB.

Mineri a mining pooly, ktoré v prevažnej väčšine používali klienta 0.8, pokračovali štandardne ďalej v generovaní ďalších blokov nadväzujúcich na problematický blok 225430 a vytvárali blockchain, označme ju B2.

Menšina minerov a klienti Bitcoin používateľov verzie 0.7 a menšej problematický blok a tak následne ani ďalšie nasledujúce v reťazi za ním neakceptovali a vytvárali vlastnú verziu reťaze počnúc vlastným blokom 225430, označme ju B1. Keďže výkon takýchto minerov bol nižší, bloky do B1 pribúdali pomalšie ako do B2, B2 bola dlhšia a mineri 0.8 ju považovali za hlavnú a platnú.

Keďže klienti 0.7 nepovažovali B2 za platnú a za korektnú považovali len svoju blockchain B1, problém by sa sám neodstránil a paralelne by boli vytvárané naďalej obe blockchain. Vývojári sa začali podľa slusha zaoberať riešením cca o 1:00 v utorok a následne prijali rozhodnutie, že za pomoci spolupráce mining poolov opustia blockchain B2 a budú pokračovať v blockchain B1, ktorú začali vytvárať mineri s verziou 0.7.

Keďže veľkých poolov, ktoré majú najväčšiu výpočtovú silu, je len niekoľko a pre porazenie blockchainu B2 stačilo získať viac ako 50% výpočtovej sily, väčšina výpočtovej sily sa pomerne rýchlo vrátila k blockchain B1. Niektoré pooly priamo začali používať implementáciu 0.7. Palatinus, ktorého slush pool je druhý až štvrtý najväčší a ktorého vyvojári Bitcoinu zobudili cca o 2:30, narýchlo doimplementoval patch umožňujúci používať verziu 0.8 ale pokračovať v dohodnutej blockchain B1.

Blockchain B1, ku ktorej sa mineri vrátili, predbehla B2 dĺžkou medzi šiestou a siedmou hodinou ráno, stala sa tak platnou a blockchain B2 od rozdelenia vytváraná 0.8 klientami neplatnou. Funkčnosť meny sa v tomto čase technicky plne obnovila.

Potenciálny problém ale nastal s transakciami, ktoré boli potvrdené v anulovanej blockchain B2. Tieto transakcie sa zrušením blockchain okamžite dočasne anulovali a stali opäť nepotvrdenými. Keďže zrušených bolo až 25 Bitcoin blokov a odporúčaná doba čakania na definitívne potvrdenie transakcií je šesť blokov, veľkú časť transakcií už ich prijímatelia podľa zvyklostí považovali za definitívne a prípadne za ne už poskytli protihodnotu.

Proces štandardne samozrejme neznamená trvalé anulovanie transakcií. Tieto transakcie sa postupne dostávali aj do blockchain B1, ku ktorej sa sieť vrátila, a to ešte pred predbehnutím B2 alebo po ňom. Potom, ako sa v nej ocitnú, sa opäť stanú potvrdenými.

Incident ale vytvoril časové okno, počas ktorého systém meny nebránil dvojitému míňaniu meny. Ak transakcia užívateľa, označme ju T1, bola potvrdená najskôr v blockchain B2, tak sa užívateľ, pokiaľ sa táto transakcia neobjavila aj v blockchain B1, mohol pokúsiť uskutočniť ďalšiu transakciu T2 míňajúcu rovnaké digitálne mince. Ak sa transakcia T2 následne v blockchain B1 potvrdila skôr ako T1, mineri vytvárajúci B1 následne odmietnu T1 ako pokus o dvojnásobné minutie meny.

Ak predajca používal klienta 0.8 a akceptoval T1 ako platnú, po prepnutí sa na B1 sa stane platnou T2 a T1 bude vyhlásená za neplatnú transakciu, predajca o zaplatené prostriedky príde. Vývojári preto odporúčali príjemcom platieb používajúcim verziu 0.8 pozastaviť ich akceptáciu.

Tento scenár pritom nebol len teoretický. Podľa informácií vývojárov z utorka podvečer bolo ešte 430 transakcií akceptovaných v B2 stále neprijatých v B1, pričom sedem z nich do B1 nebude prijatých, išlo o transakcie s popísaným scenárom a dvojité minutie tých istých mincí.

Ide o transakcie s ID 12814b8ad57ce5654ba69eb26a52ddae1bff42093ca20cef3ad96fe7fd85d195, cb36ba33b3ecd4d3177d786209670c9e6cdf95eb62be54986f0b49ca292714af, 7192807f952b252081d0db0aa7575c4695b945820adaf7776b7189e6b3d86f96, 355d4ea51c3b780cf0b10e8099a06a31484e0060bc140b63f3d6e5fb713ace5e, b961bc0c663a46893afd3166a604e7e2639533522d9fec61fdb95eb665e86f5a, 138063e4bdb76feaa511f1e7f9c681eb468ef9140c141671741c965e503b84c6 a a10bd194cdbf9aa4c12eb0b120056998a081a9b0d93d70570edff24dec831f90. V troch prípadoch išlo o BTC centy, v troch sa suma pohybovala medzi 0.61 až 1.62 BTC a či vznikli úmyselne alebo náhodou nie je známe.

Transakcia 12814b8ad57ce5654ba69eb26a52ddae1bff42093ca20cef3ad96fe7fd85d195 znamenala ale prevod takmer 212 BTC.

Užívateľ ňou poslal prostriedky na OKPAY, za ktoré dostal na BTC-e účet 9800 dolárov. Ako sám potvrdil, keď zaregistroval problém v sieti, pokúsil sa o dvojité minutie meny dvomi ďalšími transakciami vo výške cca 63 a 137 BTC. To sa mu aj úspešne podarilo, keď tieto transakcie boli prijaté do B1 pred prvou transakciou. Po zrušení B2 teda systém Bitcoin evidoval ako platné transakcie 63 a 137 BTC samozrejme na iné adresy, OKPAY mu už ale vyplatila prostriedky za pôvodne prevedených 212 BTC.

Užívateľ ale následne včera OKPAY prostriedky poslal dobrovoľne opakovane, hoci samotný systém meny by ho k tomu nenútil.

Aktuálnejšia detailná analýza ďalšieho vývoja 430 chýbajúcich transakcií zatiaľ k dispozícii nie je a nie je tak jasné, či aj u týchto transakcií sa ešte niekto po vytvorení tohto zoznamu o dvojité míňanie nepokúsil.

V súčasnosti absolútna väčšina minerov respektíve poolov, v ktorých sú zapojení, generuje bloky kompatibilné aj s verziou 0.7, zopakovanie incidentu tak nehrozí. Vývojári zároveň pripravujú novú verziu 0.8.1, ktorá bude umožňovať využívať vylepšenia v 0.8 a zároveň bude generovať len bloky kompatibilné s 0.7.


      Zdieľaj na Twitteri


Zúčastňujete sa miningu Bitcoinu respektíve s akým cca výkonom? (hlasov: 277)

Nie      73%
Do 100 MHash/s      12%
Do 500 MHash/s      3%
Do 1 GHash/s      3%
Do 5 GHash/s      3%
Do 10 GHash/s      2%
Nad 10 GHash/s      5%


Najnovšie články:

Linux dostáva podporu veľkokapacitných pamäťových SDUC kariet
USA požadujú, aby Google predal Chrome a potenciálne aj Android
ISS zvýšila orbitu, aby sa vyhla troskám zo satelitu
Vzniknú fyzické zábavné tematické Minecraft parky
Qualcomm chystá Snapdragon CPU pre lacnejšie PC, majú začínať na 600 dolárov
SpaceX nezachytávala prvý stupeň Starship kvôli problému na štartovacej veži
Sprístupnená prvá testovacia verzia už Androidu 16
Starship má dnes uskutočniť ďalší let, video
Google chce údajne na notebooky nasadiť Android namiesto ChromeOS
Starlink má mať podľa SpaceX v budúcnosti rýchlosť 2 gigabity / s


Diskusia:
                               
 

nice clanok :)
Odpovedať Známka: 8.5 Hodnotiť:
 

suhlasim :)
Odpovedať Známka: 8.6 Hodnotiť:
 

Enjoy your blog )
http://suisqcumd.com my blog
Odpovedať Hodnotiť:
 

Souhlasim, tentokrat to je povedene a "informacne hutne".
Odpovedať Známka: 8.1 Hodnotiť:
 

furt nechapem jak to funguje O-o
Odpovedať Známka: 7.0 Hodnotiť:
 

neni ani tak doležité, jako presne to funguje, po technickej stránke, ale to, že ak toto neni už virtualne_(umocnené)\virtualne, atd., proste super-over-virtualna mena (alebo neco, co sa menou pokuša byť, tak už pak fakt nevím, čo by mohlo byť viac virtualnejšie..

mno, myslim ťe sa vratime sa asi radšej k osvedčenému a už tisícročiami preverenemu *"prvku 79"* ;) :P (njn, chválospev na zlato, (príp.streibro, platina, vzácne drahé kovy, barevné atpod. :P
Odpovedať Známka: -6.4 Hodnotiť:
 

Zlato je fajn jako uchovatel hodnoty, to je bez diskuze. Zkus jim ale zaplatit za sluzby...
Odpovedať Známka: 8.3 Hodnotiť:
 

njn, ovšem viem o tom.. //(
Odpovedať Známka: 7.1 Hodnotiť:
 

mno, síce, aj to neni tak uplne marné.. za posedenie na kave, al. drobný nákup s ním asi nezaplatiš, za malé výdavky, ale už za neco ozaj vačšie, od nejakej (ozaj vačšej sumy,/hodnoty vyššie..
myslim, že žiadna banka, / vačší,seriozny obchodnik by nedmietli 20-24´*karatové (v prislušních gramoch
(´´banka - ovšemže ne nejaké baby za prepažkou, al. za kasou v Lídli..:o ;D)
ale nejaké transakcie, obchody, by myslim nemali byť problem (a priliš velkým prekvapenim pre protistranu, zvlšt ak tieto neisté, bočné trendy budú trvať ešte dosť dlho, a pojde to vobec všetko jako v "lete na saniach
( = "papierové"meny a ekonomiky budú pomaly, ale stále a isto ---> \ --> \ \\
Odpovedať Známka: 2.5 Hodnotiť:
 

Ma niekto skusenosti zo stavkovanim v bitcoin mene?
Odpovedať Známka: 8.8 Hodnotiť:
 

ako sa da zučastniť bitcoin miningu?lebo vidím aj položku že do 100MHash/s...ale kto má nad 10GHash/s,kokso...to už trocha výkonu....
Odpovedať Známka: 8.2 Hodnotiť:
 

Existuju pridavne karty navrhnute na bitcoin mining...
Odpovedať Známka: 7.5 Hodnotiť:
 

su aj stroje ktore ti za patricnu sumu robia aj stovky GHash/s .. Najsilnejsi stroj som zatial videl 1500 GHash/s. skoda ze len na obrazku :) Je vo velkosti tusnejsieho PC, a zerie okolo 1.5kW :) A je strasne tazke ho zohnat
Odpovedať Známka: 5.0 Hodnotiť:
 

hm.. "..A je strasne tazke ho zohnat.." ? ?? :o :D ? ;D
a co má v sebe 116 prvok, stabilný, elerium ? :o :P :D :p lol
Odpovedať Známka: -2.5 Hodnotiť:
 

At last! Someone who unesndtards! Thanks for posting!
Odpovedať Hodnotiť:
 

Furt nechapem ako sa mohla takato komplikovana chujovina vobec uchytit.
Odpovedať Známka: -5.1 Hodnotiť:
 

dakujeme za oznamenie toho co nechapes
Odpovedať Známka: 8.4 Hodnotiť:
 

Tvoje DNA je este komplikovanejsie a vlastne...neuchytil si sa, smola
Odpovedať Známka: 8.2 Hodnotiť:
 

EPIC :-D
Odpovedať Známka: 5.6 Hodnotiť:
 

Pravdu mas, ako sa mohli uchytit take komplikovane veci.. ako pocitace, telefony, auta :D
Odpovedať Známka: 6.0 Hodnotiť:
 

Kvalitny clanok. Tlieskam
Odpovedať Známka: 7.1 Hodnotiť:
 

Vďaka za zrozumiteľný (a snáď jediný v slovenčine) popis.
Odpovedať Hodnotiť:

Pridať komentár