Wie bekommt man in einem dezentralen System wie Bitcoin sein Konto zugewiesen?

By |2018-04-14T04:36:10+00:0019. März 2018|

Wer bei einer Bank ein Girokonto eröffnen möchte, bekommt von der Bank eine Kontonummer zugeteilt und kann sich sicher sein, dass dieses Konto von nun an allein ihm oder ihr zugeordnet ist. Dies muss im Bitcoin-Netzwerk anders funktionieren, da es keine zentrale Instanz gibt, die etwas zuteilen könnte. Wie ist es also möglich, dass trotzdem jeder ohne weiteres ein oder sogar mehrere Konten eröffnen kann?

Die Erklärung ist einfacher, als man vielleicht erwartet. Die Konten für Kryptowährungen werden üblicherweise als Wallet, also als Brieftasche, bezeichnet. Jeder, der möchte, kann sich selbst eine oder mehrere Wallets kreieren und das sogar komplett kostenlos.

Die Kurzfassung, wie man sich ein Bitcoin Wallet generiert, wäre die Folgende:

  1. Man denke sich eine Zahl zwischen 1 und 2^256 aus und behalte diese Zahl als privaten Schlüssel für sich.
  2. Aus dem privaten Schlüssel lässt sich mit Hilfe einer kryptographischen Hashfunktion ein öffentlicher Schlüssel generieren.
  3. Aus dem öffentlichen Schlüssel lässt sich unter Zuhilfenahme einer anderen Hashfunktion die Bitcoin-Adresse berechnen.

Somit hat man nun seinen privaten und öffentlichen Schlüssel sowie eine gültige Bitcoin-Adresse, mit denen man Transaktionen ausführen kann. Bevor auf die drei Schritte näher eingegangen wird, zunächst die wesentliche Erkenntnis: Die privaten Schlüssel, und damit auch die Wallets, werden nicht zugeteilt, sondern jeder kann sich ganz frei einen entsprechenden Schlüssel aussuchen.

Wie wird aber nun verhindert, dass ein Schlüssel verschiedenen Personen zugeordnet ist?

Die Antwort mag zunächst erschreckend klingen, ist aber trotzdem kein Grund zur Beunruhigung: Aktiv wird dies gar nicht verhindert. Es gibt keinen Mechanismus, der vergebene Schlüssel sperrt. Allein die schier unvorstellbare Zahl von fast 2^256 möglichen Schlüsseln lässt die Wahrscheinlichkeit einer Doppelnutzung verschwindend gering werden, sofern die Zahl mit einem geeigneten Zufallsgenerator erzeugt worden ist. Wie klein die Wahrscheinlichkeit tatsächlich ist, zeigt das folgende Beispiel:

Die Wahrscheinlichkeit, dass eine Person, die zehnmal in ihrem Leben Lotto gespielt hat, jedes der zehn Male alle 6 richtig getippt hat, ist über 100.000 Mal höher, als die Wahrscheinlichkeit, dass Person A sich zufällig den gleichen Schlüssel wie Person B aussucht.

Wie genau bekommt man nun seinen privaten Schlüssel?

Der private Schlüssel ist tatsächlich nichts Anderes als eine ganze Zahl, im Zahlenbereich zwischen 1 und 2^256. Die Größe dieser Zahl ist schwer vorstellbar. Sie übersteigt um ein Vielfaches die Anzahl aller vorhandenen Atome auf der Erde. Neben der binären Darstellung der Zahl mit 256 Bits lässt sich die Zahl natürlich auch im Dezimalsystem mittels 78 Ziffern notieren. Üblich sind die Darstellungen im Hexadezimalsystem oder in dem sogenannten Base58Check-Format (WIF). Auch die Darstellung über QR-Codes ist möglich. Man muss sich darüber im Klaren sein, dass private Schlüssel, die sich in den verschiedenen Formaten äußerlich stark unterscheiden, die gleiche Zahl repräsentieren können und somit sich dann auch auf die gleiche Wallet beziehen.

Um diesen privaten Schlüssel zu generieren, könnte man sich nun einfach eine beliebige Zahl im zugelassenen Zahlenbereich selber aussuchen. Soll dies zufällig geschehen, so könnte man beispielsweise einfach ein Münze 256 Mal werfen und sich für Kopf oder Zahl jeweils eine 0 oder 1 notieren. Natürlich kann man sich auch ohne Münze diese Zahl selber aussuchen. Wie auch bei Passwörtern sollte man sich jedoch bewusst machen, dass zufällig erzeugte Zahlen schwerer zu erraten sind, als selbst ausgedachte Zahlen, die im schlechtesten Fall aus leichten Zahlenfolgen, wie etwa dem Geburtsdatum bestehen.

Den etwas umständlichen Weg über den Münzwurf werden jedoch die wenigsten gehen. Deutlich gängiger sind Zahlengeneratoren, welche automatisch über pseudozufällige Zahlenfolgen einen Schlüssel generieren. Da jeder Computer nur begrenzt zufällig agieren kann, werden vom Benutzer erzeugte Zufallsdaten, wie Mausbewegungen oder Tastenanschläge, bei der Schlüsselgenerierung mit berücksichtigt.

Wie wird aus dem privaten Schlüssel der öffentliche Schlüssel und die Bitcoin-Adresse generiert?

Berechnung der Bitcoin-Adresse als Kontonummer (Wallet)

So ergeben sich aus dem privaten Schlüssel erst der öffentliche und später auch die Bitcoin-Adresse

Wer Bitcoin auf seiner eigenen Wallet abspeichert, benötigt neben dem privaten Schlüssel auch den öffentlichen Schlüssel und eine Bitcoin-Adresse. Beides lässt sich jedoch vollständig aus dem privaten Schlüssel ableiten. Die Umwandlung erfolgt über sogenannte Hashfunktionen, sodass sich der private Schlüssel nicht aus der Bitcoin-Adresse oder dem öffentlichen Schlüssel zurückrechnen lässt.

Eine Bitcoin-Wallet besteht aus genau diesen drei Bestandteilen (privater Schlüssel, öffentlicher Schlüssel und Bitcoin-Adresse). Möchte man Bitcoins empfangen, so teilt man dem Absender die Bitcoin-Adresse mit. Sind dann Coins auf der eigenen Wallet, so können diese nur mit dem privaten Schlüssel wieder wegbewegt werden. Der öffentliche Schlüssel wird automatisch bei einer eigenen Transaktion bekannt gegeben. Mit ihm können andere Netzwerkteilnehmer dann überprüfen, ob man tatsächlich im Besitz des privaten Schlüssels ist.

Es lässt sich also zusammenfassen, dass im Bitcoin-Netzwerk die Wallets nicht zugeteilt, sondern vom Benutzer selbst ausgesucht werden. Die schier unvorstellbar große Menge der zur Verfügung stehenden Konten ist der mathematische Schutz vor einer Doppelbelegung.