Der Bitcoin: Magie, Betrug oder hinreichend fortschrittliche Technologie? Teil 2

Aus dem Maschinenraum der Blockchain

Happy Girl Hopscotch in Strawberry von Pink Sherbet Photography via flickr.com. Lizenz: Creative Commons

Harte Kost: Konrad S. Graf nimmt sich für das Bitcoin Magazine diesen ganzen kryptographischen Bahnhof hinter dem Bitcoin vor. Im zweiten Teil der Serie geht es um Hashes – was sie sind, wie sie benutzt werden, und wie Bitcoin-Miner durch sie beweisen, was sie gearbeitet haben. Unser Übersetzer Stefan Rehm hat den Text in mühsamer Arbeit ins Deutsche übersetzt. Vielen Dank dafür!

Teil I ist auf eine Verständnisschwierigkeiten eingegangen, hat grob dargestellt, wie Bitcoin funktioniert, und die strategische Bedeutung von Open Source, Peer to Peer und digitalen Signaturen zusammengefasst. Der zweite Teil fügt dem eine Erklärung des „hashings“ hinzu und skizziert dessen wichtige Funktion für die technische Struktur des Bitcoin. So wird verständlich, wie das System von Anfang an dafür konzipiert wurde, sich bis in eine unbestimmte Zukunft selbst zu finanzieren.

Zerstückeln

„Hash“-Funktionen, zu deutsch „Streuwertfunktionen“, sind ein wichtiges Konzept der Kryptographie. Sie spielen eine ganz andere Rolle als digitale Signaturen. Während diese belegen, dass eine Nachricht von einem spezifischen Absender stammt, beweist eine Hash, dass die Mitteilung nicht verändert wurde. Die Hash einer spezifischen Nachricht ergibt immer ein identisches Ergebnis. Wenn die Ergebnisse abweichen, ist das eine Warnung, dass die aktuelle Version verändert wurde.

Zur Veranschaulichung hier eine Beispiel von Murray Rothbard. Er schrieb in Man, Economy, und State:
„Es muss hier wiederholt werden, dass Wertmaßstäbe nicht jenseits konkreter Handlungsmöglichkeiten existieren.“ (Murray Rothbard 1962)

Wenn man nun diese Nachricht in den SHA256-Extrakt umwandelt, erhält man diese Nachricht:

68ea16d5ddbbd5c9129710e4c816bebe83c8cf7d52647416302d590290ce2ba8

Jede Nachricht von beliebiger Größe kann in einer solchen Streuwertfunktion verarbeitet werden. Der Algorithmus bricht sie auf, mischt die Teile, und „verdaut“ sie, bis eine feste Länge als Ergebnis, ein sogenannter „digest“ als Extrakt herauskommt, der für jede Nachricht einzigartig ist.

Ein guter „hash“-Algorithmus hat einige entscheidende Eigenschaften. Erstens soll eine identische Meldung immer einen identischen Auszug generieren. Jedesmal, wenn wir das Zitat von Rohtbard durch den Algorithmus jagen, kommt der obige Hash heraus. Zweitens funktioniert die Streuwertfunktion nur in eine Richtung. Das bedeutet, dass keine Inhalte der Nachricht aus dem „digest“, dem Extrakt, rekonstruierbar sind. Selbst die kleinste Veränderung erzeugt ein ganz anderes „digest“, ohne Beziehung zwischen den Änderungen von Input und Output. Man bezeichnet das als „Lawinen-Effekt“. Drittens sind die Chancen für die Herstellung desselben „digests“ aus einer veränderten Nachricht minimal. Dies wird als „Kollisionsresistenz“ bezeichnet. Es ist unmöglich, mit einer veränderten Nachricht zu einem identischen Extrakt zu kommen.

Um die Wirkung minimaler Abweichungen zu veranschaulichen, hier das obige Zitat ohne die beiden Anführungszeichen:
Es muss hier wiederholt werden, dass Wertmaßstäbe nicht jenseits konkreter Handlungsmöglichkeiten existieren. (Murray Rothbard 1962)
Daraus entsteht dieses Digest:

0a7a163d989cf1987e1025d859ce797e060f939e2c9505b54b33fe25a9e860ff

Vergleichen Sie es mit der vorherigen:

68ea16d5ddbbd5c9129710e4c816bebe83c8cf7d52647416302d590290ce2ba8

