IT-Sicherheitsmanagement Teil 17: Bitcoin und Blockchain Eine kurze

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

                                 Teil 17: Bitcoin und Blockchain
                                      Eine kurze Einführung

ISM – SS 2020- Teil 17/Bitcoin                                     21.06.20 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
            [17-5]         Antonopoulos, Andreas; Wood,Gavin et al.: Ethereum –
                           Grundlagen und Programmierung: Smart Contracts und DApps
                           entwickeln. O'Reilly, 2019
            [17-6]         https://www.fit.fraunhofer.de/content/dam/fit/de/documents/
                           Blockchain_WhitePaper_Grundlagen-Anwendungen-
                           Potentiale.pdf

ISM – SS 2020- Teil 17/Bitcoin                                                           2
IT-Sicherheitsmanagement Teil 17: Bitcoin und Blockchain Eine kurze
Links I

            [17L-1]              https://de.wikipedia.org/wiki/Bitcoin
                                 https://en.bitcoin.it/wiki/Vocabulary
                                 https://de.wikipedia.org/wiki/Bitcoin_Core
                                 https://github.com/bitcoin/bitcoin
            [17L-2]              https://de.wikipedia.org/wiki/Satoshi_Nakamoto
            [17L-3]              https://de.wikipedia.org/wiki/Proof_of_Work
                                 https://de.wikipedia.org/wiki/Proof_of_Stake
            [17L-4]              https://www.blockchain.com/de/explorer
            [17L-5]              https://en.wikipedia.org/wiki/Merkle_tree
                                 https://de.wikipedia.org/wiki/Hash-Baum
                                 https://patents.google.com/patent/US4309569
            [17L-6]              https://de.wikipedia.org/wiki/Byzantinischer_Fehler
                                 https://blog.novatrend.ch/2018/01/22/blockchain-byzantinische-
                                 generaele-und-das-cap-theorem
            [17L-7]              https://de.wikipedia.org/wiki/Ethereum
            [17L-8]              https://weissenberg-solutions.de/wofuer-kann-die-blockchain-
                                 technologie-eingesetzt-werden/
                                 https://www.wearesquared.de/blog/10-anwendungsbeispiele-fuer-
                                 blockchain-technologie-im-digitalen-marketing
ISM – SS 2020- Teil 17/Bitcoin                                                                    3
Links II

               [17L-9]           https://de.wikipedia.org/wiki/QR-Code
              [17L-10]           https://bitcoin.org/de/wallets/hardware/
              [17L-11]           https://de.wikipedia.org/wiki/Base58
              [17L-12]           https://de.wikipedia.org/wiki/Elliptic_Curve_DSA
              [17L-13]           https://de.wikipedia.org/wiki/Digital_Signature_Algorithm
              [17L-14]           https://de.wikipedia.org/wiki/Elliptic_Curve_Cryptography
                                 https://www.ingenieur.de/technik/forschung/bitcoin-produktion-
                                 verbraucht-fast-so-viel-strom-wie-irland

ISM – SS 2020- Teil 17/Bitcoin                                                                    4
Übersicht

                   P2P-Idee
                   Blockchain
                   Bitcoin
                   Einige Details

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

ISM – SS 2020- 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 – SS 2020- 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,0083 Cent                              USD/EUR beziehen sich
                   Beispiel Juni 2020:                                  auf den zitierten Stand.
                     –   1 Bitcoin = 8.300 EUR
                     –   Hashrate 105.900 TH/s (Tausend Hash/Sekunde)
                     –   Difficulty = 15.785*103
                     –   Gebühr = 1,3 USD (pro Transaktion, Durchschnitt)
                     –   Transfers pro Tag = 344.000
                     –   Mempool = 360 KB
                     –   Blockchain-Größe = ca. 283 GB
                     –   Ca. 10.800 Knoten (Full nodes)

             Quellen der Zahlen:
                   https://www.blockchain.com/explorer
                   https://www.blockchaincenter.net/rechner
                   https://bitnodes.io/
ISM – SS 2020- Teil 17/Bitcoin                                                                 7
Der Bitcoin II – Die Kursentwicklung nach US$

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

ISM – SS 2020- Teil 17/Bitcoin                                                   8
Der Bitcoin III – Statistik (Marktpreis)

ISM – SS 2020- Teil 17/Bitcoin                 9
Der Bitcoin IV – Statistik (Bestätigungen)

