Eine Schwachstelle in der Art und Weise, wie einige Entwickler Ethereum implementieren, hat zu einem Last-Minute-Update für The DAO geführt, eine verteilte autonome Organisation mit über 150 Millionen US-Dollar, um in Ethereum-basierte Projekte zu investieren.

Ohne einen Leiter oder ein formelles Sicherheitsteam zur Identifizierung und Behebung potenzieller Sicherheitsbedrohungen fällt diese Verantwortung einer Open-Source-Gemeinschaft zu, die aus Mitgliedern besteht, die im Rahmen ihrer Erstellungsphase Stimmrechte in der Organisation mit Ether gekauft haben.

Während die Identitäten einiger Beteiligter noch unklar sind, ist die Methode, mit der die Schwachstelle identifiziert und wie berichtet wurde, der erste reale Test der Struktur und der Problemlösungstechniken der DAO.

Through the grapevine

Das Problem begann letzte Woche, als GitHub User "beiläufig auf einen schrecklichen, schrecklichen Angriff auf Wallet-Verträge hinwies", der sich aus der Art und Weise ergeben könnte, wie einige Entwickler mit Ethereums Solidity-Sprache geschriebene intelligente Verträge implementierten , sagt der Gründer der Blockchain Foundation, Peter Vessenes.

Der Blogeintrag von Vessenes über das Problem erregte dann die Aufmerksamkeit eines Reddit-Benutzers, der mit dem Maker DAO verbunden ist, der auf der Ethereum-Blockchain aufbaut.

Die Schwachstelle, durch die Angreifer einen bestimmten Account-Typ entwässern können, wurde von der Maker-DAO erfolgreich getestet, was wiederum Eththrowa, einem Nutzer des Forums der DAO-Mitglieder, Aufmerksamkeit auf sich zog.

Eththrowa bestätigte, dass die Sicherheitslücke auch in der Implementierung vorhanden war, die dann von der DAO verwendet wurde, die mit von Slock geschriebener Open-Source-Software erstellt wurde. Es ist die größte verteilte autonome Organisation mit einem Äther von derzeit etwa 162 Millionen US-Dollar.

Es war diese Post, die schliesslich die Aufmerksamkeit von Slock auf sich zog. es Gründer Stephen Tual. Er reagierte prompt mit anderen Mitgliedern des Forums und schrieb einen Tag später einen Link zu einem Fix.

Gestern kündigte Tual eine Reihe von Upgrades für die Software des Projekts an, die entwickelt wurden, um die Schwachstelle und andere spieltheoretische Angriffsvektoren zu bekämpfen, die nicht mit der Sicherheitsanfälligkeit "rekursiver Aufruf" zusammenhängen, wie sie jetzt aufgerufen wird.

In seinem Beitrag schrieb Tual:

"Wir bedanken uns bei der Gemeinschaft ... die erneut bewiesen hat, dass ein offener Entwicklungsprozess zur raschen Identifizierung, Isolierung und Lösung potenzieller Schwachstellen führt, und in diesem Fall der Gesamtverbesserung von Entwurfsmustern als Teil von Programmiersprachen. "

Laut einer separaten Veröffentlichung waren keine DAO-Fonds aufgrund der Sicherheitsanfälligkeit gefährdet.

Größeres Problem

Das DAO wurde Anfang des Jahres von einer unbenannten Person oder Gruppe ins Leben gerufen. Das DAO basiert auf Open-Source-Code, mit dem Nutzer gemeinsam entscheiden können, wie sie Fonds an Projekte verteilen, die sie für angemessen halten Das Projekt ist erfolgreich.

In diesem Fall hätte die Sicherheitslücke einen Empfänger dieser Dividenden "viele Male seine Berechtigung verlieren lassen, indem er den Vertrag rekursiv aufruft", so Eththrowa.

Aber wie Vessenes 'Beitrag am Freitag klarstellte, ging es bei der rekursiven Call-Bedrohung nicht nur um eine Schwachstelle in DAO, sondern um ein allgemeineres Problem bei der Implementierung von intelligenten Verträgen, die mit der Programmiersprache Solidity geschrieben wurden.

In einer E-Mail an CoinDesk lieferte Vessenes eine technischere Beschreibung der Sicherheitslücke:

"Alle öffentlichen Solidity-Funktionen, die Geld senden oder auf einem anderen Vertrag" Call "verwenden, können rekursiv von einem angreifenden Empfänger aufgerufen werden. • Wie Bitcoin funktioniert, kann eine Überraschung für unerfahrene Entwickler von Ethereum sein, die praktische Implikation ist, dass jede Ihrer Funktionen (und eigentlich Ihr gesamter Vertrag) "reentrant" sein sollte, das heißt, sie sollten dieselben Teile funktionieren davon werden vor der Fertigstellung wieder aufgerufen. "

Die Korrekturen

Taylor Gerring von der Ethereum Foundation erklärte CoinDesk, dass die ursprüngliche Beschreibung des Problems von Vessenes korrekt war. Er fügte jedoch hinzu, dass die Sicherheitslücke keine Änderungen an der Codebasis von Ethereum erfordert.

Die Sicherheitsanfälligkeit erfordert vielmehr eine andere Art der Implementierung durch Entwickler.

Im Interview sagte Gerring, dass die Sicherheitslücke "insofern ein Problem ist, als ein menschlicher Programmierer dieses Problem verursachen könnte", "aber es ist kein inhärentes Problem mit Solidity oder EVM [the Ethereum Virtual Machine]", der Skriptsprache und den Code-Interpretern Mach das Netzwerk an.

Vessenes hat zwei mögliche Lösungen für die "rekursive Call" -schwäche in seinem Beitrag enthalten.

Weitere Fixes speziell für den Code von DAO, die gestern ebenfalls von Slock angekündigt wurden. Es wurde entwickelt, um mögliche Probleme zu lösen, auf die einige im Hinblick auf das Governance-Modell der Organisation hingewiesen haben.

Im Einzelnen handelt es sich hierbei um Korrekturen bei bestimmten spieltheoretischen Angriffen, einschließlich einer sogenannten "Ja-Voreingenommenheit", die sich aus einem negativen Anreiz für "Nein" -Stimmen ergibt. Die Fixes wurden in Form von Pull-Requests auf GitHub implementiert.

Nun liegt es an den 23.000 stimmberechtigten Mitgliedern der DAO, den Änderungen zuzustimmen oder eine alternative Lösung zu suchen.

schrieb Tual auf dem Slock. it blog:

"Dies ist ein vollständig Open-Source-Projekt. Ab heute und während eines zweiwöchigen Zeitraums werden alle, einschließlich der Kuratoren, dazu ermutigt, die Veröffentlichung zu überprüfen und daran teilzunehmen."

Crowd-Bild über Shutterstock