Zum Inhalt springen Zur Navigation springen
Bitcoin – Technische Grundlagen der Kryptowährung

Bitcoin – Technische Grundlagen der Kryptowährung

Die kryptografische Währung Bitcoin ist derzeit in aller Munde. Dies liegt allerdings weniger an der umwälzenden Technik, sondern am Hype um die Kurssprünge. Es bleibt zu hoffen, dass dieser Hype Bitcoin nicht in Verruf bringt, denn die Bitcoin zugrunde liegenden Ansätze und vor allem auch die technische Ausgestaltung sind faszinierend und revolutionär. Im folgenden Beitrag versuche ich die technischen Grundlagen von Bitcoin möglichst einfach und verständlich darzustellen.

Inhaltsverzeichnis

Technische Grundbegriffe

Es gibt zwei erläuterungsbedürftige technische Begriffe ohne die ein Verständnis der technischen Grundlagen von Bitcoin nicht möglich ist: Hash-Werte und Digitale Signaturen.

Hash-Wert

Ein Hash-Wert ist ein Wert, der unter Anwendung von bestimmten komplexen mathematischen Verfahren aus einem digitalen Inhalt errechnet wird. Der Hash-Wert ist dabei stets identisch, wenn der Ausgangswert nicht verändert wurde.

Die Besonderheit von Hash-Werten ist die, dass obwohl die eingesetzte Hash-Funktion bekannt ist, aus einem Hash-Wert nicht der eigentliche digitale Inhalt zurück errechnet werden kann (sog. „Hiding“). Ein anschauliches Beispiel für eine – einfache – Hashfunktion ist die Quersumme. Die Quersumme aus 123 ist 6. Allerdings ist es nicht möglich aus dem Hashwert 6 den Ausgangswert zurück zu errechnen, da z.B. auch 222 oder 500001 als Quersumme den Wert 6 ergibt.

Bitcoin setzt als Hash-Funktion SHA-256 ein. SHA-256 ist ein wesentlich komplexeres mathematisches Verfahren als die Quersumme und entsprechend sind die Hash-Werte deutlich komplexer. Durch diese Komplexität der Hash-Werte ist überprüfbar, ob ein digitaler Inhalt verändert wurde. Falls eine Änderung auch nur eines Bits des digitalen Inhalts erfolgt ist, ergibt sich ein anderer Hash-Wert.

Ein Hash-Wert wird deshalb auch als digitaler Fingerabdruck eines bestimmten digitalen Inhalts bezeichnet. Dies deshalb, weil es statistisch praktisch ausgeschlossen ist, dass zwei unterschiedliche digitale Inhalte denselben Hash-Wert aufweisen. Diese Eigenschaft wird als Kollision-Resistenz bezeichnet. Statistisch müsste ein Rechner, der pro Sekunde 10.000 Hash-Werte errechnen kann, 10 27 Jahre kalkulieren um zwei deckungsgleiche Hash-Werte bzw. zwei digitale Inhalte, die denselben Hash-Wert aufweisen, zu finden. Hash-Werte eignen sich daher vortrefflich um einen Inhalt zu maskieren und gleichzeitig festzustellen, ob dieser unverfälscht ist.

Digitale Signatur

Mittels digitalen Signaturen ist es möglich einen beliebigen digitalen Inhalt so zu kennzeichnen, dass nachvollzogen werden kann, wer den Inhalt signiert hat.

Digitale Signaturen werden in einem asynchronen Verschlüsselungsverfahren erzeugt. Folgendes Prinzip liegt der asynchronen Verschlüsselung zu Grunde: Zur Erzeugung einer digitalen Signatur werden zwei sog. Schlüssel („Keys“) benötigt. Der private Schlüssel („Private Key“) ist nur dem Inhaber der Signatur bekannt ist. Er wird benötigt um aus dem zu signierenden digitalen Inhalt (z.B. E-Mail, Word-Dokument usw.) die digitale Signatur zu errechnen; also um zu unterzeichnen.

