De slimme contracten van Ethereum zitten vol gaten

Lynne Carty





Computerprogramma's die op blockchains draaien, schudden het financiële systeem door elkaar. Maar veel van de hype rond wat slimme contracten worden genoemd, is precies dat. Het is een gloednieuw veld. Technologen beginnen er net achter te komen hoe ze moeten worden ontworpen zodat ze erop kunnen vertrouwen dat ze geen geld van mensen verliezen, en - zoals een nieuw onderzoek naar slimme contracten van Ethereum illustreert - beveiligingsonderzoekers komen nu pas in het reine met wat een kwetsbaarheid in een slim contract is lijkt er zelfs op.

Dit stuk verschijnt in onze tweewekelijkse nieuwsbrief Chain Letter, die de wereld van blockchain en cryptocurrencies behandelt. Registreer hier - het is gratis!

Digitale automaten: De term slim contract komt van de pionier op het gebied van digitale valuta, Nick Szabo, die het meer dan 20 jaar geleden bedacht (en wie kan wel of niet Satoshi Nakamoto zijn ). Het basisidee, Hij schreef , is dat vele soorten contractuele clausules (zoals onderpand, bonding, afbakening van eigendomsrechten, enz.) kunnen worden ingebed in de hardware en software waarmee we te maken hebben, op een manier die een contractbreuk duur maakt (indien gewenst , soms onbetaalbaar) voor de overtreder. Szabo noemde fysieke automaten een primitieve voorouder van slimme contracten, omdat ze munten nemen en een product uitgeven en de juiste verandering volgens de weergegeven prijs.



Voer de blockchain in: Tegenwoordig is de meest voorkomende opvatting van een slim contract een computerprogramma dat is opgeslagen op een blockchain. Een blockchain is in wezen een gedeeld boekhoudkundig grootboek dat cryptografie en een netwerk van computers gebruikt om activa te volgen en het grootboek te beveiligen tegen manipulatie. Voor Bitcoin geeft dat twee partijen die elkaar niet kennen een ijzersterke garantie dat een overeengekomen overdracht van geld zal gebeuren zoals verwacht - dat wil zeggen dat niemand zal worden bedrogen.

Slimme contracten zijn waar dingen interessant worden. Met behulp van een slim contract kunnen twee mensen een systeem creëren dat geld opneemt van de rekening van één persoon - laten we zeggen van een ouder - en deze op de rekening van een kind storten als en wanneer het saldo van het kind onder een bepaald niveau daalt. En dat is nog maar het eenvoudigste voorbeeld: in theorie kunnen slimme contracten worden gebruikt om allerlei soorten financiële overeenkomsten te programmeren, van derivatencontracten tot veilingen tot door blockchain aangedreven escrow-accounts.

ICO's overal: Een van de meest populaire toepassingen van slimme contracten is het creëren van nieuwe cryptocurrencies. Een paar van hen hebben een glimp gegeven van een nieuw soort economie waarin een speciaal gemaakte digitale valuta kan worden gebruikt voor een gedecentraliseerde service, zoals gegevensopslag of digitale valutahandel. De opwinding van beleggers over de belofte van dergelijke toepassingen heeft de ICO-rage aangewakkerd, die meer dan $ 5 miljard heeft opgeleverd. (Wat is in godsnaam een ​​ICO? ← Hier is een inleiding)



Maar houd je paarden vast: Technologen hebben nog steeds geen volledig beeld van hoe een beveiligingslek in een slim contract eruitziet, zegt Ilya Sergej , een computerwetenschapper aan het University College London, die co-auteur is van een studie over het onderwerp vorige week gepubliceerd.

Gebruikers leerden dit op de harde manier in 2016 toen een hacker $ 50 miljoen stal van de zogenaamde Decentralized Autonomous Organization, die was gebaseerd op de Ethereum-blockchain. En in november werd zo'n 150 miljoen dollar ineens onbereikbaar voor gebruikers van de portemonneedienst Parity, die ook geworteld is in Ethereum.

Sergey en collega's gebruikten een nieuwe tool om een ​​steekproef van bijna een miljoen slimme Ethereum-contracten te analyseren, waarbij ongeveer 34.000 als kwetsbaar werden aangemerkt, inclusief degene die leidde tot het Parity-ongeluk. Sergey vergelijkt het werk van het team met interactie met een automaat, alsof de onderzoekers willekeurig op knoppen drukten en de omstandigheden registreerden waardoor de machine op onbedoelde manieren handelde. Ik denk dat er nog een groot aantal kwetsbaarheden moet worden ontdekt en formeel moet worden gespecificeerd, zegt Sergey.



zich verstoppen