Kitabı oku: «Bitcoin, Blockchain & Co. — Die Wahrheit und nichts als die Wahrheit (überarbeitete Ausgabe 2021/22)», sayfa 8
Public-Key-Kryptografie
Um das besser verstehen zu können, muss man ein wenig in der Geschichte zurückgehen und sich mit der Public-Key-Kryptografie beschäftigen. Diese wurde schon in den 1970er Jahren erfunden —quasi aus der Not heraus, private Daten schützen zu wollen, unter anderem vorm Staat. Das war wahrscheinlich eine der Hauptmotiv-ationen der Softwaretüftler, die in den Anfängen des Computer-zeitalters begannen, spannende mathematische Modelle in ihre Protokolle zu implementieren.
Zum anderen möchte der Staat selbst, insbesondere das Militär, welches schon immer viele, schützenswerte Geheimnisse zu verwalten hatte, diese vor Zugriffen durch andere Staaten und deren Geheimdienste bewahren.
Natürlich waren auch die Geheimdienste der ganzen Welt selbst darauf erpicht, ihre eigenen Erkenntnisse zu schützen. Die aufkommenden Computerlösungen hingegen schienen die Verbreit-ung von Informationen stark zu vereinfachen und wurden deshalb auch schnell als Sicherheitsrisiko identifiziert.
Die Experten modellierten Lösungen mithilfe mathematischer Formeln, wie der der Primzahlexponenten und elliptischen Kurven-diskussion. Das Faszinierende an mancher dieser Formeln ist, dass sie in eine Richtung zu errechnen, aber nie wieder zurückrechenbar sind. Schon früh in der Schule wird gelehrt, wie man mit Unbekan-nten in einer Formel umgehen soll.
x+2=4 kann jeder Sechstklässler rechnen. Das wird einfach umge-schrieben und dann steht da x=4-2. Ganz einfach, schon ist x als 2 identifiziert. Nicht so bei dreidimensionalen, elliptischen Kurven-diskussionen oder anderen kryptografischen Formeln. Diese kann man nur in eine Richtung rechnen, und selbst wenn man dann das Ergebnis kennt, gibt es einfach keinen Weg zurück. Man kann diese Formeln nicht zurück berechnen. Das ist der Trick. Wer also das Ergebnis kennt, hat nichts in der Hand, um auf die Ausgangswerte zu kommen.
In der Wikipedia wird das so erklärt: Auf elliptischen Kurven kann eine additive zyklische Gruppe definiert werden, die aus den Vielfachen eines Punktes auf der Kurve des Erzeugers der Gruppe, besteht. Das Addieren zweier Punkte in der Gruppe ist einfach, es gibt aber Kurven, auf denen die Division zweier Punkte schwer ist, das heißt es ist kein effizientes Verfahren bekannt, um zu einem gegebenen Punkt A in einer von einem Punkt P erzeugten Gruppe eine natürliche Zahl a mit aP=A zu finden. Damit gibt es auf diesen Kurven ein Analogon zum Diskreter-Logarithmus-Problem (DLP) in multiplikativen Gruppen, das ebenfalls DLP genannt wird.2
Das muss man nicht verstehen und auch gar nicht versuchen zu verstehen. Man muss nur wissen, dass diese Art der Formel, die auch als Falltür-Mathematik bezeichnet wird, nur in eine Richtung berechenbar ist. Wer also einmal durch diese Falltür hindurch ist, kann niemals mehr zurück. Keine Angst, das dient letztendlich der Sicherheit des Systems und der Anwender.
Private Key und Public Key sind ein Paar
Diese Mathematik wird benutzt, um ein Schlüsselpaar zu erzeugen, welches aus dem sogenannten „Private Key“ und einem daraus abgeleiteten „Public Key“ besteht. Der Private Key ist unter allen Umständen geheimzuhalten und dient dazu, Transaktionen zu signieren und damit zu legitimieren. Der Private Key ist das Wichtigste innerhalb jeden Krypto-Systems. Deshalb muss man diesen unbedingt schützen und sicher aufbewahren.
Aus diesem Private Key wird nun wiederum der Public Key errechnet. Dieser ist öffentlich, etwa wie die Kontonummer eines Unternehmens. Es besteht eine mathematische Beziehung zwisch-en den beiden Schlüsseln. Mit einem Private Key kann man eine Nachricht zuverlässig signieren. Diese Signatur kann dann von jedem anderen gegen den Public Key getestet werden, ohne, dass man dafür den Private Key des Absenders benötigt. Der Private Key wird also nicht gebraucht, um die Legitimation einer Transaktion zu prüfen, da man ihn sonst jedem anderen zeigen müsste. Dieser gegebenenfalls fremde Dritte könnte den Private Key sonst stehlen oder kopieren und hätte damit Zugang zu den entsprechenden Krypto-Werten. Er könnte die Identität des ursprünglichen Users beziehungsweise Besitzers annehmen und in dessen Namen Nach-richten signieren.
Das kann man behelfsmäßig mit dem Zentralschlüssel einer Schließanlage vergleichen. Aus diesem kann man Unterschlüssel herstellen lassen, die nur eine bestimmte Etage aufschließen und andere nicht. Um nun zu prüfen, ob der Mieter den 2. Stock betreten darf, braucht man nur diesen Unterschlüssel und der Mieter kann herein. Das ist der Beweis, dass der Unterschlüssel mit dem Zentralschlüssel als Vorlage erstellt wurde. Der Zentral-schlüssel des Nachbargebäudes kann diesen Unterschlüssel nicht herstellen. Dieser Vergleich hinkt natürlich gewaltig und ist nur als Metapher gedacht, denn einen Haustürschlüssel zu kopieren oder ein Schloss ohne Schlüssel zu öffnen, ist für Profis ein Leichtes und beweist gar nichts. Das Prinzip ist jedoch ähnlich, nur dass die Verschlüsselung von Bitcoin und Systemen, die diese Mathematik richtig einsetzen, absolut sicher ist.
Ausgangspunkt für die Berechnung des Schlüsselpaares ist immer der Private Key. Dieser muss, wie schon erwähnt, gewissen Anforderungen entsprechen. Aus diesem Private Key wird dann der Public Key errechnet. Aus dem dazugehörigen Public Key wird danach die Bitcoin-Adresse errechnet. Die Berechnung des Public Key und, von diesem ausgehend, die Berechnung der Bitcoin-Adresse erfolgt unter anderem mit der zuvor beschriebenen elliptischen Kurven-Mathematik.
Atome im Weltall
Zunächst wird für den Private Key eine zufällige Zahl zwischen 1 und 2^256 gebraucht. 2^256 ist ziemlich viel. Allgemein wird angenommen, dass 10^80 Atome im Weltall existieren. Das ist natürlich nur eine Schätzung, denn eine Zahl mit 80 Nullen kann keiner so schnell zählen. Aber 2^256 ist auch viel. Das entspricht ungefähr 1,16·10^77. Viel Spaß beim Zählen.
Der Private Key ist also eine Zahl, die aus einem Zahlenraum von etwas mehr als einer 10 mit 77 Nullen maximal besteht und das ist nur geringfügig weniger als es Atome im gesamten Weltall gibt. Genügend Möglichkeiten also. Bleibt nur die Frage, wie man diese zufällige Zahl am besten erzeugen kann.
Dafür sind Computeralgorithmen bestens geeignet, wobei man aufpassen muss, dass man nicht gerade die ganz einfachen Zufallsgeneratoren benutzt. Alle populären, am Markt verfügbaren Wallets machen das entsprechend gut und auf die kann man sich in der Regel verlassen.
Man kann das Ganze auf dieser Website3 einfach einmal aus-probieren und einen eigenen Private Key erzeugen:

