Warum auf der Genesis Adresse von Ethereum Token in unfassbarem Wert liegen

Eigentlich sollte alles, was auf der Genesis-Adresse landet, dort für immer eingeschlossen sein. Dass dennoch so viele Werte darauf liegen, ist ein wunderliches Phänomen mit vielschichtigen Ursachen.
Jede Blockchain muss irgendwo beginnen. Man braucht einen ersten Block, von dem aus die Kette von Blöcken geknüpft wird. Als Bezeichnung für diesen ersten Block hat sich der schauerlich-biblische Begriff “Genesis Block” durchgesetzt. Jeder echte Fan einer Kryptowährung kennt seinen Genesis-Block, bei Bitcoin findet man dieses historische Stück Code hier.
Anders als alle anderen Blöcke wird ein Genesis-Block nicht durch Mining erzeugt. Klar, denn Mining braucht einen Input von Daten, zu denen auch die Hash bzw. ID des vorhergegangenen Blocks gehört. Da es keinen vorherigen Block gibt, kein Ei, aus dem die Henne schlüpfen kann, muss der Erfinder der Blockchain den Genesis-Block so bilden, wie Gott die Erde geschaffen hat – aus dem Nichts. Dies macht den Block speziell.
Bei Ethereum haben die Gründer vereinbart, dass die Erzeugung des ersten Blocks niemandem zugeschrieben werden sollte. Stattdessen wurde seine Erschaffung einer Adresse zugeschrieben, für die niemand den Schlüssel haben kann – eine sogenannte “Burn-Adresse”. Die als “Genesis Account” bekannte Adresse ist die
0x0000000000000000000000000000000000000000
Diese Adresse ist auffällig einmalig; eine Null, ein kleines x, dann 40 weitere Nullen. Ein Computer bräuchte Jahrhunderte, wenn nicht Jahrmillionen, um exakt den privaten Schlüssel zu finden, der diese Adresse öffnet. Damit sind alle Ether, die hierhin geschickt werden, unwiderbringlich verloren. Es ist so, als wären sie in einer Truhe aus einem durchsichtigen, aber unzerstörbaren Material.
Erstaunlicherweise ist der Genesis Account nicht arm an eingehenden Transaktionen. Bei Etherscan können Sie ihn selbst anschauen. Er hat derzeit ein Guthaben von mehr als 7.000 Ether (das entspricht mehr als sechs Millionen Dollar) sowie Guthaben in mehr als 200 verschiedenen Token im Umfang von, Achtung: 584 Millionen Dollar. Am Grunde des undurchdringlichen Sees liegt also, für jeden gut zu sehen, eine halbe Milliarde Dollar.
Wir kennen das von Bitcoin. Auch die Adresse, auf die sich Satoshi die ersten 50 Bitcoin aus dem Genesis Block überwiesen hat, verfügt mittlerweile über mehr als 66 Bitcoins. Die Leute lieben es, Geld symbolreich an besondere Adressen zu schicken. Aber knapp 600 Millionen Dollar? Schwimmt das Ökosystem um Ethereum so sehr in Geld, dass es sich diesen Unsinn leisten kann, nur weil es so schön ist? Oder gibt es andere, rationalere Gründe, um dieses gewaltige Guthaben zu erklären?
Bei meiner Recherche bin ich auf eine Fülle von Ursachen gestoßen, weshalb Guthaben auf dem Genesis-Account landen. Die erste Erklärung ist, dass es ein Bug in der Software oder schlicht ein Irrtum ist. Denn es gibt einen sehr großen Unterschied zwischen Ethereum- und Bitcoin-Adressen: Bitcoin-Adressen sind mehrfach gehashte Ableitungen eines öffentlichen Schlüssels. Da eine Prüfsumme in sie eingearbeitet wurde, ist es so gut wie unmöglich, versehentlich durch Vertippen eine gültige Bitcoin-Adresse zu treffen. Daher gibt es auch keine bekannten Fälle von Fehlsendungen von Bitcoins. Bei Ethereum hingegen ist die Adresse lediglich der öffentliche Schlüssel eines Schlüsselpaares, was bedeutet, dass jede mögliche Folge von 40 Hexadezimalzeichen eine gültige Ethereum-Adresse ergibt. Es ist ziemlich leicht, sich zu vertippen.
Und die Adresse, die man durch Vertippen am einfachsten erwischt, ist die des Genesis-Account. Sie müssen nur die Null gedrückt halten – oder eine klemmende Taste haben – und schon steht sie in Ihrem Adress-Feld. Schlimmer noch: Manche Wallets füllen das Adress-Feld automatisch mit Nullen, wenn es leer gelassen wird. So berichtet ein User davon, dass ihm genau dies mit Golem-Token von einer Ledger-Wallet aus passiert ist. Ein Blick auf das Golem-Guthaben des Genesis-Accounts zeigt, dass er offenbar nicht der einzige war, der auf diese oder eine ähnliche Weise Token verloren hat.
Ähnlich gelagert ist ein bekannter Fehler in einer alten Mining-Software in C++. Wenn man beim Start des Miners vergaß, eine Adresse anzugeben, füllte die Software das Feld mit Nullen. Mittlerweile ist der Fehler beseitigt, aber für eine Zeitlang hat dies den Genesis-Account wohl gelegentlich zum Adressaten der Mining-Belohnung gemacht.
Dies erklärt vieles, aber noch längst keine halbe Milliarde Dollar in Token. Hier greift ein Bündel weiterer Erklärungen: Bei einem Teil der über 200 Token auf der Adresse dürfte es sich um Spam-Token handeln: Es kommt immer wieder vor, dass Token wahllos an beliebige Adressen verteilt werden. Ich selbst habe Adressen mit mehr als zehn Token, die ich niemals gewollt habe, und ich vermute, eine derart prominente Adresse wie die des Genesis Acounts dürfte zum unfreiwilligen Träger zahlreicher Token werden. Allerdings dürften diese verschenkten Token auch weitgehend wertlos sein.
Bedeutender wird sein, dass viele Token mit voller Absicht an den Genesis Account gesendet werden. Denn als “Burn-Adresse” kann er eine wichtige Rolle in der Konstruktion von Smart Contracts spielen, beispielsweise wenn es Bedingungen gibt, die veranlassen, dass die Token nachweisbar zerstört werden, etwa wenn es gegen Gold oder Euro eingelöst werden. Anstatt sich mit den komplexen, noch nicht als Standard implementierten echten Zerstörungs-Funktionen herumzuärgern, senden viele Contracts die Token einfach an den Genesis-Account.
Schließlich fällt noch bei der Betrachtung einiger Token auf, dass diese nicht an die Genesis Adresse gesendet werden – sondern von ihr weg. Wie kann das möglich sein? Ist nicht alles, was in das “schwarze Loch von Ethereum” fällt, für immer verloren? Die Wahrheit ist, dass dem nicht immer so ist. Nur alles, was regulär an die Genesis Adresse gesendet wurde, also unter der Bedingungen, dass man die Guthaben nur ausgeben kann, wenn man die richtige Signatur liefert, kann nicht ausgegeben werden. Smart Contracts können aber sehr wohl in der Lage sein, der Genesis Adresse Token in einer internen Tabelle zuzuschreiben – und wieder zu nehmen.
Manche Token haben die Genesis-Adresse gar genutzt, um die Token zu erzeugen. Denn irgendwoher müssen sie ja kommen. Warum nicht von derselben Adresse, wie die Ether? Golem hat offenbar dieses Prinzip angewandt, oder auch Upfiring. Da auf dem Genesis-Account noch Upfiring-Token im Wert von mehr als 250 Millionen Dollar liegen, könnte man an dieser Stelle folgern, dass diese Token entweder noch vergeben werden können – also gar nicht für immer hier liegen – oder dass sie die Ladenhüter sind, die bei einer ICO keinen Käufer gefunden haben.
Ein Rätsel bleibt aber etwa das RHOC-Token, von dem Einheiten mit einem Wert von 237 Millionen Dollar auf der Genesis Adresse liegen. Da die Token erst rund 90 Tage nach der RHOC-ICO hierhin überwiesen wurde, scheint die Adresse hier nicht als Genesis-Adresse zu dienen. Auch die Nutzung als Burn-Adresse scheint unwahrscheinlich, da alle Token in einer einzige Transaktion an den Genesis-Account überwiesen wurde und danach keine weitere folgte. Die einzige Möglichkeit, die offenbar bleibt, ist, dass sich tatsächlich jemand vertippt hat. Oder dass es Möglichkeiten gibt, die wir noch nicht kennen.
Am Ende dürfte die Erklärung für die halbe Milliarde auf der Genesis Adresse also eine Mischung aus allem sein: Bugs und unabsichtliche Vertipper, absichtliche Burn-Transaktionen, Spam-Token, übriggebliebene Token aus mäßig erfolgreichen ICOs und Gründen, die uns noch nicht bekannt sind.
Die ersten 50 BTC aus dem Bitcoin Genesis Block sind “unspenable” (https://www.reddit.com/r/Bitcoin/comments/1nc13r/the_first_50btc_block_reward_cant_be_spend_why/), d.h. auf der Adresse 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa liegen eigentlich “nur” 16,7 BTC, die ausgegeben werden können, nicht 66,7 BTC.
Sind die Guthaben, die auf der ETH 0x0000000000000000000000000000000000000000 Adresse liegen eigentlich “spendable”, d.h. wenn man den Privatschlüssel gefunden hat, kann man sie dann auch ausgeben, oder ist im ETH Protokoll/Blockchain vielleicht auch eine Einschränkung wie bei der ersten Bitcoin Transaktion “fest” eingebaut?
Ich möchte ja schließlich nicht umsonst meine Privatschlüsselberechnung zu 0x000… auf meinem neuen Quantencomputer (pssst…) laufen lassen. Läuft schon seit 2 Wochen, ist spätestens in einem halben Jahr fertig, schätze ich 😉
Alles ist abhebbar sobald der Schlüssel gefunden wurde. Das liegt daran dass die Datenbank in Ethereum von Grund auf ein wenig anders aufgebaut ist als die bei Bitcoin. Bei Ethereum braucht man nur die Balance eines Accounts, bei Bitcoin werden die inputs einer Addresse in Outputs zu weiteren Addressen verwandelt.
Danke für den Hinweis. Die Frage habe ich beim Schreiben des Artikels kurz gestreift, dann aber fallengelassen … Ich wüsste zu gerne, weshalb die 50 BTC auf der 1A1zP… nicht ausgegeben werden können, also, ob es Absicht oder ein Versehen war .. .
Weiß man nicht so genau, ob es Absicht oder ein Versehen war.
reddit-Thread dazu:
So funktionierte der Bitcoin-Client, als Satoshi ihn erstellte: Der erste Client pflegte separat eine Block-Datenbank und eine Transaktions-Datenbank. Wenn er feststellt, dass seine Block-Datenbank leer ist, fügte er den Genesis-Block in seine Block-Datenbank ein, um das Ganze in Gang zu setzen. Dieser Block enthält eine Transaktion, die 50 BTC an 1A1z … sendet, aber der Client fügte diese Transaktion nicht in seine Transaktions-Datenbank ein. Auch wenn diese Transaktion Teil der Blockchain ist und der Client eine Transaktion sieht, die diese 50 BTC ausgibt, kann er die 50 BTC-Transaktion nicht in seiner Transaktions-Datenbank finden, und die Ausgabentransaktion wird zurückgewiesen. Mit anderen Worten, die Transaktion des Genesis-Blocks wird vom ursprünglichen Bitcoin-Client nicht als “echte Transaktion” anerkannt.
(Aktuelle Versionen von Bitcoin-Qt behandeln die Block- / Transaktionsdatenbanken auf eine völlig andere Art und Weise, daher ist die Transaktion des Genesis-Blocks jetzt nur ein merkwürdiger Sonderfall im Code.)
Dies könnte leicht ein Versehen gewesen sein, oder Satoshi hätte diese Transaktion für unausführbar halten können. Diese Eigenart wurde erst entdeckt, als Satoshi verschwand, also hatte niemand die Gelegenheit, ihn zu fragen.
Falls man es schafft, von der Genesis-Adresse etwas abzuheben, ist das dann legal?
Außerdem habe ich nicht verstanden wie man von der Genesis-Adresse etwas versenden kann, wenn man von ihr doch nichts abheben kann. Wie funktioniert das mit den internen Tabellen?
乱馬
an wen richtet sich die frage und was heisst denn “legal”? wer soll das entscheiden? nach welcher rechtsprechung?
mein verständnis ist, dass bei den kryptowährungen alles “legal” ist, was vom protokoll her als eine valide transaktion vom netzwerk akzeptiert wird. den begriff “legal” gibt es eigentlich gar nicht. ich möchte eine transaktion signieren, ist das “legal”? 😉 ich ziehe die quadratwurzel aus 7, ist das “legal”?
Ranma stellt doch nie einfache Fragen 🙂 Legt man die crypto logic so als eine Rechtssprechung aus, könnte man leicht daneben liegen. Wenn Du mir mit mathematischen richtigen Methoden Satoshis aus meiner Wallet stiehlst, ist und bleibt es ein Diebstahl. Egal welches Protokoll. Wenn man das mit der Genesis Adresse macht, stellt sich die Frage, wem die Daten da drin gehören. Der Allgmeinheit? Hast Du dann die Umwelt verschmutzt? Oder Satoshi selbst, dem es dann gestohlen wurde? tricky… @Ranma: welche Tabellen meinst Du? Bitcoins sind nicht in Tabellen hinterlegt, sondern werden durch Transaktionen von Adresse zu Adresse (genauer PubKey->Hash->base58chk_enc->Adresse) geschoben.
Falsch. Man kann die Krypologik eben nicht als Rechtsprechung auslegen.
In der Welt der Mathematik gibt es keinen solchen Begriff “Rechsprechung”.
Wenn jemand den Privatschlüssel zu einer Wallet besitzt, ist er der Besitzer dieser. Punkt.
Wie willst du denn in so einem Fall “beweisen”, dass es deine Wallet ist?
Denn in dem Moment könntest du genauso als Dieb in Frage kommen.
Wenn man das nicht beweisen kann, ist es kein Diebstahl.
Wer sich dieser Tatsache nicht bewußt ist, sollte von allen Kryptowährungen die Finger weg lassen!
@pebwindkraft:
Ich meine die Tabelle, die im viertletzten Absatz des Artikels erwähnt wird. Die gehört zwar nicht zur eigentlichen Blockchain, sondern zu manchen Smart Contracts, aber wenn die von anderen feststellbar etwas auf der 0x0000000000000000000000000000000000000000 zwischenlagern kann, dann muß sie ‚wirklich‘ (also sofern etwas wirklich sein kann, das virtuëll ist) dorthin senden und von dort holen.
@Georg Kuhn:
Einerseits ist es korrekt, daß der Besitz des Privatschlüssels als Beweis dient. So weit war das klar. Andererseits ist die 0x0000000000000000000000000000000000000000 ein besonderer Fall, weil es Teil der Kryptologik von Ethereum ist, daß diese Adresse keinem gehört. Darauf zielt meine Frage ab: Wenn die Kryptologik einerseits sagt, daß mir diese besondere Adresse nicht gehören kann, weil sie einen besonderen Status hat, andererseits die Kryptologik auch sagt, daß diese besondere Adresse mir gehört, falls ich das durch den Besitz des Privatschlüssels beweisen kann, wie geht die Community mit dem Widerspruch um? Statt Coins und Tokens zu vernichten, könnte man nur noch mich bereichern. Es gäbe dann die Möglichkeiten panisch aus Ethereum zu fliehen und nur noch andere Kryptowährungen zu verwenden oder Transaktionen von der 0x0000000000000000000000000000000000000000 nicht mehr anzunehmen, wodurch ICOs dann nicht mehr von dort beginnen könnten, aber die Frage aufwerfen würde, wie lange Kryptowährungen noch Alternativen zu Banken sein können, wenn man anfängt bestimmte Adressen dermaßen zu mobben.
乱馬