ISM – SS 2020- Teil 17/Bitcoin                   10
Der Bitcoin V – Statistik (Transaktionen in Blöcken)

ISM – SS 2020- Teil 17/Bitcoin                             11
Der Bitcoin VI – Statistik (Gebühren)

ISM – SS 2020- Teil 17/Bitcoin              12
Der Bitcoin VII – Statistik (Hash-Rate)

ISM – SS 2020- Teil 17/Bitcoin                13
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 Protokollen ließe 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, was und wann
                   kommuniziert ist nicht festgelegt.

                   Bei Bitcoin sind die Knoten angehalten ihren
                   Informationsstand an alle ihnen bekannten Knoten zu
                   verteilen (Propagation, Flooding).

ISM – SS 2020- Teil 17/Bitcoin                                                   14
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 – SS 2020- Teil 17/Bitcoin                                                  15
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 – SS 2020- Teil 17/Bitcoin                                              16
Transaktionen bei Bitcoins

                   Transaktion = Zuschreibung eines Betrages an eine andere
                   Bitcoin-Adresse
                   Eine Transaktion gilt als bestätigt, wenn sie in der
                   Blockchain abgespeichert ist. Dies 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 geforderte Betrag für eine Sache kleiner, so wird die
                   Differenz zurück überschrieben ("Wechselgeld").

ISM – SS 2020- Teil 17/Bitcoin                                                     17
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 in die Kette
                            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 – SS 2020- Teil 17/Bitcoin                                                                    18
Aufgabe der Miner 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 – SS 2020- Teil 17/Bitcoin                                                    19
Aufgabe der Miner III

                                    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. Dadurch entsteht eine Gabel.
                   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 – SS 2020- Teil 17/Bitcoin                                                    20
Absterben von Teilketten

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

                                                       Das ist (bisher) der einzige Zeitraum.
ISM – SS 2020- Teil 17/Bitcoin                                                                         21
Subvention der Miner

                   Reward = Mining-Gebühr = Neues Geld, das der Miner
                   bekommt, wenn er erfolgreich einen Block anhängt
                   Wenn ein Miner als erster den nächsten 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 – SS 2020- Teil 17/Bitcoin                                                 22
Blockchain weiter I

 Prinzipieller
 Aufbau eines                    Nonce ist ein beliebig wählbarer 32-bit-
 Blocks                          Wert, der dafür sorgt, dass der Hashwert
                     Daten       unterhalb eines vorgegebenen Grenzwertes
                                 liegt.
                     Nonce       Der Grenzwert wird durch die Schwierigkeit
                                 Difficulty festgelegt.
                  Difficulty
                                 Der Hashwert hat im vorderen Bereich ein
                                 gewisse Anzahl von 0, anders er muss
                  Hashwert       unterhalb eines Wertes liegen.
                                 Diesen Nonce-Wert zu finden ist das
                                 „mathematische Rätsel“ (Proof of work):
                                 – Die Miner probieren 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 – SS 2020- Teil 17/Bitcoin                                                     23
Blockchain weiter II

                   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 – SS 2020- Teil 17/Bitcoin                                                        24
Aufgabe der Miner IV

                   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 war seine 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, jedenfalls im Durchschnitt.
                   Oder sie stirbt mit den sterbenden Blöcken.

ISM – SS 2020- Teil 17/Bitcoin                                                     25
Aufgabe der Miner V - Eingesetzte Hardware

                   Früher: Desktop-PCs
                   Früher: 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, z.B. Fernseher
                     –   Browser mit JavaScript: versteckt in Anzeigen
                   Diese Geräte sind sehr langsam,
                   aber: Kleinvieh macht auch Mist.

ISM – SS 2020- Teil 17/Bitcoin                                           26
Kosten des Minings I - 51%-Angriff

               Der Schutz vor Manipulation liegt im technischen Aufwand.
               Der Grund dafür ist die Möglichkeit, dass jeder Miner 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 zuerst einen privaten 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 – SS 2020- Teil 17/Bitcoin                                               27
