Die Funktionsweise einer Kryptowährung

Ausarbeitung für Sicherheit in Netzen

Inhaltsverzeichnis


1. Einleitung

Der Traum vom großen Geld. Für einige ist dies, im Dezember 2017 Realität geworden, als der Bitcoin sein Allzeithoch von 11.236€ 1 erreichte.

Das viele Geld kann ich mit meiner Ausarbeitung nicht versprechen, hoffe jedoch, mit meiner Ausarbeitung das komplexe Thema der Kryptowährungen und der Blockchain verständlicher zu machen.

Der Grund, weshalb ich mich für dieses Thema entschieden habe, ist, dass ich mich bereits häufiger mit dem Thema Kryptowährungen beschäftigt habe — nie aber tiefer in die Funktionsweise eingetaucht bin.

Aufgrund dessen, dass es sich um das Modul Sicherheit in Netzen handelt werde ich mich, nach einigen Grundlagen, eingehend mit der Struktur und der damit einhergehenden Sicherheit einer Blockchain befassen.


2. Grundlagen

2.1 Geld und Währungen

Die erste Währung wurde etwa 600 vor Christus 2 in Lydien, der heutigen Türkei, von dem damaligen König Alyattes dem II ausgestellt.

„Bin ich Krösus?”

König Alyattes der II ist nicht nur Vater der ersten Geldmünzen sondern auch Vater seines später geborenen Sohnes Krösus. Krösus erlangte durch die Münzpregung und Tributzahlungen ein Vermögen, weswegen noch heute der Satz „Bin ich Körsus?” bekannt ist.

3

Geld ist ein Tauschobjekt. Es kann gegen einen Gegenstand mit gleicher Wertigkeit eingetauscht werden. Im Gegensatz zu vorherigen Tauschgegenständen, wie Nahrung, Werkzeugen und Kleidung ist Geld ein Tauschobjekt, welches universell einsetzbar war.

Wohingegen vorherige Tauschobjekte meist Bedarfsgegenstände waren, konnte man mit Geld viel mehr Tauschpartner finden, welche das Geld wiederum für andere Gegenstände eintauschen konnten. Ein Käufer hatte somit mehr Abnehmer, was den globalen Handel insgesamt vorantrieb. 4

Für viele Jahrhunderte bestimmte der Rohstoff aus dem eine Münze gemacht wurde, den Wert des Geldes, der als innerer oder intrinsischer Wert bekannt ist.
Das Wertgeld wurde später aber durch sogenannte Fiat-Währungen ersetzt. Eine Fiat-Währung hat keinen materiellen Wert, es ist „stoffwertlos”. Der Wert richtet sich einzig und allein nach der Akzeptanz und dem Vertrauen der Menschen in die jeweilige Währung und in dem dahinter, stehenden Staat.

2.2 Erste Kryptowährung

Im Jahr 2008 wurde unter dem Decknamen Satoshi Nakamoto ein Entwurf 5 für ein „Peer-to-Peer elektronisches Cash-System”, unter dem Namen Bitcoin veröffentlicht. In dem Dokument beschreibt Satoshi Nakamoto eine Währung, welche man sicher und ohne einen Mittelsmann, wie beispielsweise eine Bank, von einer Person zur anderen senden kann.

Satoshi Nakamoto

Bis heute ist nicht geklärt, wer sich hinter dem Pseudonym verbirgt. Es wird spekuliert, dass hinter Satoshi Nakamoto eine ganze Gruppe von Entwicklern steht.

6

In dem Entwurf beschreibt er nicht nur den Bitcoin sondern auch das System der Blockchain, einem dezentralem Netzwerk aus Rechnern, welches sämtliche Transaktionen protokolliert und transparent zugänglich macht.

Genau wie eine Fiat-Währung ist der Wert einer Kryptowährung abhängig von dem Vertrauen in jene Währung.
Anders als bei einer Fiat-Währung, die von einer zentralen Instanz (in der EU die Europäische Zentralbank — kurz EZB) unbegrenzt ausgegeben werden kann, sind die meisten Kryptowährungen limitiert. Bei Bitcoin liegt dieses Limit bei 21 Millionen Bitcoins. 7

