Partager cet article

Ano ang Ibig Sabihin ng ' Bitcoin Bug': Isang Gabay sa Pagkakadali ng Transaksyon

Ano ang ibig sabihin ng transaction malleability, gayunpaman, at sira ba ang Bitcoin o hindi? Alamin dito.

Sa linggong ito, lumitaw ang isang termino na T pa naririnig ng maraming bitcoiners: pagiging malleability ng transaksyon. Mt Gox binanggit ito bilang isang pangunahing dahilan para sa pagsuspinde ng mga withdrawal, at binanggit din ito bilang batayan para sa isang pagsasamantalang ginamit sa isang napakalaking pag-atake laban sa Bitcoin network ngayong linggo. Kaya, ano ito, paano ito gumagana, at dapat ba tayong mag-alala? Narito ang alam natin.

Ano ang transaction malleability?

Ito ay isang pag-atake na nagbibigay-daan sa isang tao na baguhin ang natatanging ID ng isang transaksyon sa Bitcoin bago ito makumpirma sa Bitcoin network. Ang pagbabago ay ginagawang posible para sa isang tao na magpanggap na ang isang transaksyon ay T nangyari, kung ang lahat ng mga tamang kundisyon ay nasa lugar.

La Suite Ci-Dessous
Ne manquez pas une autre histoire.Abonnez vous à la newsletter Crypto Long & Short aujourd. Voir Toutes les Newsletters

Pareho ba ito ng dobleng paggastos?

Hindi. Kasama sa dobleng paggastos ang paggastos ng mga barya nang isang beses, pagkatapos ay paggawa ng ibang transaksyon gamit ang parehong mga barya bago makumpirma ang unang transaksyon. Ang lansihin ay upang makumpirma muna ang mapanlinlang na transaksyon sa network ng Bitcoin , upang T mangyari ang unang transaksyon. Iyon ay epektibong nangangahulugan na maaari mong gastusin ang mga ito nang dalawang beses.

Paano gumagana ang transaction malleability?

Upang maunawaan iyon, kailangan mong malaman kung paano gumagana ang isang transaksyon sa Bitcoin .

Kapag nagpadala ka ng mga bitcoin sa isang tao, T mo sila i-withdraw mula sa isang account at padadalhan sila ng whizzing along the wires. Ang mga bitcoin ay hindi kailanman ipinadala sa ganitong paraan. Sa halip, ang isang transaksyon ay ginawa sa Bitcoin block chain.

Ang block chain ay nagsisilbing isang higanteng general ledger para sa kabuuan ng Bitcoin network. Ito ay nagpapanatili ng mga talaan kung aling mga Bitcoin address ang nagpadala ng mga pondo sa iba pang mga Bitcoin address, at kung kailan. Nagbibigay ito ng kumpletong talaan kung gaano karaming mga bitcoin ang maaaring maiugnay sa kung aling mga address sa network sa ONE oras.

Kapag ginawa ang isang transaksyon sa Bitcoin , kabilang dito ang impormasyon tulad ng mga address kung saan nagmula ang mga bitcoin (ang mga input), kung saan sila pupunta (ang mga output), ang mga halagang inilipat, at kung aling mga address ang nagpadala ng mga pondong iyon sa address ng nagpadala.

[post-quote]

Ang bawat transaksyon ay dapat na katangi-tanging nakikilala, upang ito ay maisangguni sa block chain. Nagagawa ang transaction ID (TX ID) sa pamamagitan ng pagkuha ng impormasyon sa transaksyon, at pagpapatakbo nito sa pamamagitan ng hash function.

Ang hashing ay isang matematikal na pamamaraan na kumukuha ng iba't ibang piraso ng data at pinagsasama ang mga ito upang makabuo ng mas maikling piraso ng impormasyon, na kilala bilang hash. ONE sa mga bagay na kasama sa isang hash ng transaksyon ay ang digital signature ng user, na nagpapatunay na sa kanila nanggaling ang transaksyon. Ito ay isang paraan para sila ay digitally 'magpirma' ng transaksyon.

