Upload
felix-albert
View
1.270
Download
1
Embed Size (px)
Citation preview
Blockchains – Grundlagen und Architektur
6/3/2016 BLOCKCHAIN – GRUNDLAGEN UND ARCHITEKTUR 1
BlockchainGrundlagen und Architektur
Agenda
Wie funktioniert die Blockchain „1.0“? Aufgabe
Design-technische Herausforderungen
Lösungen
Was ist die Blockchain „2.0“? Von 1.0 zu 2.0
Ethereum als Turing-vollständige Blockchain
Anwendungsmöglichkeiten
6/3/2016 BLOCKCHAIN – GRUNDLAGEN UND ARCHITEKTUR 2
Blockchains – Grundlagen und Architektur
6/3/2016 BLOCKCHAIN – GRUNDLAGEN UND ARCHITEKTUR 3
Blockchain 1.0Beschrieben von Satoshi Nakamoto
Bitcoin vs Bit torrent
Die Blockchain ist ein Peer-to-Peer elektronisches Zahlungssystem (laut Satoshi Nakamoto)
Keine zentrale Instanz führt ein Hauptbuch, sondern jeder Nutzer des Systems
Welche Probleme ergeben sich dadurch?
6/3/2016 BLOCKCHAIN – GRUNDLAGEN UND ARCHITEKTUR 4
https://www.innovalue.de/publikationen/InnovalueLockeLord-BlockchaininFinancialServices2015.pdf
Der Block
Hash: …000a3ed9a4…
Hash:…0001f942eb…
Hash:…000ed9372…
6/3/2016 BLOCKCHAIN – GRUNDLAGEN UND ARCHITEKTUR 5
Mining (Hash + Bits + Nonce)
Problem Wie erreicht man, dass sich Teilnehmer in einem unkontrollierten Zahlungssystem ehrlich verhalten?
6/3/2016 BLOCKCHAIN – GRUNDLAGEN UND ARCHITEKTUR 6
Aufgabe Baue ein Netzwerk, dass so robust ist, dass es genügt, wenn sich die Mehrheit ehrlich verhält. Bringe die Mehrheit dazu, sich ehrlich zu verhalten
Lösung • Belohne ehrliche Teilnehmer mit einem Anteil an dem Zahlungsmittel des Netzwerks
• Bestrafe unehrliche Teilnehmer mit Kosten Proof-of-Work Algorithmus
Mining (Hash + Bits + Nonce)
Ziel des PoW-Algorithmus ist ein Rätsel zu erstellen, dass schwer zu lösen, dessen Korrektheit aber leicht zu validieren ist. Weiterhin muss die Schwierigkeit leicht anpassbar sein, um konstante Blocklösungszeiten und damit Transaktionszeiten zu haben SHA-256
Schwierigkeit wird über Anzahl der führenden Nullen des berechneten Hashwerts eingestellt (Wert bits im Header)
"Hello, world!0" => 1312af178c253f84028d480a6adc1e25e81caa44c749ec81976192e2ec934c64
"Hello, world!1" => e9afc424b79e4f6ab42d99c81156d3a17228d6e1eef4139be78e948a9332a7d8
"Hello, world!4250" => 0000c3af42fc31103f1fdc0151fa747ff87349a4714df7cc52ea464e12dcd4e9
Hello, world = Der Blockheader0,1,2 = die Nonce
Andere Mining-Algorithmen: PoS, PoI, PoR, PoB
Andere PoW-Algorithmen: Scrypt (gegen ASIC-mining)
6/3/2016 BLOCKCHAIN – GRUNDLAGEN UND ARCHITEKTUR 7
Verkettung von Transaktionen
Problem Wie kann ich mir beim Empfang eines Wertes sicher sein, dass 1. Der Sender den Wert tatsächlich besitzt2. Dieser Wert nicht bereits an anderer Stelle ausgegeben worden
ist (double-spending)
6/3/2016 BLOCKCHAIN – GRUNDLAGEN UND ARCHITEKTUR 8
Aufgabe Baue ein Netzwerk, in dem jeder Wert 1. Jederzeit eindeutig einem Besitzer zugeordnet werden kann2. Die Transaktionshistorie jedes Wertes bis zu dem Zeitpunkt
seiner Entstehung zurückverfolgt werden kann
Lösung • Jede Transaktion beinhaltet die „Unterschrift“ des vorherigenBesitzers des Werts
• Der Besitzerwechsel jedes Werts ist bis zu der Entstehung des Wertes zurückverfolgbar
Verkettung von Transaktionen
6/3/2016 BLOCKCHAIN – GRUNDLAGEN UND ARCHITEKTUR 9
Bitcoin: A Peer-to-Peer Electronic Cash System – Satoshi Nakamoto
Validierung von Transaktionen (Merkle-Root)
6/3/2016 BLOCKCHAIN – GRUNDLAGEN UND ARCHITEKTUR 10
Problem Wie kann ich effizient Transaktionen validieren?
Aufgabe Es sollte effizient möglich sein, Transaktionen zu validieren, auch ohne die komplette Blockchain zu besitzen
Lösung Merkle Trees + Merkle Proof
Validierung von Transaktionen (Merkle-Root)
6/3/2016 BLOCKCHAIN – GRUNDLAGEN UND ARCHITEKTUR 11
https://www.weusecoins.com/what-is-a-merkle-tree/
Adressen
Problem Wie schütze ich dann die Privatsphäre des Nutzers?
6/3/2016 BLOCKCHAIN – GRUNDLAGEN UND ARCHITEKTUR 12
Aufgabe Bankensystem: Die Transaktionen sind verborgen.Bei der Blockchain ist das nicht möglich, daher:Verbergen der Identität
Lösung Asymmetrische Schlüssel.Privater Schlüssel: Dient zum Senden einer GeldeinheitÖffentlicher Schlüssel: Dient zum Empfangen einer Geldeinheit
Adressen
6/3/2016 BLOCKCHAIN – GRUNDLAGEN UND ARCHITEKTUR 13
Die longest-chain rule
Problem Was passiert, wenn zwei Miner im Netzwerk gleichzeitig auf eine korrekte Lösung stoßen?
6/3/2016 BLOCKCHAIN – GRUNDLAGEN UND ARCHITEKTUR 14
Aufgabe Da zwei Miner unterschiedliche Transaktionen in den Block aufnehmen können, braucht es eine Regel welchem Block gefolgt wird
Lösung Es wird immer der Chain gefolgt, in welcher der höchste akkumulierte Aufwand steckt – was in der Regel die längste Chain ist
Die longest-chain rule
6/3/2016 BLOCKCHAIN – GRUNDLAGEN UND ARCHITEKTUR 15
http://chimera.labs.oreilly.com/books/1234000001802/ch08.html#forks
Blockchains – Gr
6/3/2016 BLOCKCHAIN – GRUNDLAGEN UND ARCHITEKTUR 16
Blockchain 2.0Der Ethereum World Computer
Colored coinshttps://youtu.be/fmFjmvwPGKU
6/3/2016 BLOCKCHAIN – GRUNDLAGEN UND ARCHITEKTUR 17
Ethereum
Erste öffentliche Turing-Vollständige Blockchain
Gestartet im Juli 2015
Eigene Krypto-Währung Ether
Erlaubt durch Turing-Vollständigkeit jedoch auch andere Währungen mit selbst definierten Regeln auf der Blockchain
6/3/2016 BLOCKCHAIN – GRUNDLAGEN UND ARCHITEKTUR 18
Ethereum vs Bitcoin
Ethereum Speichert Zustände
Ein Account bei Ethereum speichert Eine Nonce (ein Zähler der sicherstellt, dass eine Transaktion nur einmal ausgeführt werden kann)
Die Ether-Bilanz
Den „Vertrags“- Code des Accounts (falls vorhanden)
Einen zusätzlichen Speicher des Accounts
6/3/2016 BLOCKCHAIN – GRUNDLAGEN UND ARCHITEKTUR 19
Ethereum Accounts als smarte Verträge
Können wie Bitcoin-Accounts durch einen privaten Schlüssel gesteuert werden, oder
durch den „Vertrags“-Code im Account
6/3/2016 BLOCKCHAIN – GRUNDLAGEN UND ARCHITEKTUR 20
https://blog.ethereum.org/2015/11/15/merkling-in-ethereum/
Schutz vor Endlosschleifen?
Bei Bitcoin wurde eine Erweiterung der internen Skriptsprache nicht erwogen, da das Erlauben von Schleifen eine hohe Gefahr für DDoS Attacken darstellt
Ethereum umgeht das Problem mit „Gas“ – einer Gebühr für jeden Rechenschritt (in Ether)
Es ist möglich einen Vertrag zu erstellen, der eine endlosschleife Ausführt
Theoretisch kann man diesen Vertrag so lange ausführen, bis das Gas aufgebraucht wird
6/3/2016 BLOCKCHAIN – GRUNDLAGEN UND ARCHITEKTUR 21
Anwendungsmöglichkeiten
Crowdsale mit eigenen Tokens (ICO – Initial Coin Offering)
Verknüpfung von Blockchain mit IoT (slock.it + RWE)
E-Government (durch Verknüpfung von Identität mit privatem Schlüssel)
Währungsexperimente
Dezentralisierte Handelssysteme
Eigenständige Organisationen (DAOs)
6/3/2016 BLOCKCHAIN – GRUNDLAGEN UND ARCHITEKTUR 22