Neben dem Bitcoin gibt es viele tausende weitere Kryptowährungen, so genannte Altcoins (Alternative-Coins), welche alle mit unterschiedlichen Funktionen und Besonderheiten einher gehen. Bitcoin ist von allen, die Kryptowährung mit der höchsten Marktkapitalisierung. Dies liegt wohl ausschlaggebend daran, dass es die erste Kryptowährung war.

2.3 Transaktionen

Was eine Kryptowährung nun so revolutionär macht, ist der Fakt, dass bei einer Transaktion keinerlei Finanzinstitutionen nötig sind.

Bei einer konventionellen Banküberweisung werden sämtliche Anfragen von einer einzelnen Instanz gesteuert und geregelt. Dieser Ansatz setzt ein hohes Maß an Sicherheit voraus, da potentielle Angreifer lediglich diesen einen Punkt attackieren müssen, um Zugriff zum Zahlungsverkehr zu erhalten. Aufgrund der hohen Sicherheitsanforderungen kann nicht einfach der Nutzer eine neue Transaktion in dem System auslösen. Dafür sorgen die Banken. Dadurch, dass viele dieser Systeme manuelle Nutzereingaben benötigen, ist das Überweisen fehleranfällig und zeitintensiv. 8 Dieser Ansatz wird auch als zentralisiertes System (engl.: „centralised ledger”) bezeichnet.

Ihm gegenüber steht das verteilte System (engl.: „distributed ledger”). In diesem Model wird das Kassenbuch über alle Teilnehmer (Nodes) hinweg verteilt, jeder besitzt eine vollständige Historie über getätigte Transaktionen. Dies macht es Angreifern deutlich schwerer, da es nicht mehr einen zentralen Angriffspunkt gibt, sondern direkt hunderte oder tausende Teilnehmer angegriffen werden müssten. Je mehr Teilnehmer es gibt, desto sicherer gilt ein solches Netzwerk.

Abbildung 1 (Tripoli und Schmidhuber, 2018)
Abbildung 1 (Tripoli und Schmidhuber, 2018)

Nun allerdings — da es keine zentrale Instanz mehr gibt, die über den Konsens in einem Netzwerk entscheidet, muss ein anderer Weg gefunden werden. Genau dort kommt die Blockchain zum Einsatz.


3. Kryptographie

Bevor wir uns die Blockchain anschauen, müssen wir uns mit der Kryptographie, die für die Blockchain essentiell ist, vertraut machen.

Kryptographie kommt von dem altgriechischen Wort „kryptós”, zu Deutsch „verborgen” oder „geheim”. In der Informatik beschreibt dies, das Verschlüsseln, Verunkenntlichen oder Verifizieren von Informationen. 9


Eben diese Webseite, auf der Sie sich befinden wurde verschlüsselt, über das Internet gesendet und nur Ihnen als Leser dieser Webseite war es möglich, den Inhalt zu lesen.

Ein kryptographischer Algorithmus kann dabei ein einfaches Vertauschen von Buchstaben bis hin sehr zu sehr komplexen Verkettungen von Funktionen sein.

3.1 Kryptographische Hashfunktionen

Eine Hashfunktion wandelt einen beliebigen Input (Schlüssel) in einen abbildenden Output, genannt Hash oder Signatur um. Derselbe Input erschafft dabei immer den selben Hash.

In dem nachfolgenden Playground können Sie das Generieren eines Hashes austesten.
Indem Sie einen Text in das vorhandene Textfeld eingeben wird im Hintergrund der dazu gehörige Hash-Code berechnet und ausgegeben.

In dem Playground habe ich den SHA256 (Secure Hash Algorithm) Algorithmus verwendet. Die 256 steht dabei für die Anzahl an Bits (die Länge des Hashes). Für den Hash gibt es also genau $2^{256}$ Möglichkeiten.

Kryptographische” Hashfunktionen müssen folgende Eigenschaften erfüllen:

Der SHA256 ist die zweite Version des Secure Hash Algorithm. Die erste Version wurde im August 2005 von einigen Wissenschaftlern der Shandong Universität in China entschlüsselt. 10 Sie haben einen Weg gefunden, in absehbarer Zeit eine identische Signatur zu einem anderen Dokument zu berechnen. Eine solche Attacke wird Kollisionsangriff genannt.