Ang ONE sa mga pangunahing katangian ng isang pag-andar ng hashing ay ang imposibleng sabihin kung ano ang orihinal na impormasyon sa pamamagitan lamang ng pagtingin sa hash. Imposible ring hulaan kung ano ang magiging hash, batay sa mga piraso ng impormasyon na sinimulan mo. Kung magbabago ang anumang maliit na detalye sa alinman sa mga piraso ng data na iyon, babaguhin nito ang hash sa isang ganap na hindi mahulaan na paraan.

Ginagawa nitong halos imposibleng madaya ang mga transaction ID. Ang bawat transaksyon ay dapat magkaroon lamang ng ONE posibleng hash. Maaari mong patunayan na ang isang transaksyon ay wasto sa pamamagitan lamang ng pagpapatakbo ng lahat ng mga piraso ng impormasyon na bumubuo sa transaksyong iyon sa pamamagitan ng pag-andar ng hashing, upang matiyak na nakakakuha ka ng parehong hash.

Hindi bababa sa, iyon ang ideya. Ngunit narito kung saan papasok ang pagiging malleability. Ang mga digital na lagda ng user na ginamit bilang bahagi ng hash upang 'pirmahan' ang transaksyon ay nilalayong nasa isang partikular na format. Ang format na iyon ay T palaging maayos na nasuri. Nangangahulugan ito na ang ONE hindi na-format ay maaaring ipakilala, at tinatanggap pa rin. Ang pagpapalit ng lagda sa ganitong paraan ay ginagawang posible na lumikha ng iba't ibang mga hash para sa parehong transaksyon.

Hindi maganda yun. Ngunit, sa lumalabas, hindi rin ito masama sa katapusan ng mundo. Narito kung bakit.

Paano ito nagdudulot ng mga problema?

Ang ONE problema dito ay nakasentro sa mga palitan, na kadalasang ginagamit ng mga gumagamit ng Bitcoin upang bumili at magbenta ng mga bitcoin. Ipinapadala nila ang kanilang fiat currency o ang kanilang mga bitcoin sa isang exchange, kung saan ito nakalagay sa isang account, upang ito ay ma-convert. Sa ilang mga punto, maaaring naisin nilang mag-withdraw ng mga bitcoin mula sa account.

Mayroong ilang mga potensyal na sitwasyon. Narito ang isang mag-asawa:

Mga nakakahamak na indibidwal na pag-atake

Sabihin natin na ALICE ay nagpapatakbo ng isang exchange, at si Eve ay may mga bitcoin na nakaupo sa exchange na iyon. Nagpasya si Eve na bawiin ang kanyang mga barya, at hiniling ALICE na ipadala ang mga bitcoin sa kanyang address. Kapag ipinadala sila ni ALICE , awtomatiko itong lumilikha ng isang transaksyon, na ipinadala para sa pagmimina upang ito ay maisama sa Bitcoin block chain.

Ngunit si Eve ay nagpanggap na hindi sila pinadala ALICE . Ginagamit niya ang kapintasan sa pagiging malleability ng transaksyon para kopyahin ang orihinal na transaksyon ni Alice, na bahagyang inaayos ang lagda upang makagawa ng ibang hash. Pagkatapos ay muling ipinapadala niya ang transaksyong iyon, gamit ang ibang ID.

May pagkakataon na makumpirma muna ang transaksyon ni Eve sa block chain. Kung mangyari iyon, ipapalagay ng network na wasto ang transaksyon, at T ire-record ang kay Alice. Maaaring magreklamo si Eve kay ALICE na T niya natanggap ang mga barya. Kapag tiningnan ALICE ang kanyang transaction ID sa block chain, T niya ito mahahanap, at maaari niyang subukang magpadala ng higit pang mga bitcoin, ibig sabihin ay mauubos siya sa bulsa.

Mga aksidenteng may magandang kahulugan

