Kryptowährungen – Eine Alternative zu SWIFT - Informatik
Transcription
Kryptowährungen – Eine Alternative zu SWIFT - Informatik
Kryptowährungen – Eine Alternative zu S.W.I.F.T. ? Diplomarbeit im Studiengang Informatik Universität Bremen vorgelegt von Sascha Dückers Matr.-Nr.: 1126262 am 30.06.2015 Gutachter: Zweitgutachter: Prof. Dr. Karl-Heinz Rödiger Prof. Dr. Frieder Nake Inhaltsverzeichnis Inhaltsverzeichnis ........................................................................................................... 2 1 Einleitung .................................................................................................................... 5 1.1 Problemstellung .................................................................................................. 5 1.2 Motivation .......................................................................................................... 6 1.3 Ziele und Aufbau der Arbeit ............................................................................... 7 1.4 Schwierigkeiten bei der Bearbeitung .................................................................. 8 2 Grundlagen und Stand der Technik......................................................................... 9 2.1 S.W.I.F.T. ........................................................................................................... 9 2.1.1 Entstehungsgeschichte ............................................................................ 9 2.1.2 Ziele ......................................................................................................... 9 2.1.3 Technische Grundlagen ......................................................................... 10 2.1.3.1 Adressformate........................................................................... 10 2.1.3.2 SWIFT Dienstleistungen .......................................................... 11 2.1.3.3 Nachrichtenaustausch ............................................................... 12 2.1.3.4 Aufbau der SWIFT Nachrichtentypen ...................................... 13 2.1.3.5 Netzstruktur .............................................................................. 17 2.1.3.6 Operating Center (OPC) ........................................................... 18 2.1.3.7 Konzentratoren ......................................................................... 19 2.1.4 Sicherheitsrelevante Grundlagen ........................................................... 20 2.1.4.1 Implementierte Sicherheitsvorkehrungen ................................. 20 2.1.4.2 Nachteile des SWIFT-Systems ................................................. 21 2.2 Kryptowährungen ............................................................................................. 22 2.2.1 Eigene Definition Kryptowährung ........................................................ 22 2.2.2 Entstehungsgeschichte .......................................................................... 23 2.2.3 Ziele ....................................................................................................... 24 2.2.4 Technische Grundlagen ......................................................................... 24 2.2.4.1 Netzwerk ................................................................................... 25 2.2.4.2 Adressen ................................................................................... 26 2 2.2.4.3 Wallet ....................................................................................... 28 2.2.4.4 Transaktionen ........................................................................... 28 2.2.4.5 Blockchain ................................................................................ 31 2.2.5 Erzeugungsverfahren ............................................................................. 32 2.2.5.1 Mining ...................................................................................... 33 2.2.5.2 Erzeugung neuer Blöcke........................................................... 33 2.2.5.3 Berechnung der Schwierigkeit.................................................. 35 2.3 Eigenschaften und Probleme ............................................................................ 36 2.3.1 Byzantinische Generäle ......................................................................... 36 2.3.2 51% Attacke .......................................................................................... 38 2.3.3 Doppelte Zahlungen .............................................................................. 38 2.3.4 Hashleistung und Stromverbrauch ........................................................ 40 2.3.5 Blockgröße ............................................................................................ 42 2.4 Transparenz und Anonymität ........................................................................... 43 3 Praktischer Einsatz von Kryptowährungen .......................................................... 44 3.1 Beschaffung von Bitcoin .................................................................................. 44 3.1.1 Bitcoin als Gehalt / Einnahme ............................................................... 44 3.1.2 Börsen und Marktplätze ........................................................................ 44 3.1.2.1 Bitcoin.de.................................................................................. 45 3.1.2.2 Kraken.com............................................................................... 46 3.1.2.3 Coinbase.com ........................................................................... 48 3.1.3 Geldautomaten ...................................................................................... 49 3.2 Bitcoin-Programme .......................................................................................... 49 3.2.1 Full-Node-Clients .................................................................................. 50 3.2.2 SPV-Clients ........................................................................................... 51 3.2.3 Serverabhängige-Clients ....................................................................... 51 3.3 Sicherung der Bitcoin ....................................................................................... 51 3.3.1 Zugriffskontrolle ................................................................................... 52 3.3.2 Two-Factor- Authentication .................................................................. 52 3.3.2.1 Google Authenticator ............................................................... 52 3.3.2.2 Authy ........................................................................................ 53 3.3.2.3 Yubikey .................................................................................... 53 3.3.3 Hardware-Wallets.................................................................................. 53 3 3.3.4 Paperwallets .......................................................................................... 53 4 Ergebnisse der Arbeit .............................................................................................. 55 4.1 Alternative zum Transport der SWIFT-Nachrichten ........................................ 55 4.2 Alternative als internationales Zahlungsmittel ................................................. 57 5 Fragen und Ausblicke .............................................................................................. 58 6 Literaturverzeichnis................................................................................................. 59 6.1 Bücher und Zeitschriften .................................................................................. 59 6.2 Online-Quellen ................................................................................................. 59 6.3 Abkürzungsverzeichnis .................................................................................... 66 7 Abbildungsverzeichnis ............................................................................................. 67 Anhang ........................................................................................................................... 68 A Kryptografische Funktionen ................................................................................... 68 A.1 Digitale Signaturen ........................................................................................... 68 A.1.1 DSA ....................................................................................................... 69 A.1.2 Erweiterung des DSA auf elliptische Kurven ....................................... 70 A.2 Hashfunktionen ................................................................................................. 73 A.2.1 SHA-256................................................................................................ 74 A.2.2 RIPEMD-160 ........................................................................................ 76 B Alternative Kryptowährungen................................................................................ 78 B.1 Litecoin ............................................................................................................. 78 B.2 Peercoin ............................................................................................................ 78 B.3 DASH ............................................................................................................... 79 B.4 Weitere Kryptowährungen ............................................................................... 79 Eidesstattliche Erklärung............................................................................................. 80 4 1 1.1 Einleitung Problemstellung Das wichtigste Instrument des Zahlungsverkehrs ist die Übermittlung von Nachrichten, welche bis zur Einführung des S.W.I.F.T.- Projekts im Juli 1977 per Brief, Telegramm oder Fernschreiber erfolgte ([Loh 1983], S. 8) und nicht nur lange Laufzeiten hatte, sondern zudem sehr fehleranfällig war. Die nach ersten Anlaufschwierigkeiten festgelegte Standardisierung der benötigten Adress- und Nachrichtenformate ist bis heute einer der Grundpfeiler des internationalen Zahlungsverkehrs. Im Jahr 2013 wurden über SWIFT mehr als 22 Millionen Nachrichten täglich übermittelt. ([SWIFT 2014], S. 2) Die Definition und Überwachung der Standards erfolgt durch die 1973 gegründete Organisation „Society for Worldwide Interbank Financial Telecommunication“, umgangssprachlich SWIFT. Der Aufsichtsrat setzt sich aus den Notenbanken Belgiens, Deutschlands, Frankreichs, Großbritanniens, Italiens, Japans, Kanadas, der Niederlande, Schwedens, der Schweiz und den Vereinigten Staaten zusammen. Neben der Übermittlung von Finanztransaktionen an Behörden der Vereinigten Staaten im Rahmen „Krieg gegen Terror“ nach den Terroranschlägen am 11. September 2001 in den USA wurde am 17. März 2012 der internationale Datenverkehr zwischen SWIFT und iranischen Banken blockiert [Bale 2012]. Nachdem durch Edward Snowden bekannt wurde, dass Geheimdienste der Vereinigten Staaten mehrere Kanäle des SWIFT-Netzwerkes überwacht und Transaktionen abgefangen hatten, forderte das Europaparlament am 23. Oktober 2013 die Aussetzung des SWIFT-Abkommens zwischen der EU und den USA. Dieses Abkommen erlaubt US-amerikanischen Terrorfahndern seit 2010 unter strengen Auflagen zum Datenschutz und dem Schutz der Privatsphäre den gezielten Zugriff auf Kontobewegungen von Verdächtigen innerhalb der EU [Feld 2013]. Wie SWIFT in einem Statement am 06. Oktober 2014 mitteilte wurde die Organisation aufgefordert, Russland und Israel von allen internationalen Zahlungsströmen abzuschneiden [SWIFT 2014a]. Russlands stellvertretender Premierminister Igor Schuwalow erklärte bereits am 10. September 2014, dass Russland zusammen mit China an einer Alternative arbeite, um die Abhängigkeit vom Finanzmarkt zu reduzieren. Russische Banken benutzen aktuell bereits das UnionPay-System des gleichnamigen Kreditkarteninstitutes für Transfers zwischen den Banken [Nikolsky 2014], [BÜSO 2014]. Neben der Abhängigkeit von Zentralbanken müssen nicht nur die Länder, sondern muss jede juristische oder natürliche Person einer Bank Vertrauen entgegenbringen und darauf hoffen, dass Geld nicht nur entsprechend transferiert wird, sondern auch nicht ent5 wertet und zudem sicher aufbewahrt wird. Um diese Sicherheit und damit auch das Vertrauen zu gewährleisten, sind hohe Investitionen seitens der Banken notwendig und somit kleinere Zahlungen aufgrund von Zusatzkosten unwirtschaftlich. An dieser Stelle setzt die erste Idee zur kryptographischen Währung Bitcoin an, deren Konzept 2008 in einem Whitepaper von Satoshi Nakamoto beschrieben wurde. Nakamoto schreibt in seiner Einleitung: “What is needed is an electronic payment system based on cryptographic proof instead of trust, allowing any two willing parties to transact directly with each other without the need for a trusted third party. Transactions that are computationally impractical to reverse would protect sellers from fraud, and routine escrow mechanisms could easily be implemented to protect buyers” ([Nakamoto 2008], S. 1). Es ist ein System notwendig, das auf kryptografischen Beweisen und nicht mehr auf Vertrauen beruht und jeder Person auch unabhängig von Banken oder sonstigen Vertrauten die Übermittlung von Währungen ermöglicht. Wenn diese Übermittlung eindeutig erfolgt, nicht manipulierbar und auch nicht reversibel wäre, dann könnten komplexe Systeme eingespart und Banken überflüssig werden oder zumindest kostengünstiger arbeiten, wenn modernere Verfahren eingesetzt werden würden. Das Zitat aus dem Jahr 2000 von Microsoftgründer Bill Gates „Banking is neccessary, banks are not“, wie im Buch von Markus Miller ([Miller 2005], S. 149) erwähnt, deutet ebenfalls bereits in diese Richtung. Ob eine Kryptowährung wie Bitcoin und die damit verbundenen Protokolle und Algorithmen ein durchdachtes Nachrichtensystem wie SWIFT ersetzen oder ergänzen können, werde ich im Folgenden näher beschreiben. 1.2 Motivation Das Internet der Dinge fasziniert mich und ich informiere mich regelmäßig über neue Ideen, Projekte und entsprechende Hardware. Auf der Suche nach neuen Projekten für meinen Einplatinencomputer Raspberry PI stieß ich auf einen Artikel, der sich mit dem Mining, also dem Schürfen der virtuellen Währung Bitcoin beschäftigte. Hierbei können über den Computer selber, aber auch über Spezialhardware elektronische Einheiten erzeugt werden, die einen realen Gegenwert besitzen. Hierbei kamen mir die zahlreichen Werbeanzeigen zu Bitcoin in den Sinn, die ich bis dahin als unangenehme und auch unseriöse Werbung angesehen hatte. Da ich zur selben Zeit ein geeignetes Thema für meine Diplomarbeit suchte, beschäftigte ich mich intensiver mit dem Thema und stellte schnell fest, das hinter dem Ganzen doch viel mehr steckt als ein weiteres System ohne Nutzen, das wie so viele andere zuvor wieder an Aufmerksamkeit verlieren würde. 6 Zu diesem Zeitpunkt im September 2014 gab es bereits eine gewisse Akzeptanz der Kryptowährung Bitcoin und es waren zwischenzeitlich mehrere Hundert alternative Kryptowährungen auf Basis des frei zugänglichen Bitcoin-Programmcodes implementiert. Diese Währungen werden auch als Altcoins bezeichnet und können wie Bitcoin über entsprechende Handelsplattformen in andere Währungen getauscht werden. Zu diesem Zeitpunkt gab es darüber hinaus die Möglichkeit reale Produkte zu kaufen oder die Bitcoin gegen US Dollar oder Euro zu tauschen. Hierbei faszinierte mich vor allem die Idee, die Kryptowährung unabhängig von virtuellen oder realen Grenzen einzusetzen und -ohne die Kontrolle einer weiteren Organisation- digitale Einheiten zwischen den Anwendern auszutauschen und hierfür entsprechend einen realen Gegenwert zu erhalten. So könnte sich ein Computerspieler in Asien in einem über das Netz verbundenen Computerspiel Rohstoffe wie Wolle erzeugen, daraus Waren wie Kleidung produzieren und diese dann innerhalb des Spiels mit einer Kryptowährung an einen Spieler in Europa verkaufen. Der Erlös kann dann leicht über eine Handelsplattform in reales Geld getauscht oder über angeschlossene Unternehmen Waren wie z.B. reale und tragbare Kleidung gekauft werden. Ebenso könnte man ohne hohe Kosten den internationalen Zahlungsverkehr umgehen und Geldbeträge zu Freunden, Familie oder Bekannten in andere Länder übertragen. Öffnungszeiten von Banken oder Buchungszeitpunkte spielen für eine Kryptowährung keine Rolle. Richtig implementiert sind Manipulationen nicht möglich, und kostenintensive Überwachung könnte wegfallen. Da ich die Planung und Umsetzung mehrerer eCommerce-Lösungen begleitet habe und die Schwierigkeiten, Voraussetzungen und Kosten für den Einsatz von Bezahlsystemen kenne, bieten sich nun mit den Kryptowährungen und bereits implementierten Lösungen diverser Zahlungsanbieter nicht nur auf privater Basis weitere Motivationsgrundlagen. 1.3 Ziele und Aufbau der Arbeit Zunächst werde ich auf die Grundlagen der einzelnen Systeme eingehen und versuchen, die Herausforderungen zu erörtern. Es ist die Frage zu klären, ob ein System, das über Jahre den Anforderungen des internationalen Zahlungsverkehrs angepasst wurde und über das fast alle Anwendungsfälle abgedeckt werden können, durch ein neues System ergänzt oder womöglich abgelöst werden kann. Basierend auf den bisher vorhandenen Implementierungen werde ich die gewonnenen Erkenntnisse zusammenfassen und eine mögliche Umsetzung beschreiben. Abschließend werde ich Fragen, die im Rahmen der Arbeit entstanden sind, erläutern und einen Ausblick auf die folgenden Monate und Jahre verfassen. 7 1.4 Schwierigkeiten bei der Bearbeitung Sowohl die Informationen zu SWIFT und dem aktuell eingesetzten SWIFTNet, als auch die Quellen zu Kryptowährungen sind als nahezu tagesaktuell zu bezeichnen. Fachliteratur zu SWIFT ist rar, und es wird meist auf bereits veraltete Strukturen eingegangen. Hier muss auf Publikationen einzelner Unternehmen zurückgegriffen werden, die teilweise nicht einmal in druckbaren Dokumentationen vorliegen. Viele Informationen zu der Kryptowährung Bitcoin sind selbst auf offiziellen Webseiten unvollständig und auch nicht mehr auf dem aktuellen Stand. Diese haben für die Betrachtung, ob Kryptowährungen eine Alternative zum bestehenden SWIFT-System darstellen, jedoch keine Relevanz. Es werden im Rahmen der Arbeit einige englische Bezeichnungen und Wörter verwendet, welche so auch in deutschen Pressemeldungen und Fachliteratur eingesetzt werden. Aufgrund der Aktualität sind diese nicht Bestandteil der deutschen Rechtschreibung und weder vom Pons-Verlag (PONS GmbH, Stuttgart) noch im Duden (Bibliographisches Institut GmbH, Berlin) erfasst. Hierzu gehören Bezeichnungen zu Algorithmen und Fachbegriffen, aber vor allem um das im Kapitel 2.2.4.3 beschriebene „Wallet“, also der bei Kryptowährungen eingesetzten Brieftasche bzw. Geldbörse, und die „Blockchain“, einer Aneinanderreihung von Blöcken, die in wenigen Fachartikeln auch als Blockkette bezeichnet und die im Kapitel 2.2.4.5 genauer beschrieben wird. 8 2 2.1 Grundlagen und Stand der Technik S.W.I.F.T. 2.1.1 Entstehungsgeschichte Um den Zahlungsverkehr über Länder- und Währungsgrenzen hinweg zu ermöglichen, ist es nötig, dass ein Auftraggeber (Schuldner) die Möglichkeit bekommt, dem Zahlungsempfänger (Gläubiger) mitzuteilen, dass ein bestimmtes Guthaben zur Verfügung steht und übertragen werden soll. Hierbei ist es nicht entscheidend, woraus genau dieses Guthaben besteht, sondern lediglich, dass die benötigte Menge bereitsteht und getauscht wird. Vor der Realisierung des SWIFT-Projektes geschah dies sehr ineffizient per Briefpost, Telegramm oder Fernschreiber ([LOH 1983], S. 8). Auf dem Kommunikationswege konnten Nachrichteninhalte verlorengehen oder waren nicht mehr eindeutig. Deshalb war es nötig, diese Nachrichten mehrfach zu übertragen. Für diese Übertragung und die Auswertung der Nachrichten wurden teils immense personelle Ressourcen in eigens eingerichteten Abteilungen der Banken benötigt. Hierdurch wurde die Rentabilität der Banken erheblich reduziert; im Zusammenhang mit der damaligen Wachstumsrate im Zahlungsverkehr war dies ökonomisch kaum noch vertretbar. Um diese Probleme in den Griff zu bekommen und ein effizienteres System zu schaffen, wurde das S.W.I.F.T.-Projekt ins Leben gerufen und am 03. Mai 1973 die Society for Worldwide Interbank Financial Telecommunication (SWIFT) mit Unterstützung von 239 Banken aus 15 Ländern in Brüssel als Gesellschaft belgischen Rechts ([Loh 1983], S. 18) gegründet. 2.1.2 Ziele Die wesentlichen Ziele von S.W.I.F.T. sind die Beschleunigung des Nachrichtenaustausches durch beleglose Abwicklung des Zahlungsverkehrs und die Reduzierung der Risiken und Kosten. Um Fehler und Manipulationen besser zu erkennen und die Belege schneller und kosteneffizienter bearbeiten zu können, wurden die Nachrichten standardisiert. Aufgrund der unterschiedlichen Organisation der verschiedenen Banken der einzelnen Länder dauerte diese Standardisierung deutlich länger als geplant; der Betrieb des neuen Systems konnte erst mit mehr als anderthalb Jahren Verspätung im Juli 1977 aufgenommen werden. Bereits zum Jahresende 1977 waren mehr als 500 Banken aus 22 unterschiedlichen Ländern am Nachrichtenaustausch beteiligt, und es wurden mehr als 3 Millionen Nachrichten ausgetauscht. 9 2.1.3 Technische Grundlagen 2.1.3.1 Adressformate Damit Nachrichten auch der richtigen Bank zugestellt werden können, bedarf es zunächst einer klaren Bezeichnung des beteiligten Finanzinstitutes. Dieser Business Identifier Code (kurz: BIC) wird auch SWIFT-Code genannt und ist in der ISO 9362 beschrieben. Der BIC besteht aus 8 oder 11 Stellen und beinhaltet folgende Informationen: 1. Bankcode (bank code) 4 Stellen von der Bank frei gewählte alphanumerische Zeichen 2. Ländercode (country code) 2 Stellen alphanumerischer ISO-Code des Landes (ISO 3166-1) 3. Ortsangabe (location code) 2 Stellen alphanumerisch zur Ortsangabe 4. Filiale oder Abteilung (branch code) 3 Stellen alphanumerisch zur Bezeichnung der unterschiedlichen Filialen. Dieser Code kann auch weggelassen werden. Bei der Ortsangabe darf das erste Zeichen nicht die Ziffer 0 oder 1 sein und als zweites Zeichen ist der Buchstabe O nicht erlaubt. Das zweite Zeichen hat zudem noch eine besondere Bedeutung, wenn es sich hierbei um eine Ziffer handelt. 0 - die eingesetzte BIC dient nur Testzwecken 1 - der SWIFT-Teilnehmer ist passiv 2 - die Transaktionskosten werden vom Empfänger übernommen Der BIC kann auch zur Identifikation von Betrieben außerhalb des Finanzsektors eingesetzt werden; er wird dann als Business Entity Identifier bezeichnet. Für Überweisungen innerhalb der Europäischen Union wird der BIC nicht mehr benötigt, da das Routing komplett über die IBAN1 erfolgen kann. Die IBAN besteht aus maximal 34 Stellen und setzt sich aus der Länderkennung, Kontonummer und der Bankleitzahl zusammen. Um Fehler bei der Eingabe oder Übertragung zu verhindern, wird zusätzlich eine zweistellige Prüfziffer eingefügt. 1 IBAN steht für International Bank Account Number 10 Es ergibt sich folgender Aufbau für eine IBAN 1. Länderkennung 2 Stellen alphanumerischer ISO-Code des Landes 2. Prüfziffer 2 Stellen numerisch 3. Bankleitzahl 8 Stellen numerisch 4. Kontonummer 10 Stellen numerisch. Wenn die Kontonummer aus weniger als 10 Stellen besteht, dann wird diese linksbündig mit Nullen aufgefüllt. Für die Adressierung innerhalb des SWIFT-Netzes werden Logical Terminal IDs (LT) verwendet, die nicht Teil des beschriebenen ISO 9362 Standards sind. Diese sind immer 12-stellig und setzen sich aus dem acht- oder elfstelligen BIC zusammen. Der achtstellige BIC wird mit vier X aufgefüllt und bei dem elfstelligen BIC ein X an der neunten Stelle vor dem Branch Code eingefügt. Mit Hilfe der neunten Stelle können innerhalb des SWIFT-Systems die logischen Verbindungskanäle identifiziert werden. Einzelne Computerterminals können mit mehreren Logical Terminal IDs eingerichtet sein, die mit A, B, C usw. an der neunten Stelle der ID referenziert werden. Kombiniert mit dem Tag, der Sitzungs- und Sequenznummer ergibt die Logical Terminal ID eine Message Input Referenz (MIR) für eingehende und eine Message Output Reference (MOR) für ausgehende Nachrichten. 2.1.3.2 SWIFT Dienstleistungen Die beiden wichtigsten von SWIFT angebotenen Dienste sind General Purpose Application (GPA) und Financial Application (FIN). GPA erlaubt es, Systemmeldungen bzw. Nachrichten von einem Anwender zum SWIFT-System zu übermitteln und auch zu empfangen. Die Kommunikation von Anwendern untereinander ist ausgeschlossen. FIN ist der für Endanwender wichtigste SWIFT-Dienst. Die Finanzanwendung stellt alle notwendigen Nachrichtentypen zur Verfügung, um die relevanten Finanzangelegenheiten der Anwender untereinander zu ermöglichen. Hierzu gehören neben Systemmeldungen MT0nn auch alle Anwender-zu-Anwender Nachrichtentypen MT1nn bis M9nn [SWIFT 2014c] und Wartungsmeldungen wie Empfangsbestätigungen. 11 2.1.3.3 Nachrichtenaustausch Die von SWIFT standardisierten Datenformate für den Nachrichtenaustausch werden Message Types (MT) genannt und kontinuierlich mit jährlichen Veröffentlichungen den neuen Anforderungen des Finanzmarktes angepasst. Nachrichten werden innerhalb des SWIFT-Systems auf korrekten Aufbau und Manipulationen geprüft, eindeutig referenziert und verschlüsselt übertragen, so dass die Sicherheit der Nachrichten gewährleistet werden kann. Die Teilnehmer des Netzwerkes können darüber hinaus individuelle Schlüssel austauschen, um Ihre Nachrichten zu signieren. Bis 2009 wurde dies durch das SWIFT-Verschlüsselungsschema Bilateral Key Exchange (BKE) realisiert, bei dem der Anwender entweder über die SWIFT-Software oder ein zertifiziertes Kartenlesegerät einen BKE-Key erzeugen konnte. Für die Verschlüsselung innerhalb der Lesegeräte werden seit 1994 Authentifizierungsschlüssel mit 1024bit RSA eingesetzt. Mit der Umstellung auf SWIFTNet Phase 2 wurde BKE am 01. Januar 2009 komplett durch das neue Softwaresystem „Relationship Management Application (RMA)“ ersetzt. SWIFT Nachrichten werden über ein festgelegtes Schema identifiziert. Sie beginnen alle mit den Zeichen „MT“ für Message Type, gefolgt von einer dreistelligen Nummer. Über die erste Ziffer ist die Kategorie der Nachricht festgelegt. Kategorien fassen Nachrichten aus zusammengehörenden Finanzinstrumenten und -diensten zusammen [SWIFT 2014c]. MT0nn System Messages Systemnachrichten MT1nn Customer Payments Zahlungen von Endkunden z.B. MT103 Kundenüberweisung MT2nn Financial Institution Transfers Übertrag zwischen Finanzinstituten z.B. MT202 Bankenauftrag MT3nn FX, Money Market & Derivatives Devisen- und Geldhandel z.B. MT300 Bestätigung Devisengeschäft MT4nn Collections and cash letters Inkasso und Kreditbriefe z.B. MT400 Zahlungsanzeige MT5nn Securities Markets Wertpapier-Transaktionen MT6nn Precious Metals & Syndications Edelmetall- und Konsortialgeschäfte MT7nn Documentary Credits & Guarantees Dokumentenakkreditive und Garantien MT8nn Travellers Cheques Reisescheck-Transaktionen MT9nn Cash Management & Customer Status Kassenführung und Kundeninformationen 12 Die letzten beiden Ziffern kennzeichnen den Nachrichtentyp. Hier wurde von SWIFT zusätzlich eine spezielle Teilmenge, die „Common Group“ festgelegt, die auf gleiche Ziffern enden und die gleiche Nachricht in jeder Kategorie referenziert. MTn90 Advice of Charges, Interest and Other Adjustments Informationen für den Kontoinhabers zu Gebühren, Zinsen und Änderungen zu seinem Konto MTn91 Request for Payment of Charges, Interest and Other Expenses Anfrage zur Zahlung von Gebühren, Zinsen oder anderen Kosten MTn92 Request for Cancellation Anfrage zur Löschung einer Nachricht MTn95 Queries Anfragen MTn96 Answers Antworten MTn98 Proprietary Message Formatvorlagen für eigene Anwendungen und noch nicht vorhandene Definitionen MTn99 Free Format Message Freie Nachricht Jede Nachricht bekommt eine eindeutige Kennung. Diese setzt sich aus einer vierstelligen Sitzungsnummer, die beim Einloggen am Terminal erzeugt wird, und einer sechsstelligen Sequenznummer zusammen. Wird die Nachricht vom Anwender in das SWIFT-System geschickt, dann bezeichnet man diese Kennung als Input Sequence Number (ISN). Eine Nachricht vom SWIFT-System zum Anwender wird mit einer Output Sequence Number (OSN) versehen. Innerhalb des SWIFT-Systems wird geprüft, ob die vorgeschriebene Nummernreihenfolge der OSN oder ISN eingehalten wurde. Wenn die Prüfung fehlschlägt, dann wird die entsprechende Nachricht abgewiesen und nicht weitergeleitet. 2.1.3.4 Aufbau der SWIFT Nachrichtentypen Im Jahr 2007 wurde mit der Umstellung der MT-Nachrichtenformate auf XML-basierte Definitionen (MX Nachrichten) nach dem Standard ISO 20022 begonnen. Dieser Standard kommt auch bei SEPA-Überweisungen zum Einsatz. Hier stellt SWIFT aber lediglich sein Leitungsnetz zur Verfügung. Für Erstellung von Implementierungsspezifikationen und weiterführenden Standardisierungen ist der European Payments Council (EPC) zuständig. Da bereits Ende des Jahres 1990 erkannt wurde, dass die ursprünglich eingesetzten Nachrichtentypen nach ISO 7775 zu restriktiv für die Ansprüche des modernen Finanzmarktes waren, wurden ab 1999 die neuen Nachrichtentypen nach ISO 15022 ein13 gesetzt. Alle alten ISO 7775 Nachrichtentypen wurden im Jahr 2002 komplett aus dem Netzwerk entfernt. Eine Nachricht (MT) gliedert sich in fünf Blöcke, die jeweils in geschweiften Klammern eingeschlossen sind: 1. 2. 3. 4. 5. Basic Header Block Application Header Block User Header Block Content Block Trailer Block Der Basic Header Block hat eine feste Länge a b c d e f 1: F 01 BANKEURXXXX 1234 123456 a) b) c) d) e) f) Blockkennung, immer „1“ Anwendungskennung, F=FIN, A=GPA oder L=GPA (Logindaten) Dienstkennung, 01 = FIN/GPA, 21=ACK/NAK (Positive bzw. negative Rückmeldung) BIC der Bank mit dem eingesetzten Terminal Vom Computerterminal generierte vierstellige Sitzungsnummer (mit Nullen aufgefüllt) Vom Computerterminal generierte sechsstellige Sequenznummer (mit Nullen aufgefüllt) Der Application Header hat je nachdem, ob die Nachricht ins SWIFT-System gesendet oder vom SWIFT-System empfangen wird, einen unterschiedlichen Aufbau. Eingabestruktur für Nachrichten an das SWIFT-System a b c d e f g 2: I 102 BANKEURXXXX U 1 003 a) b) c) d) e) f) Blockkennung, immer „2“ I = Input (Eingabe) Nachrichtentyp BIC des Empfängers Nachrichtenpriorität, S=System, N=Normal und U=Dringend (Urgent) Sendeüberwachung, 1= MT010 (Non Delivery Warning), 2=MT011 (Delivery Notification) und 3=Beide. Gültige Angaben: U1, U2, N2 oder nur N g) Zeitangabe, wann eine Warnung zu einer nicht übermittelten Nachricht erzeugt wird. Gültige Werte: für U = 003 (15 Minuten), für N = 020 (100 Minuten) 14 Ausgabestruktur für Nachrichten vom SWIFT-System a b c d e f 2: O 102 1000 031234BANKEURXXXX123456 150103 a) b) c) d) e) f) g) g Blockkennung, immer „2“ O = Output (Ausgabe) Nachrichtentyp Eingabezeit des Absenders Eingabenachrichtenkennung des Absenders (MIR) Ausgabedatum des Empfängers Nachrichtenpriorität Der User Header und der Content Block können weitere Unterblöcke oder Nachrichtenfelder beinhalten, welche durch entsprechende Tags gekennzeichnet sind. Die definierten Nachrichtenfelder werden in sechs Gruppen untergliedert ([Loh 1983], S. 46). 1. 2. 3. 4. 5. 6. Sicherheitsfelder Referenzfelder Daten- und Wertfelder Bank- und Kundenadressfelder Buchungsfelder Informationen und Instruktionen Einige Beispiele für Nachrichtenfelder (Auszug) Security Sicherheitsfelder 10 Copy of Header Kopie des Nachrichtenkopfes 15 Test Key Testschlüssel References Referenzfelder 20 Transaction Reference Number (TRN) Transaktionsnummer 21 TRN Supplement Zusatz zur Transaktionsnummer 22 Reference to Related Message/Transaction Referenz zur zugehörigen Nachricht/Transaktion 25 Statement Number/Page Number Kontoauszugsnummer / Seitennummer 28 Account Identification Kontoidentifikation / Kontonummer Data and Values Daten- und Wertfelder 30 Date Datum 32 First Amount Field Erste Menge 33 Second Amount Field Zweite Menge 36 Exchange Rate Umrechnungskurs 15 37 Interest Rate Zinskurs Banks and Customers Bank- und Kundenadressfelder 50 Ordering Customer (By Order of) Auftraggeber 52 Ordering Bank Bank des Auftraggebers 53 Sender’s Correspondent Bank (Reimbursement) Korrespondenzbank des Auftraggebers (für Rückzahlungen) 54 Receiver’s Correspondent Office Korrespondenzbank des Empfängers Der User Header Block ist optional a b c 3: {113:xxxx} {108:abcdefg1234567} Der Content Block enthält die eigentliche MTnnn Nachricht und die Information, die die meisten Endanwender sehen. Alle anderen Blöcke werden in der Regel vor der Darstellung entfernt und sind nicht sichtbar. Ein typischer Content Block hat folgenden Aufbau: {4:<CrLf> :20:MT101-Beispiel<CrLf> :28D:00001/00001<CrLf> :30:040403<CrLf> :21:Start B-Seq<CrLf> :32B:EUR1, <CrLf> :23E:CMTO<CrLf> :50G:/Kontonummer<CrLf> BANKDEM0XXX<CrLf> :59A:/Kontonummer<CrLf> BANKDEM0XXX<CrLf> :71A:SHA <CrLf> -} Der den Umschlag (Envelope) abschließende Trailer Block hat immer die Blockkennung 5: und wird nach dem Content Block am Ende der Nachricht angefügt. Dieser enthält unterschiedliche Nachrichtenfelder, die durch entsprechende Schlüsselwörter bezeichnet werden. MAC Der Message Authentification Code (MAC) wird auf Basis der Gesamtinformation der Nachricht und einem dem Empfänger bekannten Schlüssel berechnet. Der hierzu ver- 16 wendete Algorithmus ist geheim. Der MAC wird in den Nachrichtenkategorien Nachrichtenkategorien 1, 2, 3, 4, 5, hauptsächlich in 6, 7 und 8 und bei MT304 verwendet. CHK Eine Prüfsumme wird für alle Nachrichtentypen berechnet und dem Trailer Block hinhi zugefügt. PDE Ein „Possible Possible Duplicate Emission“-Hinweis, Emission“ Hinweis, wird der Nachricht hinzugefügt, hinzug wenn der Anwender vermutet, die Nachricht bereits versendet zu haben. PDM Ein „Possible Possible Duplicate Message”-Hinweis, Message” Hinweis, wird der Nachricht vom SWIFT-System SWIFT hinzugefügt, wenn angenommen wird, dass die Nachricht bereits übermittelt wurde. DLM Wenn eine dringende ringende Nachricht nicht innerhalb von 15 Minuten oder eine normale Nachricht nicht innerhalb von 100 Minuten übermittelt wurde, dann fügt das SWIFTSWIFT System der Nachricht ein DLM-Nachrichtenfeld DLM hinzu. 2.1.3.5 Netzstruktur Das SWIFT-System System wurde von 2001 bis 2005 005 von einem paketvermitteltem Netz (X.25 Protokoll), welches über das Telefonnetz betrieben wurde, auf ein Internet basiertes IPIP Netzwerk umgestellt. Das System wird seit diesem Zeitpunkt als SWIFTNet bezeichbezeic net. Alle Nachrichten werden als XML-Datei XML übertragen ertragen und in unterschiedliche KomKo munikationsprotokolle untergliedert. Abbildung 1: Architektur des SWIFT-Systems [C24 2014] 17 Das SWIFT-Netzwerk besteht aus drei Rechenzentren (Operating Center), die in Zoeterwoude (Niederlande), Culpeper, Virginia (USA) und seit Anfang 2013 in Diessenhofen (Schweiz) betrieben werden. Der Bau des neuen Rechenzentrums in der Schweiz wurde Anfang 2010 beschlossen, da vom EU-Parlament eine Lösung gefordert wurde, um die Überwachung des digitalen Zahlungsverkehrs durch amerikanische Behörden zu verhindern [NZZ 2013]. Bis zum Anschluss des Operating Centers (OPC) in der Schweiz wurden alle Daten in den Rechenzentren gespiegelt, so dass bis dahin bei den vorhandenen Rechenzentren alle Daten abgefragt werden konnten. Aktuell werden die Operation Center fest definierten Zonen zugeordnet und die Daten für den europäischen Zahlungsverkehr werden ausschließlich in den Niederlanden und der Schweiz verarbeitet. Alle beteiligten Banken sind innerhalb Ihres Landes über nationale Rechenzentren, den so genannten Konzentrationen, mit speziell eingerichteten Standleitungen verbunden. Jeder Konzentrator ist über eine Hauptleitung mit seinem zuständigen OPC und über eine Reserveleitung mit einer anderen Zentrale verbunden. Der Anwender teilt seiner Bank A entsprechend über ein geeignetes Terminal mit, dass er einen bestimmten Betrag zu einer Firma C bei der Bank B im Ausland überweisen möchte. Bank A erzeugt die entsprechende SWIFT-Nachricht und leitet diese über den zuständigen Konzentrator an das entsprechende Operation Center weiter, von dem die absendende Bank eine Antwort bekommt. Anschließend sendet das Operation Center die Nachricht über den entsprechenden Konzentrator des Empfängerlandes und von dort ohne weitere Verzögerung an die Empfängerbank weitergeleitet, wo sie je nach Priorität in die Datenausgabeschlange für die Bank des Zahlungsempfängers gestellt wird ([Schimansky/Bunte/Lwowski 2011], § 51a). Die Nachricht wird in der Regel innerhalb von 5 Minuten, bei dringenden Nachrichten innerhalb von 1 Minute übermittelt und nach Empfang auf einem Terminal angezeigt oder ausgedruckt und der kontoführenden Stelle zur Disposition zur Verfügung gestellt. Hier steht nun der angewiesene Betrag der Empfängerfirma C zur Verfügung. 2.1.3.6 Operating Center (OPC) Von den drei Schaltzentralen des SWIFT-Netzwerkes wird jeweils eins für die Datenverarbeitung und eins als Backuplösung implementiert. Bei dem Ausfall des ersten Rechenzentrums wird die Verarbeitung umgehend von einem zweiten übernommen, wobei beide auch zum Spiegeln der Daten des jeweils anderen zur Verfügung stehen. Hier gab es bis 2013 für den europäischen Zahlungsverkehr nur das Rechenzentrum in den USA als Ausweichmöglichkeit bei Ausfall und zur Spiegelung der Daten. 18 Zu den Aufgaben der Operating Center gehört: ([Loh 1983], S. 61) 1. 2. 3. 4. 5. 6. 7. 8. 9. Nachrichtenempfang und -verarbeitung Senden von Statusmitteilungen (z.B. Empfangsbenachrichtigungen) Verifizierung der Nachrichten Speicherung der Nachrichten (bis zu 124 Tage) Weiterleiten der Nachrichten an den Empfänger, sobald eine Leitung zur Verfügung steht Wiederauffinden von Nachrichten Überwachung des gesamten Nachrichtennetzes Absicherung gegen Übertragungsfehler Absicherung gegen Manipulation und Betrugsversuche Das Operating Center verarbeitet die empfangenen Daten der Konzentratoren und leitet diese an andere Konzentratoren im Netzwerk weiter. Bei einem Komplettausfall kann eine der beiden verbliebenen Schaltzentralen die Arbeit übernehmen. 2.1.3.7 Konzentratoren Die nationalen Rechenzentren des SWIFT-Netzes werden als Konzentratoren bezeichnet und sind ein Bindeglied zwischen den Eingabeterminals der angeschlossenen Banken und den Schaltzentralen. Während die Schaltzentralen direkt von S.W.I.F.T. geplant und betrieben werden, kommen für die Konzentratoren auch beliebige nationale Rechenzentren in Frage, die den Standardanforderungen bezüglich Sicherheit und Verfügbarkeit genügen. Zu den Aufgaben der Konzentratoren zählen: 1. Konzentration der eingehenden Leitungen auf eine Leitung zur Übermittlung an die Schaltzentralen (OPC) 2. Verteilung der von der Schaltzentrale empfangenen Nachrichten an die entsprechenden Banken 3. Pufferung der Übermittlungsgeschwindigkeit der eingehenden Leitungen 4. Übersetzung der Nachrichten in XML-Dateien für SWIFTNet Die Konzentratoren verarbeiten nicht den Inhalt der Nachrichten sondern passen gegebenenfalls deren Struktur an die Voraussetzungen von SWIFTNet an und sorgen für die ordnungsgemäße Übermittlung. Im Rahmen der Umstellung von X.25 auf die im IPNetz verwendeten XML-Dateien konnten die Konzentratoren die entsprechende Umwandlung bzw. Erweiterung vornehmen. Wenn über eine Absenderbank eine Nachricht versendet werden soll, muss zunächst die Verfügbarkeit der Leitung geprüft werden. Der Status wird der Bank gemeldet und die Nachricht gegebenenfalls zur Weiterleitung in eine Warteschlage gestellt und der Vorgang entsprechend protokolliert. 19 2.1.4 Sicherheitsrelevante Grundlagen Jedes an das SWIFT-System angeschlossene Rechenzentrum muss mindestens die Standardanforderungen bezüglich Zugangskontrolle, Verfügbarkeit und Ausfallsicherheit erfüllen. Hierzu gehören neben der Überwachung der begehbaren Bereiche und der Luftfeuchtigkeit auch ein Brandschutz und eine entsprechende Ausweichlösung. Eine genauere Spezifizierung kann im Rahmen dieser Arbeit aufgrund von fehlenden Quellen nicht aufgeführt werden. Neben den sicherheitsrelevanten Hardwareanforderungen wurde insbesondere während der Planung des Netzwerkes auf Sicherheitsmechanismen innerhalb des Systems geachtet und diese implementiert. 2.1.4.1 Implementierte Sicherheitsvorkehrungen Login Jeder Anwender, der Nachrichten in das SWIFT-System eingeben oder empfangen möchte, muss sich am entsprechenden Terminal des angeschlossenen Unternehmens bzw. der kontoführenden Bank authentifizieren. Hierzu werden unterschiedliche Verfahren eingesetzt um einen gültigen Autorisierungscode zu übermitteln, hierdurch den Anwender eindeutig zu identifizieren und somit den unbefugten Zugriff zu verhindern. Beim Login wird eine Sitzungs- und eine Sequenznummer zur geöffneten Leitung erzeugt und der Vorgang so eindeutig identifizierbar. Sequenznummern Um zu gewährleisten, dass keine Nachricht verloren geht, werden Nachrichten mit unterschiedlichen Sequenznummern ausgestattet. Hierbei unterscheidet man zwischen Eingangsnummern, die bei der Eingabe am Terminal ins System erzeugt werden und solche die aus dem System erzeugt werden und somit abgehend sind. Diese ISN und OSN wurden bereits im Kapitel 2.1.3.3 (Nachrichtenaustausch) beschrieben und jeder SWIFT-Nachricht am Ende des Basic Header Blocks eingefügt. Das System prüft bei jeder Nachricht, ob die angegebene Nummer zur aktuellen Nummernreihenfolge passt. Nachrichten mit fehlerhaften ISN werden abgewiesen und nicht weitergeleitet. Taucht eine Nachricht mit einer OSN außerhalb der Nummernreihenfolge auf, muss die betroffene Bank eigenverantwortlich den Sachverhalt aufklären und entsprechende Maßnahmen ergreifen. Authentikator Der Message Authentication Code (MAC) dient zur Absicherung der Nachrichten zwischen zwei angeschlossenen Banken, die hierzu bilateral Schlüssel austauschen. Diese Schlüssel werden verwendet, um eine Prüfsumme über den gesamten Nachrichteninhalt zu erzeugen, welche im Trailer Block mit dem entsprechenden Schlüsselwort versehen 20 und übertragen werden. Innerhalb des SWIFT-Systems wird der MAC nicht weiter berücksichtigt, eine Manipulation würde bei der empfangenden Bank sofort auffallen. Verschlüsselung Damit die Nachrichten zwischen den Konzentratoren und den OPC nicht von jedem abgefangen und gelesen werden können, werden am Ende jeder Leitung spezielle Verschlüsselungseinheiten installiert. Vor jedem Senden werden hier aus jeder Nachricht arithmetische Funktionen gebildet. Somit ergeben sich für jede Übertragung der Nachricht ganz unterschiedliche Zeichenfolgen. Durch den Austausch der eingesetzten Funktionen zwischen dem Konzentrator und dem korrespondierenden OPC, kann der Nachrichtentext beim Empfänger wieder komplett rekonstruiert werden. 2.1.4.2 Nachteile des SWIFT-Systems Monopolisierung Mit mehr als 22 Millionen übermittelten Nachrichten täglich ([SWIFT 2014], S. 2) wird der größte Anteil der internationalen Geldtransfers über die SWIFT-Systeme abgewickelt. Sollte aus irgendeinem Grund ein Land aus dem SWIFT-Netzwerk ausgeschlossen werden, dann ist meist keine alternative Zahlungsmöglichkeit einsetzbar. Obwohl im Oktober 2014 SWIFT den geforderten Ausschluss von Israel und Russland aus dem System ablehnte mit dem Hinweis unabhängig zu sein und ausschließlich europäischem Recht zu unterliegen [SWIFT 2014a], bleibt nach dem Ausschluss des Irans in 2012 eine begründete Furcht bei den angeschlossenen Ländern, ihre internationalen Zahlungen nicht mehr ausführen zu können. So ist es nicht verwunderlich, dass Länder wie Russland ein großes Interesse an Alternativen haben und neue Partnerschaften eingehen. Datenschutz Innerhalb des SWIFT-Systems wird sorgfältig darauf geachtet, dass Daten nicht in die Hände von Dritten gelangen und dass das System nicht ausspioniert werden kann. Das SWIFT-Abkommen von 2010 zeigt jedoch, dass in Absprache mit einzelnen Behörden ein Zugriff auf Daten verdächtiger Personen möglich ist. Fehlende Alternativen Es gibt bei einem Totalausfall des Systems keine Möglichkeit, kurzfristig auf ein alternatives System umzustellen, welches die Anzahl der Transaktionen bewältigen könnte. Auch eine manuelle Bearbeitung und die Übermittlung der Daten über andere Kommunikationswege, wie zu der Zeit vor SWIFT, ist nicht mehr realisierbar. Hierfür fehlt es an Fachpersonal, da im Rahmen der jeweiligen Ausbildungsgänge praktisch keinerlei Wissen vermittelt wird, um solche Szenarien abzudecken. Doch auch unter Anleitung wäre es nicht -mehr- möglich, die große Anzahl der täglichen Daten manuell abzuwi21 ckeln. Ein Großteil der Transaktionen ist zeitkritisch und also an Termine gebunden. Ein Ausfall des Systems könnte ganze Wirtschaftszweige zum Erliegen bringen. Die Suisse Bank beziffert auf Ihrer Website das tägliche Transaktionsvolumen auf 7,5 Billionen Euro [SUISSE BANK 2014]. Der wirtschaftliche Schaden, der allen beteiligten Banken und Unternehmen schon bei einem Teilausfall des Systems entstehen würde, ist kaum abschätzbar und lässt sich in Anbetracht der hohen Transfersummen nur erahnen. 2.2 Kryptowährungen Unter einer Währung versteht man die Zusammenfassung der unterschiedlichen Geldsorten eines Staates ([Schricker/Rubin 1992], S. 134). Welche Geldsorten es gibt, wie diese aussehen, heißen und wie viele Banknoten oder Münzen im Umlauf sind, wird über eine Geldverfassung bzw. Geldordnung des jeweiligen Landes oder des Gültigkeitsbereiches geregelt. Ziel einer Währung ist es, ein akzeptiertes Tauschmittel bereitzustellen, mit dem Waren gekauft werden können. Die zum Tausch eingesetzten Banknoten und Münzen haben bis auf das eventuell eingesetzte Material (Papier, Metall, Gold etc.) keinen intrinsischen Wert und werden deshalb als Fiatgeld bezeichnet. Eine kryptografische Währung ist entsprechend eine elektronische Einheit, die von Personen innerhalb einer Gemeinschaft akzeptiert wird. Jede Person mit Zugriff auf einen Computer, der mit dem Internet verbunden ist, kann diese Einheit als Tauschmittel akzeptieren. Die Bezeichnung Kryptowährung kann entsprechend auf jedes elektronische Verfahren angewandt werden, das Einheiten besitzt, die als Tauschmittel akzeptiert werden. Um die Akzeptanz, die Verbreitung und den Wert der einzelnen Währung zu bestimmen, werden in den folgenden Kapiteln geeignete Systeme und Verfahren vorgestellt. 2.2.1 Eigene Definition Kryptowährung Ich werde in der Arbeit hauptsächlich die aktuell noch stärkste Kryptowährung Bitcoin (BTC) behandeln und Besonderheiten einiger alternativer Kryptowährungen im Anhang zusammenfassen. Aufgrund unterschiedlicher Betrachtungsweisen ist es schwierig zu bestimmen, ob eine bestimmte Kryptowährung als äquivalente Alternative für ein bestehendes System wie SWIFT in Frage kommt. Die Europäische Zentralbank (EZB) unterscheidet beispielsweise in Ihrer Veröffentlichung zu virtuellen Währungen drei unterschiedliche Typen ([ECB 2012], S. 15). Typ 1: Geschlossene Systeme, wie sie in Online-Games verwendet werden. Typ 2: Systeme, die nur in eine Richtung laufen, wobei es einen Umrechnungskurs zum Ankauf von virtuellem Geld gibt, um Waren und Dienstleistungen danach erwerben zu können. 22 Typ 3: Systeme, die in beide Richtungen gehen, wie jede andere frei konvertierbare Währung, für die es einen Kurs für den Ankauf und einen anderen für den Verkauf gibt. Damit können dann auch virtuelle oder reale Waren und Dienste gekauft werden. Neben der Kryptowährung Bitcoin stuft die Europäische Zentralbank auch ein System der im San Francisco ansässigen Firma Linden Labs (Linden Research, Inc.) als Typ 3System ein. Hierbei handelt es sich um eine Währung, die innerhalb der virtuellen Spielwelt „Second Life“ eingesetzt wird. Die Spieler haben die Möglichkeit, eigene virtuelle Welten und Gegenstände zu erschaffen und diese innerhalb des Spiels für Linden Dollar zu verkaufen. Aufgrund der Eigendynamik des Systems und der Tatsache, dass auch einige Unternehmen die virtuelle Welt als Werbe- und Wahlkampfplattform entdeckten [Stöcker 2007], entstanden eigene Handelsplattformen und Börsen zum Tausch und Verkauf von Währungen und geschaffenen Gegenständen. Die Deutsche Post AG ermöglichte von Mai 2007 bis Anfang 2008 den Versand von Postkarten aus der virtuellen Welt an reale Adressen. [Marwan 2008] Da die gesamte virtuelle Welt zentral über die Server der Firma Linden Labs betrieben wird, können alle Gegenstände und Konten jederzeit von einzelnen Personen kontrolliert und das ganze System abgeschaltet werden. Das Fundament von Kryptowährungen wie Bitcoin sind jedoch die Dezentralität des Gesamtsystems und die Unabhängigkeit von dritten Vertrauenspersonen, weshalb Systeme wie Second Life mit Linden Dollar oder jede andere Art von zentral gesteuertem System in dieser Arbeit nicht als Kryptowährung betrachtet werden. Entsprechend definiere ich im Rahmen dieser Arbeit als Kryptowährung nur dezentrale Systeme, die auf den technischen Grundlagen von Bitcoin basieren. 2.2.2 Entstehungsgeschichte Bereits 1983 veröffentlichte David Chaum seine Idee vom anonymen elektronischen Geld [Chaum 1983] und gründete 1989 das Unternehmen DigiCash. Mit dem Zahlungssystem „eCash“ gab es erstmals ein System, das kryptografische Protokolle zum anonymen Transfer kleinerer Geldbeträge nutzte und von mehreren Banken, auch in Europa eingesetzt wurde. Trotz der genialen Idee und aller Bemühungen Chaums, ausreichend Händler zu finden, wollte niemand das System einsetzen, und die Verbraucher wählten stattdessen lieber Kreditkartensysteme wie Visa und Master Card [Pitta 1999]. Diese Entwicklung führte 1998 zum Bankrott der Firma DigiCash. Ein weiteres Konzept, welches als direkter Vorgänger zum heute bekannten Bitcoin gilt, ist „b-money“. Diese Idee von Wai Dai [Dai 1998] beschrieb erstmals ein Proof-ofWork Verfahren zur Gelderzeugung. 23 Erst 10 Jahre später stellte Satoshi Nakamoto sein „Peer-to-Peer Electronic Cash System“ mit dem Namen Bitcoin vor. Auch hier wird Proof-of-Work zur Erzeugung von Bitcoin genutzt. Die erste Implementierung des Open-Source Bitcoin-Netzwerkes entstand 2009, ist noch heute im Betrieb und dient als Grundlage für viele weitere Kryptowährungen. Bitcoin wird von Entwicklern aus der ganzen Welt weiter verbessert. Satoshi Nakamoto hat sich bereits Mitte 2010 komplett aus dem Projekt zurückgezogen und die Kontrolle unterschiedlichen und bekannten Personen der Bitcoin-Community überlassen. Zu Ihnen zählte auch Gavin Andresen, dem die Kontrolle über die QuellcodeVersionsverwaltung überlassen wurde und der seitdem zu den Hauptentwicklern von Bitcoin zählt. Bis heute ist nicht bekannt, wer sich hinter dem Namen Satoshi Nakamoto verbirgt. Denkbar ist auch durchaus, dass es sich um das Pseudonym einer ganzen Gruppe von Entwicklern handelt. 2.2.3 Ziele Kryptowährungen bieten dem Nutzer ein dezentrales und sicheres elektronisches Zahlungssystem, das ohne die Verifizierung durch eine vertrauenswürdige dritte Partei auskommt. So wird über alle an das System der Kryptowährung angeschlossenen Rechner verifiziert, ob der Absender den entsprechenden Betrag besitzt und dieser auch nicht mehrfach überwiesen wird. Hierdurch ist es möglich, hohe Investitionen für die Infrastruktur zu umgehen, Gebühren für Transaktionen zu reduzieren und so auch die Überweisung von Kleinstbeträgen zu ermöglichen. 2.2.4 Technische Grundlagen Das wichtigste Element für die Kommunikation innerhalb eines KryptowährungNetzwerkes sind Transaktionen. Transaktionen werden mit Schlüsseln signiert und vom Absender an eine Adresse des Empfängers gesendet. Dieser Vorgang geschieht ähnlich wie bei einer Banküberweisung. Alle Transaktionen werden in einem Block gespeichert, der in die Blockchain eingehängt wird. Da es bei den unterschiedlichen Währungen Unterschiede bei der Speicherung der Daten in der Blockchain gibt, werde ich im Weiteren lediglich auf die Speicherung von Bitcoin (BTC) eingehen und Abweichungen sowie nähere Beschreibungen bzgl. anderer Währungen im Text kenntlich machen. 24 2.2.4.1 Netzwerk Bei dem Bitcoin-Netzwerk handelt es sich um ein dezentrales Peer-to-Peer-Netzwerk, bei dem jeder Teilnehmer über ein Programm, den Bitcoin-Client, direkt mit anderen Teilnehmern verbunden ist. Die Informationen werden über Netzwerkknoten (Nodes) ausgetauscht, so dass jeder Knoten alle Daten der Bitcoin-Buchhaltung speichert und über eine entsprechend große Festplatte verfügen muss. Größe der Bitcoin-Datenbank in Gigabyte 30 25 20 15 10 5 0 01.01.2012 01.01.2013 01.01.2014 01.01.2015 Abbildung 2: Größe der Bitcoin-Datenbank (Quelle: blockchain.info) Der eingesetzte Standard Bitcoin-Client, ist ein Full-Node-Client, also ein Programm, das über die gesamte Datenbank mit allen Transaktionen, genutzten Adressen und Beträgen verfügt. Weitere Bitcoin-Clients und Möglichkeiten, um über einzelne Knoten auf die gespeicherten Daten zuzugreifen, werden im Kapitel 3.2 näher beschrieben. Alle Netzteilnehmer haben die gleichen Zugriffsrechte innerhalb des Gesamtsystems. Ein einzelner Teilnehmer wird als Peer bezeichnet und kann neue Informationen bereitstellen, die umgehend über die Knoten an alle angeschlossenen Peers verteilt werden. Je nach Netzgeschwindigkeit hat jeder Teilnehmer schon nach kurzer Zeit das Wissen über die gesamte Datenbasis. 25 Abbildung 3: Modell eines dezentralen Peer-to-Peer Netzwerks 2.2.4.2 Adressen Um überhaupt eine Information wie beispielsweise einen Zahlungsvorschlag zu übermitteln, müssen der Absender und der Empfänger über eine eigene Adresse verfügen. Jeder Teilnehmer kann sich beliebig viele Adressen erzeugen und ist nicht, wie beim SEPA-Zahlungsverkehr, an eine festgelegte IBAN gebunden. Um eine Adresse zu erzeugen, werden zunächst ein privater und ein öffentlicher Schlüssel auf Basis des „Elliptic Curve Digital Signature Algorithm“ (ECDSA) erzeugt [Bitcoin Wiki 2015a]. Eine detaillierte Beschreibung dieses kryptografischen Verfahrens ist im Anhang A zu finden. Im Anschluss sind mehrere Einzelschritte notwendig, um als Ergebnis eine gültige Bitcoin-Adresse zu erzeugen. Privater Schlüssel 18E14A7B6A307F426A94F8114701E7C8E774E7F9A47E2C2035DB29A206321725 Öffentlicher Schlüssel 0450863AD64A87AE8A2FE83C1AF1A8403CB53F53E486D8511DAD8A04887E5B23522C D470243453A299FA9E77237716103ABC11A1DF38855ED6F2EE187E9C582BA6 Ausgehend vom öffentlichen Schlüssel wird über die SHA-265 Hashfunktion (siehe Anhang A.1) ein Hashwert erzeugt. SHA-256(öffentlicher Schlüssel) ded9f375c0da2ed759eafd278fe56f476702ebc6f16f5b1ea42131cd766f458c 600FFE422B4E00731A59557A5CCA46CC183944191006324A447BDB2D98D4B408 26 Danach wird nun auf diesen Hashwert H die RIPEMD-160 160 Hashfunktion angewandt und dem Ergebnis die Versionsnummer des Netzwerkes, in unserem Fall des Hauptnetzes (0x00), hinzugefügt. (siehe Anhang A.2.2) Version + RIPEMD-160(SHA 160(SHA-256(öffentlicher Schlüssel)) 00010966776006953D5567439E5E39F86A0D273BEE 010966776006953D5567439E5E39F86A0D273BEE Auf diesen Hashwert wird nun die SHA-256 SHA 256 Hashfunktion zweimal angewendet und die ersten vier Bytes des Ergebnisses als Prüfsumme an den Hashwert angehängt. SHA-256(SHA-256(00010966776006953D5567439E5E39F86A0D273 010966776006953D5567439E5E39F86A0D273BEE)) BEE)) D61967F63C7DD183914A4AE452C9F6AD5D462CE3D277798075B107615C1A8A30 3C7DD183914A4AE452C9F6AD5D462CE3D277798075B107615C1A8A30 Version + RIPEMD-160(SHA 160(SHA-256(öffentlicher Schlüssel)) + Prüfsumme 00010966776006953D5567439E5E39F86A0D273BEE 010966776006953D5567439E5E39F86A0D273BEED61967F6 Als letzter Schritt wird nun auf den nun erzeugten Hashwert eine abgewandelte a Form des Base64-Kodierungsverfahrens Kodierungsverfahrens angewendet, dass im Bitcoin Netzwerk als BaB se58Check bezeichnet wird [Bitcoin Wiki 2015a]. Hierbei wird ein Hashwert erzeugt, der zur besseren Lesbarkeit auf die Großbuchstaben "O“ und „I“, sowie das kleine „i“ und die „0“ verzichtet und die Versionskennung vorangestellt wird. Typische BitcoinBitcoin Adressen beginnen mit einer 1 oder einer 3. Im Rahmen der Weiterentwicklung gibt es mittlerweile eine größere Anzahl von Präfixen für Adressen [Bitcoin Wiki 2015b]. Bitcoin-Adresse 16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM Abbildung 4: QR-Bild zur generierten Bitcoin-Adresse Bei Bitcoin-Adressen Adressen die mit einer 3 beginnen, handelt es sich um Adressen zu denen es mehrere Schüssel gibt und eine Transaktion Transaktion von mehreren Teilnehmern und deren pripr vaten Schlüsseln unterschrieben werden kann. Bei diesem MehrfachunterschriftenMehrfachunterschriften 27 Verfahren wird beim Erzeugen der Adresse festgelegt, wie viele unterschiedliche Teilnehmer Zugriff auf das zugeordnete Guthaben haben und die Anzahl der privaten Schlüssel bestimmt, die benötigt werden, um eine Überweisung durchzuführen. 2.2.4.3 Wallet Um eine Kryptowährung einsetzen zu können, benötigt der Benutzer ein Wallet, also eine elektronische Brieftasche, die innerhalb der Bitcoin-Software angelegt werden kann und alle dem Teilnehmer zugeordneten Bitcoin-Adressen mit den dazugehörigen öffentlichen und den korrespondierenden privaten Schlüsseln beinhaltet. Im StandardProgramm „Bitcoin Core“ wird hierzu eine Datei (wallet.dat) im Programmverzeichnis abgelegt. Um einen Zugriff weiter abzusichern ist es möglich, diese Datei zusätzlich noch zu verschlüsseln und mit einem Passwort zu versehen. Jede gespeicherte Adresse ist einem bestimmten Bitcoin-Guthaben zugeordnet, über das nur der Besitzer des korrespondierenden privaten Schlüssels verfügen kann. Jeder Teilnehmer kann beliebig viele Adressen erzeugen und diese wie eine Kontonummer oder E-Mail-Adresse an andere Teilnehmer weitergeben. Um Beträge innerhalb des Netzwerkes zu überweisen, wird ein Zahlungsvorschlag erzeugt und einer Transaktion hinzugefügt. Jede Transaktion wird mit dem privaten Schlüssel unterschrieben und in das Netz der entsprechen Währung eingespeist. Der an diese Transaktion gebundene öffentliche Schlüssel des Absenders wird durch den öffentlichen Schlüssel des Empfängers getauscht und von allen anderen Teilnehmern bestätigt. Im Allgemeinen wird zwischen Hot- und Cold-Wallets unterschieden, auf die der Inhaber unterschiedlich Einfluss nehmen kann. Während Hot-Wallets immer eine Onlineverbindung benötigen, speichern Cold-Wallets die Schlüsselpaare auch außerhalb des Internets. Die Speicherung von Schlüsseln erfolgt auf unterschiedliche Arten, auf die ich im Rahmen der Arbeit weiter eingehen werde. 2.2.4.4 Transaktionen Eine Transaktion der Kryptowährung Bitcoin enthält neben einer Versionsnummer und eines Zeitstempels auch Listen der Ein- und Ausgänge, wodurch sich folgender Aufbau ergibt. 1. 2. 3. 4. 5. 6. Versionsnummer (aktuell 1) Anzahl der Eingänge Liste der Eingänge Anzahl der Ausgänge Liste der Ausgänge Zeitstempel 28 Die erste Eingabe der jeweils ersten Transaktion neu erzeugter Bitcoin wird als Coinbase bezeichnet und entsteht als „Belohnung“ eines Erzeugungsverfahrenes, das im Kapitel 2.2.5 näher beschrieben wird. Möchte nun Alice einen Betrag von 50 Bitcoin an Bob überweisen und somit eine neue Transaktion erzeugen, dann werden alle zu diesen 50 Bitcoin gehörenden Transaktionseingänge in einer Liste zusammengefasst. Abbildung 5: Alice möchte Bob 50 BTC überweisen Alice hat vorher jeweils 20 Bitcoin von Carol und David und 25 Bitcoin von Eve erhalten, woraus sich für die Transaktion der 50 Bitcoin erzeugen lässt. Die Eingangsliste hat einen Gesamtwert von 65 Bitcoin besteht aus folgenden Transaktionen. Abbildung 6: Schematische Darstellung der Eingänge 29 Da immer der gesamte Betrag in der Ausgangsliste verwendet werden muss, wird der Restbetrag von Alice an sich selbst zurücktransferiert. Zusätzlich akzeptiert Alice eine Gebühr von 0,5 Bitcoin, die beim Erzeugungsverfahren der neu generierten Bitcoin hinzugerechnet werden, wodurch sich folgende Ausgangsliste ergibt: Anzahl Ausgänge: 3 Abbildung 7: Schematische Darstellung der Ausgänge Diese drei Ausgänge bestehen aus den zwei Adressen (Hashwerte der öffentlichen Schlüssel) von Alice und Bob und der Transaktionsgebühr, die demjenigen gutgeschrieben wird, der den Block verifiziert in den diese Transaktion eingefügt wird. Die gesamte Transaktion wird mit den privaten Schlüsseln unterschrieben, die zu der jeweiligen Eingangstransaktion gehören. Da die entsprechenden öffentlichen Schlüssel in die Transaktion eingebettet werden, können diese über die dazugehörige Hashfunktion mit der angegeben Adresse verglichen und somit verifiziert werden. Für jede Transaktion wird ein eigener Hashwert über einen doppelten SHA-256 Hash erzeugt. 30 Abbildung 8:: Anwendung der Schlüssel bei Transaktionen [Nakamoto 2008] Die Transaktion wird nun von Alice an alle angeschlossenen Teilnehmer (Peers) weiwe tergegeben und weiter im gesamten Netzwerk verteilt. Ist die Transaktion erzeugt und übermittelt, ist es unmöglich, unmöglich diese rückgängig zu machen. 2.2.4.5 Blockchain Die gesamte Wissensbasis des Bitcoin-Netzwerkes Bitcoin ist in der Blockchain gespeichert. Jeder angeschlossene Teilnehmer hat Zugriffsmöglichkeit auf diese gemeinsame BuchBuc haltung sowie die Möglichkeit, Möglichkeit die Gültigkeit jedes einzelnen Bestandteils dieser zu überprüfen und alle Daten zu jeder Zeit einzusehen. Damit die Gesamtmenge der Daten dieser gemeinsamen Buchhaltung nicht immer wieder neu geprüft werden muss, wird diese in einzelne Blöcke unterteilt. Um einen neuen Block zu erzeugen, erzeugen müssen ein oder mehrere Teilnehmer gemeinsam eine kryptografische Aufgabe lösen, zu zu der ca. alle 10 Minuten ein sehr leicht überprüfüberprü bares Ergebnis errechnet wird. Dieses Verfahren wird als Mining bezeichnet und im folgenden Kapitel beschrieben. Der neu erzeugte Block erzeugt eine neue festgelegte Menge Bitcoin, die dem Teilnehmer zusammen zusammen mit den Transaktionsgebühren gutgegutg schrieben wird und folgende Informationen beinhaltet: 1. den Arbeitsbeweis (Proof-of-Work) (Proof Work) als Ergebnis des Erzeugungsverfahrens in Form eie nes neuen Hashwertes 2. den ebenfalls leicht überprüfbaren Bezug (Hashwert) zum vorherigen vorherigen Block 3. alle Transaktionen die dem Netzwerk seit dem letzten Block gemeldet wurden Der erste Block (Nummer 0) wurde am 03.01.2009 von on Satoshi Nakamoto erzeugt und wird als Genesisblock bezeichnet. 31 Abbildung 9: Aneinanderreihung von Blöcken ([Platzer 2014], S.21) 2.2.5 Erzeugungsverfahren Für alle Kryptowährungen wird mathematisch eine bestimmte Anzahl von Einheiten (Coins) festgelegt, die je nach System innerhalb eines bestimmten Zeitrahmens erzeugt werden können. Bei Bitcoin werden laut Spezifikation [Bitcoin Wiki 2015c] bei jedem neu gefundenen Block zunächst 50 neue Bitcoin erzeugt. Diese Anzahl wird alle 210000 Blöcke um die Hälfte reduziert. Diese Halbierung findet auf der Grundlage, das alle zehn Minuten ein neuer Block erzeugt wird, ca. alle 4 Jahre statt. ⋅ ö ⋅ ⋅ ≈ Die kleinste einsetzbare Einheit eines Bitcoin ist 1 Satoshi was einer 0,00000001 Bitcoin (BTC) entspricht. Die Gesamtmenge an Bitcoin lässt sich über folgende Formel berechnen: ⋅ = ⋅ ⋅ = ⋅ ⋅ = Da n in der Formal gegen unendlich strebt, ergibt sich ein Grenzwert von 21000000 Bitcoin, der in endlicher Zeit erreicht wird. Unter Berücksichtigung aller Halbierungen und der kleinsten Einheit Satoshi, werden die letzten Bitcoin im Jahr 2040 mit Block Nummer 6929999 erzeugt. 32 2.2.5.1 Mining Das Mining (zu Deutsch „schürfen“) ist essentieller Bestandteil des Bitcoin-Systems. Jeder Teilnehmer hat die Möglichkeit, einen neuen Block zu generieren und somit die Chance, neue Bitcoin die seine angegebene Adresse zugeteilt zu bekommen. Die Teilnehmer, die neue Blöcke generieren und Ihre Arbeitsleistung einbringen, werden Miner genannt. Um einen neuen Block zu erzeugen muss ein neuer Hashwert errechnet werden, der auf einem festgelegten Schema basiert und das Ergebnis einer einfachen mathematischen Funktion ist. Hierbei wird nach dem Hashwert des aktuellen Blocks gesucht. Entsteht dabei eine gewisse Anzahl von Nullen am Anfang des neu erzeugten Hashwertes ist die Aufgabe gelöst. Über den nun neu erzeugten Block und den dazugehörigen Hashwert, können nun alle seit dem letzten Block übermittelten Transaktionen verifiziert werden. Da die zur Berechnung herangezogenen Blockheader immer unterschiedlich sind, gibt es auch mehrere Lösungen und die Berechnung gleicht mehr einer Lotterie, bei derjenige gewinnt, der durch Ausprobieren zuerst einen gültigen Hashwert erzeugt. Der damit verbundene Arbeitsaufwand ist abhängig von der Gesamtleistung des Netzwerkes, und die Schwierigkeit wird alle 2016 Blocke angepasst, was ca. 14 Tagen entspricht. Der Block wird von dem Miner als neue über die Netzwerkknoten (Nodes) an alle Teilnehmer (Peers) gemeldet und von diesen betätigt. 2.2.5.2 Erzeugung neuer Blöcke Um einen neuen Bitcoin-Block zu erzeugen wird, wie bereits beschrieben, ein neuer Hashwert benötigt. Zur Erzeugung dieses Hashwertes wird der im Jahr 1997 von Adam Black erfundene Hashcash-Algorithmus verwandt [Black 1997]. Die ursprüngliche Idee des Hashcash-Algorithmus war es, E-Mail-Nachrichten mit einem Hashwert zu versehen, dessen Erzeugung eine gewisse Rechenleistung beanspruchen würde. Gleichzeitig sollte der Empfänger der Nachricht jedoch schnell die Gültigkeit überprüfen können. Ziel war es, mit dieser virtuellen Gebühr ähnlich einer Briefmarke das Versenden von unerwünschten Werbe-/Massenmails (Spam) und andere Netzwerkangriffe zu reduzieren. So würde das Versenden von mehreren tausend Mails nicht mehr in Sekunden möglich sein, sondern würde je nach gewünschter Hashlänge Minuten, Stunden oder sogar Tage dauern. Um nun einen gültigen Hashwert für den neuen Block zu erzeugen, werden alle Elemente des Blockheaders miteinander verknüpft: 33 Feld Inhalt / Änderungsintervall Versionsnummer Die Versionsnummer wird durch die eingesetzte Client-Software bestimmt. 4 Hashwert des letzten Blocks Der 256-bit Hashwert ändert sich, wenn ein neuer Block erzeugt wurde. 32 Hashwert der Hash-Baums Der 256-bit Hashwert des Elternknotens (Merkle Root) im Hashbaum ändert sich, sobald eine neue Transaktion akzeptiert wurde. 32 Zeit Bei jedem Versuch wird ein neuer Zeitstempel gesetzt. Hierzu werden die Sekunden seit 01.01.1970 - 00:00 Uhr (UTC2) verwendet. 4 Bits Verkürzte Speicherung der Schwierigkeit, die ca. alle 14 Tage angepasst wird (Kapitel 2.2.5.3). 4 Nonce Inkrementeller Zähler, der nach jedem Versuch erhöht wird. 4 Größe (Bytes) Der Hash-Baum wird im Bitcoin-System als Merkle-Tree [Merkle 2012] bezeichnet ist ein Binärbaum aus Hashwerten. Die Hashwerte der Kinderknoten werden indirekt über den Hashwert des Elternknotens berechnet. Der Hashwert des Elternknotens wird im Blockheader gespeichert. Das die Transaktionen nicht direkt gehasht werden, ist der Aufwand zur Berechnung des Hashwertes für einen Block mit einer Transaktion genauso groß die bei einem Block mit 10000 Transaktionen. [Bitcoin 2012] Aus all diesen Informationen wird nun mit einem doppelten SHA-256 ein Hashwert errechnet und mit der festgelegten Schwierigkeit vergleichen. "# ( "# ( % )) Ist das Resultat größer oder gleich der Schwierigkeit, dann gilt dies als gültiger Arbeitsbeweis, und der erzeugte Hashwert wird für den neuen Block verwendet. Mit dem erzeugten Hashwert ist der Block komplett und besteht aus folgenden Teilen: Feld Inhalt / Änderungsintervall Fester Wert (Magic Number) Die „Magic Number“ hat im Hauptnetz (main) den Wert 0xD9B4BEF9 Blockgröße Die Größe des Blocks. 4 Blockheader (siehe oben) 80 Anzahl der Transaktionen Positive ganze Zahl, die als Integer mit variabler Länge gespeichert wird. Transaktionsliste Eine nicht leere Liste mit Transaktionen. 2 Größe (Bytes) 4 Der Wert ergibt sich aus einer BloomFilter Implementierung um einzelne Netzwerke zu unterscheiden. UTC ist die gültige Weltzeit 34 1-9 (max 1000000)3 Der neu erzeugte Block nun in die Blockchain eingehängt und der neue Block den Teilnehmern bereitgestellt. Es kann vorkommen, dass zwei Blöcke nahezu zeitgleich erzeugt werden und somit zwei unterschiedliche Blockchain entstehen. Hier entscheidet immer die Mehrheit der angeschlossenen Miner welches die gültige Blockchain ist. Da die Mehrheit die größere Arbeitsleistung einbringt, wird die Blockchain bei gleicher Schwierigkeit entsprechend länger und die kürzere Kette wird verworfen und es entstehen verwaiste Blöcke. Aus diesem Szenario ergeben sich unterschiedliche Manipulations- und Angriffsmöglichkeiten, die im Kapitel 2.3 näher beschrieben werden. 2.2.5.3 Berechnung der Schwierigkeit Die Schwierigkeit der Blockerzeugung wird alle 2016 Blöcke neu berechnet und richtet sich nach der Gesamtleistung des Netzwerkes. Da laut Definition alle 10 Minuten ein neuer Block erzeugt wird, ergibt sich so für jede Schwierigkeit ein Zeitraum von durchschnittlich 14 Tagen. ⋅ = ⋅ ⋅ ' Starke Leistungsschwankungen, wie der Verkauf von leistungsfähiger Hardware oder die Abschaltung ganzer Rechenzentren können den Zeitraum zur nächsten Schwierigkeit verlängern oder verkürzen4. Die Schwierigkeit wird über eine einfache Formel berechnet, die im Quellcode von Bitcoin unter /src/pow.c zu finden ist [Bitcoin Quellcode 2015] # 8 9 * = ( : : )A ;= ( ) = * (+,-./012345670+) ( ) = ;(+<=>20?@5.2345670+) D % −( : )A % C (1420@5/4@5?5-ℎ+5.3+H5I/+J5+) 3 Die Blockgröße ist auf maximal 1000000 Bytes festgelegt (Siehe Kapitel Fehler! Verweisquelle konnte nicht gefunden werden.) 4 Die letzen Veränderungen der Schwierigkeit und der Gesamtleistung des Netzwerkes, können auf der Webseite https://bitcoinwisdom.com/bitcoin/difficulty nachgelesen werden. 35 Um zu große Sprünge zu verhindern, wird die Berechnung noch eingeschränkt: ; ; * < ⇒ * = * < ; ⋅ ⇒ * = ; ⋅ Nun kann die neue Schwierigkeit berechnet werden: 9 2.3 = 9 * ⋅ ; Eigenschaften und Probleme Beim Entwurf von Bitcoin [Nakamoto 2008] berücksichtigte Satoshi Nakamoto bereits einige Probleme, wie doppelte Zahlungen und löst mit der Erfindung des Blockchain auch das Problem der Byzantinischen Generäle, welches im Kapitel 2.3.1 genauer beschrieben wird. Bei der Einschätzung von Speicherbedarf und Rechenleistung hat Nakamoto vermutlich die Eigendynamik des Bitcoin-Systems und die bevorstehende Transaktionsmenge und somit auch Blockgröße unterschätzt. Hierdurch entstehende Probleme könnten das System scheitern lassen. Die Bitcoin-Entwickler müssen sich neuen Herausforderungen stellen und Lösungen erarbeiten. Eine der wichtigsten Aufgaben für die Entwickler ist die Erhöhung der im Quellcode festgelegten maximalen Blockgröße, die im Kapitel 0 genauer betrachtet wird und einige Lösungswege vorgestellt werden. 2.3.1 Byzantinische Generäle Eine Herausforderung bei verteilten Systemen ohne zentrale Steuerungsmechanismen besteht darin, bei unterschiedlichen Ergebnissen oder Meinungen eine Entscheidung durch eine Mehrheitsentscheidung zu treffen. Dies ist allerding nur dann möglich, wenn alle Komponenten fehlerfrei funktionieren oder im Bitcoin-System alle Teilnehmer die Regeln befolgen. Diese Problematik wird als Situation einer Byzantinischen Armee beschrieben [Lamport/Shostak/Pease 1982] und als Problem der Byzantinischen Generäle oder Problem der interaktiven Konsistenz beschrieben. Die Autoren beschreiben das Problem mit drei Generälen der byzantinischen Armee, die mit Ihren Soldaten eine Stadt belagern und Ihre Nachrichten über Boten austauschen. Für eine erfolgreiche Übernahme müssen mindestens zwei Generäle die Stadt angreifen. Sind alle Generäle ehrlich, dann einigen sie sich auf eine bestimmte Zeit für einen Angriff und die Stadt wird erfolgreich eingenommen. Ebenso könnten sich alle Generäle auch darauf einigen abzuwarten, die Bevölkerung somit zu Schwächen und 36 zum Aufgeben zu zwingen. Beide Vorgehensweisen führen zum Erfolg und zur Übernahme der Stadt. Das Problem entsteht nun, wenn sich unter den drei Generälen ein Verräter befindet, der falsche Information weitergibt, oder wenn Informationen von dem übermittelnden Boten geändert werden. Abbildung 10: Problem der Byzantinischen Generäle Wie in Abbildung 10: Problem der Byzantinischen Generäle erkennbar, gibt B die Information von A falsch an C weiter. In diesem Fall kann C nicht entscheiden, welche Aktion ausgeführt werden soll. Auch ein Nachfragen würde in diesem Szenario das gleiche Ergebnis liefern. Wird dieses Problem nun auf das Bitcoin-Netzwerk übertragen, dann entsprechen die Nachrichten den Blöcken, deren Gültigkeit durch einen Arbeitsbeweis und Erzeugung eines neuen Blockes (alle 10 Minuten) zu errechnen ist. Die Generäle sind die Miner, also die Teilnehmer des Netzwerkes, die durch Rechenleistung einen neuen Block erzeugen. Sobald einer der Miner einen neuen gültigen Hashwert gefunden hat, wird ein neuer Block erzeugt und in die Blockchain eingehängt. Die neue Information wird allen anderen Minern mitgeteilt und dient als Grundlage zur Errechnung des nächsten Blocks. Wenn nun ein Miner zwei unterschiedliche Ketten empfängt, dann nimmt er immer die längste Blockchain als Grundlage für seine weitere Berechnung, da er davon ausgehen kann, das die Mehrheit der Miner zusammen die größte Rechenleistung besitzen und somit schneller neue Blöcke berechnen. Mit der längsten Blockchain ist in diesem Zu- 37 sammenhang nicht die mit den meisten Blöcken, sondern die mit insgesamt der größten Arbeitsleistung gemeint5. Besitzt ein Miner mehr als 50% der Rechenleistung, dann kann dieser alleine das gesamte System kontrollieren und man spricht von einer 51% Attacke, die im folgenden Kapitel beschrieben wird. 2.3.2 51% Attacke Wenn mehr als 50% der Rechenleistung des gesamten Bitcoin-Systems von einem Angreifer kontrolliert wird, dann kann er [Bitcoin Wiki 2015e] • • • alle Transaktionen rückgängig machen, die er selber erzeugt, verhindern, dass Transaktionen bestätigt werden sowie verhindern, dass Miner neue Blöcke erzeugen. Nicht möglich ist es: • • • • • fremde Transaktionen rückgängig zu machen Transaktionen grundsätzlich zu verhindern das Protokoll und somit die Anzahl der erzeugten Bitcoin zu manipulieren Bitcoin ohne einen neuen Block erzeugen Bitcoin zu verschicken, die der Angreifer nicht besitzt Da die Rechenleistung des Systems sehr hoch ist, ist die Wahrscheinlichkeit für einen gezielten Angriff für einzelne Miner oder Organisationen sehr gering. Durch den Zusammenschluss mehrerer Miner könnte eine solche Mehrheit jedoch erreicht werden und der Betreiber eines solchen Miningpools könnte diesen Zustand für seine Zwecke ausnutzen. Im Juni 2014 wurde eine solche Mehrheit für ca. 12 Stunden bei dem Miningpool-Betreiber Ghash.IO erreicht, der daraufhin erklärte die Situation nicht ausgenutzt zu haben und dies auch zukünftig nicht zu tun [Kannenberg 2014][Ghash.IO 2014]. Im Juli 2014 stand der Ghash.IO erneut kurz davor mehr als 50% Rechenleistung zu erreichen und verpflichtete sich auf Reaktion darauf, zukünftig Sorge dafür zu tragen das eine Gesamtleistung von 39,99% nicht überschritten wird [Danova 2014]. Eine Übersicht der aktuellen Verteilung der gesamten Rechenleistung ist auf der Webseite https://blockchain.info/de/pools zu finden. 2.3.3 Doppelte Zahlungen Da es keine Repräsentation einzelner Bitcoin gibt, sondern das Guthaben auf Basis aller Transaktionen berechnet wird, könnte nun versucht werden einen bestimmten Betrag mehrmals zu überweisen. Alle Transaktionen werden in das Netzwerk übertragen und 5 Ein Angreifer könnte sehr schnell eine lange Kette mit geringer Schwierigkeit erzeugen 38 von den angeschlossenen Teilnehmern bestätigt. Bei der Verifizierung der Transaktionen wird die ältere Transaktion verworfen. Da sich alle Teilnehmer auf die gleiche Blockchain einigen, ist nur die Transaktion gültig, die beim Erzeugen eines neuen Blocks in diesen aufgenommen wurde. Zusätzlich muss sichergestellt sein, dass die verwendete Blockchain gültig ist. Es wird empfohlen mehrere Bestätigungen der Transaktion abzuwarten, um das Risiko, Opfer einer doppelten Zahlung zu werden zu reduzieren. In der Praxis ist dies jedoch nicht umsetzbar, da ein Händler nicht mehrere Minuten warten kann bis er seine Ware ausliefert. Als mögliche Lösung kann hier die Infrastruktur eines Zahlungsanbieters helfen, die Risiken zu reduzieren und den möglichen Verlust abzusichern. Es sind neben der bereits im vorangegangenen Kapitel beschrieben 51% Attacke folgende Angriffe denkbar [Bitcoin Wiki 2015f] Wettlauf-Angriff Ein Zahlungsempfänger akzeptiert eine Überweisung auch ohne weitere Bestätigung und der Angreifer überweist die gleichen Bitcoin an einen weiteren Empfänger oder an sich selbst. Einer der Empfänger erhält nun keine Bitcoin, da bei der Validierung eines neuen Blocks die neueste Transaktion verworfen wird. Die Erfolgsaussichten für einen solchen Angriff sind wie von Ghassan O. Karame, Elli Androulaki und Srdjan Capkun beschrieben sehr hoch [Karame/Androulaki/Capkun 2012]. Finney-Angriff Der Angreifer arbeitet mit einem Miner zusammen oder erzeugt selber einen gültigen Block, der bereits eine gewünschte Transaktion enthält. Dieser neue Block wird jedoch noch nicht veröffentlicht, sondern der Betrag der bereits akzeptierten Transaktion wird erneut ausgegeben. Ein Zahlungsempfänger, der wieder unbestätigte Transaktionen zulässt hat keine Möglichkeit sich zu schützen. Nachdem der Angreifer die gewünschte Leistung oder Ware vom Zahlungsempfänger erhalten hat, wird der Block veröffentlicht. Vector76-Angriff Eine Kombination aus dem Wettlauf- und dem Finney-Angriff ermöglicht eine doppelte Zahlung bei Transaktionen, die bereits bestätigt wurden. Beim Vector76-Angriff wird entsprechend wieder ein gültiger Block benötigt, der erst zu einem späteren Zeitpunkt veröffentlicht wird. Brute-Force-Angriff Wenn der Zahlungsempfänger mehrere Bestätigungen M einer Transaktion abwartet, dann kann der Angreifer versuchen eine zweite Transaktion in eine alternative gültige 39 Blockchain einzubauen, auf dieser Basis selber oder kollektiv zu Minen und diese Blockchain nach Erzeugung von M gültigen Blöcken veröffentlichen. Wenn die Mehrheit nun auf dieser Basis weitere Blöcke erzeugt, erhält der Angreifer seine Bitcoin zurück. Gelingt dies nicht, kann der Angreifer versuchen den Hauptblockchain zu überholen. Sollte dies gelingen, ist der Angriff erfolgreich. Die hierzu benötigte Rechenleistung ist sehr hoch. So liegt die Wahrscheinlichkeit eines erfolgreichen Angriffs bei b=6 Bestätigungen und einer Rechenleistung von 10% des Gesamtnetzwerkes bei weniger als 0,1% ([Rosenfeld 2012], S.10) 2.3.4 Hashleistung und Stromverbrauch In der Vergangenheit war es möglich, dass ein einzelner Miner über die Rechenleistung des Hauptprozessors (CPU)6 seines Computers einen neuen Block erstellen konnte. Da im Laufe der Zeit immer mehr Miner neue Bitcoin erzeugen wollten, stieg auch die benötigte Rechenleistung stetig an. Dies hatte wiederum zur Folge, dass die alle 2016 Blöcke berechnete neue Schwierigkeit ebenfalls anstieg. Somit mussten einzelne Miner noch mehr Rechenleistung aufbringen um die gleiche Belohnung, wie vor der Erhöhung der Schwierigkeit zu erhalten. Die Rechenleistung wird in diesem Zusammenhang als Anzahl der errechneten doppelten SHA-256 Hashwerte pro Sekunde ausgedrückt und im Folgenden auch als Hashrate bezeichnet. Zunächst wurde eine höhere Hashrate erzeugt, indem die Miner statt des CPU ihre Grafikkartenprozessoren (GPU)7 einsetzten und ihre Rechenleistung in „Pools“ mit anderen Minern gebündelt haben. Wurde ein neuer Block erzeugt, dann wurde nach unterschiedlichen Verfahren und eingebrachter Rechenleistung der Wert der neu erzeugten Bitcoin unter den Poolteilnehmern aufgeteilt. 2011 wurden dann leistungsfähige Grafikarten in „Rigs“ verbunden und aufwendig gekühlt um eine maximale Rechenleistung zu erzielen. Zu dieser Zeit war das Minen mit normalen Prozessoren oder einfachen Grafikarten schon nicht mehr besonders profitabel. Spätestens ab Mitte 2013 brach eine neue Ära im Bitcoin-Mining an, denn nun wurde erstmals ein spezialisierter Chip eingesetzt, der nichts anderes kann als SHA-256 Hashwerte zu berechnen. Diese Anwendungsspezifische Integrierte Schaltung, englisch „Application-specific integrated circuit“ (ASIC) zwang nun Miner zur Anschaffung spezieller Hardware und das Erzeugung von Bitcoin war fortan nur mit entsprechender Investition profitabel. 6 7 CPU ist die Abkürzung für Central Processing Unit GPU ist die Abkürzung für Graphics Processing Unit 40 Am 01. Mai 2015 betrug die Hashrate des Bitcoin-Netzwerks Netzwerks 347909897 GH/s (Gigahash pro Sekunde). Sekunde) Vergleicht man diese Zahl mit der Hashrate eines Intel i77970k Prozessors [Bitcoin Wiki 2015g], 2015g] dann ist die Hashrate der CPU mit m bis zu 825 MH/s verschwindet gering. Aufgrund der errechneten Schwierigkeit werden einzelne Blöcke trotz der hohen Hashrate weiterhin durchschnittlich alle 10 Minuten erzeugt. Im Laufe der Zeit wurde die Spezialhardware mit den ASICS weiter verbessert und u mit eigenem Betriebssystem ausgestattet. Die Geräte benötigen lediglich einen Anschluss an das Internet und die Angabe eines Miningpools (siehe Abbildung 12), 12 ausreichend Stromzufuhr fuhr und eine gute Kühlung. Da für Berechnung der Hashwerte sehr viel Strom verbraucht wird, werden die Spezialchips sehr heiß und benötigen eine entsprechend leistungsfähige Kühlung. Abbildung 11:: Grafische Benutzungsschnittstelle eine Antminer S3 zur Einstellung eines Miningpools Eines der leistungsfähigsten gsfähigsten Geräte, der Antminer S5 von der chinesischen Firma Bitmain, schafft eine Gesamthashrate von 1155 MH/s bei einem Stromverbrauch von nur 0,51 Watt pro GH [Bitcoin Wiki 2015g]. 2015g] Auch der Preis von ca. 400 € (Stand: Mai 2015) ist verhältnismäßig günstig. gün Umgerechnet auf die Hashrate vom 01.05.2015 01.0 bräuchte man 311886954 31188695 Geräte mit einem Gesamtwert von rund 124 12 Milliarden €, um diese Leistung zu erzeugen. 41 Eine beispielhafte Umrechnung auf den Stromverbrauch ergibt bei der Leistungsaufnahme des Antminer mit 0,51 Watt pro Gigahash: ⋅ 'D DND' ≈ N , ' DP Dies entspricht ungefähr der halben Leistung des Atomkraftwerks Grohnde in Niedersachsen, das mit einer Leistung von 1360 Megawatt zu einem der leistungsfähigsten Atomkraftwerke in Deutschland zählt. 2.3.5 Blockgröße Wie bereits im Kapitel 2.2.5.2 beschrieben ist aktuelle Blockgröße auf 1000000 Bytes festgelegt. Betrachtet man nun beispielsweise Block #350000 vom 30.03.2015, dann hat dieser bereits eine Größe von 972850,586 Bytes bei insgesamt 1795 Transaktionen8. Hierbei können einzelne Transaktionen aufgrund der unterschiedlichen Ein- und Ausgänge auch unterschiedliche Größen haben. Um nun zukunftssicher arbeiten zu können und eine adäquate Anzahl von Transaktionen pro Tag zu bewältigen, muss die Größe der einzelnen Blöcke angehoben werden. Dies bedeutet aber eine Änderung im Protokoll, und alle Teilnehmer des Netzwerkes müssten sich eine neue Version des Bitcoin Core Clients installieren. Man spricht bei einer so entscheidenden Änderung am Protokoll, die nicht abwärtskompatibel ist, von einem Hard Fork. Ab dem Zeitpunkt dieser Änderung wird es zwei Blockchain geben. Eine Blockchain, die alle alten Clients verstehen und einen neuen Blockchain mit den entsprechend größeren Blöcken, die von den neuen Clients und Servern als gültig erkannt werden. Hierbei müssen die neuen Versionen der BitcoinProgramme beide Blockchain verarbeiten. Zukünftig werden so noch größere Datenmengen entstehen; die einzelnen Teilnehmer müssen sich entscheiden, ob sie dieses Datenvolumen auf Ihre Festplatte laden werden. Vermutlich fällt dann die Entscheidung zugunsten von Clients, die mit einem Bitcoin-Server kommunizieren oder auf solche, die nur die Header der Blöcke verarbeiten. Hierdurch verliert das System eine große Anzahl von Teilnehmern, die mit Ihrem Full-Node-Clients zur Verifikation und Verteilung der Informationen beitragen, was zu einer weiteren Zentralisierung des Netzwerkes führt. Entscheidend ist bei einer solchen Änderung, dass sich alle Teilnehmer möglichst schnell auf die neue Blockchain einigen, eine große Mehrheit bilden und keine zwei unterschiedlichen Währungen entstehen. 8 Die Informationen zu einzelnen Blöcken können über Blockexplorer wie beispielsweise auf der Webseite http://blockchain.info eingesehen werden. 42 2.4 Transparenz und Anonymität Das Bitcoin-System bietet für jeden die Möglichkeit, alle bisher getätigten Transaktionen zu verfolgen, wodurch zahlreiche neue Möglichkeiten entstehen. So könnten Spenden für bestimmte Organisationen an eine bestimmte Adresse überwiesen und von dort an wiederum bekannte Adressen weitergeleitet werden. Eine Unterschlagung von Geldern ist unmöglich, und alle Ausgaben können problemlos offengelegt werden. Tatsächlich gab es einen bedeutenden Fall in der Bitcoin Geschichte, einer Auktion von beschlagnahmten Bitcoin. Diese stammten von dem Silk-Road-Server einer Handelsplattform des Entwicklers Ross Ulbricht über die Nutzer beispielsweise Drogen, Waffen und gefälschte Ausweise kaufen konnten. Ulbricht wurde am 29. Mai 2015 zu lebenslanger Haft verurteilt [Wendt 2015], ein Teil der beschlagnahmten Bitcoin wurden zwischenzeitlich von den U.S. Marshals versteigert und an den Investor Tim Draper überwiesen. Diese Transaktion über 29685,7984 BTC kann im Blockchain nachverfolgt werden. Sendeadresse der U.S. Marshals QC D CC) R)(S PAQC T U AVW Empfängeradresse des Investors Tim Draper NXY Z [ U# \SC ] N9 Q8 S So ist jede beliebige Zahlung nachvollziehbar und folgendes Szenario denkbar: Eine Firma zahlt Ihrer Angestellten Alice monatlich das Gehalt als Bitcoin. Alice kauft nun bei einem Händler ein neues Telefon und überweist Ihre fällige Stromrechnung an die Bitcoin-Adresse der Stadtwerke. Der Händler und die Stadtwerke haben nun beide die Möglichkeit, sich näher über den Ursprung der überwiesenen Bitcoin zu informieren. Demnach ist es ohne großen Aufwand möglich, die Gehaltshöhe, Zahlungen für Strom und jedes beliebige Kaufverhalten nachzuvollziehen. Alice hat die Möglichkeit, jede neue Zahlung an eine neue Adresse schicken zu lassen und ebenso die Möglichkeit sich selber die Bitcoin an beliebige andere eigene Adressen zu transferieren. Diese neuen Adressen nutzt Alice zur Zahlung im Onlineshop. Aber auch in diesem Fall kann der Onlineshop-Betreiber die gesendeten Bitcoin nachverfolgen, da die ursprüngliche Adresse in der Liste der Eingänge der Transaktion gespeichert wird. Zusammen mit weiteren Informationen wie der IP Adresse oder der angegebenen Rechnungsadresse könnte sich der Betreiber nun genaues Bild von der Kundin machen. Wie von Fergal Reid und Martin Harrigan beschrieben ist Anonymität im BitcoinSystem nicht möglich und eine starke Anonymität auch kein prominentes Entwick- 43 lungsziel [Reid / Harrigan 2012]. Das Verwenden unterschiedlicher Adressen und Systeme verschiedener Zahlungsanbieter ermöglicht dennoch einen gewissen Schutz. 3 Praktischer Einsatz von Kryptowährungen Damit die Kryptowährung Bitcoin als Alternative für die bisherigen Zahlungs-und Überweisungsverfahren in Frage kommt, muss gewährleistet sein, dass sie im täglichen Einsatz intuitiv eingesetzt werden kann und kein Spezialwissen vorausgesetzt werden muss. Die Netzteilnehmer und somit potentielle Anwender von Bitcoin brauchen einfach einsetzbare Programme und zugeteilte Einheiten von Bitcoin. Welche Möglichkeiten es gibt, an Bitcoin zu gelangen (Kapitel 0), wie Guthaben eingesetzt und gesichert werden kann (Kapitel 3.2 und 3.3) und welche neuen Einsatzzwecke und Chancen durch eine Kryptowährung gegeben sind, wird in den folgenden Kapiteln beschrieben. 3.1 Beschaffung von Bitcoin Ziel der Kryptowährung Bitcoin war es, dass jeder Teilnehmer des Netzwerkes die Möglichkeit haben sollte, durch Einbringung einer gewissen Arbeitsleistung eigene Bitcoin zu erzeugen. Dies ist, wie im Kapitel 2.3.4 beschrieben, heute nur noch mit sehr großem Aufwand und Spezialhardware möglich, weshalb hier Alternativen zum Einsatz kommen müssen. 3.1.1 Bitcoin als Gehalt / Einnahme Eine Möglichkeit an Bitcoin zu gelangen, ist seinen Arbeit- oder Auftraggeber zu bitten, den Lohn für die Arbeitsleistung oder fällige Aufwandsentschädigungen komplett oder teilweise in der Kryptowährung zu bezahlen. Dies gilt vor allem für Länder, in denen Überweisungen aufgrund fehlender Bankkonten nicht möglich sind. Bitcoin können als Zahlungsmittel im eigenen Unternehmen oder Webshop akzeptiert werden, und dank einer Vielzahl kostenloser Programme ist auch das Empfangen auf mobilen Geräten, wie dem Smartphone oder speziellen Hardwarewallets (Kapitel 0), sehr einfach. 3.1.2 Börsen und Marktplätze Die einfachste Möglichkeit an Bitcoin zu gelangen ist es, Bitcoin zu kaufen. Hierzu gibt es diverse Marktplätze und Börsen (Exchanges), die es ermöglichen, andere Währungen einzutauschen. Marktplätze stellen eine Plattform zur Verfügung, über die Ihre Nutzer mit Bitcoin kaufen oder verkaufen können. Bei Bitcoin-Börsen ist es nötig, eine Wäh44 rung einzuzahlen und diese gegen eine andere zu tauschen. Hierbei ist es nicht relevant, ob es sich um eine Krypto- oder eine Fiatwährung (Kapitel 2.2) handelt. Bis Ende 2014 war es deutschen Nutzern außerdem möglich, über die Plattform localbitcoins.com andere Nutzer zu finden und sich dann mit diesen direkt zu Treffen um Bitcoin gegen Bargeld zu tauschen. Das dort eingesetzte Verfahren wird in dieser Arbeit nicht weiter betrachtet. Im Folgenden werden ich drei Plattformen näher vorstellen. 3.1.2.1 Bitcoin.de Bei Bitcoin.de handelt es sich im einen Marktplatz der Bitcoin Deutschland AG, die als vertraglich gebundener Vermittler der Fidor Bank AG (Webseite: http://www.fidor.de) auftritt. Durch die Bindung mit der Fidor Bank AG ist dem Nutzer höchste Sicherheit beim Handel mit Bitcoin geboten. Abbildung 12: Übersicht der möglichen An- und Verkäufe von Bitcoin Um auf dem Marktplatz mit Bitcoin zu handeln, wird zunächst ein kostenloses Konto vorausgesetzt. Hierzu werden zunächst ein Benutzername und ein Passwort festgelegt und der Nutzer über eine gültige E-Mail-Adresse verifiziert. Als nächstes wird die Postanschrift abgefragt und zwingend eine gültige Mobilfunknummer angegeben, die über ein SMS-Verifizierungsverfahren zu bestätigen ist. Als letzte Voraussetzung muss eine gültige Kontoverbindung angegeben oder alternativ direkt über die Seite von bitcoin.de 45 ein Konto bei der Fidor Bank AG erstellt werden. Sollte ein bereits vorhandenes Konto angegeben werden, dann ist dieses über ein Verifizierungsverfahren der SOFORT GmbH (Webseite: www.sofort.com) zu bestätigen. Bei der SOFORT GmbH handelt es sich um ein Unternehmen, das mit nahezu allen deutschen Banken zusammenarbeitet und in Deutschland Marktführer für Direktüberweisungsverfahren ist. Zur Verifizierung des Bankkontos bucht bitcoin.de nun einen geringen Geldbetrag von dem angegebenen Konto des Nutzers ab, der dieses durch die Eingabe seiner PIN bestätigt und danach sofort verifiziert ist. Ist die Mobilfunknummer und das Bankkonto bestätigt, steht dem Handel mit Bitcoin nichts mehr im Wege. Bitcoin.de stellt dem Nutzer hierzu die nötige Infrastruktur bereit und vermittelt und moderiert die Geschäfte zwischen den angemeldeten Nutzern. Grundsätzlich sind alle verifizierten Nutzer, die die o.g. Bedingungen erfüllen, für den Handel mit Bitcoin zugelassen. Allerdings ist das Handelsvolumen zunächst auf 2500 € pro Jahr und 1000 € pro einzelnen Handel beschränkt. Um höhere Beträge handeln zu können und eine vollständige Identifikation zu erreichen, bietet Bitcoin.de drei unterschiedliche Möglichkeiten an: 1. Es wurde in den letzten 12 Monaten ein Handelsvolumen (An- und Verkauf) von mindestens 10,5 Bitcoin erreicht. 2. Ein kostenloses Bankkonto wurde bei der Fidor Bank AG eingerichtet 3. Der Nutzer lässt sich um der SOFORT GmbH und einem kostenpflichtigen PostIdentVerfahren verifizieren. Der Verifikationsstatus des Nutzers wird auf der Marktplatzseite angezeigt und bietet zusätzliche Sicherheit beim Handel. Für eine Transaktion berechnet botcoin.de dem Nutzer 1% Gebühr auf die Gesamtsumme, die zu jeweils der Hälfte vom Käufer und Verkäufer getragen wird. 3.1.2.2 Kraken.com Das bereits 2011 gegründete und in San Francisco/USA ansässige Unternehmen ermöglicht den Handel mit US Dollar, Euro, britischen Pfund und japanischen Yen. Hierbei kann neben Bitcoin auch die alternative Kryptowährung Litecoin (LTC) eingesetzt werden. Zusätzlich können die Kryptowährungen Litecoin (LTC), Dogecoin (XDG). Ripple (XRP), Namecoin (NMC), Stellar (STR) und Ven (XVN) gegen Bitcoin getauscht oder mit Bitcoin gekauft werden. Litecoin und Namecoin werden im Anhang B vorgestellt. Wie auch bitcoin.de ist kraken.com eine strategische Partnerschaft mit der von der BaFIN9 überwachten Fidor Bank AG eingegangen und schafft somit eine erhöhte Vertrauensbasis für deutsche Nutzer. 9 BaFIN steht für Bundesanstalt für Finanzdienstleistungsaufsicht 46 Die Anmeldung gestaltet sich wie auch bei bitcoin.de mit Angabe eines Benutzernamens und E-Mail-Adresse einfach, und nach Verifizierung der E-Mail-Adresse kann ein erster Blick auf das System geworfen werden. Ein Handel bzw. An- und Verkauf ist in diesem Status, der von Kraken als Tier 0 bezeichnet wird, noch nicht möglich. Je nach Verifikationsstufe ist ein festgelegtes Volumen für Ein- und Auszahlungen möglich. Verifikation Tageslimit Monatliches Limit Voraussetzung Tier 0 0$ 0$ Tier 1 1.000 $ 5.000 $ 2. 3. 4. • Kompletter Name Geburtsdatum Land (Staatsangehörigkeit und Aufenthalt) Telefonnummer Tier 2 2.000 $ 10.000 $ • • Tier 1 Verifizierte gemeldete Adresse Tier 3 20.000 $ 100.000 $ • • • Tier 2 Ausweisnummer Nachweis des Aufenthalts an der gemeldeten Adresse (z.B. neueste Telefonrechnung) Sozialversicherungsnummer (nur USA) Foto eines Ausweises (nur Deutschland, z.B. Personalausweis, Reisepass oder Führerschein) 1. Benutzerkonto • • Tier 4 100.000 $ 500.000 $ • Nur auf Anfrage möglich Als Gebühren verlangt Kraken pro Transaktion von Bitcoin zu Euro (und umgekehrt) lediglich 0.35% des gehandelten Betrages. Zusätzlich sind die Gebühren gestaffelt und sinken je nach Handelsvolumen auf bis zu 0,1%. Als Berechnungsgrundlage werden hierbei alle Ein- und Ausgänge innerhalb der letzten 30 Tage berücksichtigt. Der aktuelle Gebührensatz wird dem Nutzer auf seiner Übersichtseite angezeigt (siehe Abbildung 11). Auszahlungen sind vom jeweiligen Partner abhängig und betragen bei einer SEPAÜberweisung der verfügbaren Euro auf das Referenzkonto 0,09 €. Hierbei ist es nicht möglich, fremde Bankkonten anzugeben, und der Name des Zahlungsempfängers muss immer dem des beim Benutzerkonto hinterlegten und verifizierten Kontakts entsprechen. Eine Auszahlung ist zudem als SWIFT-Überweisung möglich; allerdings sind Auszahlungen hier deutlich teurer: Kraken berechnet eine Gebühr von 5,00 € für Zahlungen an SEPA-Konten oder an Bankkonten innerhalb von den USA und Kanada. Für alle anderen Länder werden 40,00 € EUR berechnet. Als weitere Einschränkung sind 47 aufgrund grund der Bankenrichtlinien der Fidor Bank AG Zahlungen per SWIFTÜberweisung nur an Banken möglich, die sich in dem Land befinden, in dem der Nutzer gemeldet ist. Abbildung 13: Übersichtsseite der Bitcoin-Börse Börse Kraken.com 3.1.2.3 Coinbase.com oinbase.com Eine weitere Handelsplattform lattform für Bitcoin ist Coinbase.com. Das Unternehmen wurde im Juni 2012 gegründet und hat ebenfalls in San Francisco seinen Hauptsitz. Coinbase legt seinen Schwerpunkt auf die Verwaltung der Bitcoin in einem Online-Wallet Online in der jeweiligen Landeswährung. Auch Coinbase benötigt ein Benutzerkonto mit entspreentspr chender Verifizierung rung der E-Mail-Adresse E Adresse und zur weiteren Absicherung des Kontos eine Empfangsmöglichkeit lichkeit für SMS. Coinbase ermöglicht aktuell (Juni 2015) den Anund Verkauf kauf in der Landeswährung des Nutzers in 25 unterschiedlichen Ländern und ist in deutscher Sprache verfügbar. Auszahlungen in Euro werden in Deutschland alleralle dings noch nicht unterstützt terstützt und so ist lediglich das Wallet nutzbar. Hier bietet Coinbase als besonderen onderen Service einen Tresor, Tresor um die Bitcoin sicher aufzubewahren, aufzubewahren sowie die Möglichkeit, jede Transaktion aus dem Tresor zu einer beliebigen Adresse innerhalb von 48 Stunden abzubrechen. Der Tresor verfügt zudem über ein MehrfachsignaturenMehrfac Wallet um das eigene igene Guthaben Gu zu schützen. 48 In den Ländern, die von Coinbase unterstützt werden, hat der Nutzer lediglich eine Ausweiskopie hochzuladen und über eine Einzahlung sein eigenes Bankkonto zu verknüpfen. 3.1.3 Geldautomaten Eine besonders komfortable Möglichkeit um Bargeld gegen Bitcoin zu tauschen sind Geldautomaten. Hierbei wird zwischen 1-Way-Geldautomaten, also Automaten, die nur eine Richtung ermöglichen und die die eingezahlte Landeswährung in Bitcoin umrechnen und dem Betrag an das angegebene Wallet übertragen und 2-Way-Geldautomaten unterschieden. 2-Way-Automaten ermöglichen zusätzlich die Auszahlung von Bargeld, was vor allem für Reisende interessant ist, die somit Ihr Bargeld nicht mitführen müssen, sondern bequem an einem Automaten im Zielland den benötigten Bargeldbetrag in der Landeswährung abheben können. Beim Abhebungsprozess ist es jedoch notwendig, dass sich der entsprechende Anwender ausreichend verifiziert und der entsprechende Bitcoin-Betrag auch von anderen Netzteilnehmern bestätigt wird. Je nachdem, wann der nächste Block gefunden wird (Kapitel 2.2.5.2), kann die Freigabe des Geldbetrages ein paar Minuten dauern. Zu den ersten in Deutschland aufgestellten Bitcoin-Automaten gehört der am 05. Februar 2014 von Jörg Patzer in seiner Burgerbar „Room 77“ in Berlin Kreuzberg aufgestellte 1-Way-Automat der Firma Lamassu [Kannenberg 2012]. Schon ein Jahr zuvor überzeugte Patzer unterschiedliche Einzelhändler in der näheren Umgebung, die neue Währung für ihre Waren und Dienste zu akzeptieren [Weiss 2012]. Der günstigste verfügbare 1-Way-Automat ist bereits für 999 $ zu bekommen10; jedoch gestaltet sich das Aufstellen eines Automaten aufgrund der rechtlichen Voraussetzungen in Deutschland sehr schwierig. Auf zwei Monate begrenzte Testaufstellungen mit einem maximalen Transaktionsvolumen von 100 € werden von der zuständigen Bundesanstalt für Finanzdienstleistungsaufsicht (BaFin) als nicht kommerzielle Nutzung eingestuft. Soll der Einsatz jedoch ausgeweitet werden, ist eine entsprechende Lizenz notwendig [Bock 2014]. 3.2 Bitcoin-Programme Um verfügbare Bitcoin einsetzen zu können, den Überblick über Adressen zu behalten und um die privaten Schlüssel zu schützen, wird ein Client benötigt, der ein oder mehrere Wallets (Kapitel 2.2.4.3) verwalten kann. Im folgenden Abschnitt werden einige Möglichkeiten und die Unterschiede verschiedener Clients näher beschrieben. 10 Projekt Skyhook – Webseite http://www.projektskyhook.com 49 3.2.1 Full-Node-Clients Clients Als Full-Node-Client Client wird ein Programm bezeichnet, das als vollwertiger NetzwerkknoNetzwerkkn ten fungiert. Der Client bezieht beim ersten Programmstart die gesamte Blockchain aus dem Netz und speichert diese auf der Festplatte des Computers. Da die Blockchain eine Größe von mehreren Gigabyte einnimmt, dauert das Laden je nach Netzanbindung einiein ge Stunden tunden oder sogar Tage. T Ein Full-Node-Client Client ist ein wichtiger Bestandteil des Bitcoin-Systems Systems und dieses, dieses indem der Transaktionen und Blöcke verifiziert und an angeschlossene Peers weiterleitet weiterle werden. Abbildung 14: Überweisungsdialog ungsdialog des Bitcoin Core Clients Der Referenzclient Bitcoin Core ist übersichtlich gestaltet und bietet etet die wichtigsten Funktionen wie: • • • • • Verwalten von EinEin und Ausgangsadressen Übersicht der EinEin und Ausgangstransaktionen Sicherung und Verschlüsselung des d Wallets Nachrichten Signieren und Verifizieren Kommandozeilenfunktionen zur Abfrage Abfr ge und Aktualisierung der Blockchain 50 Bei der Installation erstellt Bitcoin Core bereits 100 Adressen mit dazugehörigen Schlüsseln, die in einer Wallet.dat gespeichert werden. Um diese Datei vor Fremdzugriffen zu schützen, ist im Client eine Verschlüsselungsoption eingebaut und der Anwender kann das Wallet und alle darin enthaltenen Schlüssel mit einem extra Passwort sichern. 3.2.2 SPV-Clients Steht wenig Speicherkapazität zur Verfügung und kann nicht der komplette Blockchain geladen werden, dann ist es möglich eigene Zahlungen zu verifizieren, indem lediglich die Blockheader gespeichert werden. Nakamoto beschreibt dieses Verfahren als Simplified Payment Verification, kurz SPV [Nakamoto 2008]. Die Clients können über aktive Full-Node-Clients auf die Blockchain zugreifen und anhand der Header feststellen, ob die jeweils längste und somit gültige Blockchain verwendet wird. Der im Header gespeicherte Hashwert des Merkle-Trees ermöglicht dem SPV-Client alle Transaktionen herauszufiltern, in denen eigene Adressen gespeichert sind und ermöglichen somit die Gültigkeit eigener Zahlungen zu überprüfen [Bitcoin 2015]. 3.2.3 Serverabhängige-Clients Programme, die von einem Server abhängig sind, werden auch als Thin-Clients bezeichnet. Der große Vorteil solcher Programme besteht darin, dass diese sehr ressourcenschonend arbeiten. Alle Informationen und Funktionen werden von einem Server bereitgestellt, der wiederrum als Full-Node-Client fungier. Die Wallets und somit auch die Schlüssel, werden nicht auf dem Server gespeichert, sondern verbleiben auf dem Endgerät. Der quelloffene Client Copay11 bietet zusätzlich die Möglichkeit Wallets zu verwalten, auf die bis zu sechs Anwender mit unterschiedlichen Schlüsseln zugreifen können. Zusätzlich kann bei einem gemeinsamen Wallet die Anzahl der benötigten Unterschriften festgelegt werden. Eine Transaktion muss zunächst von bis zu vier unterschiedlichen Teilnehmern unterschrieben werden, bevor diese ausgeführt wird [Buterin 2014]. 3.3 Sicherung der Bitcoin Damit verfügbare Bitcoin nicht von dritten Personen für eigene Zahlungen verwendet werden, ist es notwendig Sicherheitsvorkehrungen zu treffen um dies zu verhindern. Hierzu muss der Zugriff auf die privaten Schlüssel ausgeschlossen sein, was über unterschiedliche Methoden realisiert werden kann. 11 Webseite: https://copay.io 51 3.3.1 Zugriffskontrolle Der Bitcoin Core Client bietet bereits die Möglichkeit, das Wallet mit einem Passwort zu versehen und verschlüsselt abzuspeichern. Ein Angreifer, der Zugriff auf den Computer mit dem installierten Client erlangt, hat nun keine Möglichkeit Zahlungen durchzuführen und auf die privaten Schlüssel zuzugreifen. Gelingt es einem Angreifer jedoch Schadsoftware zu installieren, dann ist beispielsweise über einen Keylogger12 möglich, das Passwort zur Entschlüsselung des Wallets auszulesen und so Zugriff auf die Bitcoin zu erlangen. Werden höhere Beträge über ein Wallet verwaltet, dann sind unbedingt weitere Sicherheitsvorkehrungen zu treffen, um den Zugriff auf dieses zu verhindern. 3.3.2 Two-Factor- Authentication Als Two-Factor-Authentication werden Verfahren bezeichnet, die neben der Eingabe eines Passwortes noch einen weiteren Schritt voraussetzen, um Zugriff auf das System zu erlangen. Hierzu wird ein externes Gerät eingesetzt, welches über eine spezielle Software, einen zeitlich begrenzten PIN-Codes13 erzeugt. Dieser Code wird über die Tastatur des Zielsystems eingegeben und verifiziert. Zu den bekanntesten Systemen, die im Zusammenhang mit Kryptowährungen eingesetzt werden, gehören der Google Authenticator, Authy und Yubikey. 3.3.2.1 Google Authenticator Bei dem Google Authenticator handelt es sich um ein System, welches auf Basis des hinterlegten Benutzernamens und aus dem aktuellen Zeitstempel, eine 6- oder 8stelligen nummerischen Code erzeugt. Dieser Code wird als zweiter Schritt, nach der bereits erfolgten Bestätigung des Passwortes, in den Eingabedialog des entsprechenden Programms eingegeben. Die Übermittlung des 6-stelligen Codes erfolgt über den Kurznachrichtendienst des Mobilfunknetzes (englisch für Short Message Service, Abk. SMS) oder über eine spezielle mobile Anwendungssoftware. Diese hat den Vorteil, dass der Anwender keine Netzverbindung benötigt und auch seine Mobilfunknummer nicht bereitstellen muss. Der Google Authenticator berechnet den Code mit einer speziellen Funktion, die den hinterlegten Benutzernamen und einen Zeitstempel benötigt. Zur Verifikation wird mit Hilfe einer mathematischen Formel, die Gültigkeit des Codes überprüft. Besitzt der Anwender kein mobiles Gerät, dann erfolgt die Verifikation über 8stellige Codes. Diese können auf der Google Webseite14 erzeugt werden. Der Anwender kann jeweils 10 Codes ausdrucken, die solange Ihre Gültigkeit behalten, bis alle aufge- 12 Ein Keylogger ist ein Programm, das Tastaturanschläge aufzeichnet. PIN ist die Abkürzung für Persönliche Identifikationsnummer 14 https://www.google.com/landing/2step 13 52 braucht wurden. Der freie Quelltext der Anwendung https://github.com/google/google-authenticator zu finden. ist auf der Webseite 3.3.2.2 Authy Wie bei dem Google Authenticator, werden auch bei Authy Codes erzeugt und per SMS oder einer speziellen App übermittelt. Authy erzeugt jedoch 7-stellige Codes mit einer Gültigkeit von jeweils 20 Sekunden und benötigt für die Überprüfung der Gültigkeit eine Netzverbindung. Bei diesem Verfahren sendet der Client, nach Eingabe des bereitgestellten Codes, diesen zusammen mit einer hinterlegten Kennung an den Server des Anbieters. Dieser überprüft die Gültigkeit und sendet das Ergebnis als Antwort an den Client. Eine entsprechende http://docs.authy.com zu finden. Dokumentation ist auf der Webseite 3.3.2.3 Yubikey Der Yubikey15 ist ein spezielles Hardwaregerät, welches über den Universal Serial Bus (USB) an den Computers angeschlossen wird und individuelle Codes erzeugt. Die Erzeugung eines neuen Codes übernimmt die Hardware und übermittelt diesen, nach Betätigung eines Tasters, direkt an den Eingabedialog des Clients. Die FIPS 140-2 Zertifizierung der NIST bestätigt, das Yubikey höchste Sicherheitsstandards erfüllt [NIST 2015]. 3.3.3 Hardware-Wallets Einen besonderen Schutz bieten Hardware-Wallets, da keine dauerhafte Verbindung mit anderen Knoten existiert und Hardware-Wallets selber über keine Netzanbindung verfügen. Hardware-Wallets sind kleine Geräte, welche persönliche Schlüssel speichern und Transaktionen erzeugen können. Um eine Transaktion zu erzeugen, muss das Gerät an einen Computer angeschlossen werden, um so mit einem speziellen Bitcoin-Client kommunizieren zu können. Die zu überweisenden Beträge und die dazugehörigen Adressen werden an das Gerät übermittelt und in diesem die notwendigen Transaktionen generiert. Die Transaktionen werden im Anschluss an den Client übermittelt und von diesem an das Netzwerk weitergeleitet. Die Besonderheit bei diesem Verfahren ist die Tatsache, dass Transaktionen innerhalb des Gerätes unterschrieben werden. Der private Schlüssel verlässt niemals das Gerät und wird zu keiner Zeit irgendeiner Person sichtbar gemacht wird [Bitcoin Wiki 2015i]. 3.3.4 Paperwallets Wenn die Bitcoin Adressen und private Schlüssel nicht online gespeichert werden, dann wird dieses Verfahren als Cold-Storage bezeichnet [Bitcoin Wiki 20015j]. Das Drucken 15 Webseite des Herstellers: http://www.yubico.com 53 der Adresse und des privaten Schlüssels auf ein Blatt Papier ist hierbei eine besondere Art der Speicherung, da die Daten nach der Erzeugung nicht mehr digital vorliegen. Wie in Kapitel 2.2.4.2 beschrieben, werden Adressen und private Schlüsseln mit kryptografischen Funktionen erzeugt, wodurch ein möglich ist, diese auf einem Computer ohne Verbindung zum Netzwerk zu erzeugen. Es existiert mit dem Entropy, ein USB-Stick der Firma Mycelium16 aus Luxembourg, über den alle notwendigen Algorithmen und Verfahren von einem Atmel® ARM® Cortex®-M Mikroprozessor berechnet werden und direkt als Bild an einen angeschlossenen Drucker ausgegeben werden [Mycelium 2015]. Die ausgedruckte Adresse kann dazu verwendet werden, um Bitcoin zu empfangen. Zur Überweisung von Bitcoin, wird der private Schlüssel über einen Dialog in den BitcoinClient übertragen. Dies geschieht entweder per Tastatureingabe oder über eine angeschlossene Kamera, die einen QR-Code verarbeitet, der bei der Erzeugung des Paperwallets ausgedruckt wurde. 16 Webseite: https://mycelium.com 54 4 Ergebnisse der Arbeit Nach Betrachtung der Möglichkeiten, die eine Kryptowährung wie Bitcoin bietet, ist vor allem viel Potenzial bei der Blockchain –Technologie zu erkennen. Der große Vorteil gegenüber anderen Systemen, ist die Tatsache, dass keine dritte Partei mehr benötigt wird, der die Kommunikationspartner bei der Abwicklung Ihrer Zahlungen oder Geschäfte vertrauen müssen. Transaktionen werden von allen Teilnehmern, die sich gegenseitig nicht vertrauen müssen, überprüft und dezentral gespeichert. Viele Projekte befinden sich bereits in der Entwicklung (Stand Mai 2015) und verifizieren Besitzrechte oder intelligente, digitale, automatische Verträge über die Blockchain. Smart Contracts ermöglichen bestimmte Ereignisse, die durch Programmcode in Form von Wenn-DannBedingungen ausgelöst und über die Blockchain verifiziert werden. Banken, Anwälte, Notare oder Vermittler werden überflüssig [Keuper 2015]. Mögliche Szenarien sind Kaufverträge, die nach Eingang einer Zahlung digitale Dokumente freischalten oder Vereinbarungen, die erst zu bestimmten Zeiten eintreffen und den Zugriff auf festgelegte Beträge erst zu einem bestimmten Datum freigeben. Alle möglichen Szenarien, kommen ohne einen Vermittler aus und die Gültigkeit der einzelnen Aktionen wird mit mathematischen Formeln bewiesen. In dieser Arbeit wird auch deutlich, dass Kryptowährungen noch einige Schwächen haben. Hierzu gehört vor allem die notwendige Erhöhung der Blockgröße und somit die Möglichkeit mehr Transaktionen pro Tag zu überprüfen. Die Datenmenge wird immer größer und es werden immer weniger Teilnehmer die ganze Blockchain speichern. Dies hat zur Folge, dass die Dezentralität verloren geht und beschriebene Angriffsszenarien möglich werden. Es gibt bisher noch keine Aussagen zur Belastbarkeit des Systems und was passiert, wenn die Transaktionen nicht mehr abgearbeitet werden können. Ausgehend von der Fragestellung der Arbeit, ob Kryptowährungen auch eine Alternative sein können, werden im Folgenden zwei mögliche Szenarien betrachtet. 4.1 Alternative zum Transport der SWIFT-Nachrichten Das SWIFT-System bietet einen gesicherten Austausch von Nachrichten, deren Aufbau im Laufe der Jahre und in Zusammenarbeit mit den Teilnehmern entwickelt wurde. Das SWIFT-System ist hier lediglich ein Transportkanal um diese Nachrichten zu übermitteln. Die einzelnen Nachrichten werden dabei verschlüsselt über festgelegte Kommunikationswege übertragen und von den Konzentratoren und Operating Centern überprüft. 55 Der zentrale Aufbau des SWIFT-Systems könnte durch die Nutzung der dezentral gespeicherten Blockchain abgelöst werden. Die Eingabeterminals könnten direkt über die Blockchain mit dem Empfänger kommunizieren und Konzentratoren und teure Operating Center könnten eingespart werden. Der verschlüsselte Nachrichteninhalt könnte weiterhin das festgelegte Format behalten und in einer oder in mehreren Transaktionen gespeichert werden. Die Daten wären nicht für andere lesbar und können nur vom Empfänger entschlüsselt werden. Die Speicherung erfolgt dabei über speziell für diesen Zweck erzeugte Adressen, deren Hashwert jeweils einen Teil der Nachricht bilden. Größere Nachrichten könnten über mehrere Transaktionen in der Blockchain gespeichert werden. Ein 2,5 MB großes Dokument wurde bereits erfolgreich über 120 Transaktionen in der Blockchain gespeichert. [Bergmann 2014]. Der Überweisungsbetrag für eine solche Transaktion sollte nicht zu gering gewählt werden. Erfolgreiche Transaktionen wurden mit jeweils 5500 Satoshi = 0,000055 BTC verschickt17. Eine Umstellung der aktuellen SWIFT-Transportkanäle auf die Blockchain-Technologie ist unter Berücksichtigung der aktuellen technischen Möglichkeiten momentan nicht realisierbar. Das Bitcoin-System kann momentan die Anzahl der täglichen Nachrichten des SWIFT-Systems nicht bewältigen. Dies kann anhand einer kleinen Beispielrechnung verdeutlicht werden. Transaktionen mit jeweils einem Eingang und einem Ausgang haben eine Größe von 134 Bytes. Wird die Größe des Blockheaders vernachlässigt und die maximal mögliche Blockgröße durch die Größe einer Transaktion geteilt, dann ist das Ergebnis die maximal mögliche Anzahl der Transaktionen pro Block. Ausgehend von einer durchschnittlichen Blockanzahl von 144 pro Tag, kann so die maximale Anzahl an Transaktionen errechnet werden: ⋅ ≈ ' Bei dieser Rechnung wird die kleinstmögliche Transaktionsgröße als Grundlage genommen und liefert eine Anzahl von etwa 1 Million möglichen Transaktionen pro Tag. Tatsächlich kommen solche kleinen Transaktionen nur noch vor, wenn ein einzelner Miner alleine einen Block erzeugt. Aus diesem Grund die tatsächliche Anzahl der möglichen Transaktionen wesentlich geringer. Würden wir eine Blockgröße von 20 MB zur Berechnung heranziehen, dann würde das Bitcoin-System bei 134 Bytes großen Transaktionen immerhin 21492537 Transaktionen pro Tag ermöglichen. Dieses Ergebnis von ca. 21,5 Millionen Transaktionen liegt unter 17 Siehe Hilfeseite der Webseite http://cryptograffiti.info 56 der Anzahl der Nachrichten, die vom SWIFT-System pro Tag verarbeitet werden und die im Jahresbericht 2013 mit 22 Millionen angegeben wurde ([SWIFT 2014], S. 2). Der Einsatz der Blockchain-Technologie des Bitcoin-Systems kommt auf Grundlage der beschriebenen Erkenntnisse als Alternative für den Transport der Nachrichten nicht in Frage. 4.2 Alternative als internationales Zahlungsmittel Das SWIFT-System ermöglicht über den Austausch von Nachrichten den Transfer von Geld oder andern Werten. Als zentral gesteuertes System mit festgelegten Regeln, entscheiden die beteiligten Banken darüber, wer dieses System nutzen darf. Wie in Kapitel 2.1.4.2 (Nachteile des SWIFT-Systems) beschrieben, könnten ganze Länder unter bestimmten Umständen ausgeschlossen werden und wären somit in Ihrer Handlungsfähigkeit stark eingeschränkt. Innerhalb des jeweiligen Landes sind Zahlungen weiterhin möglich, für internationale Zahlungen gibt es jedoch nur wenige Alternativen. Desweiteren existieren eine unbestimmte Anzahl von Menschen in den jeweiligen Ländern, die aus unterschiedlichen Gründen über kein eigenes Konto verfügen, woraus sich eine starke Abhängigkeit von anderen ergibt. Ausgehend von diesen Tatsachen, ist feststellbar, dass Kryptowährungen nicht nur eine Alternative für das SWIFT-System sind, sondern darüber hinaus sogar für viele die einzige Möglichkeit Geldbeträge zu erhalten oder zu verschicken. Um eine Kryptowährung wie Bitcoin zu nutzen, bedarf es lediglich einer Internetverbindung. Zum Empfang wird lediglich eine Adresse benötigt. Hierbei sind keine Höchstbeträge oder sonstige Limitierungen zu berücksichtigen und es ist auch kein besonderes Dokument nötig, um sich auszuweisen. Bestimmte Zahlungen könnten darüber hinaus besonders gekennzeichnet werden, um so beispielsweise Transparenz beim FairTrade-Handel zu ermöglichen. Es sind spontane Zahlungen möglich um kurzfristig Familienangehörige oder Freunde im Ausland zu unterstützen, die eventuell gerade Ihr Taxi nicht bezahlen können oder beim Einkauf neuer Kleidung nicht das passende Kleingeld dabei haben. Hierbei spielt es keine Rolle an welchem Ort der Welt sich diese Person aufhält. Bitcoin können ohne großen Zeitaufwand und mit geringen Kosten übermittelt werden. 57 5 Fragen und Ausblicke Kryptowährungen befinden sich noch in der Betaphase und werden kontinuierlich weiterentwickelt. Doch täglich werden neue Nachrichten und Pläne veröffentlicht. Es können bereits heute eine große Zahl unterschiedlicher Waren mit Bitcoin bezahlt werden. Täglich kommen neue Möglichkeiten hinzu, die den Besitz und die Verwendung von Bitcoin sinnvoller machen. Es sind noch einige Hürden zu bewältigen, die den Einsatz hemmen. Hierzu gehört, das fehlende Verständnis des Bitcoin Systems. Rechtliche und steuerliche Grundlagen sind nicht geklärt, um Bitcoin sinnvoll einsetzen zu können. Hier sind die Institutionen gefordert Regeln aufzustellen und für die nötige Aufklärung zu sorgen. Bitcoin steht vor großen Aufgaben, allen voran die Erhöhung der Blockgröße. Auch in diesem Fall gibt es noch keine Erfahrungswerte, wie sich das Gesamtnetzwerk verhält und welche Schwierigkeiten durch die neuen Datenmengen entstehen. Smart Contracts zeigen nur eine Möglichkeit, eine Kryptowährung zu nutzen, wie es bisher nicht möglich war. Bitcoin liefert eine neue Transportmöglichkeit für Vertrauen und Regeln. Die Blockchain kann Prozesse steuern und erleichtert eine Vielzahl von Entscheidungen. Die Teilnehmer bestimmen, wie Ihr Vermögen eingesetzt wird und können Ihre Zahlungen in einer neuen Dimension verfolgen. Ob ein System wie SWIFT zukünftig ersetzbar ist, kann zum heutigen Zeitpunkt nicht beantwortet werden. Fest steht aber: Kryptowährungen wie Bitcoin gehören schon jetzt für viele Menschen zum Alltag und das wird es auch so bleiben. 58 6 6.1 Literaturverzeichnis Bücher und Zeitschriften [Dobberin/Bosselaers/Preneel 1996] H. Dobbertin, H., Bosselaers, A. und B. Preneel: RIPEMD-160: a strengthened version of RIPEMD, Fast Software Encryption, Lecture Notes in Computer Science 1039, Heidelberg 1996 [Etzkorn 1991] Etzkorn, J.: Rechtsfragen des internationalen elektronischen Zahlungsverkehrs durch S.W.I.F.T, Berlin 1991 [Ladig 2006] Ladig, P.: S.W.I.F.T.- Eine Strukturanalyse des internationalen Datennetzes der Banken, Seminararbeit, Berlin 2006. [Loh 1983] Loh, W. W.: Das S.W.I.F.T.-System. Die moderne Datenübertragung im internationalen Zahlungsverkehr, Frankfurt 1983. [Miller 2005] Miller, M.: Geopolitische Vermögenssteuerung: Vermögensanlage rund um den Globus - von Andorra über Panama und Singapur bis Zypern, München 2005. [Platzer 2014] Platzer, J., Bitcoin - kurz & gut: Banking ohne Banken, Köln 2014 [Schimansky/Bunte/Lwowski 2011] Schimansky, H., Bunte H.-J. und H.-J. Lwowski, Bankrechts-Handbuch; 4. Aufl., München 2011 [Schmeh 2013] Schmeh, K.: Kryptografie: Verfahren, Protokolle, Infrastrukturen; 5. Aufl. Heidelberg 2013. [Schricker/Rubin 1992] Schricker, W. und E. Rubin: Geld & Kredit & Währung; 6. Aufl., München 1992. [Wahlers 2013] Wahlers, K.: Die rechtliche und ökonomische Struktur von Zahlungssystemen innerund außerhalb des Bankensystems, Berlin 2013 6.2 Online-Quellen [Bale 2012] Bale, S.: SWIFT ist nach Beschluss des EU-Rats angewiesen, von Sanktionen betroffene iranische Banken von seinen Services auszuschließen, SWIFT-Pressemitteilung, 15. März 2012, http://www.swift.com/resources/documents/PR_Iran_BIC_disconnection_de.pdf [29.11.2014] 59 [Barth 2012] Barth, M. und Bundesverband Bitcoin e.V.: SEPA-Leitfaden, Berlin 2012. http://www.bitkom.org/files/documents/BITKOM_SEPA-Leitfaden.pdf [17.09.2014] [Bergmann 2014] Bergmann, Ch.: Versteckte Botschaften in der Blockchain, August 2014 http://bitcoinblog.de/2014/08/27/versteckte-botschaften-in-der-blockchain [24.04.2015] [Bitcoin 2015] Bitcoin Wiki (diverse Autoren): Bitcoin Developer Guide https://bitcoin.org/en/developer-guide [23.05.2015] [Bitcoin Quellcode 2015] Bitcoin Quellcode (diverse Autoren): Branch 0.11 https://github.com/bitcoin/bitcoin/tree/0.11 [22.04.2015] [Bitcoin Wiki 2015] Bitcoin Wiki (diverse Autoren): Technical background of version 1 Bitcoin addresses, https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses [09.03.2015] [Bitcoin Wiki 2015a] Bitcoin Wiki (diverse Autoren): Base58Check encoding, https://en.bitcoin.it/wiki/Base58Check_encoding [09.03.2015] [Bitcoin Wiki 2015b] Bitcoin Wiki (diverse Autoren): List of address prefixes, https://en.bitcoin.it/wiki/List_of_address_prefixes [09.03.2015] [Bitcoin Wiki 2015c] Bitcoin Wiki (diverse Autoren): Controlled Supply, https://en.bitcoin.it/wiki/Controlled_supply [09.03.2015] [Bitcoin Wiki 2015d] Bitcoin Wiki (diverse Autoren): Block hashing algorithm, https://en.bitcoin.it/wiki/Block_hashing_algorithm [10.04.2015] [Bitcoin Wiki 2015e] Bitcoin Wiki (diverse Autoren): Weaknesses https://en.bitcoin.it/wiki/Weeknesses [10.04.2015] [Bitcoin Wiki 2015f] Bitcoin Wiki (diverse Autoren): Double spending https://en.bitcoin.it/wiki/ Double-spending [10.04.2015] [Bitcoin Wiki 2015g] Bitcoin Wiki (diverse Autoren): Mining hardware comparison, https://en.bitcoin.it/wiki/Mining_hardware_comparison [23.05.2015] [Bitcoin Wiki 2015h] Bitcoin Wiki (diverse Autoren): Non specialized hardware comparison, https://en.bitcoin.it/wiki/Non-specialized_hardware_comparison [23.05.2015] [Bitcoin Wiki 2015i] Bitcoin Wiki (diverse Autoren): Hardware wallet, https://en.bitcoin.it/wiki/Hardware_wallet [23.05.2015] [Bitcoin Wiki 2015j] Bitcoin Wiki (diverse Autoren): Cold storage, https://en.bitcoin.it/wiki/Cold_storage [23.05.2015] 60 [Black 1997] Black, A.: hash cash postage implementation, 1997 http://www.hashcash.org/papers/announce.txt [09.03.2015] [Black 1997a] Black, A.: Hashcash, 1997 http://www.cypherspace.org/hashcash/docs/hashcash.html [10.04.2015] [Bock 2014] Bock, T.: Eröffnung des ersten Bitcoin Automaten in Süddeutschland , München 2014 http://satoshibay.com/de/bitcoin-automaten-in-muenchen/ [10.04.2015] [Brzoska 2014] Brzoska, M.: Neues Geld, neue Sorgen, Hamburg 2014. http://www.zeit.de/2014/02/bitcoin-digitale-waehrung [07.09.2014] [BÜSO 2014] Bürgerrechtsbewegung Solidarität: Russland und China schaffen Alternative zum SWIFT-System, Mainz 2014. https://www.bueso.de/node/7671 [18.09.2014] [Bundesverband Bitcoin 2014] Bundesverband Bitcoin e.V.: Das Bundesministerium für Finanzen droht Deutschland zum Innovationsverlierer zu machen, Pressemitteilung, Berlin 2014. http://www.bundesverband-bitcoin.de/wpcontent/uploads/2014/05/PressemitteilungUmsatzsteuer.pdf [07.09.2014] [Buterin 2014] Buterin, V.: Pybitcointools Multisig Tutorial, 2014 https://bitcoinmagazine.com/11113/pybitcointools-multisig-tutorial [10.05.2015] [C24 2014] C24 Technologies: Learn More About SWIFT, 2014 https://www.c24.biz/what-is-swift.html [20.12.2014] [Chaum 1983] Chaum, D.: Blind signatures for untraceable payments, Santa Barbara 1983 http://www.hit.bme.hu/~buttyan/courses/BMEVIHIM219/2009/Chaum.BlindSigForPay ment.1982.PDF [20.12.2014] [Dai 1998] Dai, W.: b-money, 1998 http://www.weidai.com/bmoney.txt [20.12.2014] [Danova 2014] Danova, H.: Official statement on 51% threat and closed round table, London 2014 http://blog.cex.io/news/official-statement-on-51-threat-and-closed-round-table-6619 [10.04.2015] [EBA 2014] European Banking Authority, EBC Opinion on ‘virtual currencies’, London 2014 http://www.eba.europa.eu/documents/10180/657547/EBA-Op-201408+Opinion+on+Virtual+Currencies.pdf [20.12.2014] [EBICS 2014] SIZ GmbH, EBICS - Electronic Banking Internet Communication Standard, Bonn 2014 http://www.ebics.de/fileadmin/unsecured/anlage3/anlage3_spec/Anlage_3_Datenformat standards-V2.8_Final.pdf [20.12.2014] 61 [ECB 2012] European Central Bank, Virtual Currency Schemes, Frankfurt am Main 2012 http://www.ecb.europa.eu/pub/pdf/other/virtualcurrencyschemes201210en.pdf [20.12.2014] [Feld 2013] Feld, C. : Reaktion des EU-Parlaments auf NSA-Aktion – Wird SWIFT-Abkommen ausgesetzt? Tagesschau.de, Brüssel 23. Oktober 2013. http://www.tagesschau.de/ausland/swift180.html [29.11.2014] [Fennen 2013] Fennen, N.: Netzpolitik.org: Bundesregierung erkennt Bitcoin als privates Geld an, Berlin 2013. https://netzpolitik.org/2013/deutsche-bundesregierung-erkennt-bitcoin-als-privatesgeld-an [07.09.2014] [GHash.IO 2014] (unbekannter Autor): GHash.IO is open for discussion, London 2014 http://www.pressat.co.uk/releases/ghashio-is-open-for-discussion93ee9eeb66b80e94bbe31705d451780e/ [10.04.2015] [Kannenberg 2014] Kannenberg, A.: Bitcoin: Erstmals gefährliche Konzentration der Mining-Leistung, Hannover 2014 http://www.heise.de/newsticker/meldung/Bitcoin-Erstmals-gefaehrliche-Konzentrationder-Mining-Leistung-2224113.html [10.04.2015] [Karame/Androulaki/Capkun 2012] Karame, G.O., Androulaki, E. und S. Capkun: Two Bitcoins at the Price of One? Double-Spending Attacks on Fast Payments in Bitcoin, Heidelberg/Zürich 2012 http://eprint.iacr.org/2012/248.pdf [10.04.2015] [Keuper 2015] Keuper, R.: Wie Smart Contracts Banken überflüssig machen, 2014 http://www.it-finanzmagazin.de/blockchain-bitcoins-wie-smart-contracts-bankenueberfluessig-machen-werden-9078 [04.05.2015] [King/Nadal 2012] Sunny King, S. und S. Nadal: PPCoin: Peer-to-Peer Crypto-Currency with Proof-ofStake, 2012 www.peercoin.net/assets/paper/peercoin-paper.pdf [10.05.2015] [Koschyk 2013] Koschyk, H.: Antwortschreiben auf Frage Nr. 409 für Juli 2013, Berlin 2013. http://www.frank-schaeffler.de/wp-content/uploads/2013/08/2013_08_07-AntwortKoschyk-Bitcoins-Umsatzsteuer.pdf [07.09.2014] [Krieger 2001] Krieger, U.: Elliptische Kurven – Basis für ein alternatives Public Key Kryptosystem, Gelsenkirchen 2001 http://www.ecc-brainpool.org/art_it.pdf [abgerufen am 20.05.2015] [Lamport/Shostak/Please 1982] Lamport, L., Shostak, R. und M. Please: The Byzantine Generals Problem, 1982 http://research.microsoft.com/en-us/um/people/lamport/pubs/byz.pdf [10.04.2015] 62 |Marwan 2008] Marwan, P.: Deutsche Post macht Filiale in Secon Life zu, München 2008. http://www.zdnet.de/39186538/deutsche-post-macht-filiale-in-second-life-zu [18.03.2015] [Merkle 2012] R. C. Merkle, Comments in 2012 about the 1979 paper: A Certified Digital Signature, 2012 http://www.merkle.com/papers/Certified1979.pdf [10.04.2015] [Mock/Theil 2014] Mock, M. und S. Theil: Bitcoins – eine virtuelle Währung, Berlin 2014. https://www.bundestag.de/blob/284592/dd2ebc5320cf5af551cfff024871c7e1/bitcoins--eine-virtuelle-waehrung-data.pdf [06.09.2014] [MPPRR 2013] Matusiewicz, K, Pieprzyk J., Pramstaller, N., Rechberger, Ch. und V. Rijmen: Analysis of simplified variants of SHA-256*, Sydney/Graz 2013 http://subs.emis.de/LNI/Proceedings/Proceedings74/GI-Edition74.-12.pdf [10.04.2015] [Mycelium 2015] (unbekannter Autor): Mycelium Entropy User Manual, Luxembourg 2015 https://mycelium.com/assets/entropy/me.html [20.05.2015] [Münzer 2013] Münzer, J.: Bundesanstalt für Finanzdienstleistungsaufsicht: Bitcoins: Aufsichtliche Bewertung und Risiken für Nutzer, Bonn 2013. http://www.bafin.de/SharedDocs/Veroeffentlichungen/DE/Fachartikel/2014/fa_bj_1401 _bitcoins.html [07.09.2014] [Nakamoto 2008] Nakamoto, S.: Bitcoin: A Peer-to-Peer Electronic Cash System, Whitepaper. https://bitcoin.org/bitcoin.pdf [21.10.2014] [Nikolsky 2014] Nikolsky, A.: Russia, China in talks to make alternative to SWIFT — Pressemitteilung, Moskau (Russland) 2014. http://en.itar-tass.com/economy/748916 [18.09.2014] [NIST 2009] National Institute of Standards and Technology: FEDERAL INFORMATION PROCESSING STANDARDS PUBLICATION: Digital Signature Standard (DSS), Gaithersburg 2009 http://csrc.nist.gov/publications/fips/fips186-3/fips_186-3.pdf [20.05.2015] [NIST 2012] National Institute of Standards and Technology: FEDERAL INFORMATION PROCESSING STANDARDS PUBLICATION: Secure Hash Standard (SHS), Gaithersburg 2012 http://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf [24.05.2015] [NIST 2015] National Institute of Standards and Technology: Cryptographic Module Validation Program, 2015 http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140val-all.htm [20.05.2015] 63 [NZZ 2013] Neue Züricher Zeitung: Swift bestreitet NSA-Spionage http://www.nzz.ch/aktuell/schweiz/swift-bestreitet-nsa-spionage-1.18151215 [28.12.2014] [Percival 2009] Percival, C.: Stronger Key derivation via sequential memory-hard Functions, 2009 http://www.tarsnap.com/scrypt/scrypt.pdf [20.05.2015] [Pitta 1999] Pitta, J.: Forbes: Requiem of a Bright Idea, Jersey City 1999 http://www.forbes.com/forbes/1999/1101/6411390a.html [20.12.2014] [Raid/Harrigan 2012] Raid, F. und M. Harrigan: An Analysis of Anonymity in the Bitcoin System, 2012 http://arxiv.org/pdf/1107.4524v2.pdf [10.05.2015] [Ripple Labs 2014] Ripple Labs Inc.: The Ripple Protocol Primer, San Francisco 2014. https://ripple.com/ripple_primer.pdf [20.09.2014] [Riverst 1992] Request for Commits 1320: The MD4 Message-Digest Algorithm, 1992. http://www.rfc-editor.org/rfc/rfc1320.txt [20.03.2014] [Riverst 1992a] Request for Commits 1321: The MD5 Message-Digest Algorithm, 1992. http://www.rfc-editor.org/rfc/rfc1321.txt [20.03.2014] [Rosenfeld 2012] Mosenfeld, M.: Analysis of hashrate-based double-spending, 2012. https://bitcoil.co.il/Doublespend.pdf [10.04.2015] [Rudlof 2006] Rudlof, C.: Handbuch Software-Ergonomie, Tübingen 2006. http://www.ukpt.de/pages/dateien/software-ergonomie.pdf [10.09.2014] [Sokolov 2014] Sokolov, D.: Schallplatte als Wallet für Bitcoins und andere Kryptowährungen, Hannover 2014. http://www.heise.de/security/meldung/Schallplatte-als-Wallet-fuer-Bitcoins-undandere-Kryptowaehrungen-2305829.html [08.09.2014] [Stöcker 2007] Stöcker, C.: "Second Life"-Wahlkampf: Sarkozy geht ins Netz, Hamburg 2007. http://www.spiegel.de/netzwelt/spielzeug/second-life-wahlkampf-sarkozy-geht-insnetz-a-468836.html [18.03.2015]] [SUISSE BANK 2014] O.V.: SWIFT, London 2014. https://www.suissebank.com/de/organisation-und-berichte/lexikon/swift.html [17.09.2014] [SWIFT 2014] O.V.: Creating confidence in a changing world. Annual Review 2013, La Hulpe (Belgien) 2014. http://www.swift.com/assets/swift_com/documents/about_swift/2013_SWIFT_Annual_ Review.pdf [17.09.2014] [SWIFT 2014a] 64 S.W.I.F.T.: User Handbook, La Hulpe 2014. https://www2.swift.com/uhbonline/books/a2z/a2z.htm [17.09.2014] [SWIFT 2014b] O.V.: SWIFT Sanctions Statement, La Hulpe 2014. http://www.swift.com/about_swift/shownews?param_dcr=news.data/en/swift_com/201 4/PR_swift_sanctions_statement.xml [29.11.2014] [SWIFT 2014c] S.W.I.F.T.: List of SWIFT Standards MT and SWIFT Standards MX http://www.swift.com/resources/documents/standards_inventory_of_messages.pdf [20.12.2014] [Wang/Yao/Yao 2004] Wang, X., Yao, A.C. und F. Yao: Cryptanalysis on SHA-1, Tsinghua 2004 http://csrc.nist.gov/groups/ST/hash/documents/Wang_SHA1-New-Result.pdf [20.03.2015] [Wendt 2015] Wenddt, J.:Silk-Road-Gründer muss lebenslang hinter Gitter http://www.zeit.de/digital/internet/2015-05/ross-ulbricht-silk-road-strafmass-urteil [30.03.2015] [Wikipedia 2015] Wikipedia (Diverse Autoren): Kernkraftwerk Grohnde, 2015 https://de.wikipedia.org/wiki/Kernkraftwerk_Grohnde [10.04.2015] 65 6.3 Abkürzungsverzeichnis ASIC BIC BTC CPU DSA ECC ECDSA GPA FIN IBAN LTC NIST NSA MD MT MX PIN PoW PoS S.W.I.F.T. SPV SHA XML XRP CBT LT MIR MOR MUR OPC TRN Application-specific integrated circuit Business Identifier Code Bitcoin (Kryptowährung) Central processing unit Digital Signature Algorithm Elliptic Curve Cryptography Elliptic Curve Digital Signature Algorithm General Purpose Application Financial Application International Bank Account Number Litecoin (Kryptowährung) National Institute of Standards and Technology National Security Agency Message Digest SWIFT-Nachrichtentyp (Message Type) SWIFT-Nachrichtentyp auf XML-Basis Persönliche Identifikationsnummer Proof of Work (deutsch Arbeitsnachweis bzw. beweis) Proof of Stake (deutsch Anteilsnachweis) Society for Worldwide Interbank Financial Telecommunication Simplified Payment Verification Secure Hash Algorithm Extensible Markup Language Ripple (Kryptowährung) Computer Based Terminal Login Terminal Message Input Reference Message Output Reference Message User Reference Operating Center (Schaltzentrale des SWIFT-Netzwerkes) Transaction Reference Number 66 7 Abbildungsverzeichnis Abbildung 1: Architektur des SWIFT-Systems [C24 2014] .......................................... 17 Abbildung 2: Größe der Bitcoin-Datenbank (Quelle: blockchain.info) ......................... 25 Abbildung 3: Modell eines dezentralen Peer-to-Peer Netzwerks ................................... 26 Abbildung 4: QR-Bild zur generierten Bitcoin-Adresse ................................................ 27 Abbildung 5: Alice möchte Bob 50 BTC überweisen .................................................... 29 Abbildung 6: Schematische Darstellung der Eingänge .................................................. 29 Abbildung 7: Schematische Darstellung der Ausgänge ................................................. 30 Abbildung 8: Anwendung der Schlüssel bei Transaktionen [Nakamoto 2008] ............. 31 Abbildung 9: Aneinanderreihung von Blöcken ([Platzer 2014], S.21) .......................... 32 Abbildung 10: Problem der Byzantinischen Generäle ................................................... 37 Abbildung 11: Grafische Benutzungsschnittstelle eine Antminer S3 zur Einstellung eines Miningpools............................................................................................. 41 Abbildung 12: Übersicht der möglichen An- und Verkäufe von Bitcoin ....................... 45 Abbildung 13: Übersichtsseite der Bitcoin-Börse Kraken.com...................................... 48 Abbildung 14: Überweisungsdialog des Bitcoin Core Clients ....................................... 50 Abbildung 15: Addition von Punkten auf einer elliptischen Kurve ............................... 72 67 Anhang A Kryptografische Funktionen Kryptowährungen nutzen unterschiedliche kryptografische Verfahren, um das jeweilige System vor Manipulationen zu schützen. Bitcoin wendet zur Erzeugung der Schlüssel das ECDSA-Verfahren an, bei dem der DSA (Kapitel A.1) um elliptische Kurven erweitert wird. Zudem werden unterschiedliche Hashfunktionen eingesetzt um Blocke und Adressen zu verifizieren und Manipulationen zu erschweren. A.1 Digitale Signaturen Eine digitale Signatur ist eine Prüfsumme, die entsteht, wenn ein elektronisches Dokument mit einem geheimen privaten Schlüssel erzeugt wird. Dieser Schlüssel ist nur demjenigen bekannt, der das Dokument unterscheibt. Möchte nun ein Dritter die Gültigkeit dieser Signatur auf diesem elektronischen Dokument prüfen, dann benötigt er einen korrespondierenden öffentlichen Schlüssel. Verfahren, die einen öffentlichen Schlüssel zur Verifikation eines Dokumentes bereitstellen, werden auch als asymmetrische Systeme bezeichnet und bestehen laut Definition aus mindestens drei aufeinander aufbauenden Algorithmen. • • • Erzeugung der Schlüssel (Generate) Unterschreiben des Dokumentes (Sign) Überprüfung des Dokumentes (Verify) Der erste Generate-Algorithmus erzeugt einen privaten und einen öffentlichen Schlüssel. Es ist darauf zu achten, dass der private Schlüssel nicht aus dem öffentlichen Schlüssel erzeugt werden kann. Aus dem Dokument und dem öffentlichen Schlüssel, wird mit dem Sign-Algorithmus eine digitale Unterschrift erzeugt und diese der Nachricht angehängt. Der Empfänger des Dokumentes benötigt nun den bereitgestellten öffentlichen Schlüssel um die Gültigkeit mit dem Verify-Algorithmus festzustellen. Mathematisch ergibt sich folgende Formulierung: Alice besitzt einen öffentlichen Schlüssel und einen geheimen Schlüssel * mit welchem sie das Dokument ) signie- ren will. Hierzu wendet sie zum Unterschreiben die Funktion (), *)an und erzeugt so die digitale Signatur :. 68 : = (), *) Der Empfänger Bob verwendet nun zur Überprüfung der digitalen Unterschrift die Funktion ]( , :) und berechnet )^ = ]( , :) Wenn nun )‘ = ) entspricht, dann ist die Unterschrift gültig ([Schmeh 2013], S. 202). A.1.1 DSA Der Digital Signature Algorithm (DSA) ist ein asymmetrisches Verfahren zur Erzeugung und zur Verifikation von digitalen Signaturen. Der DSA wurde 1991 von der National Security Agency (NSA) veröffentlicht und von dem NIST18 im Jahr 1994 standardisiert. DSA ist eine Variante des im Jahr 1985 von Taher ElGamal entwickelten ElGamal-Verfahren, das auf einer zyklischen Gruppe basiert. Um eine DSA-Signatur zu erzeugen, wird ein Schlüsselpaar benötigt. Hierzu wählt möglichst große Primzahl Aund eine PrimzahlZ, die p-1 teilt. Nun wählt man einen Generator , ein Element der Gruppentheorie. Für eine Gruppe ((A,⋅) gelten folgende Voraussetzungen ([Schmeh 2013], S. 182): • • • Es können zwei beliebige Elemente der Gruppe über eine mathematische Funktion miteinander verknüpft werden und das Ergebnis ist wiederrum ein Element der Gruppe (Abgeschlossenheit). Es gibt ein neutrales Element der Gruppe, welches verknüpft mit einem weiteren Element der Gruppe als Ergebnis dieses weitere Element erhält. In jeder Gruppe gibt es ein inverses (entgegengesetztes) Element. Als Untergruppe einer solchen Gruppe bezeichnet man eine Teilmenge der Gruppe, die zusammen mit der gleichen Verknüpfungsfunktion und dem gleichen neutralen Element eine neue abgeschlossene Gruppe bildet. Bei dem angewendeten Verfahren ist ein Generator der Gruppe und die Verknüp- fungsfunktion ist eine Modulo-Multiplikation)% . ` , , , ,…, Ab ()% A)c Der private Schlüssel * ergibt sich aus dem Generator menten und einer beliebigen Zahl * < d der Untergruppe mit Z Ele- Einen öffentlichen Schlüssel erzeugt man nun über die Funktion * 18 ()% A) NIST steht für National Institute of Standards and Technology 69 Für den Signatur-Algorithmus benötigt man nun für jede digitale Unterschrift eine Zufallszahl ; < dund berechnet daraus die Zahl =( ; ()% A))()% Z) Zusammen mit dem zu unterschreibenen Dokument m ergibt sich hieraus eine Gleichung mit einer unbekannten Variable : ) = ; ⋅ :– * ⋅ ()% Z) : ist von den bekannten Zahlen *, ;, ), , und anhängig und kann durch algebraische Umformung berechnet werden. Die digitale Signatur von ) ergibt sich aus den beiden Zahlen und :. Zur Verifikation wird nun der öffentliche Schlüssel aufgestellt. ) = : / * * benötigt und folgende Gleichung ⋅ ()% A) Die Signatur ist echt, wenn die Gleichung stimmt. Das DSA-Verfahren funktioniert mit unterschiedlichen Bitlängen. Im DSS19 dem vom NIST festgelegten Standard hat A eine Länge von 512, 1024, 2048, 3078, 7680 und 15360 Bit. Die Länge der zweiten Primzahl Zmuss 140, 224, 256, 384 oder 512 betragen [FIPS 2009]. A.1.2 Erweiterung des DSA auf elliptische Kurven In den vergangenen Jahren stieg die Rechenleistung der eingesetzten Maschinen stetig an, und diese Entwicklung wird sich in den nächsten Jahren weiter fortsetzen. Auch hardwaretechnische Grenzen, wie beispielsweise die Anzahl der möglichen Schaltungen pro Prozessor spielen hierbei keine Rolle mehr, da Rechenleistung ohne großen Aufwand gebündelt werden kann. Es ist möglich, gebündelte Rechenleistung, wie beispielsweise Amazon Elastic Compute Cloud20 (Amazon EC2), auf Minutenbasis zu erschwinglichen Preisen zu mieten. Auch fertige Lösungen, die ich in dieser Arbeit nicht weiter benenne, sind leicht für jedermann zu nutzen und stellen ganze Wörterbücher und fertige Entschlüsselungsalgorithmen zur Verfügung. Diese Entwicklung erfordern immer sicherere Verschlüsslungen und somit auch Längere Schlüssel. Asymmetrische Verfahren benötigen sehr viel Rechenleistung und die Erzeugung ausreichend sicherer Schlüssel ist vor allem auf kleineren Geräten wie einem Smartphone nicht mehr realisierbar [Krieger 2001]. 19 20 DSS steht für Digital Signature Standard Cloud Computing ist die nutzungsabhängige Bereitstellung von IT-Resourcen 70 Ein Ansatz diese Problematik zu lösen, sind Kryptografische-Systeme auf Basis von elliptischen Kurven, kurz ECC21. Besonderes Merkmal von ECC-Verfahren ist es, das nicht direkt mit Zahlen sondern mit Objekten, in diesem Fall Punkten auf der elliptischen Kurve gerechnet wird. Hierbei ist es nicht notwendig neue Algorithmen zu entwickeln, sondern es werden bereits bekannte Verfahren auf Basis diskreter Logarithmen, die der im Kapitel A.1.1 beschriebene DSA, angewandt. Eine elliptische Kurve E wird durch eine Weierstraß-Gleichung definiert. Q:; = * + * + M Elliptische Kurven können über unterschiedliche Körper, wie komplexe oder rationale Zahlen, betrachtet werden. Ein Körper ist hierbei eine Menge von Zahlen auf die zwei Verknüpfungen, der Addition und der Multiplikation, definiert sind. Ein endlicher Körper mit dem sich ECC-Verfahren am besten realisieren lassen, sind die Galois-Felder. T = 8U(A) In dieser Gleichung ist p eine Primzahl und alle Elemente von 8U(A) sind die Restklassen )% %A. kkkkkkk 8U(A) = `i, i, i, i, . . . , A − c Fügt man einer elliptischen Kurve einen Punkt hinzu, der in der Unendlichen liegt, kann man folgende Gleichung aufstellen. ; + *; + ; = * + * + *+ Mit dieser Gleichung lässt sich die besondere und interessante Eigenschaft von elliptischen Kurven beweisen, die besagt das eine Gerade, die eine solche Kurve schneidet immer genau drei Schnittpunkte mit dieser hat (vergleiche Abbildung 12). Hierbei treten die folgenden drei Fälle auf: 21 ECC steht für Elliptic Curve Cryptography 71 1. Wenn die Gerade parallel zur y-Achse verlauft, dann ist der dritte Schnittpunkt der Punkt . 2. Berührt die Gerade die Kurve an einem Punkt, Punkt, dann wird der Berührungspunkt dieser Tangente als doppelter Schnittpunkt gezählt. 3. Alle anderen beliebig auf der Fläche definierten Geraden haben immer drei Schnittpunkte. Schnittpunkte Abbildung 15:: Addition von Punkten auf einer elliptischen Kurve Auf Basis dieser Eigenschaften, lässt sich nun eine ein Gruppe Q(T)definieren. definieren. Elemente dieser Gruppe sind alle Punkte auf der elliptischen Kurve und der Punkt 0 in der UnbeUnb kannten. Für die Addition zweier Punkte auf der Kurve legt man eine Gerade durch sie. Gemäß oben genannten Fällen, muss nun ein dritter Schnittpunkt auf der Kurve existieexisti ren. Wird dieser Punkt an der x-Achse gespiegelt, dann erhält man das Resultat der Addition (vergleiche Abbildung Abbildun 12). Hierbei ist gilt für alle Punkte P der elliptischen Kurve: Kurve das as neutrale Element der Gruppe und es R + = + R = R Die ie Spiegelung von Punkt 0 ergibt somit 0. Das inverse Element der Gruppe erhält man indem man einem Punkt auf der Kurve eine Gerade anlegt, die parallel parallel zu y-Achse y verläuft. Wenn diese Gerade die Kurve berührt, dann ist dieser Berührungspunkt sein ini 72 verses Element. Ist die Gerade keine Tangente, dann ist der weitere Schnittpunkt das inverse Element. Kryptografische Systeme verwenden elliptische Kurven der Form Q(8U(A)) und Q(8U( )). Diese werden im Folgenden als Q(8U())) bezeichnet. Die mehrfache Anwendung der Addition von Punkten aus Q(8U())) kann als Potenzfunktion bezeichnet werden und die Umkehrung dieser Rechenart als Logarithmus. Es gibt effektive Algorithmen für die Berechnung von Potenzfunktionen, für die Berechnung von diskreten Logarithmen jedoch nicht. Für die Erweiterung eines asymmetrischen Verfahrens wie DSA, das auf einem diskreten Logarithmus basiert, werden statt der Rechenoperationen in 8U(A) nun Rechenoperationen in Q(8U())) angewandt. Zur weiteren Berechnung müssen sich die Teilnehmer statt auf einen Modulus auf eine bestimmte elliptische Kurve aus dem Körper 8U()) und daraus aufgebauter Gruppe Q(8U())) verständigen. Da sich die Addition zweier Punkte aus Q(8U())) aus mehreren Rechenoperationen von 8U()) zusammensetzen ist die Exponentiationüber 8U()) weniger aufwendiger ist als über Q(8U())) Da für die Berechnung des diskreten Logarithmus über 8U(A) effektivere Algorithmen existieren als bei elliptischen Kurven, sind bei gleicher Sicherheit kürzere Schlüssellängen beim Einsatz von elliptischen Kurven möglich. Dies hat zur Folge, dass die benötigte Rechenleistung zur Erzeugung der notwendigen Schlüssel um Faktor zehn eingespart werden kann ([Schmeh 2013], S. 215). Bei dem ECDSA-Verfahren ist zunächst das Problem zu lösen, das die Zahl ; ein Punkt auf der elliptischen Kurve ist, aber auch im Exponenten steht. An dieser Stelle muss jedoch eine natürliche Zahl stehen. Hier wird nun in der Regel eine natürliche Zahl aus A.2 ; abgeleitet indem man die x-Koordinate des Punktes ; verwendet. Hashfunktionen Das Unterschreiben kompletter Nachrichten oder eines kompletten Blockes innerhalb der Blockchain mit einer digitalen Signatur würde sowohl beim Absender als auch beim Empfänger zu viel Zeit in Anspruch nehmen und zudem wäre die erstellte Signatur mindestens genau so lang wie die Nachricht oder Block selber. Um dies zu vermeiden, wird aus der Nachricht oder bei einem Block, wie im Kapitel 2.2.5.2 beschrieben, dem Blockheader eine Prüfsumme gebildet, auf die das Signaturverfahren angewandt werden kann. Diese Prüfsumme wird als Hashwert bezeichnet. Es gibt unterschiedliche Funktionen, um einen Hashwert zu erzeugen. Grundsätzlich wird eine beliebig lange Bitfolge m (z.B. der Nachricht) über eine Hashfunktion H, eine 73 Bitfolge h (dem Hashwert) mit begrenzter Länge abgebildet. Die Bitfolge mit beliebiger Menge wird auch als Urbild bezeichnet. Mathematisch lässt sich dies wie folgt darstellen: = "()) Da Hashwerte nur eine begrenzte Länge haben, ist es möglich, dass aus zwei unterschiedlichen Urbildern die gleichen Hashwerte erzeugt werden. Wenn dieser Fall eintritt spricht man von einer Kollision. Als stark kollisionssicher werden kryptografische Hashfunktionen bezeichnet, bei denen es nach aktuellem Kenntnisstand nicht möglich ist, über zwei beliebige Urbilder eine Kollision zu erzeugen. Hierbei spielen der Inhalt und die Länge keine Rolle. Wenn es nicht möglich ist ein zweites Urbild zu finden, wenn ein Hashwert oder ein Urbild vorgegeben ist, dann bezeichnet man die Hashfunktion als schwach kollisionssicher ([Schmeh 2013], S. 228). Bei Bitcoin werden die stark kollisionssicheren kryptografischen Hashfunktionen SHA256 und RIPEMD-160 eingesetzt. A.2.1 SHA-256 SHA-256 ist eine Weiterentwicklung der vom der NSA erstellten SHA Hashfunktion. Die Abkürzung SHA steht für Secure Hash Algorithm (deutsch: sicherer HashAlgorithmus) und ist eine von der US-amerikanischen Standardisierungsbehörde NIST in Auftrag gegebene kryptografische Hashfunktion, die lange Zeit zu den wichtigsten Funktionen gehörte. Entwickelt von der NSA wurde SHA-1 zusammen mit DSA (siehe Kapitel A.1.1) im Jahr 1991 der Öffentlichkeit vorgestellt. SHA-1 liefert einen Hashwert der Länge 160 Bit und basiert auf MD4 (Message Digest 4), einer von Ronald L. Riverst [Riverst 1992] entwickelten Hashfunktion, die Hashwerte mit einer Länge von 128 Bit erzeugen. Wie bereits in Kapitel A.1.2 beschrieben, werden aufgrund höherer Rechenleistung und Cloud Computing die Schlüssellängen von MD4 (128 Bit) und SHA-1 (160 Bit) den aktuellen Sicherheitsanforderungen nicht mehr gerecht. Im Jahr 2004 gelang es zudem der chinesischen Kryptografin Xiaoyun Wan und ihren beiden Kollegen Andrew C. Yao und Frances Yao eine Methode zur Generierung einer Kollision zu entwickeln die lediglich Funktionsaufrufe benötigt [Wan/Yao/Yao 2004]. Angriffe auf SHA-256 (mit einer Hashwertlänge von 256 Bit) sind wesentlich aufwendiger. SHA-256 wurde bereits im Jahr 2000 vom NIST veröffentlich und verarbeitet wie auch SHA-1 das Urbild mit Blöcken in einer Länge von 512 Bit. Da das erzeugte Urbild meist nicht durch 512 Bit teilbar ist, muss zunächst der letzte Block mit Null-Bits aufge74 füllt werden. Dieses Verfahren wird als Padding bezeichnet und geschieht folgendermaßen: 1. Wenn weniger als 64 Bit aufzufüllen sind, dann wird ein weiterer Block an das Urbild angehängt. 2. Das Urbild wird beginnend mit einer 1 und darauffolgenden Null-Bits aufgefüllt, bis im letzten Block genau 64 Bit übrig bleiben. 3. Die letzten 64 Bit werden nun mit der Bit-Länge der ursprünglichen Nachricht beschrieben. Wenn das Urbild größer als ist, dann werden nur die 64 niederwertigsten Bits verwendet. Um nun einen SHA-256 Hashwert zu berechnen, benötigt man zunächst 8 Kettenvariablen mit einer Länge von 32-Bit ([NIST 2012], S. 15): # = Q = D ', = MM ' 'l, U = DM N , C= NN , 8 = lN l ' , Y = D M, " = M ll D Auf einen 512-Bit Block des Urbilds wird nun eine Kompressionsfunktion angewendet, die den aktuellen Inhalt der Kettenvariablen entgegennimmt und einen neuen Wert zurückliefert. Die Kompressionsfunktion wird zunächst auf das Urbild mn und dann auf alle folgenden Urbilder angewendet Die SHA-256-Kompressionsfunktion läuft in 4 Runden mit jeweils 16 Teilrunden ab. Hierbei hat jede Runde eine eigene Funktion und für jede Teilrunde wird eine andere Konstante T [NIST 2012] und ein 32 Bit großer Teil des Urbildes verwendet. Errechnet man nun die benötigte Länge pro Urbild, dann ergibt sich aus eine benötigte Länge von 2048 Bit. ⋅ ⋅ = N Da jedes Urbild nur 512 Bit lang ist, gibt es für jedes Urbild auch nur genau 16 32-BitTeilblöcke ,…, Der restliche Block wird über eine Expansion um die fehlenden 32-Bit-Blöcke en Bit ,…, erweitert. Für die Formeln wird folgende Notation verwendet: ⊕ p3.>53656Sq\(exklusivesoder) ∧ p3.>53656#VY ∨ p3.>53656q\ ¬p3.>53656€=471545+. +4=J2‚ƒ ,JJ3.3=+ \q \ „=.0.3=++0-ℎ?5-ℎ.6/4+p3.6 "\ Verschiebung nach rechts um n p3.6 75 Die einzelnen Funktionen der Runden lassen sich über zwei boolesche Formeln und zwei S-Boxen wie folgt beschreiben []: 22 …(#, , [) = (# ∧ ) ∨ (# ∧ [) ∨ ( ∧ [) [ (Q, U, 8) = (Q ∧ U) ∨ (¬Q ∧ 8) ∑ (‡) = ˆ‰Šˆ (‡) ⊕ ˆ‰Šˆ (‡) ⊕ ˆ‰Šˆ (‡) ∑ (‡) = ˆ‰Šˆ (‡) ⊕ ˆ‰Šˆ (‡) ⊕ ˆ‰Šˆ (‡) Die Expansion der einzelnen Urbilder funktioniert nach folgender Formel: Q= ‹ü?3•=+0p3615 Q = • (Q b ) + Q b' + • (Q b ) + Q b ‹ü?3•=+16p3664 Bei den Funktionen • (*)und • (*)handelt es sich erneut um S-Boxen mit Rotationen nach rechts (ROTR) und Verschiebungen nach rechts (SHR) • (‡) = ˆ‰Šˆ' (‡) ⊕ ˆ‰Šˆ N (‡) ⊕ ’“ˆ (‡) • (‡) = ˆ‰Šˆ ' (‡) ⊕ ˆ‰Šˆ D (‡) ⊕ ’“ˆ (‡) Der Inhalt der Kettenvariablen ändert sich bei jedem Durchlauf der Kompressionsfunktion. Der Hashwert entsteht durch Aneinanderhängen der letzten 8 erzeugten Kettenvariablen. A.2.2 RIPEMD-160 Wie im Kapitel 2.2.4.2 beschrieben, wird im Bitcoin-System die Hashfunktion RIPEMD-160 zur Erzeugung von Adressen verwendet. Die 1996 von Hans Dobbertin, Antoon Bosselaers und Bart Preneel in Europa entwickelte Hashfunktion ist eine Weiterentwicklung von RIPEMD23 [Dobbertin/Bosselaers/Preneel 1996]. Wie SHA-256 als Weitentwicklung von SHA-1, hat auch RIPEMD-160 als Weiterentwicklung von RIPEMD seinen Ursprung in der MD4 Hashfunktion, weshalb sich diese Funktionen in der Funktionsweise sehr ähneln. RIPEMD-160 verwendet 5 Kettenvariablen und wie SHA-256 512-Bit-Blöcke, die nach der gleichen Methode aufgefüllt werden. Für die Kompressionsfunktion nutzt RIPEMD-160 zwei voneinander unabhängi22 Eine S-Box (englisch: substitution Box) erstsetzt eine m-stellige Binärzahl durch eine n-stellige Binärzahl um eine Konfusion zu erzeugen. 23 RIPEMD steht für RACE Integrity Primitives Evaluation Message Digest 76 gen Ablaufsträngen die am Ende miteinander verknüpft werden. Jeder Strang verarbeitet 80 32-Bit-Blöcke, die über eine Expansion aufgefüllt werden müssen. Hierbei wird eine Erweiterungstabelle verwendet und zur Erweiterung die ersten 15 Urbildblöcke in einer festgelegten Reigenfolge eingesetzt. Jeder Ablaufstrang durchläuft 5 Runden, die aus 16 Teilrunden bestehen. Für jede Runde wird eine andere Funktion Teilrunde eine neue Konstante T verwendet. RIPEMD-160 erzeugt einen 160 Bit Hashwert. 77 und für jede B Alternative Kryptowährungen Alle in dieser Arbeit betrachteten alternativen Kryptowährungen basieren auf der gleichen technischen Grundlage, sind jedoch aus unterschiedlichen Ideen entstanden und verfolgen meist einen guten und sinnvollen Einsatzweck. Aufgrund der Tatsache, dass alle Quelltexte zur freien Verfügung stehen kann theoretisch jeder Anwender mit geringem technischem Verständnis des Gesamtsystems eine eigene Währung erschaffen und anderen zur Verfügung stellen. Hierdurch wird eine große Anzahl unterschiedlicher Währungssysteme erschaffen, die oft nur auf Profit und Anerkennung innerhalb der eigenen Interessengemeinschaft entstehen und häufig wieder von der Bildfläche verschwinden. Im Folgenden werde ich einige sinnvolle Projekte vorstellen und abschließend einige Kryptowährungen mit größerer Marktkapitalisierung auflisten. B.1 Litecoin24 Bei Litecoin handelt es sich um die ersten Klon zu Bitcoin, der direkt aus dem Quellcode abgeleitet wurde. Litecoin nutzt statt der SHA-256 Hashfunktion, eine Passwortbasierte Schlüsselableitungsfunktion mit dem Namen Scrypt. Diese wurde von Colin Percival für die Firma Tarsnap entwickelt und 2009 vorgestellt [Percival 2009]. Da Scrypt eine höhere Speicherkapazität als SHA-256 benötigt, war das Ziel der Entwickler, das Minen mit Hilfe von Hardware-Chips (ASICS) zu erschweren. Die Blockerzeugung wurde auf 2,5 Minuten festgelegt, wodurch das Netzwerk viermal so schnell arbeitet wie Bitcoin. B.2 Peercoin25 Die Kryptowährung Peercoin wurde 2009 von dem Entwickler Sunny-King vorgestellt und benutzt zur Verifizierung neuer Blöcke ebenfalls die SHA-256 Hashfunktion. Neben des in Kapitel 2.2.5 beschriebenen Verfahrens Blöcke durch einen Arbeitsbeweis (Proof-of-Work) zu erzeugen, wurde von King ein Besitzschaftsprinzip (Proof-of-Stake) eingeführt. Die Belohnung des Miners wird auf Basis der Menge, der im Besitz der Miners befindlichen Coins berechnet. Als weiterer Parameter wird zudem das Alter dieser Coins berücksichtigt, also der Zeit, die bestimmte Peercoin im Besitz des Miners sind [King/Nadal 2012]. 24 25 http://www.litecoin.org http://www.peercoin.net 78 B.3 DASH26 Das Problem der ASICS und der fehlenden Anonymität des Bitcoins-System versuchen die Entwickler von DASH zu umgehen. Das erst am 25 März 2016 in DASH umbenannte Darkcoin-System nutzt für den Arbeitsbeweis statt des SHA-256 die X11 Hashfunktion. Transaktionen werden über das eingeführte Darksend-Verfahren im Client des gemischt um so die Nachverfolgbarkeit zu erschweren. Zusätzlich werden die Transaktionen über Masternodes geleitet. Über diese speziellen Server, werden mehrere Transaktionen vermischt bevor diese in die Blockchain gespeichert werden. Masternodes können von jedem Teilnehmer installiert werden, der 1000 DASH an einer Adresse hinterlegt. Die gemeldeten Masternodes werden über das Netzwerk verifiziert. Wie bei allen Kryptowährungen ist der DASH-Quellcode verfügbar und kann auf der GithubWebsite27 geladen werden. B.4 Weitere Kryptowährungen Es existieren hunderte Kryptowährungen, die zum größten Teil auf dem Quellcode von Bitcoin aufbauen. Die Entwickler versuchen Schwächen zu umgehen und eigene Ideen in das System einfließen zu lassen. Einige Kryptowährungen entstehen nur in der Hoffnung eine kurzeitige Akzeptanz zu erzeugen und somit einen gewissen Wert zu erzielen. Da der Quellcode immer offengelegt wird, um eine ausreichende Vertrauensbasis zu schaffen, entstehen immer mehr Kryptowährungen mit neuen Möglichkeiten und Ideen. 26 27 http://www.dashpay.io https://github.com/dashpay/dash 79 Eidesstattliche Erklärung Hiermit erkläre ich, dass ich diese Diplomarbeit selbstständig ohne Hilfe Dritter und ohne Verwendung anderer als der angegebenen Quellen und Hilfsmittel verfasst habe. Alle Stellen, die wörtlich oder sinngemäß aus veröffentlichten oder unveröffentlichten Quellen entnommen wurden, sind als solche kenntlich gemacht. Diese Arbeit ist bisher in gleicher Form oder auszugsweise keiner anderen Prüfungsbehörde vorgelegt und auch nicht veröffentlicht worden. Ich bin mir dessen bewusst, dass eine falsche Erklärung rechtliche Folgen haben wird. ______________________________________________________________________ Ort, Datum, Unterschrift 80