Daneben besteht zu jedem privaten Schlüssel ein sog. öffentlicher Schlüssel („Public Key“), der mit dem Private Key korrespondiert und jedermann zugänglich ist. Mit dem Public Key ist es möglich zu überprüfen, ob die digitale Signatur durch den zum Public Key korrespondierenden Private Key errechnet wurde; also die Echtheit der Signatur zu verifizieren. Jedenfalls dahingehend, dass dem Signierenden der Private Key bekannt gewesen sein muss.

Sowohl Private Key als auch Public Key sind lange Zeichenkombinationen, die zufällig anmuten. Es ist statistisch praktisch ausgeschlossen, dass dieselben Schlüssel erzeugt werden.

Das in Bitcoin verwendete Verschlüsselungsverfahren ist „Elliptic Curve Digital Signature Algorithm (ECDSA)“ unter der standard elliptic curve “secp256k1”, die eine 128-Bit-Verschlüsselung bietet.

Transaktionen in Bitcoin

In jedem Währungssystem ist es notwendig Währungseinheiten zwischen Beteiligten zu transferieren. Bitcoin beruht allerdings auf dem Grundprinzip, dass Transaktionen ohne Einbeziehung eines Intermediärs – einer Bank – direkt zwischen den Beteiligten elektronisch möglich sein sollen. Die Transaktion soll zudem möglichst anonym erfolgen. Um dies zu gewährleisten, verwenden Anweisender und Empfänger eine Pseudonym.

Gleichwohl ist bei einer Transaktion eine irgendwie geartete Identifikation der Beteiligten – Anweisender und Empfänger – selbstverständlich unerlässlich. Um das dargestellte Grundprinzip zu verwirklichen, werden zur Identifikation der Beteiligten die dargestellten Public Keys verwendet aus denen dann Bitcoin-Adressen errechnet werden können. Bitcoin-Adressen sind zufällig anmutende Zeichenketten, die sich hervorragend als Pseudonym eignen.

Jede Transaktion in Bitcoin ist die Anweisung einen bestimmten Gegenwert von Bitcoins von dem Public Key des Anweisenden an den Public Key des Empfängers zu transferieren. Um die Berechtigung des Anweisenden zu verifizieren, wird dann diese Transaktionsanweisung vom Anweisenden mittels des zu seinem Public Key korrespondierenden Private Key unterzeichnet. Da der Public Key des Anweisenden im Rahmen der Transaktion bekannt ist/wird, kann also jederzeit überprüft werden, ob dem Anweisenden der richtige Private Key bekannt ist.

Es ist in diesem Zusammenhang wichtig zu verstehen, dass es Bitcoins im Sinne einer einzelnen Währungseinheit so eigentlich gar nicht gibt. Im Rahmen jeder neuen Bitcoin-Transaktion wird nicht etwa eine bestimmte Summe von Bitcoins transferiert, sondern es wird eine frühere an den Public Key des Anweisenden ausgeführte Transaktion an den Public Key des neuen Empfängers weitergegeben. Diese neue Transaktion weist dabei genau den Gegenwert von Bitcoins auf, den die frühere Transaktion hatte. In Bitcoin gibt es also kein Konto auf dem eine bestimmte Summe von Bitcoins verfügbar ist und von dem ein Betrag X weitergegeben wird, sondern es wird direkt die Eingangstransaktion selbst weitertransferiert. Da in aller Regel dem Anweisenden keine Vorgängertransaktion zur Verfügung steht, die genau den Gegenwert aufweist, der nun transferiert werden soll, weist jede Bitcoin-Transaktion in der Regel mindestens zwei Empfänger auf. Einmal den eigentlichen Transaktionsempfänger, dem im Rahmen der Transaktion der Gegenwert zugeordnet wird, der eigentlich transferiert werden soll und zusätzlich einen weiteren Public Key an den sich der Anweisende quasi den Restbetrag zurück überweist.

Dieses etwas kompliziert anmutende System ist notwendig, weil auch Bitcoin einem allen elektronischen Währungen begegnenden Problem Herr werden muss. Dem Problem des sog. „Double-Spending„.

Problem „Double-Spending“

