Blockchain programeri razumiju važnost provjere svog kodiranja prije bilo kakvih trajnih promjena na svojoj platformi. Nažalost, nitko nije savršen, a pogreške u kripto programiranju mogu se i dogoditi. Kada se pojave pogreške u blockchain kodiranju, to može utjecati na velik dio kripto zajednice.
Jedna mala pogreška kripto programiranja može dovesti do milijuna izgubljenih sredstava. Kao što ćete tek naučiti, greška u vašem kodu može biti jednaka katastrofi na blockchainu. Te su dalekosežne posljedice razlog više da svoj projekt učinite otvorenim. Projekti otvorenog koda dobivaju dodatnu sigurnost zbog velikog broja programera koji provjeravaju kôd zbog pogrešaka. To je rečeno, čak i projekti otvorenog koda sadrže programske pogreške. Uzmimo trenutak da istražimo pet najvećih pogrešaka kripto programiranja u povijesti.
Ethereum i Fiasco paritetnog novčanika
Zamislite da ste programirali pametni ugovor i odjednom ste slučajno stekli kontrolu nad tisućama novčanika s više potpisa. Što bi ti napravio? Otići u Lambo u kupovinu? Ili biste išli glavnom cestom poput devops199 i pokušajte poništiti svoje kodiranje kako biste vratili novčanike pravim vlasnicima?
Dobro ste čuli; devops199 izbrisao je kôd koji mu je slučajno omogućio pristup tisućama Parity novčanika s više potpisa. Nažalost, uklanjanje koda također je na neodređeno vrijeme zamrzlo sva novčana sredstva u tim novčanicima. Ukupno je u debaklu izgubljeno Ethereum vrijedno 300 milijuna dolara.
Paritetni novčanik putem početne stranice
Ironično, bug koji je stvorio ovu katastrofu kripto programiranja nije isti kôd koji je rezultirao hakerom koji je početkom mjeseca ukrao 32 milijuna dolara. Haker je iskoristio manu u protokolu novčanika s više potpisa. Razvojni tim za Parity previše se trudio ispravljajući kvar kako bi spriječio da haker više krade. Posmatrano unatrag, učinci hakiranja nisu bili gori od 300 milijuna dolara u Ethereumu zamrznutom zauvijek.
Devedeset dvije milijarde bitcoina
Bitcoin programer Jeff Garzik primijetio je nešto neobično prilikom pregleda Bitcoin kodiranja 8. kolovoza 2010. Uzeo je za bitcointalk da upozori druge programere na ozbiljan problem na koji je naišao. Ono što je Garzik primijetio jest da je vrijednost jednog od blokova bila 92 milijarde bitcoina. S obzirom na to da bi ikad trebalo biti samo 21 000 000 bitcoina ikad stvorenih, ovo je ozbiljna greška u kodiranju.
Pogreška je bila toliko značajna da su programeri odlučili pritisnuti gumb za resetiranje. To su učinili tako što su blockchain premotali na blok prethodni onome koji je sadržavao 92 milijarde bitcoina. Ovo ponovno pokretanje značilo je da su sve transakcije izvršene nakon hakiranja, ali prije popravka, poništene.
Kasnije je otkriveno da je haker pronašao bug koji im je to omogućio iskorištavati pogreška prelijevanja broja. Ova vrsta pogreške događa se kada vaš sustav ponovno pokrene svoje protokole brojanja, umjesto da nastavi kronološki. Kada se to dogodi, to može imati sve vrste štetnih učinaka na mrežu. U ovom je slučaju rezultiralo stvaranjem 92 milijarde bitcoina. Govoreći javno, Wladimir Van Der Laan, Vodeći programer Bitcoina nazvao je incident “najgorim”.
REX ICO incident
REX platforma donosi prednosti blockchain tehnologije u sektor nekretnina. Ova platforma stvara decentraliziranu peer-to-peer blockchain uslugu višestrukog popisa (MLS). Unatoč tome što je prošla barem jednu veliku pogrešku kripto programiranja, platforma i dalje bilježi sve veći uspjeh.
REX je stigao na naslovnice u kolovozu 2017. godine kada su programeri izgubili 1,3 milijuna dolara u eteru tijekom svoje početne ponude kovanica (ICO). Do pogreške je došlo kada je jedan od programera unio pogrešan Javascript hex niz dok je programirao ICO-ove pametne ugovore. Ova je pogreška rezultirala slanjem sredstava sudionika ICO-a na neaktivnu adresu na blockchainu.
Srećom za one koji su izgubili sredstva, REX je već prikupio 13 milijuna dolara financiranja rizičnim kapitalom i uspio je svima izdati REX tokene koji su im dužni. Nisu svi te sreće kada se pojave pogreške kripto programiranja.
Binance obustavlja trgovanje
Kada ste jedna od najvećih svjetskih burzi, bilo kakve pogreške u kodiranju mogu štetiti tisućama kripto korisnika. U veljači ove godine, Binance obustavio trgovanje gotovo dva dana zbog pogreške u kodiranju. Izvornik trgovinskog embarga trebao je trajati samo 24 sata, ali Binance je produžio zamrzavanje trgovine zbog “nepredviđenih usporavanja”.
S obzirom na ogroman broj kripto hakova koji su iskusni tijekom posljednjih nekoliko godina, ne čudi da su kripto trgovci postali vrlo sumnjičavi prema razmjeni. Mnogi su vjerovali da je razmjena hakirana i da prešućuju istinu od javnosti. Zabrinutost je postala toliko velika da su čak John McAfee otvorila Twitter kako bi upozorila potencijalno pogođene.
Zhao Chengpeng putem Twittera
Kao odgovor na sve veće nemire u javnosti, izvršni direktor Binancea, Zhao Chengpeng, objavio zaslon pogreške kodiranja. Također je obećao ažurirati svoj račun na društvenim mrežama svaka dva sata dok se problem ne riješi. Na kraju su programeri ispravili programsku pogrešku, a da nitko nije izravno gubio sredstva.
Noćna mora nadogradnje bitcoina
Kao i sav softver, i Bitcoin kodiranje s vremena na vrijeme treba nadograditi. Te su nadogradnje ključne za održavanje nesmetanog rada blockchaina. Kad nešto krene po zlu s ažuriranjem Bitcoina, to može biti katastrofalno.
Savršen primjer košmara za nadogradnju Bitcoina dogodio se u ožujku 2013. Bitcoin je planirao nadogradnju s verzije 0.7 na verziju 0.8. Verzija 0.8 povećala je veličinu bloka Bitcoina. Kad je ažuriranje završeno, noćna mora je započela.
Programeri su shvatili da je ažuriranje učinilo mrežu nekompatibilnom s trenutnom verzijom Bitcoina. Ova nadogradnja podijelila je blockchain u dva odvojena. Ovaj je razdor sličan hard forku, ali dogodio se puno prije Bitcoin Casha.
Bitcoineri su počeli upozoravati programere na probleme koje oni imaju naišao s nadogradnjom. Na kraju je zajednica odlučila da je najbolje ponovno pritisnuti gumb za ponovno pokretanje. Bitcoin se vratio na verziju 0.7, ali kao što vjerojatno znate, ovo nije bio kraj rasprave o veličini bloka u Bitcoin zajednici.
Pogreške u kripto programiranju – budite na oprezu
Iako nam blockchain tehnologija omogućuje nadogradnju naših trenutnih sustava, ona nije savršena. Ove glavne pogreške kripto kodiranja ističu poteškoće s kojima se danas suočavaju programeri blockchaina. Većina kripto korisnika nikad ne prestaje razmišljati o nadarenim muškarcima i ženama koji čine da kripto prostor funkcionira. Sad kad ste uvidjeli posljedice pogrešaka kripto programiranja, sigurno ćete znati kad sve funkcionira prema planu.