DEV Community

Cover image for Blockchain und Bitcoin erklärt in 6 Episoden — Bonus-Episode
Christian Ahrweiler
Christian Ahrweiler

Posted on Originally published at Medium

Blockchain und Bitcoin erklärt in 6 Episoden — Bonus-Episode

Warum heißt Bitcoin Kryptowährung?Warum heißt Bitcoin Kryptowährung?Kryptografie wird meistens mit Verschlüsselung in Verbindung gebracht. Dabei werden Daten so verändert, dass sie nur mit dem passenden Schlüssel wieder gelesen werden können.

Bitcoin ist jedoch nicht verschlüsselt.

Die Bitcoin-Blockchain ist öffentlich. Ihre Blöcke und Transaktionen können von jedem gelesen werden. Auch die übertragenen Beträge sind grundsätzlich sichtbar.

Bitcoin ist öffentlich, aber pseudonym

In der Bitcoin-Blockchain lässt sich verfolgen, welche Beträge eine Bitcoin-Adresse empfangen und später wieder ausgegeben hat.

Die Adresse enthält jedoch keinen Namen. Die Blockchain zeigt zunächst nur die Zahlungswege zwischen verschiedenen Adressen.

Öffentlich sichtbar:
Bitcoin-Adressen
Beträge
Transaktionen
Zeitpunkte

Nicht direkt sichtbar:
Namen
Personen
Zweck der ZahlungWird eine Adresse einer Person oder Firma zugeordnet, können auch ihre bisherigen Transaktionen nachvollzogen werden.

Bitcoin ist deshalb nicht anonym, sondern pseudonym.

Obwohl diese Daten öffentlich sind, verwendet Bitcoin mehrere kryptografische Verfahren. Sie dienen jedoch nicht dazu, die Transaktionen zu verschlüsseln.

Warum wird Bitcoin dann als Kryptowährung bezeichnet?

Weil Kryptografie nicht nur dazu dient, Informationen geheim zu halten. Sie kann auch Daten überprüfbar machen, Zugriffsrechte zuordnen und digitale Freigaben bestätigen.

Bitcoin verwendet kryptografische Verfahren an drei entscheidenden Stellen:

Kryptografische Hashfunktionen
Machen Daten und Rechenarbeit überprüfbar

Kryptografische Schlüsselpaare
Regeln die Kontrolle über Bitcoin

Digitale Signaturen
Geben Transaktionen überprüfbar freiSehen wir uns die drei Verfahren genauer an.

1. Kryptografische Hashfunktionen

In Episode 1 haben wir aus kurzen Texten vereinfachte Hashes berechnet:

Text Hallo Anna!
Hash 3dcdffText Hallo Anne!
Hash 2dededDie kurzen Hashes dienten nur dazu, das Prinzip verständlich zu machen.

Bitcoin verwendet dafür eine echte kryptografische Hashfunktion mit der Bezeichnung SHA-256.

SHA steht für Secure Hash Algorithm. Die Zahl 256 beschreibt die Länge des Ergebnisses.

Ein SHA-256-Hash besteht intern immer aus 256 Bits.

Ein Bit kann einen von zwei Werten besitzen:

0 oder 1In dieser Schreibweise wäre ein SHA-256-Hash eine Folge aus 256 Nullen und Einsen:

101101001011011010101100…Diese Darstellung wäre für Menschen sehr lang und unübersichtlich. Deshalb werden jeweils vier Bits zu einem Zeichen zusammengefasst.

Vier Bits besitzen 16 mögliche Kombinationen:

0000
0001
0010
0011

1111Für diese 16 Möglichkeiten verwendet man die Zeichen:

0 1 2 3 4 5 6 7 8 9 a b c d e fDiese Darstellung wird Hexadezimalschreibweise genannt.

Ein Zeichen ersetzt somit vier Bits:

4 Bits = 1 ZeichenDaraus folgt:

256 Bits ÷ 4

64 ZeichenEin vollständiger SHA-256-Hash wird deshalb normalerweise mit 64 Zeichen dargestellt.

Ein echter Hash kann beispielsweise so aussehen:

00000000000000000001a7f4c8b2…Die Punkte gehören nicht zum Hash. Sie zeigen hier lediglich, dass wir den Wert für die Darstellung gekürzt haben.### Was macht SHA-256 kryptografisch?

SHA-256 besitzt mehrere wichtige Eigenschaften.

  • Der gleiche Inhalt ergibt immer den gleichen Hash
  • Bereits eine kleine Änderung erzeugt einen völlig anderen Hash
  • Aus dem Hash lässt sich der ursprüngliche Inhalt nicht zurückberechnen Eine Hashfunktion ist also ein Einbahnstraße.

Können zwei Inhalte denselben Hash haben?

SHA-256 kann beliebig große Inhalte auf einen Hash mit nur 256 Bits abbilden.

Da es mehr mögliche Inhalte als mögliche Hashes gibt, müssen theoretisch unterschiedliche Inhalte mit demselben Hash existieren.