Wie dargestellt ist eine Transaktion von Bitcoins die Anweisung eine vorangegangene Transaktion einem neuen Public Key des Empfängers zuzuordnen. Das Problem ist: Wie kann verifiziert werden, dass dem Public Key des Anweisenden die Vorgängertransaktion überhaupt jemals zugeordnet worden war bzw. ob diese Transaktion nicht zwischenzeitlich bereits anderweitig transferiert worden ist (sog. „Double Spending“)?

Um dieses Problem zu lösen bedarf es einer Aufzeichnung der Transaktionsvorgänge. Um eine Transaktion zu validieren, muss es jedenfalls dem Empfänger möglich sein zu verfolgen, ob dem Public Key des Anweisenden die gegenständliche Transaktion jemals zugeordnet worden ist und ob es zwischenzeitlich eine weitere Transaktion gab, durch die die zu transferierende Vorgängertransaktion bereits einem anderen Public Key zugeordnet worden ist. Diese Aufzeichnung erfolgt in der mittlerweile berühmten (Bitcoin-)Blockchain. Die Blockchain ist ein Register in dem alle jemals in Bitcoin durchgeführten Transaktionen chronologisch aufgezeichnet sind. Da es jedermann freisteht, jederzeit am Währungssystem Bitcoin teilzunehmen, ist es notwendig, dass die Blockchain jederzeit und jedem öffentlich zugänglich ist. Dies ist auch der Fall: Die Blockchain kann z.B. hier eingesehen werden.

Fälschungssicherheit der Blockchain

Da die Blockchain so essentiell wichtig für Bitcoin ist, muss natürlich sichergestellt werden, dass die Blockchain nicht manipuliert werden kann. Anderenfalls wäre die dargestellte Validierung nicht möglich. Und tatsächlich: Die Blockchain ist quasi nicht manipulierbar. Dies wird durch den revolutionären Aufbau gewährleistet.

Wie der Name schon sagt, besteht die Blockchain aus einer Kette von Datenblöcken. Jeder dieser Datenblöcke enthält dabei eine gewisse Anzahl von Bitcoin-Transaktionen. Die einzelnen Datenblöcke sind logisch miteinander verknüpft. Durch diese Verknüpfung kann auch die Reihenfolge der Blöcke nicht geändert werden.

Die Fälschungssicherheit und Nachvollziehbarkeit der Reihenfolge wird wie folgt gewährleistet: Beginnend ab Block zero wird für jeden Block ein Hash-Wert errechnet. Dieser Hash-Wert wird im nachfolgenden Block hinterlegt und dadurch in die Berechnung des Hash-Wertes für diesen Nachfolgeblock mit einbezogen. Da jeder Block auf den Hash-Wert seines Vorgängerblocks verweist, kann die Reihenfolge bestimmt werden.

Die Verwendung der Hash-Werten garantiert dabei auch die Fälschungssicherheit. Wie eingangs dargestellt, führt bereits die Veränderung von nur einer binären Null oder Eins zu einem anderen Hash-Wert. Eine beliebige minimalste Änderung nur einer Transaktion in einem der Abertausenden von Blöcken würde also dazu führen, dass sich der Hash-Wert dieses Blocks ändert und damit auch der Hash-Wert des Nachfolgeblocks, da dieser ja den Hash-Wert des Vorgängers speichert. Die Manipulation würde sich also durch alle Nachfolgeblöcke fortpflanzen und letztlich dazu führen, dass sich der Hash-Wert auch des letzten, aktuellsten Blocks ändert. Es bedarf daher nur der Kenntnis des Hash-Wertes des letzten Blocks um zu validieren, dass in der gesamten Blockchain keine Manipulation vorkommt.

Aufbau der Blockchain

Blockchain als P2P-Netzwerk