Kosten des Minings II - Umwelt

               Für 2018 wurde geschätzt, dass der Stromverbrauch der
               Miner weltweit zwischen 50 und 70 TWh (Tera-
               Wattstunden) liegt. Das entspricht dem Stromverbrauch
               von Dänemark oder Österreich pro Jahr.
               Für 2019 wird dies auf 46 TWh (ca. 22 Mega t CO2)
               geschätzt.
               Diese Umweltbelastung hängt von den Minern ab, nicht von
               der Anzahl der Transaktionen.
               Der Grund dafür liegt im Proof-of-Work-Verfahren.
               Ein Zitat:

          "Im November 2018 konnte derselbe Bitcoin-Schürfer (mit der Technik
          von 2011) aufgrund der zunehmenden Schwierigkeit des Suchrätsels
          damit rechnen, alle 472.339 Jahre einen Block zu finden."

          https://www.n-tv.de/wirtschaft/Bitcoin-Schuerfen-verursacht-Unmengen-
          CO2-article21081137.html

ISM – SS 2020- Teil 17/Bitcoin                                                    28
Kosten des Minings III - Umwelt

               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.
               Dies hat nicht zur Folge, dass dann Betrügereien nicht
               entdeckt werden: durch Replikation und Prüfungen durch
               andere Institutionen wird Vertrauen hergestellt.

