Tehnične podrobnosti težav v Mt.Goxu

Matej Huš

12. feb 2014 ob 11:39:21

Ta teden se ne nadaljuje nič bolje od zaključka prejšnjega, če vprašate imetnike bitcoinov. Zaradi ruskega opozorila, da je bitcoin nereguliran in kot tak nezaželen v Rusiji, je že prejšnji teden izgubil dobro četrtino vrednosti. Padanje tečaja se nadaljuje zaradi težav na priljubljeni borzi Mt.Gox, ki je v petek začasno onemogočila nakazila bitcoinov s spletne denarnice v druge naslove. Poenostavljeno: onemogočili so dvige bitcoinov.

Da je bitcoin pričel izgubljati vrednosti, je logična posledica, četudi ne upoštevamo padca zaupanja v valuto. Edini način, da udeleženci na borzi Mt.Gox pridejo do svojih sredstev, je prodaja bitcoinov in dvig denarja, saj bitcoinov ne morejo nakazati na eksterne denarnice. To ustvarja prodajni pritisk. Poudarimo, da nakazila bitcoinov na druge račune znotraj borze Mt.Gox delujejo, ker v tem primeru ne gre za premik bitcoinov v drugo denarnico, ampak zgolj za preknjižbo imena lastnika bitcoinov, ki so tako ali tako deponirani v spletni denarnici Mt.Gox. Hranjenje večje količine bitcoinov v spletnih denarnicah pa zaradi naraščajočega števila vdorov ni priporočljivo, pa četudi gre za velike borze, kot je Mt.Gox.

Mt.Gox je trdil, da bodo izplačila mogoča v začetku tega tedna, a še vedno ostajajo onemogočena. Razlog ni v tehničnih težavah Mt.Gox, temveč v ustroju samega bitcoina, trdijo na Mt.Goxu. Ranljivost se imenuje transaction malleability in je znana že nekaj časa, a doslej ni bilo zlorab in ni povzročila težav. Dvig bitcoinov s spletne denarnice je povsem običajna transakcija, v kateri se bitcoini prenesejo z enega naslova v drugo denarnico. Vsak transakcija dobi svojo vrednost hash, ki jo enolično identificira. Če zlonamerni uporabnik takoj po sprožitvi transakcije spremeni samo njen hash, bo transakcija še vedno veljavna. Problem torej nastopi, ko imamo dve identični transakciji, ki pa imata različen hash. Sistem bo potrdil le eno, in sicer tisto, ki jo bodo rudarji prvo vključili v narudarjene bloke novih bitcoinov. Če ima torej zlonamerni uporabnik dovolj računske moči ali povezavo s kakšnim bazenom (pool) rudarjev, lahko potrdi transakcijo s spremenjenim hashem.

To pa je problem za borze. Transakcija bo namreč uspešno sprovedena in bitcoini bodo romali na želen naslov. Toda API-ji, ki jih borze uporabljajo za avtomatizirani prenakazovanje bitcoinov in preverjanje uspešnosti izvedbe transakcij, sledijo izključno vrednosti hash. Če je torej potrjena transakcija z drugo vrednostjo hash, borza tako ne bo mogla garantirati, da je bila transakcija izvršena. Uporabnik bi lahko v tem primeru trdil, da ni šla skozi in da bitcoinov ni prejel. Če bi mu borzni sistem avtomatično še enkrat nakazal ustrezno vrednost bitcoinov, bi jih prejel dvakrat. In tako naprej.

Seveda je mogoče ročno preveriti, ali obstaja ustrezna transakcij med računoma (četudi z drugo vrednostjo hash), a je to zamudno početje, ki ga trenutno ni mogoče učinkovito avtomatizirati. Če se torej spletne borze na tak način loti več prevarantov, jo lahko povsem zasujejo z zahtevki. Problem je tudi, da ta prevara praktično nima slabosti za storilce. Če se posreči ali ne, vsakokrat lahko svoje bitcoine nakažejo nazaj na borzo in poizkusijo ponovno.

Težava se odpravlja, in sicer bodo bržkone uvedli nov način podpisovanja transakcij. V vmesnem času bodo izplačila bitcoinov na Mt.Goxu onemogočena, ranljive pa so seveda tudi ostale borze. Ranljive so le borze, saj tako ni mogoče opehariti drugih uporabnikov borze, ampak le borzo samo. Seveda pa lahko zlom borze vpliva na vse, ki bi imeli bitcoine v njenih računih.

Dodatek: Borza Bitstamp, na kateri trgujejo Slovenci, je prav tako zaustavila izplačila.