Wer zu faul ist, den Code selbst zu schreiben, den beissen die Hunde: Die Multisig-Wallet, die der Ethereum Client Parity erzeugt, hatte einen Bug. Betroffen sind zunächst mehrere ICO Startups, die rund 150.000 Ether verloren haben. Eine White Hat Hackergruppe konnte schlimmeren Schaden verhindern. Dennoch stellt der rückblickend offensichtliche Bug einige Grundannahmen von Open Source in Frage.
Gavin Wood, der Chefentwickler von Parity, hat gestern einen kritischen Bug im Ethereum-Client Parity ab Version 1.5.0 vermeldet . Alle Guthaben, Ether und Token, die in einem von Parity gebildeten Multisig-Contract sind, sind absolut unsicher.

WARNING!! pic.twitter.com/zqt3kBVyXD
— Blockchain@Berkeley (@CalBlockchain) July 19, 2017

Augenblicklich betroffen waren drei Multisig-Wallets, von denen etwa 32 Millionen Dollar oder 153.000 Ether gestohlen wurden. Dies waren die Multisig-Wallets der ICOs Swarm, Edgeless und aeternity.

Someone stole ~$32M (~153k ether) from three multisig wallets. More info and blog post coming soon.https://t.co/hXYuPto1vI
— Manuel Aráoz (@maraoz) July 19, 2017

In einem Blogpost erklärt Matthew Carano von Swarm, was vorgefallen ist: “Um etwa 12.30 Uhr hat uns Bernd Lapp, Business Hive Leader, informiert, dass der gesamte Inhalt der Swarm City Ethereum Multisig Wallet geleert wurde … leider sind die 44.055 Ethereum, die in Swarm Citys Wallet waren, verloren.”
Carano erklärt, dass die “verbesserte” Multisig-Wallet, die Parity mit der Version 1.5 im Januar 2017 eingeführt hat, einen Bug hat. Alle anderen Wallets sowie Multisig-Contracts sind weiterhin sicher.
Auf dem Ethereum-Blockexplorer Etherscan wurde die Adresse, auf die der Hacker die Guthaben überführt hat, markiert. Offenbar hat er bereits begonnen, einen Teil der Beute auf andere Adressen zu überweisen. Ob es ihm aber jemals gelingen wird, diese beschmutzten Coins zu verkaufen, ist noch eine offene Frage. Solange Ethereum keine Zero-Knowledge-Proofs oder gut funktionierende Mixing-Contracts entwickelt, dürfte es kaum möglich sein.
Auf reddit wurde der Fehler, der zu dem Hack geführt hatte, als “School boy error” beschrieben. Man hätte dies von jedem erwartet, aber nicht von Gavin Wood. Wood hat Ethereum mitgegründet, die Smart Contracts Programmiersprache Solidity entwickelt und das Ethereum Yellow Paper geschrieben, die erste formale Spezifikation von Ethereum. Mit Parity entwickelt Wood eine Alternative zum beliebten Ethereum-Client Geth, die während der Spam-Angriffe im Herbst 2016 fast im Alleingang Ethereum am Leben gehalten hat.
Das Folgende ist schief gelaufen: Der “verbesserte” Multisig-Contract, den die Wallet Parity generiert, hat die Option eines sogenannten “Ownership-Wechsels”. Mit dieser Option kann der Besitzer des Vertrags einen neuen Besitzer definieren. Dies zwingt einen Dieb des Schlüssels dazu, den Besitzerwechsel durchzuführen, wodurch der Diebstahl, immerhin, offensichtlich und auf der Blockchain nachweisbar wird, und es eventuell möglich ist, den Contract auch dann weiter zu benutzen, wenn man einen Schlüssel verloren hat.
Nun hatte diese Ownership-Wechsel jedoch einen Fehler. Es fehlte ein “internal”. Dadurch wurde es jedem möglich, den Ownership-Wechsel durchzuführen. Der Hacker hat sich nun lediglich als neuen Besitzer des Vertrages definiert und das Geld abgezogen. Da der Fehler relativ banal war, war er auch mit wenigen Änderungen zu fixen.
Die Banalität dieses Fehlers stellt eine der großen Grundannahmen von Open Source in Frage: Wenn ein so einfacher Fehler gut ein halbes Jahr lang unbemerkt bleibt, wenn die Startups, die Millionen in diesem Contract lagern, nicht in der Lage sind, den Code zu lesen und den Fehler zu erkennen – wie viele weitere Fehler sind dann in den vielen Zeilen Code, die wir Tag für Tag benutzen? Und wie kann man das jemals erfahren?
Der Fehler erinnert aber auch daran, dass Solidity, die Sprache, in der Ethereum-Contracts gewöhnlich geschrieben sind, noch blutjung ist. Sie selbst ist noch nicht ausgereift, nur wenige Leute beherrschen sie, und es gibt auch noch nicht die Entwickler-Tools, die das Entstehen solcher Bugs im Keim ersticken. Daher kann es selbst Leuten wie Gavin Wood, die Solidity wie kein anderer beherrschen sollten, passieren, dass sich ein Fehler in den Code schleicht.
Wer nun mit Parity Geld oder Token in einem Multisig-Contract gespeichert hat, muss nicht in Panik verfallen. Ein White-Hat-Hacker-Team hat sofort begonnen, jeden verwundbaren Multisig-Contract, den sie gefunden haben, zu entleeren und die Guthaben auf eine sichere Adresse zu übertragen. Die White-Hat-Hacker haben angekündigt, die Guthaben auf dieselbe Multisig-Adresse wie zuvor zu senden, allerdings ohne den Bug. Das heißt, die Guthaben werden, falls sie auf der White-Hat-Adresse gelandet sind, über kurz oder lang wieder in der Wallet erscheinen. Wer allerdings noch ein Guthaben in einer Multisig-Adresse hat, die in Parity ab Version 1.5 erzeugt wurde, sollte diese jedoch rasch übertragen. Bevor es ein anderer macht.https://bitcoinblog.de/mein-erster-bitcoin/
Der Kurs von Ethereum reagierte auf den Bug mit einem kleinen Einbruch von etwa 10 Prozent. In den enormen Schwankungen, die Ethereum derzeit täglich durchmacht, fällt dies kaum auf. Lediglich die betroffenen Startups, etwa Swarm und Edgeless, mussten höhere Verluste hinnehmen.
Die Bitcoin-Community auf Twitter nahm den Vorfall derweil zum Anlass, eine Gelegenheit zu verpassen, sich souverän zu geben. Stattdessen frönte sie der unverhüllten Schadenfreude und spottete, dass es wie bei der DAO bestimmt bald eine Hardfork geben werde, um den Hack rückgängig zu machen. Ethereums Vitalik Buterin reagierte darauf mit der Bemerkung, dass derzeit nur Concern Trolls aus dem Bitcoin-Reich eine Hardfork für Ethereum forderten. Wie auch immer – nötig hat es die Bitcoin-Szene nicht, sich an einem Bug von Ethereum zu ergötzen.Filed under: Deutsch Tagged: Bug, Ethereum, Parity
Source: Bitcoin Blog

Leave a Comment