Das wird als Kollision bezeichnet.

Bei SHA-256 gibt es jedoch so unvorstellbar viele mögliche Hashes, dass eine zufällige Kollision praktisch nicht zu erwarten ist.

Für die Prüfung gilt deshalb:

Hashes unterschiedlich:
Inhalte sind unterschiedlich

Hashes gleich:
Inhalte sind mit extrem hoher Wahrscheinlichkeit gleich### Wie verwendet Bitcoin SHA-256?

Bitcoin verwendet SHA-256 unter anderem für die Hashes seiner Blöcke und beim Proof of Work.

Blockdaten

  • vorheriger Hash
  • Nonce ↓ SHA-256 ↓ Block-HashBeim Mining wird die Nonce immer wieder verändert und der Hash erneut berechnet, bis das Ergebnis das aktuelle Target erfüllt.

Unsere 00-Bedingung aus Episode 1 war eine vereinfachte Darstellung dieses Verfahrens.

Nonce verändern

SHA-256 berechnen

Target erfüllt?Bitcoin berechnet den Block-Hash dabei sogar zweimal hintereinander mit SHA-256. Das Grundprinzip bleibt jedoch dasselbe.

SHA-256 macht die Daten nicht geheim. Die Hashfunktion macht ihre Verbindung und die geleistete Rechenarbeit überprüfbar.

2. Kryptografische Schlüsselpaare

Beim Anlegen einer Bitcoin-Wallet werden private und öffentliche Schlüssel erstellt.

Der private Schlüssel beginnt als eine sehr große zufällige Zahl.

Sehr große Zufallszahl

Privater SchlüsselAus dem privaten Schlüssel berechnet die Wallet den dazugehörigen öffentlichen Schlüssel.

Privater Schlüssel

Kryptografische Berechnung

Öffentlicher SchlüsselDiese Berechnung funktioniert praktisch nur in eine Richtung.

Aus dem öffentlichen Schlüssel lässt sich der private Schlüssel nicht zurückberechnen.

Der private Schlüssel bleibt geheim in der Wallet. Der öffentliche Schlüssel darf zusammen mit einer Transaktion bekannt gegeben werden.

Verwendet Bitcoin RSA?

RSA ist eines der bekanntesten Verfahren für asymmetrische Kryptografie. Bitcoin verwendet RSA jedoch nicht.

Bitcoin verwendet ein Verfahren auf Basis elliptischer Kurven. Die dabei eingesetzte Kurve trägt die Bezeichnung secp256k1.

Die mathematischen Einzelheiten sind für unsere Erklärung nicht notwendig.

Entscheidend ist die Aufgabenteilung:

Privater Schlüssel: Bleibt geheim
Öffentlicher Schlüssel: Darf bekannt seinDas Schlüsselpaar verschlüsselt Annas Bitcoin nicht.

Es sorgt dafür, dass nur die Wallet mit dem passenden privaten Schlüssel eine gültige Freigabe für ihre Bitcoin erstellen kann.

3. Digitale Signaturen

Anna möchte eine Bitcoin-Transaktion freigeben.

Ihre Wallet verwendet dafür die Transaktion und ihren privaten Schlüssel.

Transaktion

  • privater Schlüssel ↓ Digitale SignaturDie Transaktion und die digitale Signatur werden an das Bitcoin-Netzwerk gesendet.

Der private Schlüssel verlässt Annas Wallet nicht.

Ein Node verwendet den öffentlichen Schlüssel, um die Signatur zu prüfen.

Transaktion

  • digitale Signatur
  • öffentlicher Schlüssel ↓ Signatur gültig oder Signatur ungültigDie digitale Signatur beweist, dass die Transaktion mit dem passenden privaten Schlüssel freigegeben wurde.

Sie verbirgt den Inhalt der Transaktion nicht.

Warum kann die Signatur nicht kopiert werden?

Die Signatur wird aus der vollständigen Transaktion berechnet.

Wird der Empfänger oder der Betrag nachträglich verändert, passt die Signatur nicht mehr zu den Transaktionsdaten.

Eine Signatur kann deshalb nicht einfach unter eine andere Transaktion kopiert werden.

Bitcoin verwendete für diese Signaturen ursprünglich ECDSA. Neuere Taproot-Transaktionen können Schnorr-Signaturen verwenden.

Beide Verfahren erfüllen hier dieselbe grundlegende Aufgabe: Mit dem privaten Schlüssel wird eine Signatur erstellt, die anschließend mit dem öffentlichen Schlüssel geprüft werden kann.

Zusammenfassung

Bitcoin ist nicht verschlüsselt. Seine Blockchain und die darin enthaltenen Transaktionen sind öffentlich einsehbar.

Der Begriff Kryptowährung bezieht sich auf die kryptografischen Verfahren, die das System überprüfbar machen und die Kontrolle über Bitcoin regeln.

Bitcoin heißt Kryptowährung, weil diese kryptografischen Verfahren das System ermöglichen und absichern — nicht weil seine Transaktionen verschlüsselt sind.

Top comments (0)