Herkunft

Der Simple Hashing Algorithm wurde ursprünglich von der NSA entwickelt.


In Python, einer Programmiersprache, die gerade unter Wissenschaftlern eine hohe Akzeptanz, wegen ihrer Einfachheit und Übersichtlichkeit, gefunden hat, könnte eine Signatur wie folgt erstellt werden:

from Crypto.Hash import SHA256

daten = b"Hello World!"

hash = SHA256.new()
hash.update(daten)
signatur = hash.hexdigest()

print(signatur)

Unter folgender Adresse können Sie mit diesem Code Ihre eigenen Experimente machen: Hash-Function-Playground

In all meinen Code Snippets werde ich die Python Kryptographie Bibliothek „pycrypto” verwenden, da sie eine große Nutzerbasis aufweist und ziemlich einfach zu verwenden ist. Generell sollte man, beim Thema Sicherheit vorsichtig sein, welchen Code oder welche Bibliothek man verwendet. Die „pycrypto” Bibliothek scheint sehr akzeptiert zu sein, zeigt aber seit einigen Jahren keine Aktivität mehr auf.
GitHub

3.2 Asymmetrische Kryptographie

Die asymmetrische Kryptographie ist ein Verschlüsslungsverfahren welches zwei verschieden Schlüssel zum Verschlüsseln einer Nachricht verwendet.
Für dieses Verfahren wird ein privater und ein öffentlicher Schlüssel generiert.

Man spricht von einem asymmetrischen Verschlüsselungsverfahren, da die beiden Kommunikationsteilnehmer keinen gemeinsamen, geheimen Schlüssel benötigen.

Auch wenn in einer Blockchain die Transaktionen selber nicht verschlüsselt werden, ist der Prozess des Verschlüsselns an einer zu sendenden Nachricht relativ einfach zu verstehen.
Um das Verfahren so verständlich wie möglich zu machen, schauen wir uns das Ganze anhand eines Gespräches zwischen zwei Personen, Alice und Bob an.

Alice und Bob

Die Namen Alice und Bob werden in vielen Kryptographischen Anleitungen als die beiden Standard Namen für Sender und Empfänger verwendet.
In jeder dieser Geschichten möchten sich Alice und Bob geheime Nachrichten untereinander senden, ohne das eine dritte Person Eve der Angreifer (engl.: „evil”, zu deutsch: „böse”) die Nachricht lesen kann.

11

3.2.1 Verschlüsselung und Verifizierung

  1. Nehmen wir an, Alice möchte Bob eine vertrauliche Nachricht über das Internet zukommen lassen. Eine unverschlüsselte Nachricht kann jeder im Internet lesen und Alice Geheimnisse wären nicht länger geheim. Bob macht daraufhin den Vorschlag, dass Alice die Nachricht mit seinem vorher generierten Public Key verschlüsseln kann.

Abbildung 2
Abbildung 2
  1. Alice nimmt nun Bobs Public-Key und verschlüsselt die Nachricht. Die Nachricht ist nun für einen Außenstehenden komplett unleserlich und könnte so zu Bob gesendet werden.
    Das Problem, Bob weiß nicht mit Sicherheit, dass die Nachricht von Alice kommt. Jemand anderes könnte von seinem öffentlichen Schlüssel gehört haben und diesen verwendet haben, um eine fehlerhafte Nachricht an Bob zu senden.
    Nun hat Alice die Idee. Sie verwendet ihren privaten Schlüssel und verschlüsselt die bereits verschlüsselte Nachricht noch einmal.
    Nun kann die Nachricht gesendet werden.
Abbildung 3
Abbildung 3
  1. Für das Entschlüsseln der Nachricht benötigt Bob nun sowohl seinen Private-Key als auch Alice’s Public-Key, den sie ihm rasch mitteilt. Bob weiß nun, dass die Nachricht keiner gelesen hat und auch garantiert von Alice stammt.
Abbildung 4
Abbildung 4

(Miles, 2014) 12

Übertragung der Public-Keys

