Új 280M USD-s Ethereum smart contract bug

Prelógus:

Az ethereum olyan programok (aka smart contract-ok) létrehozását teszi lehetővé, amik a P2P hálózatban minden gépen lefutnak és trustless módon konszenzus jutnak annak eredményéről.

"Build unstoppable applications
Ethereum is a decentralized platform that runs smart contracts: applications that run exactly as programmed without any possibility of downtime, censorship, fraud or third party interference." - mondja az oldaluk

Pár órája, egy magát "kísérletezgető newbie"-nek hívó user véletlenül talált egy bugot az egyik smart contract-ban amivel azt működésképtelenné tette.

“I’m eth newbie… just learning… sending kill() destroy() to random contracts you can see my history”
“I’m walking randomly becaue i’m a newbie. I even don’t know how to code, I’m just a consultant, user interface.”

Ezt a smart contract a mai értéken kb 280M USD-t érő ethereumot tett elérhetetlenné.

https://github.com/paritytech/parity/issues/6995
https://blog.comae.io/the-280m-ethereums-bug-f28e5de43513

Extra pontok:

  • Mindezt azután, hogy júliusban ugyanebben a contract-ban egy másik hibát kihasználva loptak el 46M USD értékű ethereumot. (Igazából 150M USD értékűt érintett, de a hacker valamiért csak egy részét rakta el magának)
  • A hibás smart contractokat az Ethereum egyik alapítója és a contract programozási nyelvének (solidity) kifejlesztője Dr. Gavin Wood írta.

kb egy ~300 soros programról beszélünk.

Bug bounty volt és elmondásuk szerint "underwent extensive peer review, created and audited by the Ethereum Foundation's DEV team" valamint a júliusi hiba óta külön kiemelték, hogy rengeteg "Solidity expert" nézte át a kódot és mindenki mindent rendben talált.

Ez felveti a kérdéseket:

  • Hol a hiba?
  • A programozási nyelv a rossz?
  • A programozók akik írták és átnézték?
  • Az API?
  • Vagy csak egyszerűen maga az emberi agy alkalmatlan arra, hogy leírjon és értelmezzen egy párszáz soros szabályrendszert?
  • Te egy 300 soros programra vagy egy cégre (pl. PayPal) bíznád a pénzed?

Hozzászólások

Én vagy az államra bíznám (az állam jó gazda ugye) vagy ha neki nincs rá szüksége (mert ilyen gyakran előfordul) akkor csakis Mészáros Lőrincre
--
God bless you, Captain Hindsight..

Most is egy cégre bízom a pénzem, aminek a neve úgy végződik hogy Bank Zrt. Se jobb, se rosszabb mint egy paypal. Ez hogyan kapcsolódik az ethereum bughoz?

Ha valaki ért hozzá akkor az összes ilyen smart contracton végigmehetne :)
Szerintem elég sok helyen találna csodaszép hibákat, amik 1-10-100-1000 ETH bekaszálásával járnának, amennyiben nem okoz neki lelki törést, hogy idegenektől lopjon.
Mondjuk 1000 ETH már az az összeg, amiért sokmindenre képes az ember. És itt több százezerről van szó!

Szerintem az idegenektől lopás a legtöbb esetben nem visszatartó erő. (főleg nem egy pszeudonimitást biztosító hálózatban)

Tavaly 3.6Millió ETH-t loptak a DAO hack-nál. Ez mai értéken 1100 Millió USD lenne, de a ETH fejlesztők visszaforgatták az idő kerekét és semmisség tették a contractot. (ezt a döntést azóta is sokan vitatják)

Az Ethereum is hasonló, mint a Bircoin?
Mert már ott sem értettem, hogy ha a virtuális pénz egy titkosított fájban tárolódik, akkor mégis ki az a naiv ember, aki a cég felhőjében tárolja a botcoinját.
Mikor vehet pár darab pár gigás pendrive-ot, és mindegyikre rámásolja, majd azokat elrakja, esetleg különböző
helyekre.
A sok 100 ezres bitcoin lopásokra gondolok.
Én még egy saját dokumentumot se bíznék egy akármilyen külföldi cég felhőjére, nemhogy egy már 7E ? dollárt érő pénzt.