Sie sehen: Es ist völlig anders! Schon die kleinste Veränderung, nämlich das Entfernen von zwei Anführungszeichen, führt zu einem vollkommen neuen Extrakt, der keinerlei Ähnlichkeit mehr mit dem früheren hat. In der Summe gibt dieses Digest als Antwort ein einfaches Ja oder Nein auf eine bestimmte Frage: Ist die Nachricht immer noch genau die gleiche wie vorher? Wenn die Nachricht abweicht, kann das Digest nicht sagen, inwiefern oder wie viel. Es kann nur sagen, ob sie geändert wurde oder nicht.

Die Hashfunktion wirkt also wie ein ziemlich stumpfes Werkzeug, das nur „gleich“ oder „anders“ sagen kann. Für den Bitcoin erwies sich diese Funktion jedoch als sehr nützlich. Das „hashing“ bildet einen Dreh- und Angelpunkt. Denn es verhindert, dass Transaktionen und Aufzeichnungen verändert werden können, sobald sie aufgenommen sind. Sobald die Extrakte in die „Blockchain“ aufgenommen wurden, ist eine Fälschung unmöglich.

Transaktionen – und wie die Miner darum konkurrieren, Blöcke zu entdecken

Die „Wallet“ (Geldbörsen)-Software wird verwendet, um Transaktionen zu generieren. Eine Transaktion besteht aus der gesendeten Summe, der überweisenden und empfangenden Adresse, sowie einigen weiteren Informationen. Diese werden alle miteinander „gehasht“, also vermischt, und die Hash wird mit allen erforderlichen Signaturschlüsseln versehen, um eine einzigartige digitale Signatur zu erzeugen, die nur für diese Transaktion und keine andere gilt. Alle diese Informationen werden unverschlüsselt, als öffentliche Informationen in das Netzwerk eingespeist. Das wird dadurch möglich, dass die Signatur und der Prüfschlüssel nicht im „hash“ vorkommen.

Um zu verhindern, dass jemand dieselben Bitcoin zwei Mal ausgibt und damit betrügt, gleichen Knoten neue Transaktionen mit der „Blockchain“ ab und stellen damit sicher, dass Einheiten nicht mehr als einmal verwendet werden.

Jeder „miner“, was übersetzt soviel wie Bergarbeiter bedeutet, sammelt neue gültige Transaktionen und versucht sie möglichst schnell in den nächsten Block der „Blockchain“ zu integrieren und zu veröffentlichen. Dabei werden alle neuen Transaktionen zusammen „gehashed“. So entsteht eine Streuwertfunktion („mrkl_root“), die sich auf jede andere Transaktion in einem Block bezieht.

Jeder „hash“ für jeden Nutzerblock unterscheidet sich von allen anderen nicht zuletzt dadurch, dass der „miner“ seine einzigartige Adresse mit einfügt und er die Vergütung dafür beanspruchen kann, dass sein Block als nächstes in der Kette anerkannt wird.

Welcher Block wird eingefügt?

Wer unter den konkurrierenden Minern derjenige sein will, der den nächsten, als gültig anerkannten Block einfügt, der muss eine spezifische Kopfzeile generieren, die strengen Bedingungen unterliegt. Alle anderen „miner“ können diese sofort überprüfen und verifizieren oder falsifizieren.

Doch auch wenn es sich um eine richtige Lösung handelt, es funktioniert nur für den „miner“, der die Transaktion zuerst entdeckt und in seinen eigenen Block integriert hat. Niemand sonst kann die richtige Antwort für sich beanspruchen und für seinen eigenen Block benutzen. Deshalb kann die richtige Antwort veröffentlicht werden, ohne dass die Gefahr besteht, dass sie missbraucht wird. Dieses einzigartige qualifizierende „Hash“ ist ein Beweis dafür, dass die Arbeit korrekt war.

Herkunft und Verwendung der Nachricht-Digests mögen auf den ersten Blick kontraintuitiv erscheinen, aber für den Bitcoin sind sie unverzichtbare Elemente.

Das Beispiel eines „mining“-Blocks

Hier ist ein Beispiel für einige Schlüsseldaten aus einem konkreten Block.

