Transaktionen validieren

Auf einen wichtigen Aspekt wurde bisher noch nicht eingegangen. Woher wissen Miner, dass eine Transaktion durchgeführt werden darf? Dafür wird auf sogenannte digitale Signaturen zurückgegriffen. Miner akzeptieren nur Transaktionen mit einer gültigen Signatur.

Digitale Signaturen kommen aus der Kryptographie, genauer aus dem Bereich der asynchronen Verschlüsselung. Die ersten Verfahren wurden in den 1970er Jahren erfunden und haben die Kryptografie revolutioniert. Bis dato konnte man Nachrichten sicher verschlüsseln, allerdings mussten Sender und Empfänger den Schlüssel kennen. Die Nachricht wurde mit dem gleichen Schlüssel verschlüsselt und entschlüsselt. Durch den erforderliche Schlüsselaustausch waren diese synchronen Verschlüsselungsverfahren nicht wirklich praktikabel.

Abhilfe schaffte die asynchrone Verschlüsselung. Hier gibt es einen öffentlichen und einen privaten Schlüssel. Der private Schlüssel muss unter allen Umständen geheim gehalten werden. Der öffentliche Schlüssel kann frei verteilt werden. Der öffentliche Schlüssel wird verwendet um eine Nachricht zu verschlüsseln. Zum Entschlüsseln wird der private Schlüssel benutzt, den nur der Empfänger der Nachricht kennt.

Bei einer digitalen Signatur wird das Verfahren umgekehrt. Der Sender bildet den Hashwert seiner Nachricht. Diesen verschlüsselt er mit seinem privaten Schlüssel. Der Empfänger entschlüsselt die Signatur mit dem öffentlichen Schlüssel. Anschließend überprüft er, ob der Hashwert der Nachricht und die entschlüsselte Signatur identisch sind. Falls dem so ist, wurde die Nachricht unverändert übertragen. Eine Manipulation der Nachricht hätte eine Veränderung des Hashwertes zur Folge gehabt.

In der Bitcoin-Blockchain ist die WalletID (die Kontonummer) der öffentliche Schlüssel. Eine Transaktion von einem Konto muss mit dem privaten Key signiert werden, den nur der Inhaber des Kontos kennt. Jeder Miner kann so leicht überprüfen, ob die Signatur zu einer Transaktion zum dazugehörigen Konto passt.