Kung gumagamit ka ng sarili mong custom na software upang pangasiwaan ang iyong mga bitcoin, maaari itong makabuo ng mga maling pormang hash nang hindi sinasadya. Ang mga hash na ito ay maaaring 'ayusin' ng isa pang wallet na mas mahusay na kumilos, na maayos na nagfo-format sa kanila. Ngunit maaaring baguhin nito ang TX ID. Kung ang iyong wallet ay hindi idinisenyo upang mapansin ang mga transaksyon na may parehong mga katangian ngunit ibang ID, maaari itong mauwi sa mga 'natigil' na transaksyon na nananatili sa limbo. Ang masama pa, baka isipin nito na mayroon pa itong mga baryang iyon na gagastusin.

Alinmang paraan, isa itong bangungot sa bookkeeping, kung T makayanan ng iyong software. Ang Bitcoin CORE developer na si Gregory Maxwell ay nagmumuni-muni tungkol sa posibilidad na iyon dito.

Mass denial of service attacks

Ang isang tao ay maaari ring magdulot ng mas malawak na mga problema para sa network ng Bitcoin sa pamamagitan ng sadyang paglulunsad ng mga pag-atake sa pagiging malleability ng transaksyon sa maraming palitan nang sabay-sabay, marahil ay gumagamit ng software na sadyang idinisenyo upang lumikha ng mga mutant na transaksyon. Ang pinagsama-samang pag-atake na ito ay ang tila nangyari sa linggong ito, na maraming palitan ang tinamaan.

Ang back end accounting system para sa mga palitan na ito ay maaaring makayanan ang katamtamang bilang ng mga mutant na transaksyon, ngunit kung sila ay paulit-ulit na binomba sa kanila, maaari itong magdulot sa kanila ng mga problema sa logistik nang ilang sandali.

Maaari rin itong magdulot ng mga panandaliang problema para sa merkado. Ang anumang kawalan ng katiyakan o pag-aalinlangan tungkol sa katatagan ng merkado ay natural na magkakaroon ng epekto sa mga presyo sa merkado, lalo na sa isang hindi likido, pabagu-bago ng uri ng asset.

Nangangahulugan ba ito na mayroong isang bug sa Bitcoin?

Nagkaroon ng ilang mga isyu sa mga teknolohiya na ginagamit ng network ng Bitcoin , na lumilikha ng mga problema sa pagiging malleability. Ang ONE sa kanila ay orihinal na nasa reference na kliyente - ito ang software na ginawa ng isang CORE pangkat ng mga developer na kumukuha ng karamihan sa mga tao kapag gumagawa ng kanilang sariling mga serbisyo. Ang isyung iyon ay isang pagkabigo na i-double-check ang signature data bago ipasa ito sa isa pang piraso ng software na umaasa sa Bitcoin reference client.

Ayon sa isang anunsyo mula sa Bitcoin Foundation sa linggong ito, ang pinakabagong pag-atake ng malleability na ito ay naghahatid ng mga mutated na bersyon ng mga transaksyon na "naglalantad ng mga bug sa parehong pagpapatupad ng reference at software ng ilang exchange," ibig sabihin ay may mga bahid ng software sa iba't ibang lugar sa Bitcoin ecosystem na dapat tugunan.

Sinabi rin ng mga CORE developer sa CoinDesk ang tungkol sa dalawang 'mga edge na kaso' sa reference na kliyente (mga depekto iyon na bihirang ma-invoke). Ang mga ito ay parehong nakatutok sa wallet na bahagi ng software.

Lumalabas na marami pang ibang isyu sa pagiging malleability, kabilang ang ilang nakalista ngayong buwan lang <a href="https://gist.github.com/sipa/8907691">https://gist.github.com/sipa/8907691</a> ng ONE sa mga CORE developer ng Bitcoin sa isang Bitcoin Improvement Proposal (BIP) - isang dokumento na humihiling ng ilang pagbabago sa Bitcoin.

Ang mga CORE developer ay nili-mute tungkol sa kung ano mismo ang pinakamahirap na isyu, dahil T nilang magbigay ng higit pang impormasyon sa mga potensyal na umaatake.

Paano ito inaayos?