ISM – SS 2020- Teil 17/Bitcoin                                                         29
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 – SS 2020- Teil 17/Bitcoin                                                   30
Adressen - einfach

                   Es gibt kein Konto und auch keine Geldbörse.
                   Alle Beträge sind Adressen zugeordnet und diese wieder
                   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 = RIPEMD160(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 – SS 2020- Teil 17/Bitcoin                                                                 31
Wallet

                   Wallet = Brieftasche = Software zur Verwaltung von
                   asymmetrischen Schlüssel-Paaren, 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 und Einzahlungen bezogen auf die eigenen
                   Adressen durch Analyse der Blockchain berechnet werden.
                   Bitte beachten: Mit einem Wallet können mehrere Adressen
                   verwaltet werden.

ISM – SS 2020- Teil 17/Bitcoin                                                     32
Missbrauch und Probleme I

                   Bitcoin-Stealer (als Virus bzw. Malware)
                     – Überwachen die Zwischenablage
                     – und ersetzen die Zieladresse
                   Der Hacker kann viele Adressen generieren, so dass es
                   möglich wird, die Adressen in der Zwischenablage durch
                   ähnliche Adressen des Hackers zu ersetzen.
                   Hier wird ausgenutzt, dass sich niemand diese wüsten
                   Adressen merken kann.
                   Kritisch ist auch die Generierung der Schlüsselpaare:
                     – JavaScript-Software von Websites – Oh oh
                     – Generieren auf Webserver – noch schlimmer

ISM – SS 2020- Teil 17/Bitcoin                                              33
Missbrauch und Probleme II

                 Bitcoin-Mixer: Dienst eines Internetanbieters
                   – Für Einzahlungen werden andere Wallets benutzt als für
                     Auszahlungen, wobei die letzteren erst viel später erfolgen, 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 – SS 2020- Teil 17/Bitcoin                                                         34
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 – SS 2020- Teil 17/Bitcoin                                                                                35
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 und damit die Dauer bis zum sicheren
                   Zeitpunkt.
                   Teilweise dauert es Tage, bis Transaktionen bestätigt
                   werden (siehe Statistik oben).
                   Einige Miner weigern sich Transaktionen mit keinen oder
                   geringen Gebühren zu verarbeiten.

ISM – SS 2020- Teil 17/Bitcoin                                                      36
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 Beträge der 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…

ISM – SS 2020- Teil 17/Bitcoin                                                                  37
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.
                   Aber wenn nicht?
                     – Dann teilt sich die Blockchain in inkompatible Zweige auf, die
                       jeweils weiter geführt werden.
                     – Keiner der Hard Fork-Zweige stirbt ab.

ISM – SS 2020- Teil 17/Bitcoin                                                          38
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 – SS 2020- Teil 17/Bitcoin                                                39
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.
                   Es gibt aber Währungen, die intern anders arbeiten und
                   damit verschleiern, ob bestimmte Transaktionen von
                   denselben Personen getätigt wurden, z.B. Monero (https://
                   de.wikipedia.org/wiki/Monero).

ISM – SS 2020- Teil 17/Bitcoin                                                 40
Performanz-Probleme und die Forks

               1. Idee (Anfang 2017):
                 – Vergrößerung der Blöcke auf 2 MB
                   Segregated Witness 2MB = SegWit2x
                   Die Einführung von SegWit2x bedeutete einen Hard Fork.
                 – 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.
               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 – SS 2020- Teil 17/Bitcoin                                                           41
Smart Contracts

                   Smart Contract = in Software programmierte
                   Vertragsdurchführung bzw. Bedingung 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 – SS 2020- Teil 17/Bitcoin                                                     42
Zu den Wallets I - Realisierung

                   Hardware-Wallet
                   Eigenständige Geräte, die u.a. mit Near-Field-
                   Kommunikation mit Geräten am Internet kommunizieren.
                   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 – SS 2020- Teil 17/Bitcoin                                                  43
Paper-Wallet (https://walletgenerator.net) I

               Über eine Website generierter Ausdruck mit dem geheimen Schüssel
ISM – SS 2020- Teil 17/Bitcoin                                                    44
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 – SS 2020- Teil 17/Bitcoin                                               45
Zu den Wallets II - Funktionalität

                   Full-Node-Client
                   enthält die gesamte Blockchain: 300GB Platten-Platz 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 einen oder mehrere Full-Node-Clients
                   API-Client
                   benutzt eine API eines vertrauenswürdigen Drittanbieters
                   zur Interaktion bei den Bezahlungen, Auslagerung der
                   Funktionalität an Dritte

ISM – SS 2020- Teil 17/Bitcoin                                                     46
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; zusammen haben
                   die diese einen bestimmten Namen.
                   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 Bitlänge der Zahlen ist bei derselben Sicherheit
                   gegenüber RSA kleiner, hier: 256 bit.
                   Daher gehen die Berechnungen schneller.

ISM – SS 2020- Teil 17/Bitcoin                                                          47
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 – SS 2020- Teil 17/Bitcoin                                                          48
Adressen – richtig (WIF, Wallet Input Format)

                                            Public Key

                                   RIPEMD160(SHA256(Public Key))

      Präfix                                              SHA256(SHA256(Präfix+Daten))
      Versionsbyte                                           Ersten 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
                Adressen können auch auf Skripte verweisen.
ISM – SS 2020- Teil 17/Bitcoin                                                           49
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 – SS 2020- Teil 17/Bitcoin                                                                 50
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 – SS 2020- Teil 17/Bitcoin                                                   51
Bitcoin Improvement Proposal (BIP)

                   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 – SS 2020- Teil 17/Bitcoin                                                52
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 – SS 2020- Teil 17/Bitcoin                                                53
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 zusammengestückelt werden.
                 Auch können unterschiedliche Beträge an verschiedene
                 Adressen gesendet werden.
ISM – SS 2020- Teil 17/Bitcoin                                                  54
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 – SS 2020- Teil 17/Bitcoin                                                  55
Transaktionen III

                 Ein Full-Node-Client prüft beim Bezahlen die Korrektheit der
                 Transaktion.
                 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 wird geprüft, 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 – SS 2020- Teil 17/Bitcoin                                                  56
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 Wettrennen um den Hash
                   (Proof-of-Work).
                   Gewinnt der Miner, dann wird aus dem Candidate-Block der
                   letzte Block der Chain.

ISM – SS 2020- Teil 17/Bitcoin                                                  57
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 aber sein, dass mehrere Transaktionen dieselbe ID
                   haben.

ISM – SS 2020- Teil 17/Bitcoin                                                  58
Transaktionen VI - Ergänzungen

                   Pay-to-public-key-hash = P2PKH = dies ist das bisher
                   vorgestellte und ü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 einer Transaktion erfolgt, wenn dazu M
                       Signaturen von insgesamt N Adressen dies bestätigen.
                     – Damit lassen sich "Gemeinschaftskonten" realisieren, z.B. dass
                       beide Ehepartner bestätigen müssen, damit das Geld fließt.

ISM – SS 2020- Teil 17/Bitcoin                                                          59
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 eines 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 – SS 2020- Teil 17/Bitcoin                                                         60
HD-Wallets (BIP-32, BIP-44) II

                   Vorteile
                     – Es reicht nur einen 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. für 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 – SS 2020- Teil 17/Bitcoin                                                           61
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 – SS 2020- Teil 17/Bitcoin                                                           62
Nach dieser Anstrengung etwas Entspannung....

ISM – SS 2020- Teil 17/Bitcoin                      63
Sie können auch lesen