Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Was ist dran an der Blockchain-Revolution?

Was ist dran an der Blockchain-Revolution?

Video des Vortrags: https://youtu.be/OjbLw6cHoX8

Die Blockchain stellt ein gewohntes, unveränderbar geglaubtes Konzept auf den Kopf: Für Geschäftstransaktionen brauchen wir vertrauenswürdige, dritte Parteien, die ein Verzeichnis führen und für dessen Sicherheit und Integrität bürgen. Für das Überweisen von Geld nutzen wir Banken, für Grundstücksgeschäfte wird das Grundbuch herangezogen, Firmenanteile sind im Firmenbuch festgehalten. Blockchains versprechen kryptografisch abgesicherte Verzeichnisse, die nicht zentral sondern verteilt gespeichert sind (Distributed-Ledger-Technologie). Sie sollen dadurch einerseits sicherer gegen Manipulation sein. Andererseits stellen sie durch die Verteilung der Daten die technische Grundlage für Innovationen dar, da der Zugriff auf die Daten nicht mehr auf eine zentrale Partei beschränkt ist.

Rainer Stropek stellt am Beginn seines Vortrags die Grundideen der Blockchain-Technologie abseits von Kryptowährungen vor. Er beschreibt im Überblick, wie die Blockchain funktioniert und durch welche Mechanismen Sicherheit gewährleistet werden soll. Darauf aufbauend erklärt Rainer Stropek das Konzept von Smart Contracts am Beispiel der Ethereum-Plattform und geht auf Anwendungsbeispiele aus der Praxis ein.

Der Vortrag soll den Teilnehmerinnen und Teilnehmern ein grundlegendes Verständnis über die Möglichkeiten und Herausforderungen der Blockchain-Technologie bieten. Außerdem soll ein Basisverständnis über die technische Funktionsweise der Blockchain vermittelt werden. Technische Implementierungsdetails stehen nicht im Mittelpunkt. Stattdessen soll die Basis geschaffen werden für eine Diskussion über Anwendungsmöglichkeiten.

Rainer Stropek

October 24, 2018
Tweet

More Decks by Rainer Stropek

Other Decks in Technology