Wie in der Geschichte zu sehen war, wurde an zwei Punkten der Public Key öffentlich über das Internet ausgetauscht. Um sicherzustellen, dass dieser Key nicht manipuliert oder durch den eines anderen ersetzt wurde wird für die Übertragung das Diffie-Hellman Verfahren verwendet, auf welches ich hier nicht näher eingehen werde, da es zum verstehen der Blockchain nicht zwingend notwenig ist.

Wie wir gesehen haben, werden die beiden Schlüsselpaare für das Verschlüsseln und das Entschlüsseln der gesendeten Daten verwendet. Was damit möglich geworden ist, das Signieren und Verifizieren einer Nachricht. In der Blockchain wird diese Eigenschaft verwendet, um den Besitz über die Bitcoins zu bestätigen und so Transaktionen auszuführen.

3.2.2 Schlüsselpaar erzeugen

3.2.2.1 Privater

Für die Erstellung des privaten Schlüssels wird ein Zufallswert benötigt. Man kann diese durch das Werfen einer Münze erhalten. Wer allerdings nicht hunderte Mal eine Münze (0 oder 1) werfen möchte, der sollte sich einen Zufallswert mit dem Computer generieren lassen.


Da, dass mathematische Berechnen einer Zufallszahl für einen Computer unmöglich ist, werden Zufallsfunktionen in einem Rechner „Pseudo Random Number Generator” (PRNG) genannt.


Aus einem Startwert Seed „generieren” bzw. berechnen die Algorithmen einen neuen Zufallswert, welcher dann wieder für den nächsten Zufallswert verwendet wird. Nach einer gewissen Periode wiederholen sich diese Zahlen, weswegen es sich um einen deterministischen Zufallsgenerator handelt. Diese generierten Zahlen sehen nur zufällig aus, bis sie sich wiederholen → Pseudo. 13

Abbildung 5
Abbildung 5

Nicht deterministisch werden, von einem Computer generierte Zahlen erst, wenn ein äußerer Einfluss als Zufallsquelle einbezogen wird. Ein nicht deterministischer Zufallszahlengenerator gilt dann als „kryptographisch”.
Einige mögliche Bezugsquellen für in Betriebssystemen sind 14:

3.2.2.2 Öffentlicher

Aus einem zuvor generierten Privat-Key lässt sich nun mit einem Algorithmus ein Public-Key erzeugen. Genau wie bei Hash-Funktionen, ist es wichtig, dass die Funktion irreversibel ist, es sich also um eine Einwegfunktion handelt. 15

Es gibt viele Algorithmen, die für solch eine Aufgabe in Frage kommen. Alle sind benötigen unterschiedlich viel Rechenleistung. Das Entschlüsseln ist meist nur durch eine Brute Force Attacke, also das Ausprobieren aller möglichen Kombinationen möglich.


4. Blockchain

Die Blockchain ist im einfachsten Sinne eine, über viele Teilnehmer (Nodes), verteilte Datenbank (zu engl.: „distributed ledger”). Man kann sie sich wie ein großes Kassenbuch vorstellen, in welchem man sämtliche Informationen zu allen jemals getätigten Transaktionen vorzufinden sind. 16

Vielseitigigkeit

Eine Blockchain ist nicht auf die Bearbeitung von Kryptowährungen limitiert. Tatsächlich wird die Blockchain in den unterschiedlisten Industrien zur Protokollierung und Verifizierung verwendet.


In diesem Netzwerk aus Nodes wird durch Kryptographie ein gemeinsamer Konsens erarbeitet, welcher sicherstellt, dass Transaktionen rechtmäßig ausgeführt werden.
Könnte jeder frei Transaktionen erstellen, wäre dies kein sehr gutes Bezahlungssystem, da jeder jeden anderen manipulieren könnte. Wie genau diese „Konsensfindung” abläuft werde ich im Teil Aufbau einer Blockchain genau erklären.

In einigen Medien werden die Begriffe Blockchain und Bitcoin häufig miteinander vermischt. Es ist wichtig die beiden Begriffe klar zu differenzieren. Bitcoins sind lediglich die Daten die in der Bitcoin-Blockchain gespeichert werden.

