Lessons Learned bei der Entwicklung von Ethereum Smart Contracts

  1. Das bisherige Fehlen von Gleitkomma-Datentypen in Ethereum’s Smart Contract Programmiersprache Solidity macht die Spendenanteilsbildung umständlich bzw. ungenau.
  2. Eine Auszahlung der Spenden nach Push-Prinzip (d.h. der Smart Contract von oursolargrid.org pushed Spenden an den Smart Contract des Produzenten) ist unsicher, da das Senden den Smart Contract des Produzenten zur Ausführung bringt, und sich dort beliebiger u.U. fehlerhafter bzw. böswilliger Programmcode verbergen kann (Callstack Tiefe kann überschritten werden oder das Gaslimit überschritten werden). Resultat könnte ein Programmabsturz des oursolagrid.org Smart Contracts sein. Die Empfehlung der Entwickler von Solidity ist, ein Withdrawal-Pattern zu implementieren, in dem der Smart Contract des Produzenten seinen Anteil vom oursolargrid.org Smart Contract abhebt. Dieses Pattern macht den einfachen Auszahlmechanismus allerdings deutlich komplizierter.
  1. Die Transparenz von Blockchain und den darauf befindlichen Smart Contracts macht es potentiellen Angreifen einfach, Sicherheitslücken im Programmcode von Smart Contracts aufzuspüren und zu Ihrem Vorteil auszunutzen. Besonders Smart Contracts, die wie im Falle von The DAO mehrere Millionen an Wert verwalten, können so zu einem attraktiven Angriffsziel werden.
  2. Hat der Entwickler eines Smart Contracts wie im Beispiel von The DAO keine Funktion implementiert, die es ermöglicht, einen Smart Contract im Notfall anzuhalten oder zu deaktivieren, dann kann bei böswilligen Angriffen bzw. Zweckentfremdung des Smart Contracts ohne aufwändige Eingriffe in das Verhalten der Blockchain (Soft oder Hard fork) keine schützende Maßnahme ergriffen werden.
  3. Der The DAO Angreifer hat eine unzureichende interne Zustandsverwaltung der Finanzierungsanteile ausgenutzt, möglich war dies u.a. auch durch das Re-entrancy Problem der Programmiersprache Solidity.

--

--

--

CEO at CPG Finance Systems GmbH www.cpg.de

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Dr. Martin Berger

Dr. Martin Berger

CEO at CPG Finance Systems GmbH www.cpg.de

More from Medium

DApps & Web3: A new version of the Internet?

Can DAOs replace corporations?

I didn’t know that there was this kind of monster in the blockchain world…

5P;1R — Ethereum’s Modified Merkle Patricia Trie