Transcript

  1. Was ist dran an der Blockchain-Revolution? Blockchain Rainer Stropek software

    architects gmbh http://www.timecockpit.com [email protected] @rstropek Was ist dran an der Blockchain-Revolution? Web Mail Twitter
  2. Abstract Die Blockchain stellt ein gewohntes, unveränderbar geglaubtes Konzept auf

    den Kopf: Für Geschäftstransaktionen brauchen wir vertrauenswürdige, dritte Parteien, die ein Verzeichnis führen und für dessen Sicherheit und Integrität bürgen. Für das Überweisen von Geld nutzen wir Banken, für Grundstücksgeschäfte wird das Grundbuch herangezogen, Firmenanteile sind im Firmenbuch festgehalten. Blockchains versprechen kryptografisch abgesicherte Verzeichnisse, die nicht zentral sondern verteilt gespeichert sind (Distributed-Ledger-Technologie). Sie sollen dadurch einerseits sicherer gegen Manipulation sein. Andererseits stellen sie durch die Verteilung der Daten die technische Grundlage für Innovationen dar, da der Zugriff auf die Daten nicht mehr auf eine zentrale Partei beschränkt ist. Rainer Stropek stellt am Beginn seines Vortrags die Grundideen der Blockchain-Technologie abseits von Kryptowährungen vor. Er beschreibt im Überblick, wie die Blockchain funktioniert und durch welche Mechanismen Sicherheit gewährleistet werden soll. Darauf aufbauend erklärt Rainer Stropek das Konzept von Smart Contracts am Beispiel der Ethereum-Plattform und geht auf Anwendungsbeispiele aus der Praxis ein. Der Vortrag soll den Teilnehmerinnen und Teilnehmern ein grundlegendes Verständnis über die Möglichkeiten und Herausforderungen der Blockchain-Technologie bieten. Außerdem soll ein Basisverständnis über die technische Funktionsweise der Blockchain vermittelt werden. Technische Implementierungsdetails stehen nicht im Mittelpunkt. Stattdessen soll die Basis geschaffen werden für eine Diskussion über Anwendungsmöglichkeiten im Gemeindeumfeld.
  3. Tally Sticks Kontoführung schon in Steinzeit Primitive Ledger Quantifizierte Schulden

    Früher als Geld für Handel Money of Account (vs. Money of Exchange) Mehr: https://en.wikipedia.org/wiki/Tally_stick Bild: https://de.wikipedia.org/wiki/Ishango-Knochen
  4. Zählsteine, Tonbullen Zählsteine repräsentieren ein Material oder einen Wert Hier:

    Uruk-Zeit (ca. 4000-3100 BCE) Mehrere Zählsteine in gesiegelte Tonbullen eingeschlossen Z.B. Vollständigkeit einer Lieferung prüfen Inhalt außen ablesbar Muss nicht zerstört werden, um Inhalt zu prüfen Bei Bedarf kann Inhalt geprüft werden Bild: https://de.wikipedia.org/wiki/Datei:Accountancy_clay_envelope_Louvre_Sb1932.jpg
  5. Kontobücher Geschäfte werden komplexer Z.B. Finanzierung mehrjähriger Handelsexpeditionen Doppelte Buchführung

    Erste Fugger-Bilanz 1511 1794 erstmals gesetzliche Bilanzierungspflicht für Preußen Buchungsmaschinen Ab 1930er Jahre Kombination von Schreibmaschine und Rechenmaschine Siehe auch https://de.wikipedia.org/wiki/Buchf%C3%BChrung#Geschichte_der_Buchf%C3%BChrung
  6. Vertrauen Notare Beglaubigung/Beurkundung von Rechtsgeschäften, Hinterlegungen von Geld und Wertsachen

    Wirtschaftsprüfer Prüfung der Kontobücher Staatlich garantierte Wertstabilität Geldsystem Bankensystem Vertrauenswürdige Verzeichnisse Richtigkeit und Vollständigkeit Z.B. Grundbuch, Firmenbuch Bild: https://de.wikipedia.org/wiki/Notar
  7. Kein Vertrauen Viele Teilnehmer Keine zentrale Instanz Absicherung gegen Manipulation

    Ausfallssicherheit Dezentrale Kontobuchführung „Distributed Ledger“ Richtigkeit? Vollständigkeit? Manipulationssicherheit? Bild: Kumar's Edit, https://flic.kr/p/Krxii4
  8. Blockchain Digital ledger of transactions Nicht nur Krypto-Währungen Viele Beispiele

    in dieser Präsentation aus Ethereum Growing list of records Linked blocks Incorruptable Secured using Cryptography
  9. Block Chain of Blocks Transactions into blocks Cryptographically secured Chained

    blocks Transaction Transaction Transaction Transaction Block Block Block Block
  10. Grundprobleme Wie einigen sich alle Teilnehmer im verteilten Blockchain-Netzwerk, welche

    Transaktionen/Blöcke Teil der Blockchain werden sollen („Consensus Algorithm“)? Wie öffnet man die Teilnahme am Konsensbildungsprozess, ohne zentral gesteuerte Teilnehmerliste?
  11. Proof-of-Work „Miner“ erzeugen Blöcke Auswählen von Transaktionen Transaktionen zu Blöcken

    zusammenfassen Crypto-Rätsel Schwierig → nicht prognostizierbar Schwierigkeit regelt Generierungsrate von Blöcken („Blocktime“) Lohn für Mining Provision
  12. E297B99E2 E4741A058 4F1019E5E… ??? Hashing Große Eingabemenge in kleine Zielmenge

    Kleine Änderung bei Eingabe → große Änderung bei Hashwert Unterschiedlichkeit nicht aus Hashwerten ableitbar Leicht zu berechnen aber nicht injektiv 575F2A25E 26A87F0CC 4C57D14C8… 2549743EE 6EAD05351 811C5C036… C28218582 E997DEA19 DBFAC2AE3… #
  13. Block Block Block Chain of Blocks Blöcke über Hashes verknüpft

    “Nonce” zur Beeinflussung des Block Hash Sicherheitsfunktion Details später Baumstruktur (“Merkle Tree”) zur Performance- optimierung Technisches Detail Hier nicht näher behandelt Vereinfachte Darstellung Techniische Details: https://github.com/ethereum/yellowpaper Prev. Hash Nonce Merkle Root T 4 T 3 T 2 T 1
  14. Mining-Process Miner versuchen Block zu erzeugen Auswahl Transaktionen Crypto-Rätsel Wettbewert

    Block wird hinzugefügt Veröffentlichen Miner erhält Belohnung Andere Miner stoppen Mining An nächstem Block arbeiten Längere Blockchain gewinnt Zwei Miner erzeugen gleichzeitig einen Block → „Fork“ „Orphan Blocks“ Longer Chain wins
  15. Proof-of-Stake (PoS) Proof-of-Work (PoW) Probleme Energiebedarf Finanzkräftige Miner werden belohnt

    → Selbstverstärkung → Zentralisierung statt Dezentralisierung 51%-Angriff – mehr Rechenleistung als der Rest des Netzwerks Alternative „PoS“: Gewichtete Zufallsauswahl auf Basis Vermögen Man setzt einen Teil seines Vermögens ein Höhe des Einsatz beeinflusst Wahrscheinlichkeit, den nächsten Block minten zu können Durch einen Angriff zerstört man sein eigenes Vermögen „Nothing-at-Stake“-Problem
  16. Proof-of-Authority (PoA) „Validators“ verwalten Blöcke in Blockchain Ausgewählt durch Administratoren

    Unabhängig von Rechenleistung oder Einsatz („Stake“) Sicherheit hängt am Autorisierungsprozess Speziell relevant für private Blockchain-Implementierungen Man kennt und vertraut den Knoten im Blockchain-Netzwerk Beispielimplementierung: Microsoft Blockchain Viele weitere Varianten Z.B. Proof-of-Reputation: Sich ständig weiterentwickelnde „Chain of Trust“
  17. Smart Contracts Blockchain = Daten + Code Accounts External Accounts

    („Address“) Contracts („Agents“) Miner führen Code aus der Blockchain aus Contracts greifen auf Blockchain zu Durch Transaktionen ausgelöst Lesen von Daten aus der Chain Schreiben von Ergebnissen in die Chain Block Block Data Code Code Message (Transaction) External Account Gas Messages, Storage Signatur
  18. Beispiel contract Coin { address public minter; mapping (address =>

    uint) public balances; // Events allow light clients to react on changes. event Sent(address from, address to, uint amount); // Run when the contract is created. constructor() public { minter = msg.sender; } function mint(address receiver, uint amount) public { if (msg.sender != minter) return; balances[receiver] += amount; } function send(address receiver, uint amount) public { if (balances[msg.sender] < amount) return; balances[msg.sender] -= amount; balances[receiver] += amount; emit Sent(msg.sender, receiver, amount); } function balance(address _account) public view returns (uint) { return balances[_account]; } } Solidity (Ethereum) Contract, mit dem man Guthaben verschicken kann Ein „Münzpräger“ Guthaben vergeben „mint“ Weitergeben „send“ Abfragen „balances“ https://remix.ethereum.org
  19. Beispiel Test pragma solidity ^0.4.7; import "remix_tests.sol"; // this import

    is automatically injected by Remix. import "./coin.sol"; contract test3 { Coin coinToTest; function beforeAll () public { coinToTest = new Coin(); } function mint () public { address target = 0x1e3c6E3F7752326A70268aB3fe280d6d9BDbBDC9; coinToTest.mint(target, uint(5)); Assert.equal(coinToTest.balance(target), uint(5), "Should have 5 coins"); } } Solidity (Ethereum)
  20. Smart Contracts Blockchain geht über Datenspeicher hinaus Regeln in Form

    von Code Gelten für alle gleich Von jedem Teilnehmer im Netzwerk überprüfbar Problem: Fehlerhafter Contract Code Ähnlich wie Schlupflöcher in Gesetzen Problem: Unveränderbare Blockchain
  21. Demo Ethereum Demo MetaMask Wallet Get ETH on Rinkeby Testnet

    Link Show on Etherscan Demo Origin Shop Buy something Show transaction on Etherscan
  22. Kriterien für Blockchain Brauche ich eine verteilte, öffentliche Datenbank? Komplett

    öffentlich, Konsortien Sind mehrere Parteien involviert? Vertrauen sich die involvierten Parteien nicht vollständig? Z.B. wegen konfliktärer Ziele Können sich alle Parteien auf ein Set an Regeln einigen? Ändern sich die Regeln der Zusammenarbeit selten? Unveränderliche, kontinuierlich wachsende Transaktionsliste gefordert?
  23. Alternativen für Blockchain Klassische Datenbanken RDBMS, NoSQL, Graph-DBs On-Premise vs.

    Cloud Computing Öffentliche Schnittstellen APIs (Application Programming Interfaces) Basierend auf offenen Standards Open Source Software Open Data Z.B. https://www.data.gv.at/
  24. Vorteile Blockchain vs. DB Dezentralisierung: Jeder Partner hat alle Daten

    Überprüfbarkeit Event. schwerer angreifbar als zentralisierte DB Offene Daten führen zu mehr Innovation (vgl. Open Source Software, Open Data) Consensus-Algorithmus für neue Transaktionsblöcke Unveränderliche Daten Herausforderung: DSGVO Besonders gut für Transaktionsdaten geeignet Skalierbarkeit beim Schreiben von Transaktionen Durch „Smart Contract“ wird Blockchain zu verteiltem Computer Ausfallssicher durch Dezentralisierung
  25. Beispiele für Anwendungsfälle Digital Tokens Digitale Währungen, Coupons, Bonusprogramme Abstimmungen

    Stimmabgabe = Transaktion Jeder kann selbst die korrekte Zählung seiner Stimme prüfen Auch komplexe Abstimmungsregeln durch Smart Contracts abbildbar Verzeichnisse Namensverzeichnisse (z.B. Marken) Besitzverzeichnisse (z.B. Grundbuch, Firmenbuch) Identity Management (DIDs – Decentralized Identifiers, siehe W3C Draft) Lieferketten Kühlketten, Herkunftsnachweise
  26. Zug (CH) Digitale ID Digitale Bürger-ID, die mit Smartphone-App verknüpft

    ist Verifizierung durch Einwohnerkontrolle der Stadt Speicherung in der Ethereum Blockchain (öffentlich) Start: 15. November 2017 Ende August 2018 220 Bürger mit digitaler ID Ankündigung Open Identity App uPort https://www.uport.me/ Basierend auf W3C DID (other example: Microsoft Decentralized Identity Announcement) Anwendungsfall: E-Voting Testwahl im Juli 2018 72 Bürgerinnen und Bürger beteiligten sich mit digitaler ID Bericht Bildquelle: http://www.stadtzug.ch/de/ueberzug/ueberzugrubrik/aktuelles/aktuellesinformationen/
  27. Hype-Zyklus, siehe auch https://de.wikipedia.org/wiki/Hype-Zyklus und https://www.ledgerinsights.com/gartner-blockchain-hype-cycle/ Technologischer Auslöser Gipfel der

    überzogenen Erwartungen Tal der Enttäuschungen Pfad der Erleuchtung Plateau der Produktivität Aufmerksamkeit Zeit
  28. Fazit Blockchain-Projekte sind „(B)leading Edge“ Wenig Praxiserfahrung Technisches und inhaltliches

    Risiko (z.B. DSGVO) Mittel- bis langfristig sehr großes Potential Sehr gute Lösung für gewisse Anwendungsfälle Wichtige Komponente in Digitalisierungsstrategie Ergänzung für Open Source Software und Open Data Richtige Zeitpunkt für Pilotprojekte Technologie in wenig risikoreichen Projekte evaluieren Erfahrung sammeln Durch Innovation zur Weiterentwicklung der Technologie beitragen
  29. Was ist dran an der Blockchain-Revolution? F&A Rainer Stropek software

    architects gmbh [email protected] http://www.timecockpit.com @rstropek Danke furs Kommen Mail Web Twitter