Jede Node, im Bitcoin Netzwerk verfügt über eine komplette Kopie der Bitcoin Blockchain. Die momentane Größe der Bitcoin-Blockchain beträgt:
17

4.1 Aufbau

Eine Blockchain besteht aus vielen einzelnen Blöcken. Jeder Block ist durch die Referenzierung der vorherigen Block-ID miteinander verbunden.

Abbildung 6
Abbildung 6

4.1.1 Block

Ein Block ist das Grundgerüst, dass verwendet wird, um den über die Zeit entstandenen Zahlungsverkehr zu protokollieren. Jeder Block besitzt bestimmte Eigenschaften aus welchen in einer Hashfunktion die Block-ID generiert wird. Mit jeder Änderung dieses Blockes verändert sich die Block-ID.

Der erste jemals bestätigte Block, wird der „Genesis-Block” bezeichnet.

Bei der Bitcoin-Blockchain wurde dieser im Jahr 2009 geschürft Block 1. Jeder weitere Block geht auf diesen ersten Block zurück.

Die Blockchain kann man sich daher wie eine lange Kette aus Blöcken vorstellen. Daher auch der Name „Block-Chain”.

Neue im Bitcoin-Netzwerk angefragte Transaktionen werden in ein dafür vorgesehenes Transaktionsfeld eingetragen. In der Abbildung ist Alice Anfrage zu sehen. Sie möchte 2₿ an Bob senden. Für das erfolgreiche Ausführen dieser Transaktion müssen sowohl Alice als auch Bob ein Wallet, ein Portemonnaie besitzen. Selbstverständlich muss Alice über jene zu sendenden 2₿ verfügen.

Abbildung 7
Abbildung 7

4.1.2 Wallet

Bei einem Wallet handelt es sich um nichts anderes als einen Speicher für die Zugangsdaten zu seinen Bitcoins im Bitcoin-Netzwerks. Bei der Erstellung eines neuen Wallets generiert und speichert die verwendete Wallet-Anwendung einen privaten Schlüssel, der als Berechtigungsschlüssel für die, mit dem Wallet assoziierten Bitcoins, verwendet wird. Ein daraus erzeugte öffentlicher Schlüssel stellt die öffentliche Adresse des Portemonnaies dar.

Man kann sich ein Wallet wie eine Art Briefkasten vorstellen, der sich irgendwo im Bitcoin Netzwerk befindet. Der genaue Standort des Briefkastens ist mit Hilfe des öffentlichen Schlüssels gekennzeichnet.

Möchte Alice, Bob Geld senden, so benötigt sie lediglich die Adresse, an welcher sich Bobs Briefkasten befindet. Diese kann in den meisten Wallet-Anwendungen in ein dafür vorgesehenes Feld eingetragen werden. Wem dies zu lästig ist, der findet in den meisten Wallet-Anwendungen einen entsprechenden QR-Code der von der sendenden Person eingescannt werden kann.

Für den Endnutzer gibt es eine große Auswahl an Wallet-Anwendungen. Alle basieren auf der von Satoshi Nakamoto erstellten Grundlage (Bitcoin Core) und kommen mit unterschiedlichen Features und variierender Benutzerfreundlichkeit daher.

Die als „Vollständige“ Wallets bezeichneten Portemonnaies speichern ein Abbild der gesamten Blockchain lokal auf dem Rechner ab und können so bei jeder Transaktion die komplette Herkunft einer Transaktion nachvollziehen und überprüfen. Da sie allerdings je nach Blockchaingröße ziemlich viel Speicherplatz benötigen, greifen viele Nutzer auf Online- oder Smartphone Wallets zurück.

4.1.3 Transaktions Model

Eine Bitcoin Transaktion ist in einen Input und einen Output aufgeilt. Dieses Transaktionen Model nennt sich Unspent Transactions Model (UTXO). Eine Transaktion kann aus mehreren Inputs und auch mehreren Outputs bestehen.

Eine Transaktion kann man wie das Einschmelzen und das Gießen physikalischer Münzen betrachten. Für eine Transaktion von 2₿ an Bob muss Alice ihrer vorher erhaltene 3,5₿ Münze in den Schmelzofen legen. Aus diesem heraus wird sowohl eine 2₿ Münze für Bob als auch eine 1,5₿ Münze zurück an Alice gegossen. Aus einem Input werden mehrere Outputs, die dafür sorgen, dass Bob seine 2₿ erhält.

