(Teile übernommen und übersetzt von marmelab.com)
Was sie macht
Eine Blockchain erlaubt es Daten in einem Rechnernetz bestehend aus nichtvertrauenswürdigen Peers mit mehreren Benutzern zu teilen und zu bearbeiten. Das funktioniert mit allen Daten, ist aber vor allem dann interessant, wenn es um Informationen geht deren Austausch klassischerweise eine vertrauenswürdige Drittperson/Zwischenstelle voraussetzt. Beispiele wären Geld (Bank), Verträge und Eigentum (Anwalt), ... Im Wesentlichen ermöglicht es die Blockchain auf vertrauenswürdige Drittperson/Zwischenstellen zu verzichten.
What it does
A blockchain allows to securely share and/or process data between multiple parties over a network on non-trusted peers. Data can be anything, but most interesting uses concern information that currently require a trusted third-party to exchange. Examples include money (requires a bank), a proof or property (requires a lawyer), a loan certificate, etc. In essence, the blockchain removes the need for a trusted third party.
Wie sie funktioniert
Technisch gesehen ist die Blockchain eine Innovation mit drei zugrunde liegenden Konzepten: Peer-to-Peer-Rechnernetzen, Asymmetrischer Verschlüsselung und verteiltem Konsens basierend auf einer nur durch Zufall lösbaren mathematischen Aufgabe. Keines dieser Konzepte ist neu, aber ihre Kombination.
How it works
From a technical point of view, the blockchain is an innovation relying on three concepts: peer-to-peer networks, public-key cryptography, and distributed consensus based on the resolution of a random mathematical challenge. None of there concepts are new. It’s their combination that allows a breakthrough in computing. [..]
Womit man es vergleichen könnte
Man könnte die Blockchain als Datenbank sehen, die auf allen Knoten repliziert und lose synchronisiert wird.
What it compares to
See the blockchain as a database replicated as many times as there are nodes and (loosely) synchronized, [..]
(Bilder und Inhalte aus bitsonblock.net)
Eine Blockchain ist eine Datei
In einer Blockchain können beliebige Daten abgespeichert werden. Meistens wird sie wie eine Datenbank verwendet. In der internen Struktur unterscheidet sie sich aber von dieser.
Analogie: Blöcke in der Blockchain = Seiten in einem Buch
Jede Seite in einem Buch enthält:
Ein einzelner Block einer Blockchain besteht aus:
Reihenfolge der Blöcke in einer Blockchain
Seite um Seite
Bei Büchern können die Seiten durch ihre Seitenzahlen einfach aufsteigend geordnet werden.
Block um Block
Bei Blockchains enthält jeder Block eine Verknüpfung zum vorhergehenden Block. Diese Verknüpfung basiert nicht auf der Blocknummer, sondern auf dem durch den Inhalt des vorhergehenden Blocks gegebenen Hash.
Interne Konsistenz
Dadurch dass zur Verknüpfung der Blöcke Hashwerte und nicht Nummern oder Zeitstempel verwendet werden, können die Daten sehr einfach überprüft werden. Der Benutzer berechnet dazu selbst die Hash-Werte der Blöcke. Sind diese mit den Daten konsistent und können so die Verknüpfungen der Blöcke nachvollzogen werden, dann kann man sicher sein, dass die Blockchain konsistent ist. Möchte jemand Daten einer Blockchain ändern, so müsste er alle Hash-Werte des geänderten und allen neueren Blöcken neu berechnen.
Falls die Berechnung der Hash-Werte kompliziert ist und lange dauert, so ist es auch schwierig und zeitaufwändig eine Blockchain neu zu erstellen.
Die Logik bei Bitcoin ist:
Deshalb sagt man die Bitcoin-Blockchain sei unveränderbar. (Grundsätzlich muss aber eine Blockchain nicht unveränderbar sein!)
Eine Blockchain muss nicht zwingenderweise in einem Peer-to-Peer-Rechnernetz leben. Allerdings ist dies bei Diensten wie z.B. Bitcoin genau der springende Clou: man kann mit einem P2P-Netz die zentrale Behörde (z.B. Bank) umgehen. In einem P2P-Netz hat jeder Teilnehmer alle Daten (oder fast alle). Die Daten werden also x-mal repliziert. Das macht ein P2P-Netz weniger effizient als ein Client/Server-Netz, aber auch unabhängiger. So können Teilausfälle des Netzes oder einzelner Teilnehmer ohne Probleme verkraftet werden.
Probleme mit Peer-to-Peer
Sogar wenn man allen Teilnehmern in einem P2P-Netz vertraut, kann es zu Meinungsverschiedenheiten und Inkonsistenzen kommen. Wenn jeder Teilnehmer in seinem Tempo arbeitet, kommt es unweigerlich zu leicht unterschiedlichen Zuständen dieser. Was ist jetzt der «wahre» oder «vertrauenswürdige» Zustand?
Noch schlimmer, wie soll das in einem nicht-vertrauenswürdigen Rechnernetz, wo keiner der Teilnehmer als vertrauenswürdig eingestuft werden kann, funktionieren.
Was könnte ein Angreifer tun und was nicht?
Ein unehrlicher Miner könnte
Er kann nicht
Eine mögliche Attacke ist die sogenannte «double spend»-Attacke.
Diese Attacke ist aber nur mit Riesenaufwand möglich, weil das Hinzufügen von Blöcken ein sehr rechnenintensiver Vorgang ist. Der Angreifer müsste schneller sein als alle «ehrlichen» Teilnehmer des Rechnernetzes, damit seine Kette als die längste akzeptiert würde. Die Berechnung neuer Blöcke selbst, ist ein Ratespiel: Es wir eine Zufallszahl geraten und diese wird zusammen mit den Daten des Blocks gehasht. Der Hash muss nun um akzeptiert zu werden mit einer bestimmten Anzahl Nullen beginnen. Dem sagt man «Proof of Work».
\[ \begin{array}{c} \text{hash(Zufallszahl 1} + \text{Hash vorhergehender Block} + \text{Daten)} = 73251509345956682380 \\ \text{hash(Zufallszahl 2} + \text{Hash vorhergehender Block} + \text{Daten)} = 10507557775058611091 \\ \text{hash(Zufallszahl 3} + \text{Hash vorhergehender Block} + \text{Daten)} = 34623021683099175057 \\ \text{...}\\ \text{hash(Zufallszahl X} + \text{Hash vorhergehender Block} + \text{Daten)} = 00000145210877866656 \end{array}\]
Die Anzahl Nullen, also die Schwierigkeit wird ständig angepasst:
https://anders.com/blockchain/
Die wohl berühmteste Anwendung einer Blockchain stellt die Kryptowährung Bitcoin dar. Sie verwendet eine Blockchain um die Transaktionen zwischen den Teilnehmern abzuspeichern und zu sichern.
https://www.youtube.com/watch?v=Lx9zgZCMqXE (How Bitcoin Works Under the Hood)
Neben Bitcoin gibt es viele weitere Möglichkeiten Blockchains zu nutzen. Aufgeführt sind einige Anwendungen die Blockchains einsetzen um die sonst nötige Vermittlungsstelle zu ersetzen. Was machen diese?