Aber ACHTUNG: Dieser erzeugte Private Key ist nicht zwangsläufig sicher! Die Erklärung, warum nicht, folgt noch.
Wenn man nun den Private Key generiert hat, dann kann man daraus den Public Key erzeugen. Das macht die Website auto-matisch und erstellt dann auch gleich die Bitcoin-Adresse, die man jemandem geben kann, der dann zu dieser Adresse ein paar Bitcoins senden kann.
Die Bitcoins, die zu dieser Adresse gehören, kann man dann nur noch mit diesem Private Key weiter versenden, zum Beispiel zu einer Exchange, um die Bitcoins in Dollar oder Euro oder andere Fiat-Währungen umzuwandeln. Ohne diesen Private Key ist das unmöglich. Die Idee dieser Bitcoin-Adressen-Website ist, dass man die Ergebnisseite ausdruckt und sicher aufbewahrt. Die Adresse gibt man weiter und kann damit Bitcoins empfangen. Man hat nun ein sogenanntes „Paper-Wallet“ erzeugt.
Dieses Paper-Wallet wurde generiert, ohne dass die Website auf die Bitcoin-Blockchain zugegriffen hat, um zum Beispiel zu ermitteln, ob dieser Private Key noch frei ist oder ob ihn schon ein anderer benutzt. Das scheint ein bisschen gefährlich zu sein, aber die Zahl wurde per Zufall erzeugt und zwar mit einer Wahrscheinlichkeit von circa 1,16·10^77 zu 1. Das ist mehr als ausreichend, um sicherzustellen, dass diese Zahl tatsächlich noch nicht belegt ist.
Der Private Key ist Grundlage des Public Keys, der wiederum Basis der Bitcoin-Adresse ist
Die Bitcoin-Adresse selbst wird über den Rechenschritt Public Key, der aus dem Private Key mit einer Formel abgeleitet wird, erzeugt. Aus diesem Public Key wird im nächsten Schritt die Bitcoin-Adresse errechnet. Dazu wird der Public Key gehasht, also mit diesen Formeln, die man auch als Hash-Algorithmen bezeichnet, berechnet. Dabei werden zwei Formeln nacheinander berechnet und man erhält den soggenanten „Public Key Hash“. Dieser besteht immer aus 160 Zeichen und man kann von diesen 160 Zeichen nicht mehr auf den unterliegenden Private Key zurückrechnen. Das ist das Besondere.
20 Bytes mit jeweils 8 Bits und damit 160 Zeichen Länge sind aber eine lange Zahl, die man immer bei sich haben müsste, wenn man im Bitcoin-Universum unterwegs ist. Das ist ein bisschen umständ-lich, weshalb man diese 160 Bits nochmals mit einer weiteren Formel — dem „Base58Check“ — codiert und dann die endgültige Bitcoin-Adresse erhält, die wesentlich kürzer ist. Sie ist final nur noch etwas über 30 Zeichen lang und damit leichter zu benutzen.
Trotz der angestrebten Vereinfachung ist es noch immer ein Buch-staben- beziehungsweise Zahlenmonster und man muss schon ein bisschen aufpassen, dass man sich nicht verschreibt. Das gilt sowohl, wenn man seine Bitcoin-Adresse an jemand anderen weitergibt als auch, wenn man an eine Bitcoin-Adresse Bitcoins sendet. Wenn beim Abtippen oder auch beim Kopieren und Einfügen ein Fehler unterläuft, kann diese Bitcoin-Adresse nicht gegen den Private Key aufgelöst werden. Das führt dann immer zum Totalverlust! Die meisten Wallets sind inzwischen zwar so programmiert, dass grobe Fehler automatisch bemerkt werden — diese Adresse wird dann zurückgewiesen — aber zulässige Adressen nehmen Wallets immer an. Eine zulässige Adresse kann dennoch einen Tippfehler beinhalten und dann sind die Bitcoins weg. Für immer. Deshalb muss man immer sorgfältig prüfen, ob die Adresse korrekt ist.
Die Bitcoins besitzt dann auch niemand anderes, der sie wieder zurück überweisen könnte, wie es bei einer irrtümlichen Banküber-weisung manches Mal möglich ist, wenn man sich zum Beispiel bei der elend langen IBAN-Nummer vertippt hat. Die Bank kann den falschen Empfänger ermitteln und kontaktieren. Wenn es ein netter Mensch ist, wird er den Betrag dann wieder zurück überweisen. Notfalls muss ein Gericht dabei helfen, aber der Schaden ist übersichtlich.
Anders jedoch in einem Blockchain-System. In der Blockchain steht zwar die Bitcoin-Adresse, an die die Bitcoins gesendet wurden, aber es ist nicht möglich, diese Bitcoin-Adresse zu einem Private Key zurückzurechnen. Das ist hundertprozentig ausge-schlossen.
Dass man versehentlich die Bitcoins zu einem Empfänger gesendet hat, der das bemerkt und dann auch noch so ehrlich ist und die Bitcoin zurück überweist, ist mit einer Wahrscheinlichkeit von den genannten 1,16·10^77 zu 1 Möglichkeiten äußerst unwahrscheinlich. Deshalb heißt es „Augen auf und höchste Konzentration!“ im Zusammenhang mit Krypto-Transaktionen. Der Vorteil, den eine Blockchain mit sich bringt, erfordert eine erhöhte persönliche Verantwortung auf der anderen Seite der Medaille.
In Bitcoin-System gibt es auch noch andere, noch komplexere Arten von Bitcoin-Adressen, die für die technisch Interessierten sicher sehr spannend sind. Es ist jedoch für das generelle Verständnis nicht erforderlich, diese zu kennen. Dieses Buch möchte den technischen Laien ansprechen und wer mit Wörtern wie „Pay-to-Script Hash (P2SH)“, „Encrypted Private Keys“ oder „Hardened Child Key Derivation“ konfrontiert wird, hat entweder einen technischen Spezialisten oder einen Blender vor sich. In beiden Fällen: kein Grund zur Sorge.
Sorgen sollte man sich allerdings unbedingt immer und ohne Ausnahme um seine Private Keys!
Das wichtigste Kapitel des ganzen Buches
Die Private Keys sind also im wörtlichen Sinn tatsächlich der Schlüssel zu allen Werten, die man besitzt. Sie sind die privaten Schlüssel, die eigenen Schlüssel. Anders formuliert: Wer den Private Key zu einem Wert, der in der Blockchain registriert ist, besitzt, kann diesen Wert transferieren. Noch anders ausgedrückt:
Wer über den Private Key einer Bitcoin-Adresse verfügt, auf dem 1.000 Bitcoins lagern, der kann diese Bitcoins jederzeit versenden. Das kann man nur mithilfe des Private Key bewerkstelligen. Nur und ausschließlich! Dazu ist also jeder in der Lage, der diesen Private Key kennt. Die Blockchain überprüft keinen Ausweis und keine Unterschrift.
Mit dem Public Key hingegen und auch der Bitcoin-Adresse verhält es sich anders. Aus diesen kann unter keinen Umständen, auch nicht von einer künstlichen Intelligenz, der Private Key errechnet werden.
Die Bitcoins oder andere Krypto-Währungen liegen auch nicht in den Wallets selbst. In der Blockchain kann errechnet werden, zu welcher Adresse, wie viele Bitcoins gehören und nur mit dem entsprechenden Private Key kann man diese Bitcoins transferieren, also auszahlen oder damit jemanden bezahlen. Im Wallet wird nur die Genehmigung für die Transfers in Form eines Private Keys gespeichert. Das muss man immer im Hinterkopf behalten. Sehen, wie viele Bitcoin zu welcher Adresse gehören kann jeder, aber keiner kann einfach so erkennen, wer die dazugehörigen Private Keys besitzt. Niemand kann diese Bitcoins, die er sieht, bewegen. Das kann man nur und ausschließlich mit dem Private Key!
Folglich ist der Private Key wie Bargeld, Gold oder Diamanten zu betrachten. Wer ihn besitzt, kann zahlen — genau wie derjenige, der Cash oder Gold oder Diamanten besitzt. Hier hören die Gemeinsamkeiten aber nicht auf. Ebenso wie Bargeld, Gold und Diamanten gestohlen werden können, sind alle möglichen Gangster hinter den Private Keys anderer Menschen her. Und das ist noch nicht alles. Genau wie man Bargeld, Gold und Diamanten verlegen oder verlieren kann, so kann man auch seine Private Keys verlieren, verlegen oder sich ganz trivial verschreiben — mit verheerenden Folgen.
Es gilt also, den Private Key, unter allen Umständen, selbst zu besitzen und sicher zu verwahren.
Der Private Key ist der Schlüssel zu allem
Man muss hier sehr genau und sehr überlegt vorgehen, da nur diese Private Keys das gesamte Vermögen schützen. Gehen sie verloren, ist das Vermögen weg. Unwiederbringlich! Werden sie gestohlen, besitzt jemand anderes das gesamte Vermögen.
Deshalb ist es von entscheidender Bedeutung, dass man seine eigenen Private Keys besitzt und sicher verwahrt. Von dieser Regel gibt es absolut keine Ausnahme, zumindest für den Teil des Vermögens, welchen man schützen will. Es gibt Gründe, einen Teil aus gewissen Gründen unsicherer zu lagern, dazu später mehr. Aber für jeden Coin, den man schützen will, gelten diese Regeln absolut verbindlich.
So sieht ein Private Key von Bitcoin aus:
L5ZYeDnDgakM5vDfgVGpmhNr8B8UkBdRQGmaZjmNXXkFtdb8xERe
Der ist nun wirklich nicht einfach zu merken, dafür aber einfach mit Kopieren/Einfügen im Computer zu speichern oder irgendwo einzugeben. Leider ist auch das sehr gefährlich. Warum? Jetzt wird es spannend.
Viele EDV-Sicherheitsexperten vermuten, dass fast alle Computer von schlafenden Viren und sogenannten Trojanern infiziert sind. Diese kleinen Bösewichte, die meist per E-Mail versendet werden, sitzen in den Tiefen der Software und aktivieren irgendwann einmal einen bösartig programmierten Teilbereich des Programms, der dafür vorgesehen wurde, den PC zu übernehmen oder auf andere Art zu missbrauchen. Inzwischen sind genügend Fälle bekannt, in denen diese Schadprogramme Festplatten von Firmen oder sogar von Krankenhäusern verschlüsselt haben und die Daten nur gegen eine Lösegeldzahlung die Entschlüsselung angeboten haben — interessanterweise gegen die Überweisung von soundso vielen Bitcoins. Auch Betrüger wissen, was gut und sicher ist.
Das ist ärgerlich, kann aber im privaten Umfeld leicht durch ein Back-up wieder rückgängig gemacht werden. Nicht immer, je nachdem, wann man diesen Virus eingefangen hat. Wahrscheinlich mit ein bisschen Mühe und Aufwand verbunden, aber es ist möglich, wenn man regelmäßige Back-ups macht. So gefährlich wie für ein Unternehmen sind diese Angriffe für den privaten PC oder das Handy also nicht. Sie sind nur sehr lästig.
Gefährlich für die Private Keys sind hingegen sogenannte „Key-Logger“. Das sind kleine Programme, die jeden Tastendruck auf die Tastatur mitschreiben und an einen fremden Dritten, den Hacker, versenden. Das alles läuft im Hintergrund, ohne dass man etwas davon bemerkt. Was auch immer man tippt, ein anderer liest mit. Das ist nicht nur peinlich, sondern auch höchst gefährlich, denn diese Key-Logger protokollieren unter anderem auch Kopieren/Einfügen-Befehle inklusive Daten und senden damit den Private Key zum Angreifer. Damit ist der Schlüssel zum eigenen Vermögen in den Händen eines anderen!
Dieser Fremde hat ab diesem Zeitpunkt jederzeit vollen Zugriff auf die Bitcoin oder andere Krypto-Währungen, zu denen er den Private Key ergattert hat und kann damit das Geld jederzeit übertragen. Vorzugsweise an ein Konto, von dem er selbst und nur er selbst den Private Key besitzt.
Deshalb ist es auch gefährlich, ein vermeintlich sicheres Paper-Wallet zu erzeugen, wenn man es mit einem Computer erstellt, der online ist oder war oder sein wird. Zuvor wurde erläutert, wie man über die Seite www.bitaddress.org einen neuen Private Key und eine dazugehörige Adresse erzeugen kann. Das ist nicht sicher, wenn der Computer, den man benutzt, schon kompromittiert ist. Sicher ist es nur, wenn man den Code dieser Website auf einem Computer, der noch nie online war, laufen lässt und diesen dann nach Erzeug-ung wieder komplett löscht.
Das alles hört sich sehr paranoid an, aber es ist sehr wichtig, der Paranoia hier ausnahmsweise mal den Vortritt zu lassen.
Passwörter, Seed-Phrasen und „Mnemonik Codes“
Der Private Key ist zu kompliziert, als dass ein normaler Mensch sich diesen merken könnte und er sollte nicht per Kopieren/Einfügen im Computer genutzt werden. Tatsächlich sollte er gar nicht auf dem gleichen Computer gespeichert werden.
Um dieses Problem zum Teil zu umgehen, benutzt man seit einigen Jahren sogenannte Seed-Phrasen, um die Schlüssel zu erzeugen. Diese Seed-Phrasen können auch als Back-up genutzt werden und mit ihnen kann man den Private Key jederzeit wiederherstellen.
Seed-Phrasen bestehen in den meisten Fällen aus zwölf Wörtern, in anderen aus 24 Wörtern. Diese Wörter müssen bei einer Wieder-herstellung eines Wallet in der richtigen Reihenfolge eingegeben werden, wobei manche Systeme die Reihenfolge der Eingabe zufällig verändern und zum Beispiel Wort Nummer 3 und dann Wort Nummer 11 und so weiter verlangen. Hier ist eine typische 12-Wörter-Seed-Phrase:
ugly harvest acoustic sand visa gain minimum author hero laundry aim when
Diese Seed-Phrasen sind auf einem sogenannten Mnemonik-Code aufgebaut, was aber an dieser Stelle nicht wichtig ist. Wichtig ist, dass man sie unbedingt korrekt notiert, sicher aufbewahrt und vor allen Dingen, dass man sie besitzt. Nochmal zur Erinnerung: Wer über den Private Key verfügt, hat den vollen Zugang zum Vermögen. Wenn der Private Key weg ist, ist das gesamte Vermögen unwiederbringlich verloren!
Schreibfehler und die verflixte Autokorrektur
Also, am sichersten ist es, wenn man die Seed-Phrase nicht auf dem Computer speichert und/oder diese dort kopiert, weil ein Hacker einen Key-Logger installiert haben und einfach mitlesen könnte. Deshalb sollte man die Seed-Phrase tatsächlich von Hand abschrei-ben und dann mehrere Kopien sicher aufbewahren. In dem Fall kann man den Private Key — anders als Geldscheine — tatsächlich kopieren, also auf Papier. Es gibt Menschen, die die Seed-Phrase in Briefen verstecken oder in Metall oder Plastik gravieren. Alles ist zulässig, solange die Sicherheit gewährleistet ist. Apropos Sicher-heit: Natürlich ist Papier nicht sicher, denn es kann verloren gehen, ist nicht sicher vor Wasserschäden und schon gar nicht vor Feuer. Zudem, und das wird fast immer vergessen, kann die Schrift vergilben und wenn man die Seed-Phrase von Hand aufgeschrieben hat und man seine eigene Handschrift nicht mehr lesen kann, dann ist das auch nicht hilfreich. Papier ist also doch nicht der Weisheit letzter Schluss.
Überhaupt nicht sicher sind Bildschirmfotos oder digitale Bilder generell. Es ist unbedingt davon abzuraten den Private Key selbst oder auch nur die Seed-Phrase denn diese können sehr schnell versendet oder kopiert werden. Zudem gibt es auch spezialisierte Computerviren und Trojaner, die nach genau solchen Bildern suchen und über spezielle Bilderkennungsalgorithmen verfügen und eine Seed-Phrase erkennen.
Eine ganz große Gefahr — und der Autor schreibt hier aus eigener leidvoller Erfahrung — ist es, die Seed-Phrase auf Papier zu notieren und dann Teile davon als Textdatei auf dem Computer zu speichern. Das sollte eigentlich okay sein, solange man darauf achtet, dass Word oder welches andere Textverarbeitungsprogramm auch immer man nutzt, nicht Tippfehler automatisch korrigiert. Das ist eine besonders böse Falle.
Wenn man beim Abtippen einen Tippfehler produziert hat und die Autokorrektur, die beim Schreiben von WhatsApp-Nachrichten oft lustige Wortspiele erzeugt, wenn diese verflixte Autokorrektur ein Wort der Seed-Phrase korrigiert, dann ist die Seed-Phrase für immer unbrauchbar und der Zugang zum Vermögen verloren. Deshalb besser hundert Mal kontrollieren, als einmal auch nur einen halben Bitcoin zu verlieren!
Ücretsiz ön izlemeyi tamamladınız.