Share this article

Ang Ethereum Bug ay Nagbabalik ng Mga Matalinong Kontrata sa Drawing Board

Ang isang maliit na Solidity bug ay nagdulot ng malaking debate sa mga developer ng Ethereum .

Ang mga bug ay isang normal na bahagi ng software, ngunit sa Ethereum, maaaring mapanganib ang mga ito.

Iyon ay maaaring ang takeaway mula sa isang Ethereum programming language bug na natagpuan sa linggong ito na nakakaapekto sa isang partikular na istilo ng smart contract at, dahil sa kung paano gumagana ang Ethereum (nangangako ito na ang mga application ay tatakbo nang eksakto tulad ng naka-program), karamihan sa mga kontratang apektado ay T maaaring tanggalin o baguhin.

Story continues
Don't miss another story.Subscribe to the Crypto Daybook Americas Newsletter today. See all newsletters

Sa madaling salita, ang mga may-ari ng mga desentralisadong smart contract (yaong T ma-upgrade ng ONE may-ari) ay T magagawa para ayusin ang bug.

Dalawang araw pagkatapos ng ulat ng bug ay inisyu, naglunsad ang mga developer ng pag-aayos sa bersyon ng Solidity 0.4.4. Ngunit naaapektuhan ng bug ang ilan sa mga address at uri ng data sa mga kontratang ito kaya T pa rin sila mababago sa pag-upgrade.

Ang magandang balita ay maaaring hindi naapektuhan ng bug ang maraming matalinong kontrata.

Sinabi ng tagalikha ng Solidity na si Christian Reitwiessner sa CoinDesk na nagpatakbo siya ng isang "semi-automated" na pagsusuri ng bawat programa ng Ethereum na nakalista ng isang sikat na block explorer at nalaman na sa 12,000 kontrata, apat lang ang pinagsamantalahan.

Sinabi ni Reitwiessner na wala sa mga kontratang ito ang may anumang eter sa mga ito, dahil malamang na ginamit ang mga ito para sa mga layunin ng pagsubok. Ngunit nararapat na tandaan na hindi lahat ng mga kontrata ay ipinapakita sa Etherscan, ang napiling block explorer. (May kabuuang higit sa 200,000 kontrata, kaya mahirap sabihin kung gaano kaligtas ang natitirang mga pondo ng kontrata).

Sa pangkalahatan, lumilitaw na ito ay isang maliit na depekto kung ihahambing sa The DAO, ang pinakakilalang halimbawa ng isang matalinong kontrata na hindi gumagana ayon sa nilalayon. Gayunpaman, nakabuo ito ng talakayan tungkol sa kung ano ang maaaring mangyari sa kaso ng iba pang pangunahing mga bug dahil hindi lahat ng matalinong kontrata ay magkakaroon ng pangunahing may-ari na maaaring mag-update sa kanila kung may nangyaring mali.

ONE tagamasid sa social media, halimbawa, nakipagtalo na maaaring ito ay isang "molehill sa gilid ng isang malaking bundok" ng mga katulad na isyu.

Ang ONE sa mga mas radikal na ideya para sa pag-aayos ng problemang ito ay ang gawing naa-upgrade ang mga kontrata ng Ethereum sa malapit na panahon upang ang mga may-ari ay magkaroon ng ilang paraan ng pag-deactivate o pagbabago ng code sa kaso ng isang sakuna. Ngunit ang pangamba ay ang paggawa niyan ay maaaring mangahulugan ng pagtatanggal sa kung ano ang ginagawang kakaiba ang Ethereum (o iba pang mga desentralisadong platform).

Sinabi ng estudyante ng PhD ng National University of Singapore na si Loi Luu na mas maganda para sa Ethereum kung natutunan ng mga user kung paano mag-deploy ng mga secure na smart contract sa mahirap na paraan, sa isang desentralisadong paraan.

Sinabi ni Luu:

"Sa palagay ko, T ito magandang ideya. Talaga itong laban sa lahat ng idinisenyo ng mga smart contract. Kung ang Ethereum ay isang beta network, hayaang mabigo ang mga smart contract, hayaan ang mga tao Learn ng kanilang mga aralin."

Ngunit habang iminumungkahi ng mga komento ni Luu na maaaring hindi magandang ideya na gawing naa-upgrade ang lahat ng kontrata, may ilang paraan para maghanda para sa mga potensyal na bug sa hinaharap, lalo na habang ang Ethereum ay isang bagong Technology pa rin .

Pag-aayos ng problema

Ang mga program na nakasulat sa mas mataas na antas ng ethereum, madaling basahin na mga wika, tulad ng Solidity o Serpent, ay pinagsama-sama sa byte-level code bago sila idagdag sa blockchain. Ang problema dito ay sa Technology gumagawa ng pag-compile.

Upang ayusin ang problema, Reitweissner inirerekomenda na ang mga developer ay gumagawa ng dalawang bagay. ONE, kung mag-compile ng bagong kontrata, kailangang mag-upgrade ang mga developer sa bagong bersyon ng Solidity para maiwasan ang bug.

Ang pangalawang paraan para maiwasan ang problema ay ang mas kakaibang halimbawa, dahil nangangailangan ito ng pag-upgrade o pag-defunding ng mga smart contract na na-deploy na – isang bagay na hindi mo inaasahan ay posible sa Ethereum.