„hash“: „0000000000000000163440df04bc24eccb48a9d46c64dce3be979e2e6a35aa13“,
„Prev_block“: „00000000000000001b84f85fca41040c558f26f5c225b430eaad05b7cc72668d“
„Mrkl_root“: „83d3359adae0a0e7d211d983ab3805dd05883353a1d84957823389f0cbbba1ad“
„Nonce“: 3013750715,

Die erste Zeile („hash“) war die erfolgreiche Block-Kopfzeilen-Hash für diesen Block. Es beginnt mit einer großen Anzahl von Nullen, weil eine erfolgreiche „hash“ unter dem Sollwert im aktuellen Schwierigkeitsgrad eingestellt sein muss. Der einzige Weg, um eine solche Hash zu finden, ist, wieder und wieder danach zu suchen.

Dieser Prozess wird in den Medien oft als „Lösung eines komplexen mathematischen Problem“ beschrieben, was etwas irreführend ist. Es ist vielmehr eine äußerst einfache und dumme Aufgabe, eine, die nur Computer ertragen können. Die „Hash“-Funktion muss immer und immer wieder laufen, Millionen und Milliarden Mal, bis endlich irgendwo im Netzwerk eine richtige Antwort gefunden wird. Die Chancen für einen bestimmten „miner“ eine solche „hash“ für seinen eigenen Block zu finden, sind minimal. Aber irgendwo im Netzwerk wird etwa alle 10 Minuten ein solches Ziel festgestellt, und der Finder bekommt die Belohnung von derzeit 25 neue Bitcoin sowie die Transaktionsgebühren.

Wie wird die Belohnung gesammelt?

Die Kandidatenblöcke sind bereits im Voraus festgelegt, so dass Belohnungen durch die einzigartige Adresse des „miners“ kontrolliert werden. Dies ist möglich, weil der „miner“ seine Adresse schon in seinen einzigartigen Kandidatenblock integriert hat, bevor er dafür belohnt wurde. Diese Belohnungsadresse wurde bereits anfangs in die Blockdaten integriert. Wollte man diese Adresse wiederum manipulieren, so würde durch den „hash“ der gesamte Block ungültig.

Ein „miner“ erhält allerdings nur Belohnungen für Blöcke, die wirklich Teil der Hauptkette, also der „Blockchain“, werden, denn nur diese Blöcke können für zukünftige Transaktionen herangezogen werden. Dieser Entwurf beschreibt die Aneignung neuer Bitcoins. Wer genau den nächsten Block gewinnt, ist Zufall. Um die Erfolgswahrscheinlichkeit zu erhöhen, kann ein „miner“ nur versuchen, einen größeren Anteil an der „Hashing“-Netzwerkleistung in Konkurrenz zu allen anderen Teilnehmern beizutragen.

Wie oben am Rothbard-Zitat gezeigt, führt eine minimale Veränderung einer Nachricht zu einem vollkommen anderen „hash“. Deshalb weist das Protokoll einen Platz für eine Nummer zu, die bei Null startet und für jeden neuen Versuch geändert wird („Nonce“). Nur diese minimale Veränderung erzeugt auf der Suche nach einem Gewinner einen neuen „hash“, auch wenn der Rest der Blockdaten unverändert bleibt. Im obigen Beispiel etwa war das „mining“ erst nach mehr als 3 Milliarden Versuchen erfolgreich („Nonce“: 3013750715), und das nur für diesen einen Suchenden, und nicht für die vielen anderen, die parallel nach diesem Block gesucht haben.

Man muss also verstehen, dass die Schwierigkeit darin liegt, eine Hash auf diesem Schwierigkeitsniveau zu finden, während es trivial ist, diese zu prüfen. Alle „miner“ verfahren auf diese Weise und machen immer so weiter. Sie nutzen den neu entdeckten „hash“ des vorherigen Blocks („prev_block“) als Element für die nächste Ernte möglicher Block-Kandidaten (was die vertikale Integrität der Kette von Blöcken sichert) und das Wettrennen auf die verbleibenden, unbestätigten Transaktionen geht weiter.

Ein leistungsstarkes, selbstfinanzierendes Verifikations-Netzwerk

Das Bitcoin-Mining-Netzwerk produzierte im September 2014 bei 250 Billiarden “hashes“ pro Sekunde; dieses Tempo steigt logarithmisch an und bald wird sich diese Zahl klein ausnehmen. Das bedeutet, dass im Moment in jeder Sekunde etwa 250 Billiarden Hashes über das Netzwerk getestet werden. In jeder Sekunde! Damit handelt es sich um das weltweit bei weitem leistungsstärkste dezentrale Rechnernetzwerk.

