IT-Sicherheitsmanagement Teil 17: Bitcoin und Blockchain Eine kurze

Die Seite wird erstellt Jannik Jordan
 
WEITER LESEN
IT-Sicherheitsmanagement Teil 17: Bitcoin und Blockchain Eine kurze
IT-Sicherheitsmanagement

                             Teil 17: Bitcoin und Blockchain
                                  Eine kurze Einführung

ISM – WS 2018/19 - Teil 17/Bitcoin                              18.01.19 1
IT-Sicherheitsmanagement Teil 17: Bitcoin und Blockchain Eine kurze
Literatur

           [17-1]         CT-Serie über Bitcoin
                          CT 2018, Heft 7, 8, 10, 11, 12, 13, 14, 15, 23, 25, 26
                          CT 2019, Heft 1, 2
           [17-2]         Brümmerl, Kai: Blockchain, kurz&gut. O'Reilly, 2018
           [17-3]         Drescher, Daniel: Blockchain Grundlagen. Mitp, 2017
           [17-4]         Antonopoulos, Andreas: Bitcoin und Blockchain – Grundlagen
                          und Programmierung. O'Reilly, 2.Ed., 2018

ISM – WS 2018/19 - Teil 17/Bitcoin                                                     2
Links I

           [17L-1]           https://de.wikipedia.org/wiki/Bitcoin
           [17L-2]           https://de.wikipedia.org/wiki/Satoshi_Nakamoto
           [17L-3]           https://de.wikipedia.org/wiki/Bitcoin_Core
                             https://github.com/bitcoin/bitcoin
           [17L-4]           https://de.wikipedia.org/wiki/Proof_of_Work
           [17L-5]           https://de.wikipedia.org/wiki/Proof_of_Stake
           [17L-6]           https://www.blockchain.com/de/explorer
           [17L-7]           https://en.wikipedia.org/wiki/Merkle_tree
                             https://de.wikipedia.org/wiki/Hash-Baum
                             https://patents.google.com/patent/US4309569
           [17L-8]           https://de.wikipedia.org/wiki/Byzantinischer_Fehler
                             https://www.mtv.tu-berlin.de/fileadmin/a3435/Lehre/SoSe06/Dist
                             Algs/Byzanz1.pdf
                             https://blog.novatrend.ch/2018/01/22/blockchain-byzantinische-
                             generaele-und-das-cap-theorem
           [17L-9]           https://en.bitcoin.it/wiki/Vocabulary

ISM – WS 2018/19 - Teil 17/Bitcoin                                                            3
Links II

              [17L-10]           https://de.wikipedia.org/wiki/QR-Code
              [17L-11]           https://bitcoin.org/de/wallets/hardware/
              [17L-12]           https://de.wikipedia.org/wiki/Base58
              [17L-13]           https://de.wikipedia.org/wiki/Elliptic_Curve_DSA
              [17L-14]           https://de.wikipedia.org/wiki/Digital_Signature_Algorithm
              [17L-15]           https://de.wikipedia.org/wiki/Elliptic_Curve_Cryptography

ISM – WS 2018/19 - Teil 17/Bitcoin                                                           4
Übersicht

              •    P2P-Idee
              •    Blockchain
              •    Bitcoin
              •    Einige Details

            Dieser Foliensatz bezieht sich auf das klassische Bitcoin-Konzept.
            Es wird viele Variationen davon, die hier nicht behandelt werden.

ISM – WS 2018/19 - Teil 17/Bitcoin                                               5
Geschichte (Auszug)

            2008, Nov.               Veröffentlichung des Konzept durch Satoshi Nakamoto
            2009, Jan.               Open Source Referenz-Implement
            3. 1. 2009               1. Block: Genesis Block
            2015, Jul.               Absterben von 7 Blöcken (Transaktionen von 2h)
            2016, Mitte              DAO-Hack Ethereum, Software-Fehler
            2017, Aug.               Hard Fork: Bitcoin Cash
            2017, Sep.               China verbietet sanft das Bitcoin-Schürfen
            2017, Okt.               Hard Fork: Bitcoin Gold
            2017, Dez.               Gebührenexzesse, bis zu 100 US$ Überweisungsgebühr
            2018, Feb.               Hard Fork: Bitcoin Private
            2018, Mai                2x 51%-Angriffe auf Bitcoin Gold, Schaden 18 Mio. US$

   Satoshi Nakamoto ist ein Pseudonym, dessen Identität bis heute ungeklärt ist,
   obwohl der Australier Craig Wright behauptet, Nakamoto zu sein.

ISM – WS 2018/19 - Teil 17/Bitcoin                                                           6
Der Bitcoin I

              •    1 Bitcoin (BTC) = 100*106 Satoshi
              •    Begrenzung auf ca. 21 Mio. BTC
                                                                          Die Umrechnungen in
              •    1 Satoshi = 0,0034 Cent (EUR, s.u.)                    EUR beziehen sich auf
              •    Beispiel Jan 2019:                                     den zitierten Stand.
                    –    1 Bitcoin = 3.920 US$ (3.425 EUR)
                    –    Hashrate 39.381.570 TH/s (Tausend Hash/Sekunde)
                    –    Difficulty = 5.6*1012
                    –    Gebühr = 9.003 Satoshi (31 Cent, s.o.)
                    –    Unbestätigte Transfers = 7.100
                    –    Transfers pro Tag = 285.000
                    –    Mempool = 3,3 MB
                    –    Blockchain-Größe = ca. 192 GB
                    –    Ca. 12.000 Knoten mit der (fast vollständigen) Blockchain

          Quelle der Zahlen: https://www.blockchain.com/explorer