Ipinaliwanag ni Reitwiessner ang payong ito, na nagpapaliwanag na mayroong dalawang uri ng mga kontrata: kontrolado ng sentral at desentralisado, kung saan walang ONE ang may "mga espesyal na pribilehiyo".

Ang unang uri ay malamang na nag-aalok ng ilang mekanismo ng pag-upgrade o isang paraan upang alisin ang mga pondo mula sa kontrata.

Ang pangalawang uri ay mas nakakalito. Sa kabilang banda, dahil T maaaring tanggalin o baguhin ang mga walang tiwala Ethereum smart contract kapag na-deploy na ang mga ito, T nang magagawa ang mga developer kung T sila gumamit ng sentralisadong smart contract sa simula.

Gayunpaman, sinabi ni Reitwiessner na maaaring magbantay ang mga developer laban sa mga problema sa hinaharap (tulad ng mga may Solidity) sa pamamagitan ng paggawa ng ilang bagay.

"Ang aking rekomendasyon para sa mga naturang kontrata ay KEEP ang mga ito nang maikli ang buhay, upang ang mga potensyal na masamang epekto ay maliit o gumawa ng isang maayos na pormal na pagsusuri ng bytecode ng kontrata. Kasalukuyan kaming gumagawa ng mga tool upang makatulong sa paggawa nito," sabi niya.

Mga naa-upgrade na kontrata

Gayunpaman, may ilang mga paraan upang makayanan ito.

Inilarawan ng pinuno ng mga panlabas na relasyon ng Ethereum Foundation na si Hudson Jameson ang isang paraan ng pag-upgrade ng mga matalinong kontrata na posibleng maging desentralisado, na nangangatwiran na ang pagdaragdag ng paraan upang mag-upgrade ng live na code ay isang pangangailangan.

"Ang pangkalahatang pakiramdam mula sa aming mga developer ay na sa maagang yugtong ito ay mahalaga na magkaroon ng mga fail-safe sa iyong code upang ligtas na i-deactivate o i-upgrade ang mga kontrata na mayroong malaking halaga," sabi niya.

Inilarawan ni Jameson ang ilang potensyal na smart contract na "fail-safes," kung saan nagagawa ng mga may-ari na i-upgrade ang kanilang mga kontrata kahit na pagkatapos nilang i-deploy sa Ethereum, o kung saan matukoy ng mga smart contract kapag may nangyayaring hindi kapani-paniwala.

Sinabi niya na T nila kailangang maging sentralisado, o sa ilalim ng kontrol ng ONE may-ari. Halimbawa, maaari kang magkaroon ng isang matalinong kontrata na naglalagay ng limitasyon sa kung gaano kalaki ang isang asset na maaaring i-withdraw sa isang pagkakataon.

"Kaya kung susubukang ubusin ng isang attacker ang kontrata ng mga pondo o asset, maaari itong mag-trigger ng desentralisadong tugon tulad ng pag-lock sa kanila at pag-abiso sa ibang tao na gumagamit ng kontrata na maaaring kailanganin nilang bawiin ang kanilang mga pondo," sabi niya.

Inilarawan niya ang ilang iba pang mga pamamaraan, kabilang ang pag-detect ng pag-hack, shut-off switch at mga multi-signature na transaksyon kung saan higit sa ONE tao ang kailangang mag-sign off sa isang transaksyon bago maibigay ang ether.

Inaasahan

Ang mga matalinong kontrata sa Ethereum Classic (ang pangkat na humiwalay sa Ethereum dahil sa hindi pagkakasundo sa ideolohiya) ay apektado rin ng bug dahil umaasa ang blockchain nito sa parehong hanay ng mga tool.

Ngunit ayon sa nangunguna nitong organizer na si Arvicco, ang mga developer ay nag-e-explore ng ibang pangmatagalang paraan ng pagbuo ng programming language na mas lumalaban sa mga bug.

"ONE sa mga posibleng paraan ay ilipat ang smart contract language development mula sa object/procedural to functional paradigm," aniya.

Anuman ang posibleng pag-aayos, ipinahihiwatig ng talakayan na hindi T asahan ng mga developer ng Ethereum na gagana ang kanilang mga matalinong kontrata nang wala pang potensyal na mapanganib na kahihinatnan, na maaaring ganap na malinaw o hindi sa mga nag-deploy na ng code sa network.

Tulad ng para sa Solidity sa partikular, ang isa pang hindi mapigilan na bug ay maaaring makaapekto sa iba pang mga matalinong kontrata sa hinaharap.

Nabanggit ni Reitwiessner na laging posible para sa isang compiler na magpakilala ng bug, at posibleng may iba pang hindi natuklasang mga depekto ang Solidity o Serpent (iba pang matalinong wika ng kontrata ng ethereum).

Gayunpaman, nabanggit niya na sa mahigit dalawang taon ng pag-unlad, ito ang unang malubhang bug na natagpuan sa smart contract language.

Larawan ng konstruksiyon sa pamamagitan ng Shutterstock

Alyssa Hertig

Isang nag-aambag na tech reporter sa CoinDesk, si Alyssa Hertig ay isang programmer at mamamahayag na dalubhasa sa Bitcoin at sa Lightning Network. Sa paglipas ng mga taon, lumabas din ang kanyang trabaho sa VICE, Mic at Reason. Kasalukuyan siyang nagsusulat ng isang libro na nagtutuklas sa mga pasikot-sikot ng pamamahala sa Bitcoin . Si Alyssa ay nagmamay-ari ng ilang BTC.

Alyssa Hertig