Abbildung 8
Abbildung 8

Das Ausfüllen der entsprechenden Transaktion übernimmt in den meisten Fällen die Wallet-Anwendung.

4.2 Mining

Möchte ein Nutzer eine Transaktion ausführen so wird zunächst eine Anfrage an das Blockchain-Netzwerk gestellt. In einem Prozess namens Mining versuchen, mit der Blockchain verbundene Server (Miner) schnellstmöglich eine Aufgabe zu lösen, die diesen Block als Bestätigt markiert und an die Blockchain anhängt.

Ein Block gilt als Bestätigt, wenn einer der Mining-Server es geschafft hat ein veränderbares Feld, gennant Nonce so anzupassen, dass die Block-ID eine festgelegte Anzahl an Nullen am Anfang des Hashes aufweist.
Wie viele Nullen am Anfang des Hashes stehen sollen wird von einem Schwierigkeitsfaktor bestimmt. Je höher die Schwierigkeit ist, desto mehr Nullen müssen zu Begin eines Hashes stehen und desto mehr Rechenleistung wird benötigt. Die Schwierigkeit wird ständig angepasst. Ziel ist es die Schwierigkeit so anzupassen, dass etwa alle 10 Minuten ein Block von den Schürfern bestätigt wird. Mit zunehmender Hashrate (berechnete Hashes pro Sekunde) im Netzwerk, steigt auch die Schwierigkeit.

Abbildung 9
Abbildung 9

Meldet ein Miner, dass er einen passenden Hash gefunden hat, beginnt eine neue Runde für die Miner. Der Gewinner erhält durch das Bestätigen eines Blocks eine gewisse Blockvergütung, welche den Schürfer für seine Arbeit belohnen soll. Neben der Blockbelohnung sind für den Schürfer noch Transaktionsgebühren einzusammeln, welche von dem Sender einer Transaktion als freier Betrag deklariert wurde.

Für die Berechnung des nächsten Blocks wählen die Miner, in absteigender Reihenfolge aus den Transaktionsanfragen mit der meisten Vergütung aus. Durch das Angeben einer hohen Transaktionsgebühr hat ein Sender somit die Chance die benötigte Bearbeitungszeit zu minimieren.

Abbildung 10
Abbildung 10

Durch vielen billigen erneuerbaren Strom aus Wasser- oder Geothermiekraftwerken sind besonders in den nordischen Ländern, wie Norwegen und Island viele Mining-Server vorzufinden.
Mit den höchsten Strompreisen in der EU 18 ist von dem Mining in Deutschland eher abzuraten. Es ist entweder kein oder ein zu geringer Profit aus dem Minen zu schöpfen.

4.2.1 Mining-Pool

Ein Verbund aus vielen Minern wird ein Mining-Pool gennannt. Ein Mining-Pool bietet sich für Teilnehmer mit verhältnismäßig wenig Rechenleistung an. Alle Pool-Teilnehmer versuchen gemeinsam einen Block zu bestätigen und teilen den möglichen Gewinn nach eingebrachter Rechenleistung untereinander auf.

4.2.2 ASIC

Für das Minen der großen, bekannten Kryptowährungen reicht es schon lange nicht mehr aus, den heimischen PC, mit herkömmlicher Hardware als Miner zu verwenden. Hier empfiehlt es sich, um Profit zu machen, auf einen Gerät mit Anwendungsspezifischer integrierter Schaltung (engl.: Application-Specific Integrale Circuit — kurz ASIC) zurückzugreifen. Das wohl bekannteste Gerät ist der AntMiner. Dieser schafft bei einem Verbrauch von 1280W und einem Preis von 95,00 USD eine Hashrate (SHA256) von 16 TH/s 19.

4.3 Probleme

Da nun die grundlegende Funktionsweise einer Blockchain bekannt ist, gehe ich in diesem Teil auf einige der Hürden und Probleme ein, die mit der Verwendung einer Blockchain entstehen können.

4.3.1 Energieverbrauch

Damit ein neuer Block hinzugefügt werden kann, ist während des Mining-Prozesses, ein mittlerweile sehr großer Rechenaufwand zu erbringen. Laut einem Tool der Cambridge Universität liegt der durchschnittliche Jahresstromverbrauch des Bitcoin Netzwerkes bei rund 48TWh (Terra Watt Stunden) 20. Dies entspricht 13,5% des deutschen Bruttostromerzeugnisses aus dem Jahr 2018 21. Solange der benötigte Strom nicht aus erneuerbaren Energien erzeugt wird belastet der hohe Stromverbrauch der Server indirekt die Umwelt.

4.3.2 51% Attacke

Eine 51% Attacke kann durchgeführt werden, wenn ein einzelner Miner oder ein organisiertes Mining Pool über 50% der Rechenleistung des gesamten Netzwerkes verfügt. Die Sicherheit ist dann nicht mehr gewährleistet, da diese Person Blöcke verfälschen und somit den Fluss des Netzwerkes kontrollieren kann. Sicherer wird ein Netzwerk, wenn die Rechenleistung über möglichst viele Miner verteilt wird.

Beispielimplementierung

Um die Prozesse, die in einer Blockchain ablaufen besser zu verstehen, können Sie sich unter meiner Webseite blockchain.kuhlti.me eine interaktive Demo dazu anschauen.

In der Demo können Sie selber austesten, wie genau das Validieren eines Blockes funktioniert und wie ein Block in einer Blockchain mit den aufeinander folgenden Blöcken verknüpft ist.


Schlusswort

Ich hoffe, dass ich Ihnen mit dieser Ausarbeitung einen kleinen Einblick in die Funktionsweise einer Kryptowährung gewähren konnte. Natürlich gibt es noch viele weitere Themen, über die ich zu diesem Thema hätte schreiben können. Habe mich aber bewusst auf die wesentlichen Grundlagen fokussiert, um diese möglichst verständlich und anschaulich zu vermitteln.

Wie am Anfang angekündigt, habe ich mir von dieser Ausarbeitung erwartet, einige neue Dinge über Kryptowährungen und die Blockchain zu verstehen. Gerade das Programmieren der Demo Anwendung hat mir viel Spaß gemacht und mir sehr geholfen, den Aufbau und die Funktionsweise einer Blockchain zu verstehen.


Stichwortverzeichnis

Stichwort Bedeutung

JSON-Datei


Quellenverzeichnis

Das Dokument habe ich mit dem Programm Ulysses generiert. Die unterliegende CSS Datei, habe ich an meine Bedürfnisse angepasst und kann in dem Repository, für meine Ausarbeitung, angesehen werden.

Interaktive Playgrounds habe ich über JSFiddle erstellt und in diesem Dokument eingebunden.

Als Backend für das Stichwortverzeichnis habe ich NPoint verwendet.

Quellen mit einem ??? habe ich bis jetzt noch nicht in dieses Dokument übertragen sind aber in meiner Bibliothek gespeichert

  1. finanzen.net. (2020). Entwicklung des Bitcoin-Kurses von Januar 2017 bis Juni 2020 (in Euro). Statista. Statista GmbH. Zugriff: 11. Juni 2020.
    https://de.statista.com/statistik/daten/studie/781906/umfrage/kursentwicklung-des-bitcoin-gegenueber-dem-euro/ ↩︎
  2. Beattie, A. (2019): The History of Money: From Barter to Banknotes. Investopedia. Zugriff: 12.6.2020

    https://www.investopedia.com/articles/07/roots_of_money.asp

  3. Reich Krösus. Aber wie reich war Krösus eigentlich? (2017): in: redensarten.net. Zugriff: 12.06.2020.
    https://www.redensarten.net/kroesus/ ↩︎
  4. Eigenschaft des Geldes (2016). Projektarbeit der Oberstufe des Beruflichen Gymnasium Kiel. Zugriff: 12.06.2020
    http://www.berufliches-gymnasium-kiel.de/VWLProjekt/merkmale-des-geldes ↩︎
  5. Nakamoto, S. (2008). Bitcoin: A Peer-to-Peer Electronic Cash System. Bitcoin.org. Zugriff: 10.6.2020

    https://bitcoin.org/bitcoin.pdf

  6. Kenton, W. (2020). Satoshi Nakamoto. Bitcoin.org. Zugriff: 13.6.2020

    https://www.investopedia.com/terms/s/satoshi-nakamoto.asp

  7. Müller, M. (2017): 21 Millionen Bitcoins bis 2130. Focus Online. Zugriff: 7.7.2020

    https://www.focus.de/finanzen/geldanlage/tid-30404/virtuelles-geld-bitcoins-rasanter-aufstieg-einer-phantom-waehrung-beschraenktes-angebot-virtueller-muenzen_aid_952842.html

  8. Tripoli, M. und Schmiedhuber, J. (2018): Emerging Opportunities for the Application of Blockchain in the Agri-food Industry. Seite: 12. Food and Agriculture Organization of the United Nations, International Centre for Trade and Sustainable Development. Zugriff: 7.7.2020

    https://www.researchgate.net/publication/327867089_Emerging_Opportunities_for_the_Application_of_Blockchain_in_the_Agri-food_Industry

  9. (2020): Kryptographie. Wikipedia. Zugriff: 8.7.2020

    https://de.wikipedia.org/wiki/Kryptographie

  10. (2019): Secure Hash Algorithm. Wikipedia. Zugriff: 7.7.2020

    https://de.wikipedia.org/wiki/Secure_Hash_Algorithm

  11. Schnabel, P. (2020): Wer sind Alice, Bob und Mallory? (Kryptografie). Elektronik Kompendium. Zugriff: 8.7.2020

    https://www.elektronik-kompendium.de/sites/net/1909021.htm

  12. Miles, R. (2014): Public Key Cryptography. Computerphile (YouTube). Zugriff: 8.7.2020

    https://www.youtube.com/watch?v=GSIDS_lvRv4

  13. Khan Academy Labs (2014). Pseudorandom number generators | Computer Science | Khan Academy. YouTube. Zugriff am: 22.08.2020
    https://www.youtube.com/watch?v=GtOt7EBNEwQ ↩︎
  14. Cellio, M. (2014): How does an operating system create entropy for random seeds?. Computer Science Stack Exchange. Zugriff: 8.7.2020

    https://cs.stackexchange.com/a/29881/123292

  15. Antonopoulos, A. (2018): Bitcoin & Blockchain - Grundlagen und Programmierung. Heidelberg: O'Reilly. Übersetzung: Kilcman, P., Seiten: Public-Key-Kryptografie und Kryptowährungen ↩︎
  16. Higginson, M. und London, S. (2018): Blockchain explained: What it is and isn't, and why it matters. McKinsey. Zugriff: 7.6.2020

    https://www.mckinsey.com/business-functions/mckinsey-digital/our-insights/blockchain-explained-what-it-is-and-isnt-and-why-it-matters

  17. Blockchain.com (2020). Blockchain Charts API. Blockchain-Größe (MB). Verwendete API für Live Daten. https://api.blockchain.info/charts/blocks-size?timespan=30days&sampled=true&metadata=false&cors=true&format=json. ↩︎
  18. Eurostat. (2019): Strompreise für Haushalte in den Ländern der EU-28 im Jahr 2019 (in Euro-Cent pro Kilowattstunde). Statista. Zugriff: 20.7.2020

    https://de.statista.com/statistik/daten/studie/197196/umfrage/elektrizitaetspreise-ausgewaehlter-europaeischer-laender/

  19. Antminer S9 SE-16TH/s. Bitmain. Zugriff: 20.7.2020

    https://shop.bitmain.com/product/detail?pid=00020200306153650096S2W5mY1i0661

  20. Rauchs, M., Blandin, A., Dek, A. and Wu, Y. (2020): Cambridge Bitcoin Electricity Consumption Index (CBECI). Cambridge Centre for Alternative Finance. Zugriff: 22.8.2020
    https://www.cbeci.org ↩︎
  21. Statistisches Bundesamt (2019): Bruttostromerzeugung in Deutschland. Zugriff: 22.08.2020
    https://www.destatis.de/DE/Themen/Branchen-Unternehmen/Energie/Erzeugung/Tabellen/bruttostromerzeugung.html ↩︎