ISM – WS 2018/19 - Teil 17/Bitcoin                                                                7
Der Bitcoin II – Die Kursentwicklung nach US$

                                     Quelle: https://de.wikipedia.org/wiki/Bitcoin

ISM – WS 2018/19 - Teil 17/Bitcoin                                                   8
P2P-Netzwerk I

              • Lose mit einander gekoppelte, eigenständig arbeitende
                Netzknoten; es gibt keinen Zwang zur gleichzeitigen Arbeit.
              • Es gibt keinen (klaren) Zustand, da es keine zentrale
                Synchronisation gibt.
                Mit geeigneten Protokollen lässt sich ein Zustand definieren, was
                mit dem Preis eines "Anhaltens" bezahlt wird.
              • Es gibt keine zentrale Steuerung.
              • In der Praxis gibt es Vermittler, die verschiedene Knoten während
                der Startphase zusammen bringen. Ohne diese Vermittler muss
                mit Broadcast gearbeitet werden.
              • Welcher Knoten mit welchem anderen kommuniziert ist nicht
                festgelegt.
              • Bei Bitcoin sind die Knoten angehalten ihren Informationstand an
                alle ihnen bekannten Knoten zu verteilen (Propagation, Flooding).

ISM – WS 2018/19 - Teil 17/Bitcoin                                                  9
P2P-Netzwerk II

              • Ein Teil der Knoten wird als korrekt, ein anderer Teil als fehlerhaft
                bzw. inkorrekt angenommen.
              • Um zu einem gemeinsamen Ergebnis zu kommen, muss ein
                Abstimmungsprotokoll ablaufen.
              • Dieses Protokoll realisiert Konsensregeln.
              • Das Problem der Realisierung davon wird als Problem der
                Byzantinischen Generäle bezeichnet.

              • Die Abstimmung bzw. der Konsens betrifft den Zustand einer
                zentralen Datenstruktur, hier der Blockchain.
              • Es gibt eine Referenzimplementierung des Protokolls:
                Bitcoin Core.

ISM – WS 2018/19 - Teil 17/Bitcoin                                                      10
Blockchain I – 1. Näherung

                         Block n-1    Block n              Block n+1

                         Hash von     Hash von             Hash von
                         Block n-2    Block n-1             Block n

         ...
                        Hash von      Hash von             Hash von
                       Transaktion   Transaktion          Transaktion

                       Transaktion    Transaktion          Transaktion

            • Die Verkettung erfolgt nicht durch Zeiger, sondern über
              Hashwerte des direkt davor liegenden Blocks.
            • In den Blöcken/Transaktion stehen noch weitere Daten.
            • Die Blockchain wird immer nur verlängert, nie geändert.

ISM – WS 2018/19 - Teil 17/Bitcoin                                       11
Transaktionen

              • Transaktion = Zuschreibung eines Betrages an eine andere
                Bitcoin-Adresse
              • Eine Transaktion gilt als bestätigt, wenn sie in der Blockchain
                abgespeichert ist. Dieser Teil wird niemals geändert.

              • Transaktionsgebühren = Transfer Fee = Freiwilliger Wert durch
                den Zahlenden an den Miner
              • Die Gebührt ist mindestens 1 Satoshi.
              • Je höher die Gebühr, desto schneller wird die Transaktion in die
                Blockchain integriert und damit bestätigt.
              • Eine Transaktion bezieht sich immer auf einen Geldbetrag, der
                immer insgesamt übertragen wird.
              • Ist der Betrag für die betreffende Sache kleiner, so wird die
                Differenz zurück überschrieben ("Wechselgeld").

ISM – WS 2018/19 - Teil 17/Bitcoin                                                 12
Aufgabe der Miner I

              • Besondere Netzknoten haben die Aufgabe die Blockchain zu
                verlängern: diese werden Miner genannt.
              • Algorithmus für das Generieren eines neuen Blocks:
                    1) Sammeln von Transaktionen im Mempool
                    2) Generieren eines Blocks
                    3) Einhängen dieses Blocks
                    4) Verteilen des Blocks
              • Algorithmus für Empfang eines neuen Blocks:
                    1) Prüfung, ob alle neuen Transaktionen korrekt sind
                    2) Prüfung, ob alle neuen Transaktionen noch nicht in der Blockchain
                       stehen
                    3) Prüfung, ob der neue Block korrekt ist
                    4) Nach der Prüfung: weiteres Verteilen
              • Mempool = Sammelbereich eines Miners für neue Transaktionen,
                die von ihm noch nie bearbeitet wurden

ISM – WS 2018/19 - Teil 17/Bitcoin                                                         13
Blockchain II

              • Erst wenn die Transaktion in der Blockchain enthalten ist, ist sie
                bestätigt und (erst einmal) gültig.
              • Ein neuer Block wird alle 10 Min. generiert.
              • Max. 1 MByte pro Block, ca. 2000 Transaktionen (Tradition),
                diese Größe wurde inzwischen erhöht.
              • Es wird angenommen, dass erst 6 Blöcke später die betreffenden
                Transaktionen "sicher" bestätigt sind.
              • Bis zu diesem Zeitpunkt ist es unklar, ob die Transaktionen
                bestätigt sind.
              • In der Praxis wird bei kleinen Beträgen nicht 10 bis 60 Min.
                gewartet.

ISM – WS 2018/19 - Teil 17/Bitcoin                                                   14
Aufgabe der Miner II

                                     Block n   Block n+1      Tod
                 Block n-1

                                     Block n   Block n+1   Block n+2

       • Alle Miner stehen in Konkurrenz den nächsten Block zu generieren.
       • Daher können zwei Miner parallel den nächsten Block erzeugen und
         diesen verteilen.
       • Diese beiden Blöcke sind gültig, können aber einen unterschiedlichen
         Inhalt haben.
       • Das Arbeiten an verschiedenen Enden kann mehrfach passieren, bis
         einer der Zweige kürzer als der andere ist.
       • Dann wird der kürzere verworfen und damit alle dortigen
         Transaktionen ungültig gemacht.
       • Siehe: https://www.blockchain.com/de/btc/orphaned-blocks
ISM – WS 2018/19 - Teil 17/Bitcoin                                              15
Absterben von Teilketten

                            Quelle: https://www.blockchain.com/charts/n-orphaned-blocks?timespan=all

ISM – WS 2018/19 - Teil 17/Bitcoin                                                                     16
Subvention der Miner

              • Reward = Mining-Gebühr = Neues Geld, das der Miner bekommt,
                wenn er erfolgreich einen Block anhängt ("schürft")
              • Wenn ein Miner als erster einen Block an die Kette gehängt hat,
                erhält er
                    – eine Belohnung (Reward) und die
                    – Summe aller Transfer-Gebühren des Blocks
              • Wert der Belohnung
                    –    Start 2009: 50 Bitcoin
                    –    Dies halbiert sich alle 210.00 Blöcke (ca. 4 Jahre)
                    –    2018: 12,5 Bitcoins pro Block
                    –    Ab 2144: Nichts mehr
              • Nach dem Jahre 2144 müssen die Miner allein von den
                freiwilligen Gebühren leben.

ISM – WS 2018/19 - Teil 17/Bitcoin                                                17
Blockchain III

 Prinzipieller
 Aufbau eines                        • Nonce ist ein beliebig wählbarer 32-bit-Wert,
 Blocks                                der dafür sorgt, dass der Hashwert unterhalb
                     Daten             eines vorgegebenen Grenzwertes liegt.
                                     • Der Grenzwert wird durch die Schwierigkeit
                     Nonce             Difficulty festgelegt.
                                     • Der Hashwert hat im vorderen Bereich ein
                  Difficulty
                                       gewisse Anzahl von 0.
                 Hashwert            • Die Miner nun setzen einen Nonce und
                                       berechnen den Hash.
                                     • Wenn er die Difficulty-Bedingung erfüllt ist, der
                                       Block fertig.
                                     • Wenn nicht, wird mit einem anderen Nonce-
                                       Wert erneut probiert.

ISM – WS 2018/19 - Teil 17/Bitcoin                                                         18
Blockchain IV

              • Difficulty = Grad der Schwierigkeit für einen neuen Block
              • Wird alle 2 Wochen neu berechnet anhand der weltweiten Hash-
                Rate
              • Dabei wird die reale Dauer für die letzten 2016 Blöcke (14 Tage)
                bestimmt:
              • Wenn sie kürzer als 14 Tage ist, dann wird die Schwierigkeit
                erhöht, wenn die länger ist, dann erniedrigt.

              • Um einen Block zu generieren, sind Millionen von Versuchen
                notwendig.
              • Proof-of-Work = Der richtige Hashwert als Nachweis der CPU-
                Leistung

ISM – WS 2018/19 - Teil 17/Bitcoin                                                 19
Aufgabe der Miner III

              • Alle Miner befinden sich in einem Wettlauf um den nächsten
                Block.
              • Gewinnt ein Miner den Wettlauf, so streicht er die Belohnung und
                alle Transfer-Gebühren des Blocks ein.
                Das sind/waren teilweise 30.000 bis 40.000 EUR.
              • Verliert der Miner den Wettlauf, so ist eine Arbeit umsonst.
              • Das gilt auch, wenn ein ganzer Zweig abstirbt. Dann sind alle
                Belohnungen und Gebühren aller abgestorbenen Blöcke
                vernichtet.

              • Das ist der Grund, warum eine Transaktion, erst nach 6 Blöcken
                sicher ist, denn dann sind alle konkurrierenden Zweige
                gestorben.
                Oder sie stirbt mit den sterbenden Blöcken.

ISM – WS 2018/19 - Teil 17/Bitcoin                                                 20
Aufgabe der Miner IV

             Eingesetzte Hardware
              • Desktop-PCs
              • PCs mit mehreren Graphikkarten (GPU)
              • Spezielle ASIC-Rechner, z.B.
                    – S9 AntMiner 13,5 THash/s

              • Hacker benutzen auch
                    –    ungeschützte IoT-Geräte
                    –    Netzwerkdrucker
                    –    Private Mediastationen
                    –    Browser mit JavaScript: versteckt in Anzeigen
              • Diese Geräte sind sehr langsam, aber: Kleinvieh macht auch Mist.

ISM – WS 2018/19 - Teil 17/Bitcoin                                                 21
Kosten des Minings I - 51%-Angriff

         • Der Schutz vor Manipulation liegt im technischen Aufwand. Der
           Grund dafür ist die Möglichkeit, dass jeder die Blockchain verlängern
           kann.
         • 51%-Angriff:
           Wenn eine Gruppe von Minern 51% der Hashleistung weltweit
           vereint, kann diese Gruppe einen längeren Parallelzweig der
           Blockchain mit falschen Daten etablieren und den Zweig mit den
           korrekten Daten zum Absterben bringen.
         • Die Angreifer bauen einen "geheimen" langen Zweig auf, der dann in
           einem Stück veröffentlicht wird.
         • Neue Kryptowährungen haben nur wenige Miner und sind daher stark
           durch diese Angriffe gefährdet.

ISM – WS 2018/19 - Teil 17/Bitcoin                                                 22
Kosten des Minings II - Umwelt

         • Für 2018 wird geschätzt, dass der Stromverbrauch der Miner weltweit
           zwischen 50 und 70 TWh (Tera-Wattstunden) liegt.
           Das liegt in dem Bereich des Stromverbrauchs von Dänemark oder
           Österreich pro Jahr.
         • Diese Umweltbelastung hängt von den Minern ab, nicht von der
           Anzahl der Transaktionen.

         • Dieser Aufwand ist mit dem Konzept der Blockchain verbunden.
           Alle Blockchain-Anwendungen haben dieses Problem.
         • Erst wenn eine zentrale Instanz akzeptiert wird, verschwindet das
           Energie/Aufwand-Problem:
                – Es gibt keine Zweige, die absterben können.
                – Nur bestimmte Knoten können die Blockchain verlängern.
                – Trotzdem ist die Blockchain öffentlich und kann jederzeit geprüft werden.

ISM – WS 2018/19 - Teil 17/Bitcoin                                                            23
Aufbau einer Kryptowährung

              • Initial Coin Offering (ICO) = Erfinder verkaufen die ersten
                Einheiten an Investoren vor Beginn
              • Nach häufigem Missbrauch (2016..2017) gibt es staatliche
                Regelungen.
              • Die Verluste durch betrügerische Start-Ups werden auf 20 Mio.
                US$ geschätzt.
              • Neue Start-Ups verlagern das Risiko an die Kunden bzw.
                Investoren.
              • Facebook und Google schalten keine Werbungen für ICOs mehr.

ISM – WS 2018/19 - Teil 17/Bitcoin                                              24
Adressen - einfach

              • Es gibt kein Konto und auch keine Geldbörse.
              • Alle Beträge sind Adressen (Empfänger) zugeordnet und diese
                Personen, Organisationen, Skripten oder Geräten.
              • Jeder Inhaber besitzt mindestens ein asymmetrisches
                Schlüsselpaar.
              • Aus dem öffentlichen Schlüssel wird die Bitcoin-Adresse generiert:
                Adresse (Hex) = RIPEM160(SHA256(public-Key))

              • Beispiel aus
                   https://www.blockchain.com/btc/address/17hxeNzSThGXFpsNWQxgnkYSaxHMWiJXpL

                Adr        = 17hxeNzSThGXFpsNWQxgnkYSaxHMWiJXpL
                Hash       = 498fd7c42932070ff3ec30e929bb81111226faed
              • Der Hashwert wird noch bearbeitet und umkodiert, so dass aus dem
                Hash die obigen Adresse Adr entsteht.

ISM – WS 2018/19 - Teil 17/Bitcoin                                                             25
Wallet

              • Wallet = Brieftasche = Software zur Verwaltung von
                asymmetrischen Schlüsseln, zur Bezahlung und Berechnung
                eines "Kontostands"
              • In den Wallets ist kein Geld enthalten; das Geld liegt in der
                Blockchain.
              • Es gibt Wallets, die ihre Schlüsselpaare nicht verschlüsseln!
              • Der Kontostand wird dadurch berechnet, dass alle Auszahlungen
                aller eigenen Adressen sowie alle Einzahlungen an die eigenen
                Adressen durch Analyse der Blockchain live berechnet werden.
              • Bitte beachten: Eine Person bzw. Wallet kann mehrere Adressen
                haben.

ISM – WS 2018/19 - Teil 17/Bitcoin                                              26
Missbrauch und Probleme I

              • Bitcoin-Stealer
                    – Überwachen die Zwischenablage
                    – Und ersetzen die Zieladresse
              • Der Hacker kann viele Adressen haben, so dass bessere Stealer
                Adressen in der Zwischenablage durch ähnliche ersetzen.
              • Hier wird ausgenutzt, dass sich niemand diese wüsten Adressen
                merken kann.
              • Kritisch ist die Generierung der Schlüsselpaare:
                    – JavaScript-Software von Websites – Oh oh
                    – Generieren auf Webserver – noch schlimmer

ISM – WS 2018/19 - Teil 17/Bitcoin                                              27
Missbrauch und Probleme II

            • Bitcoin-Mixer: Dienst eines Internetanbieters
                  – Für Einzahlungen werden andere Wallets benutzt als für
                    Auszahlungen, wobei die letztere erst viel später erfolgt, so dass der
                    Zusammenhang verschleiert wird.
                  – Größtes Vertrauen ist erforderlich.
                    Es gibt dazu "Letter of Guarantee" mit den Adressen und
                    Geldbeträgen.
                  – Einige betrügen durch gefälschte Signaturen auf diesen Letter.
                    Dann steht der Kunde als Betrüger da.
                  – Einige machen das nur manchmal (Selective Scam).

            • Es gibt die Möglichkeit kurzer Nachrichten in den Transaktionen,
              aber auch den Trick, in die Adressen Nachrichten zu codieren:
                  – Grüße, Fotos, Erinnerungen an Verstorbene, Botschaften an
                    Außerirdische und Kinderpornographie.
                  – Wie Twitter: https://wewo.cash/

ISM – WS 2018/19 - Teil 17/Bitcoin                                                           28
Erinnerung an Mandela

                                     Quelle: https://www.blockchain.com/btc/tx/
                                     8881a937a437ff6ce83be3a89d77ea88ee12315f37f7ef0dd3742c30eef92dba?show_adv=true

  Siehe dazu:
  http://www.righto.com/2014/02/ascii-bernanke-wikileaks-photographs.html

ISM – WS 2018/19 - Teil 17/Bitcoin                                                                                29
Missbrauch und Probleme III - Shops

              • Bei Kreditkarten zahlen die Shops die Gebühren,
                bei Bitcoin die Kunden.
              • Die Gebühr ist freiwillig, die Höhe bestimmt die Priorität bei den
                Minern.
              • Einige Miner weigern sich Transaktionen mit keinen oder
                geringen Gebühren zu verarbeiten.
              • Teilweise dauert es Tage, bis Transaktionen bestätigt werden.

ISM – WS 2018/19 - Teil 17/Bitcoin                                                   30
Missbrauch und Probleme IV – Double Spend

            • Double Spend = Mehrfache Ausgabe desselben Geldes
            • Mit einem 51%-Angriff geht dies:
                1)Im Zweig A werden echte Waren mit Bitcoins gekauft.
                2)Dann wird der gleichzeitig berechnete, erst geheime parallele Zweig B in
                  die Chain gehängt.
                3)Im Zweig B wird dieselbe Geldmenge an andere Wallets überwiesen.
                4)Nun stirbt der Zweig A.
                5)Die anderen Wallets gehören den Betrügern.
            ●
                Derartige Angriffe wurden im Mai 2018 durchgeführt.
                Schaden: ca. 18 Mio. US$. Die Kette der geheimen Blöcke war
                teilweise 50 Blöcke lang, also Transaktionen innerhalb von 8h.
            ●
                Gegenangriff: Dasselbe machen die Guten, die den Zweig der Bösen
                zum Absterben bringen…

            ●
                Dann gibt es noch den Replay-Angriff nach Hard Forks.

ISM – WS 2018/19 - Teil 17/Bitcoin                                                           31
Hard Forks und Soft Forks I

              • Soft Fork = Änderung des Protokolls und der Datenformate
                kompatibel zur früheren Version
              • Hard Fork = Fork mit inkompatiblen Varianten

              • Forks sind Sache der Miner.
              • Bei Soft Forks wurde einfach die Software bei den Minern bzw.
                Wallets ersetzt.
              • Jeder Hard Fork definiert eine neue, andere Kryptowährung.
              • Wenn alle Miner mitspielen, wird der Zweig mit der alten Version
                nicht mehr verlängert bzw. alle Versuche dies zu tun führen zum
                Absterben.
              • Wenn aber nur einige Miner mitspielen, teilt sich die Blockchain in
                zwei inkompatible Zweige auf, die jeweils weiter geführt werden.
              • Keiner der beiden Hard Fork-Zweige stirbt ab.

ISM – WS 2018/19 - Teil 17/Bitcoin                                                    32
Hard Forks und Soft Forks II

              • Bei einem Hard Fork werden die bestehenden Beträge jeweils auf
                beide Zweige dupliziert.
              • Es gibt aber keinen Schutz gegen einen Replay-Angriff.
              • Der aktuelle Geldbetrag kann dann in beiden Zweigen jeweils
                einmal, aber insgesamt doppelt ausgegeben werden.
              • Genau das geschah im Nov. 2018: Bitcoin Cash (BCH) duplizierte
                sich zu:
                    – Bitcoin ABC (BCHABC)
                    – Bitcoin-SV (BCHSV)
              • Schutz vor Verlust durch Anlegen neuer Wallets und überweisen
                an sich selbst mit anschließender Aufgabe der Originalwallet.

ISM – WS 2018/19 - Teil 17/Bitcoin                                               33
Missbrauch und Probleme III - Datenschutz

              • (Kryptogeld-)Blockchains sind immer öffentlich.
              • Private Blockchains werden über Schutzmechanismen der
                Betriebssysteme realisiert.
              • Privatsphäre oder Zugriffsschutz ist nur über zusätzliche
                Verschlüsselung zu erreichen.

ISM – WS 2018/19 - Teil 17/Bitcoin                                          34
Performanz-Probleme und die Forks

          • 1. Idee (Anfang 2017):
                – Vergrößerung der Blöcke auf 2 MB
                  Segregated Witness 2MB = SegWit2x
                – Trennung der Buchungsdaten (vorne) und Signaturen (hinten) bzw. eine
                  Buchungstransaktion (TX) und eine weitere Wittness-Transaktion (WTX).
                  Das führt zu einer Verdopplung der Transaktionen pro Block.
                – Die Einführung von SegWit2x bedeutet einen Hard Fork.
          • 2. Idee: Blöcke bis zu 8 MB und anderer Difficulty-Algorithmus
            Dies wurde Bitcoin Cash genannt.
          • 3. Idee: Trennung der Buchungsdaten, aber Blocklänge bleibt:
            SegWit – das wäre ein Soft Fork

          • Im August 2017 entstand Bitcoin Cash als Hard Fork und SegWit als
            Soft Fork. Heute benutzen 30% aller Transaktionen SegWit.

          • Es gibt nun Bitcoin, Bitcoin Cash, Bitcoin Gold, Bitcoin Private

ISM – WS 2018/19 - Teil 17/Bitcoin                                                        35
Smart Contracts

              • Smart Contract = in Software programmierte
                Vertragsdurchführung als Teil einer Transaktion
              • Jeder Transaktion wird ein Skript in einer Stack-orientierten
                Sprache, ähnlich Forth, beigefügt (und per Signatur geschützt).
              • Es gibt ein Output-Skript, das der Zahler bestimmt, und ein
                Input-Skript, das der Empfänger definiert.
              • Beide werden hintereinander ausgeführt. Wenn ein True am
                Ende entsteht, dann ist der Transfer gültig.

ISM – WS 2018/19 - Teil 17/Bitcoin                                                36
Zu den Wallets I - Realisierung

              • Hardware-Wallet
                Eigenständige Geräte, die u.a. mit Near-Field-Kommunikation mit
                Geräten am Internet kommunizieren. Sehr sicher und teuer.
              • Desktop-Wallet
                Software auf normalen PCs, unsicher, das zahlreichen Angriffen
                ausgesetzt, auch schlechte Implementierungen
              • Mobil-Wallet
                Software auf Smartphones, noch unsicherer als Desktop-Wallets
              • Web-Wallet
                Software auf Servern fremder Anbieter, recht sicher, solange dem
                Server-Betreiber vertraut wird
              • Paper-Wallet (cold storage)
                Aufbewahrung auf Ausdrucken, sehr sicher, sofern sie nicht aus
                Privaträumen gestohlen werden

ISM – WS 2018/19 - Teil 17/Bitcoin                                                 37
Paper-Wallet (https://walletgenerator.net) I

              Über eine Website generierter Ausdruck mit dem geheimen Schüssel
ISM – WS 2018/19 - Teil 17/Bitcoin                                               38
Paper-Wallet II - Bemerkungen

              • Natürlich keine Website zum Generieren geheimer Schlüssel
                verwenden, alles Offline machen.
              • Noch besser die privaten Schlüssel vor dem Ausdruck mit einer
                Passphrase versehen (nach BIP-38).

ISM – WS 2018/19 - Teil 17/Bitcoin                                              39
Zu den Wallets II - Funktionalität

              • Full-Node-Client
                enthält die gesamte Blockchain: 150-200GB Platte und 2 GB
                RAM und viel Netzwerk-Verkehr
              • Simple Payment Verification (SPV-Client)
                enthält nur den letzten Teil der Blockchain, benötigt Zugriff auf
                die Full-Node-Clients
              • API-Client
                benutzt eine API eines (vertrauenswürdigen) Drittanbieters zur
                Interaktion bei den Bezahlungen, Auslagerung der Funktionalität
                an Dritte

ISM – WS 2018/19 - Teil 17/Bitcoin                                                  40
Asymmetrische Schlüssel I

              • Grundlage ist echter Zufall.
              • Es wird das Verfahren des ECDSA verwendet:
                Elliptic Curve Digital Signature Algorithm.
              • Die elliptischen Kurven haben Parameter, die diese bestimmen.
              • Bei Bitcoin wird die Kurve secp256k1 benutzt.
                Siehe:
                    –    https://en.bitcoin.it/wiki/Secp256k1
                    –    http://www.secg.org/sec2-v2.pdf
                    –    https://www.desmos.com/calculator/ialhd71we3
                    –    https://bitcoin.stackexchange.com/questions/21907/what-does-the-
                         curve-used-in-bitcoin-secp256k1-look-like
              • Die Bitgröße der Zahlen ist bei derselben Sicherheit gegenüber
                RSA kleiner, hier: 256 bit.
              • Daher gehen die Berechnungen schneller.

ISM – WS 2018/19 - Teil 17/Bitcoin                                                          41
Asymmetrische Schlüssel II

                                                             Einen Webserver zum
                                                             Generieren der Schlüssel
                                                             zu benutzen ist
                                                             keine gute Idee.

                                                             Zum Spielen ist das OK.

                     https://gobittest.appspot.com/Address

         • Aus dem privaten Schlüssel lässt sich der öffentliche generieren.
         • Daher reicht der private aus.

ISM – WS 2018/19 - Teil 17/Bitcoin                                                      42
Adressen – richtig (WIF, Wallet Input Format)

                                              Public Key

                                     RIPEMD160(SHA256(Public Key))

      Präfix                                                SHA256(SHA256(..))
      Versionsbyte                                             Erste 4 Bytes

                              0x00          Fingerprint       Checksum
                                            Kodiert nach Base58

           • Bitcoin-Adressen beginnen immer mit einer 1 oder 3.
           • Sie sind öffentlich.
           • Eine Wallet ist prinzipiell eine Menge von Adressen samt
             Schlüsseln.
           • Siehe dazu: https://en.bitcoin.it/wiki/Base58Check_encoding
           • Adresse können auch auf Skripte verweisen.
ISM – WS 2018/19 - Teil 17/Bitcoin                                               43
Kodierungen I

   • Base58 ist eine Kodierung im 58er-
     Zahlensystem.
   • Es werden alle Buchstaben und Ziffern
     benutzt, jedoch nicht 0, O und 1, l.

                                                                 Nelson Mandela-Adresse als QR-Code
                                                                 Erstellt mit:
                                                                 https://www.qrcode-generator.de/
     Base58Check-Format

                                              SHA256(SHA256(Präfix+Daten))
       Präfix                                        Erste 4 Bytes

                           0x..          Daten        Checksum
                                     Kodiert nach Base58

ISM – WS 2018/19 - Teil 17/Bitcoin                                                              44
Kodierungen II

          Datentyp                             Präfix (Hex)   Präfix (Base)
          Adresse                              0x00           1
          Pay-to-Script-Adresse                0x05           3
          Privater Schlüssel WIF               0x80           5
          Privater Schlüssel WIF komprimiert                  K oder L
          Verschlüsselter Privater Schlüssel   0x0142         6P
          Öffentlicher Schlüssel               0x04
          Erweiterter Öffentlicher Schlüssel   0x0488B21E     xpub

           Die Algorithmen zur Erstellung der einzelnen Formate derselben
           Schlüssel werden hier nicht vorgestellt.

          • Der öffentliche Schlüssel besteht aus 2x256bit+Präfix=520 bit.
          • Anhand der ersten 256 bit können die zweiten 256 bit berechnet
            werden, so dass er verkürzt werden kann: komprimierte Version.
          • Mit dessen Benutzung entsteht eine andere Bitcoin-Adresse.

ISM – WS 2018/19 - Teil 17/Bitcoin                                            45
Bemerkungen

              • Die Verschlüsselung des privaten Schlüssel entsprechend BIP-38
                ist sehr zu empfehlen.
              • BIP-XX = Bitcoin Improvement Proposal = Bezeichnung von
                allgemein akzeptierten Regeln
              • Siehe dazu:
                https://en.bitcoin.it/wiki/Bitcoin_Improvement_Proposals

ISM – WS 2018/19 - Teil 17/Bitcoin                                               46
Ist Bitcoin anonym?

              • Nach einer Verknüpfung einer Adresse mit einer Identität lassen
                sich alle Transaktionen aus der öffentlichen Blockchain
                feststellen.
              • Wer Anonymität haben will – aus welchen Gründen auch immer
                – sollte Kryptowährungen ohne die Möglichkeit der
                Rückverfolgung der Adressen benutzen.
              • Z.B. Monero (berüchtigt: Lösegeldforderung im Jan. 2019)
                    – https://www.getmonero.org
                    – https://de.wikipedia.org/wiki/Monero

ISM – WS 2018/19 - Teil 17/Bitcoin                                                47
Transaktionen I

           • Jede Transaktion hat ein oder mehrere Inputs (Soll) und ein oder
             mehrere Outputs (Haben).
           • Input = Adresse (Change Adresse), Geldbetrag und Eigentumsnachweis
             sowie Skript
             Dies wird mit einer Referenz auf einen ehemaligen Output realisiert.
           • Output = vout oder txout = Adresse, Eigentumsnachweis sowie Skript
           • Eigentumsnachweis (Proof-of-Ownership) erfolgt mittels einer Signatur
           • Signatur = Witness = Zeuge, andere Bezeichnung.
           • Ein Output verbleibt beim Empfänger und gehört ihm.

           • Der Zahlbetrag kann also zusammengestückelt werden.
           • Auch können (unterschiedliche) Beträge an verschiedene Adressen
             gesendet werden.

ISM – WS 2018/19 - Teil 17/Bitcoin                                                   48
Transaktionen II - Soll-Seite

           • Bei einer Bezahlung wird immer der gesamte Betrag des ehemaligen,
             empfangenen Outputs als neuen Input der Transaktion T behandelt.
           • Der Output von T ist dann das, was eine andere Adresse an Geld
             bekommt.
           • Soll weniger bezahlt werden, so geht ein Teilbetrag wieder zurück an
             die Senderadresse (Change Adresse), also wie Wechselgeld:
             Dies wird durch einen weiteren Output an sich selber mit der
             Differenz realisiert.
           • Zusätzlich wird ein kleiner Betrag als Gebühr für den Miner
             abgezogen.

           • Ein Transaktion kann auch Offline erzeugt und später Online an die
             anderen Knoten verteilt werden.

ISM – WS 2018/19 - Teil 17/Bitcoin                                                  49
Transaktionen III

           • Ein Full-Node-Client kann beim Bezahlen die Korrektheit der
             Transaktion prüfen.
           • Ein SPV-Client (Simple Payment Verification) muss dazu eine API
             eines Dienstleisters benutzen,
             u.a durch Anfrage nach allen nicht-ausgegebenen Outputs einer
             Adresse (Haben)

           • Ist die Transaktion erzeugt, wird sie an alle bekannten Knoten
             verteilt.
           • Irgendwann erhält die Empfängerseite (Haben) die Transaktion.
           • Dort kann geprüft werden, ob alle Inputs dieser Transaktion nicht
             schon einmal ausgegeben wurden.
           • Aber: die Transaktion ist (noch) nicht in der Blockchain, sondern nur
             an Miner verteilt und liegt in deren Mempool.
           • Erst wenn die Miner die Transaktion in einen neuen Block an die
             Blockchain anhängen konnten, ist die Zahlung bestätigt.

ISM – WS 2018/19 - Teil 17/Bitcoin                                                   50
Transaktionen IV - Miner

              • Wenn ein Miner das Wettrennen verloren hat, erhält er von einem
                anderen Miner den letzten angefügten Block. Sofort beginnt er mit
                dem nächsten.
              • Dazu werden alle Transaktionen geprüft und nach Priorität in den
                neuen Block aufgenommen, bis er voll ist.
              • Am Ende wird ein weitere Transaktion an sich selbst in den Block
                eingefügt:
                    – Belohnung (Reward)
                    – Summe aller Gebühren der Transaktionen des Blocks
              • Dies ist der Candidate-Block.
              • Und dann geht‘s los mit dem Hash (Proof-of-Work).
              • Gewinnt der Miner, dann wird aus dem Candidate-Block der letzte
                Block der Chain.

ISM – WS 2018/19 - Teil 17/Bitcoin                                                  51
Transaktionen V - Wallets

              • Die Wallets prüfen, ob
                    – die neue Transaktion schon in der Blockchain steht und
                    – danach noch Blöcke hinzugefügt wurden.
              • Nach 6 weiteren Blöcken wird geglaubt, dass der Zweig nicht
                abstirbt und daher die Bezahlung bestätigt ist.
                Aber das muss nicht sein.

              • Transaktion-ID (TXID) = Hash über die Transaktionsdaten
              • Der Miner legt auch die Transaktion-ID (TXID) verbindlich fest;
                davor kann sie geändert werden.
              • Es kann sein, dass mehrere Transaktionen dieselbe ID haben.

ISM – WS 2018/19 - Teil 17/Bitcoin                                                52
Transaktionen VI - Ergänzungen

              • Pay-to-public-key-hash = P2PKH = dies ist der bisher
                vorgestellte übliche Verfahren der Bezahlung an eine Adresse
              • Pay-to-Script-Hash = P2SH = hier wird an ein Skript Geld
                überwiesen, das es irgendwie verarbeitet
              • Beispiel eines adressierten P2SH-Skripts:
                    – Der Nachweis des neuen Eigentumsrechts erfolgt, wenn M Signaturen
                      von insgesamt N Adressen/Schlüsseln reichen.
                    – Damit lassen sich "Gemeinschaftskonten" realisieren, z.B. dass beide
                      Ehepartner unterschreiben müssen, damit das Geld fließt.

ISM – WS 2018/19 - Teil 17/Bitcoin                                                           53
HD-Wallets (BIP-32, BIP-44) I

              • JBOK-Wallet = Just-a-bunch-of-keys = Wallet mit vielen
                unabhängigen zufälligen Schlüsseln
              • HD-Wallet = Hierarchical Determinstic = Wallet mit aus einem
                zufälligen Seed (Saat) deterministisch generierten Schlüsseln
              • Seed = Saat = zufällige, geheime Startzahl

              • Ein Seed zusammen mit einem Chain-Code wird benutzt, um viele
                private Schlüssel und damit Adressen zu erzeugen.
              • Aufbau einer Baums von Schlüsseln:
                    –    Aus dem Seed wird der Master-Key per Hash generiert.
                    –    Aus dem Master-Key werden mehrere Child-Keys generiert.
                    –    Aus diesen können wiederum weitere Keys generiert werden.
                    –    Jeder dieser privaten Schlüssel ist Basis für eine Bitcoin-Adresse.

ISM – WS 2018/19 - Teil 17/Bitcoin                                                             54
HD-Wallets (BIP-32, BIP-44) II

              • Vorteile
                    – Es reicht nur einem Schlüssel zu sichern (Backup, Paper-Wallet)
                    – Weitere Schlüssel können ohne Master-Schlüssel generiert werden,
                      basierend auf den Child-Keys.
                    – Die Child-Keys können als Bereiche für Zahlungen benutzt werden,
                      z.B. Personen des eigenen Haushalts, Geschäfte mit bestimmten
                      Kunden, Abteilungen einer Firma etc.
                    – Handhabung ist viel leichter als mit JBOK-Wallets. Daher werden HD-
                      Wallets empfohlen.

ISM – WS 2018/19 - Teil 17/Bitcoin                                                          55
Seed mit mnemonischen Codes (BIP-39)

              • Die Bitsequenz wird durch eine Sequenz von natürlich-
                sprachlichen Wörtern dargestellt.
              • Beispiel, folgendes ist immer derselbe Wert:
                    – engine vanish seat smart maid admit comic record warfare banana
                      wagon game
                    – elemento turbina rayo romero mafia acuerdo ceniza pimienta veloz
                      aries vector fumar
                    – douceur tuile progrès renoncer jambe acheter charbon pastèque
                      vassal arsenic valve excitant
                    – esoso unitario sbattere sfaticato musa affisso cognome ribrezzo
                      venato arzillo vegetale giudizio
              • Dies wurde mit https://iancoleman.io/bip39 generiert.

ISM – WS 2018/19 - Teil 17/Bitcoin                                                       56
Nach dieser Anstrengung etwas Entspannung....

ISM – WS 2018/19 - Teil 17/Bitcoin                  57
Sie können auch lesen