Block-Vergütungen und Transaktionsgebühren dienen der Herstellung und Instandhaltung dieses gesamten dezentralen Netzwerks. Da die Erzeugung von Blöcken zufällig geschieht und sich nach dem Zufallsprinzip auf alle Beteiligten verteilt, bleiben die Anreize für die Mitwirkenden erhalten. Viele „miner“ nehmen über kooperative Pools teil, sodass die Bezahlung recht regelmäßig erfolgt.

Dies war ein Überblick auf einige der wichtigsten technischen Elemente des Bitcoin. Streuwertfunktionen („hash“-Algorithmen) und digitale Signaturen sind recht kontraintuitive und relativ neue Anwendungen. Aber für das Verständnis des Bitcoin ist es unverzichtbar, die Möglichkeiten dieser beiden Elemente zu begreifen. Beide tragem eine unverzichtbare Funktion zur Verifikation, unveränderbaren Aufzeichnung sowie zur Betrugsprävention bei. Diese technischen Grundlagen und die Funktionen, die sie unterstützen, sind so weit von einem betrügerischen Schneeballsystem entfernt, wie das eben möglich ist.

Übernommen und überarbeitet von Bitcoin Decrypted Part II: Technical Aspects und wiederveröffentlicht von konradsgraf.com und actiontheory.liberty.me. Den ersten Teil finden Sie hier.

Hat Ihnen der Artikel gefallen? Qualitätsübersetzungen bedeuten eine Menge Arbeit. Sie können uns unterstützen, damit wir öfter Übersetzungen und Beiträge von Gastautoren bringen. Einfach einige Bitcoin-Bruchstücke an die 1BvayiASVCmGmg4WUJmyRHoNevWWo5snqC senden. Jeder Satoshi wird dafür genutzt, um dieses Blog besser zu machen. Wer etwas über weitere Spendenwege oder über Belohnungen für großzügige Spender erfahren will, findet HIER mehr Infos. Dieser Artikel wurde von Falco kostenlos lektoriert. Wenn Sie ihm dafür eine Spende zukommen lassen wollen – seine Adresse ist die 1PTQRBbBF4wiQACS7rse3npA8s9ueyKAru

About Christoph Bergmann (1148 Articles)
Das Bitcoinblog wird von bitcoin.de gesponsort, ist inhaltlich aber unabhängig und gibt die Meinung des Redakteurs Christoph Bergmann wieder. Wenn Ihnen das Blog gefällt, freuen wir uns über Spenden an 1BvayiASVCmGmg4WUJmyRHoNevWWo5snqC. Wir akzeptiere mit dieser Adresse sowohl Bitcoin als auch Bitcoin Cash. Weitere Infos, wie Sie uns unterstützen können, finden Sie HIER. Gastbeiträge sind ebenfalls willkommen. Meinen öffentlichen PGP-Schlüssel sowie den Bitmessage-Schlüssel finden Sie HIER

5 Comments on Der Bitcoin: Magie, Betrug oder hinreichend fortschrittliche Technologie? Teil 2

  1. Bitcoin ist definitiv Betrug.
    Der Betrug geht von den Platformen aus (siehe MtGox).
    Sobald nicht mehr genügend Einzahler gefunden werden (wie z.B. jetzt) bricht das System zusammen.

  2. Hans Meier // 15. May 2015 at 16:51 // Reply

    …und fragwürdig ist die ganze Energieverschwendung für etwas das nichts bringt. Kann man mit dieser ganzen Arbeitsleistung etwas anderes bezwecken als Energievernichtung? Was ist genau der Sinn dahinter? Die Energie soll so teuer werden, dass so ein Schwachsinn nicht mehr lohnt. Es lebe die Braunkohlewerke, Atomkraftwerke…

  3. Freckels // 1. July 2017 at 9:02 // Reply

    Übersetzungsfehler? Billion amerik. = deutsch Milliarde, nicht Billion.

  4. Frage: Wenn doch der Inhalt der Nachricht nicht verändert werden darf, die “gehashed” wird, wie kann ich dann einen Hash finden, der mit der Anzahl von x-Nullen beginnt (ohne die Nachricht zu verändern) ?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: