Sinoči težave z rudarjenjem bitcoin kovančkov

Mandi

13. mar 2013 ob 13:24:31

Včeraj pozno zvečer je skupina bitcoin rudarjev, združena v Slushev mining pool, naletela na zagonetno težavo v tehnični izvedbi bitcoina.

Izkaže se namreč, da najnovejša različica bitcoin klienta, v0.8 (19. februar) podpira tudi shranjevanje bitcoin blokov v velikosti nad 512KB, medtem ko prejšnje različice zaradi nesrečne izbire podatkovne baze - Berkley DB (zdaj v lasti Oracla) - ne zmorejo varno sprocesirati blokov v velikosti nad omenjenega pol megabajta. Ko so Slushevi fantje sinoči našli en tak blok - velik nekaj čez 900 kilobajtov in vreden standardnih nagradnih 25 kovancev oziroma nekaj čez 1100 dolarjev po sedanjih cenah! - ga pač niso uspeli umestiti v omrežje, v bitcoinov Block Chain, tj. distribuirano verigo blokov in transakcij, ki vodi veljavnost vseh kovančkov. Isto je potem zgodilo še za pet ali šest dodatnih prevelikih blokov, prav tako najdenih sinoči. Ker jih omrežje drugih bitcoin uporabnikov ni sprejelo, so postali osiroteli (orphaned) in šli v nič. Tukaj se gre za 7 do 8 tisočakov denarja. Obenem je nastopila možnost, da bi kak lahkomiseln kupec te kovančke vseeno kupil (morda celo večkrat) in na koncu ostal s kupom ničvrednih bitov.

Upravitelji Slushevega poola (ki dobijo manjšo provizijo - večino namreč gre članom poola) so hitro zagnali paniko in začeli iskati rešitev. Žal zaradi distribuirane narave omrežja te ni bilo. Omenjenih šest blokov je ostalo brez vrednosti, sami pa so vse svoje člane nemudoma obvestili, naj svoje kliente pretvorijo nazaj na starejšo (0.7.2) različico. Isto so priporočili še vsem ostalim rudarjem, bodisi v poolih bodisi samotarjem, saj bi bili morebitni novonajdeni preveliki bloki prav tako brez vrednosti. K sreči se je downgrade zaključil relativno hitro, v vsega nekaj urah.

A to je predvsem začasna rešitev, ki zagotavlja predvsem, da ne bi takoj nastalo še za več tisočakov škode. Omrežje bo treba slej ko prej posodobiti z novimi klienti, in ko bo večina uporabnikov imela novo različico, bodo tudi večji bloki postali veljavni. Težava je nasploh nastopila zato, ker je bil izvorni klient spisan z malo premalo razmišljanja vnaprej, beri brez natančne proučitve omejitev uporabljene knjižnice za Berkley DB. Različica 0.8 je zato spisana na novo in uporablja tudi drugo bazo, žal pa so (očitno) pozabili spisati vse regresijske teste.

Še več škode je nastalo zavoljo zmede pri navadnih uporabnikih valute (takih, ki ne rudarijo), sploh tistih, ki so sinoči opravili kakšno transakcijo. Te je bilo strah (sicer malo verjetnega) scenarija, da so ravno oni sprejeli v plačilo katerega od nepotrjenih kovancev iz Slushevih novonajdenih blokov, preveriti pa niso znali, ker je za to potrebno precej znanja in gledanja po dolgih verigah zgoščenih številk (hashev). Upravitelji dobro branega bitcoin.it foruma so sčasoma le pojasnili, da bi stvari morale biti vredu za skoraj vse uporabnike in da ti ne rabijo downgradati klientov, le z nadaljnim trgovanjem naj počakajo tistih nekaj ur. To se je do današnjega jutra tudi že zgodilo.

Zdaj je torej že vse v najlepšem redu. A škoda zavoljo izgube zaupanja se je prav tako že zgodila. Bitcoinov glavni problem je še vedno skepsa uporabnikov do njegove zrelosti in stabilnosti, tovrstni incidenti pa pri tem nikakor ne pomagajo. Že pred tem so bile hude skrbi z vdori v večje borze in krajo uporabniških kovancev, kar se je po lanski jeseni k sreči umirilo. BTC je zato zrasel na zgodovinski vrh (44$/BTC), nekoliko zavoljo povečanega povpraševanja in nekoliko najbrž tudi zavoljo špekulantov. A za nadaljnjo stabilno rast po potrebne še malo več stabilnosti.