Eines der Grundprinzipien von Bitcoin ist es Transaktionen direkt zwischen Anweisenden und Empfänger zu ermöglichen. Auf einen Intermediär soll bewusst verzichtet werden. Dieses Grundprinzip hat auch erhebliche Auswirkungen auf den „Speicherort“ der Blockchain. Würde die Blockchain zentral auf einem Server gespeichert werden, wäre der Betreiber des Servers letztlich ein Intermediär, der die Transaktionen vermittelt. Aus diesem Grund wird die Blockchain dezentral in einem Peer-to-Peer („P2P“) – Netzwerk vorgehalten. Die Teilnahme am Bitcoin P2P-Netzwerk steht faktisch jedermann zu jeder Zeit frei. Voraussetzung ist lediglich die Installation der kostenfreien Software. Eine Registrierung o.ä. ist für die Teilnahme nicht erforderlich.

Mining von Bitcoins

Dem Bitcoin P2P-Netzwerk werden fortlaufend alle anstehenden Transaktionen gemeldet und eine spezielle Teilnehmergruppe (sog. „Miner“) errechnen aus den gemeldeten Transaktionen ständig neue Blöcke für die Blockchain. Die Errechnung eines gültigen neuen Blocks erfolgt dabei im Rahmen eines Wettbewerbs zwischen allen Minern. Der Miner, der es als Erster schafft, aus den ausstehenden Transaktionen und dafür für den neuen Block einen Hash-Wert zu errechnen, der innerhalb eines bestimmten Ergebniskorridors liegt, hat den sog. „Proof-of-Work“ erbracht. Der vom Sieger errechnete Block wird durch alle Teilnehmer der jeweils lokal vorgehaltenen Version der Blockchain hinzugefügt und der Wettbewerb startet erneut. Durchschnittlich dauert die Errechnung eines neuen Blocks ca. 10 Minuten.

Die Errechnung eines gültigen Blocks („Mining„) ist mittlerweile sehr rechenintensiv und mit hohen Ausgaben für geeignete Hardware und Strom verbunden. Als Belohnung für die Teilnahme erhält der Sieger daher stets eine festgelegte Summe von Bitcoins (derzeit 12,5 Bitcoins/Stand Nov. 2017) in Form einer Transaktion an einen von ihm vorgegebene Public Key. Auf diese Weise „entstehen“ übrigens Bitcoins erst. Die Höhe der Belohnung verringert sich in regelmäßigen Abständen. Während zum Start von Bitcoin noch 50 Bitcoins gewährt wurden, halbiert sich die Belohnung ca. alle 4 Jahre und wird irgendwann komplett entfallen. Die Summe aller jemals in Umlauf gelangenden Bitcoins steht damit bereits jetzt fast: ca. 21 Millionen. Um Miner aber auch beim Wegfall der Belohnung weiter zu Teilnahme zu motivieren, erhalten diese bereits jetzt zusätzlich Transaktionsgebühren, deren Höhe derzeit allerdings von den Nutzern selbst festgesetzt wird.

Bitcoin und der Datenschutz

Der geneigte Leser unseres Blogs mag sich an dieser Stelle vielleicht fragen: „Schön und gut, aber was hat dies alles mit Datenschutz zu tun?„. Nun: Mehr als man zunächst denken mag! Das Problem ist die Öffentlichkeit der Blockchain. Mehr hierzu in meinem Beitrag: Bitcoin: Gefahr eines Datenschutz-GAU durch die Blockchain?

Informieren Sie sich über unsere praxisnahen Webinare
  • »Microsoft 365 sicher gestalten«
  • »Informationspflichten nach DSGVO«
  • »Auftragsverarbeitung in der Praxis«
  • »DSGVO-konformes Löschen«
  • »IT-Notfall Ransomware«
  • »Bewerber- und Beschäftigtendatenschutz«
Webinare entdecken
Mit dem Code „Webinar2024B“ erhalten Sie 10% Rabatt, gültig bis zum 31.12.2024.
Beitrag kommentieren
Fehler entdeckt oder Themenvorschlag? Kontaktieren Sie uns anonym hier.
Die von Ihnen verfassten Kommentare erscheinen nicht sofort, sondern erst nach Prüfung und Freigabe durch unseren Administrator. Bitte beachten Sie auch unsere Nutzungsbedingungen und unsere Datenschutzerklärung.