Alam ng komunidad ang tungkol sa pinaka-madalas na pinag-uusapang isyu, na nagbigay-daan para sa mga maling pormang lagda na maisumite, noong nakalipas na 2011 (tingnan ang talakayang ito). Ang problema dito ay ang isang mahalagang piraso ng software na ginamit ng kliyente ng Bitcoin ay T humawak ng mga di-wastong nabuong lagda. T iyon kasalanan ng mga developer ng Bitcoin CORE , ngunit ang nabigo nilang gawin ay upang ma-double-check ang kliyente ng Bitcoin na maayos na nabuo ang lagda bago nila ito ibigay. Naayos iyon sa 0.8 na bersyon ng reference na kliyente.

Hindi lahat ng palitan ay gumagamit ng reference na kliyente upang pangasiwaan ang kanilang mga transaksyon sa Bitcoin , gayunpaman. Maaari silang gumamit ng mga custom na bersyon, na gumagawa ng mga bagay na bahagyang naiiba. Kaya't ang mga developer ng Bitcoin , at mga developer ng wallet at exchange ay lahat ay pinag-uusapan ang kanilang code upang matiyak na ang mga bagay ay tumatakbo nang maayos. Para sa mga palitan, kasangkot doon ang pagtiyak na ang mga palitan ay pangasiwaan ang mga mutant na transaksyon nang maganda, ginagawa ang mga tamang bagay kapag nakita nila ang ONE.

Ang iba pang mga pag-aayos ay higit pa tungkol sa mga proseso. Ang mga bagay na ginagawang higit na problema ang pagiging malleability ay ang pag-asa sa mga hindi nakumpirmang transaksyon, kung saan inililipat o ibinigay ang mga kalakal at serbisyo bago makumpirma ang isang transaksyon sa block chain. Kaya laging magandang ideya ang paghiling ng kumpirmasyon sa transaksyon.

Katulad nito, ang pagkakaroon ng ilang manu-manong pag-verify ng mga pag-withdraw ng Bitcoin mula sa mga palitan ay maaaring makatulong na KEEP maayos ang mga bagay sa likod.

Kaya't ang mundo ng Bitcoin ay nagtatapos? Nahaharap ba tayo sa isang cryptocalypse?

Ito ay isang pangangati, ngunit kaunti pa. Mayroong mga bug sa karamihan ng mga produkto ng software, ngunit hindi lahat ng mga bug ay ginawang pantay. Ang ilan ay kritikal, hindi nagpapakita ng mga error, at ang ilan ay T. Ang mga ito ay T, at ang Bitcoin ay hindi nasira. Ang mga CORE pangunahing kaalaman ng Bitcoin - ang desentralisadong paraan kung saan maraming mga computer ang nagtutulungan upang gumawa ng mga desisyon tungkol sa mga transaksyon - gumagana pa rin.

Sa aming halimbawa ng palitan sa itaas, umaasa kang magkakaroon si ALICE ng sapat na mga talaan ng bookkeeping upang mapagkasundo pa rin niya ang mga bitcoin na ipinadala niya. Kung nagpadala siya kay Eve, sabihin nating, 1 Bitcoin sa 12:10pm GMT noong ika-5 ng Pebrero, iyon ay isang kakaibang transaksyon. Masasabi lang niyang "ipinapakita ng aming mga talaan na lumabas ang transaksyong ito, sa oras na ito, gamit ang mga parameter na ito. Dapat na nagbago ang transaction ID , kaya hindi ko na ipinapadala muli ang mga bitcoin na iyon."

Ang isang exchange ay maaari ding magpatupad ng mga tool upang awtomatikong subaybayan ang mga input sa mga transaksyon, na makakatulong dito na makita ang mga mutasyon.

Kung mayroon man, makakatulong ang pagiging malleability ng transaksyon na patunayan ang katatagan ng desentralisadong network laban sa mga discrete network Events. Ang desentralisasyon ay ONE sa mga bagay na ginagawa itong 'honey BADGER of money', kung tutuusin.

Malutong na barya larawan sa pamamagitan ng Shutterstock

Danny Bradbury

Si Danny Bradbury ay isang propesyonal na manunulat mula noong 1989, at nagtrabaho ng freelance mula noong 1994. Sinasaklaw niya ang Technology para sa mga publikasyon tulad ng Guardian.

Picture of CoinDesk author Danny Bradbury