Return to Video

Einführung zu Blockchains (33c3)

  • 0:00 - 0:14
    33C3-Vorspannmusik
  • 0:14 - 0:21
    Herald: Gut, dann machen wir
    weiter mit dem nächsten Vortrag.
  • 0:21 - 0:25
    Der ist von vimja, der ist
    Informatikstudent aus Bern in der Schweiz,
  • 0:25 - 0:29
    und er arbeitete bzw. er
    beschäftigte sich mit Bitcoin
  • 0:29 - 0:33
    und Ethereum, und schrieb seine
    Bachelorarbeit über die Suche
  • 0:33 - 0:38
    nach Informationen in der Bitcoin-
    Blockchain. Und da macht es total Sinn,
  • 0:38 - 0:43
    dass der uns jetzt eine Einführung
    zu Blockchains präsentieren wird.
  • 0:43 - 0:46
    Ein großer Applaus für vimja!
  • 0:46 - 0:50
    Applaus mit Pfeifen und Jubel
    Das ist deine Bühne!
  • 0:50 - 0:57
    weiterhin Applaus
  • 0:57 - 0:59
    vimja: Toll, das ist jetzt
    gerade kaputtgegangen.
  • 0:59 - 1:05
    Gelächter
  • 1:05 - 1:08
    So ist es besser.
  • 1:08 - 1:13
    Applaus
    Danke.
  • 1:13 - 1:20
    Genau, das geht jetzt
    natürlich auch nicht.
  • 1:20 - 1:22
    Mache ich es halt von Hand.
  • 1:22 - 1:28
    Ist vermutlich, weil ihr alle das Wi-Fi
    braucht, geht das 2,4-GHz-Band nicht mehr.
  • 1:28 - 1:32
    Ja das hat er euch ja alles
    schon gesagt, der Herald.
  • 1:32 - 1:35
    In dieser Zeit, in der ich mich
    mit Blockchains befasst habe,
  • 1:35 - 1:39
    durfte ich natürlich sehr viele
    sehr interessante Dinge lernen,
  • 1:39 - 1:42
    und ich möchte jetzt heute abend
    einen Teil dieses Wissens
  • 1:42 - 1:49
    an euch weitergeben. Genau.
  • 1:49 - 1:53
    Das Ganze ist natürlich ein sehr komplexes
    Thema, das viele komplizierte Dinge
  • 1:53 - 1:56
    enthält, und deshalb fangen wir jetzt mit
    etwas sehr einfachem an, was wir alles
  • 1:56 - 2:00
    kennen. Und zwar herkömmliche
    Besitzsysteme – also Systeme,
  • 2:00 - 2:04
    die ausdrücken wem etwas gehört. Und,
    eigentlich, mit der Erkenntnis, dass man
  • 2:04 - 2:11
    all diese Besitzsysteme als
    Zustandsübergangssysteme darstellen kann.
  • 2:11 - 2:16
    Das gilt sowohl für Finanzsysteme,
    die wir haben um Geld zu verwalten,
  • 2:16 - 2:20
    als auch etwa für Grundstücke, also
    Systeme mit denen wir verwalten,
  • 2:20 - 2:23
    wem ein Grundstück gehört.
  • 2:23 - 2:28
    Das Mapping funktioniert dann in etwa
    so, dass wir sagen, der Zustand ist
  • 2:28 - 2:34
    die Sammlung der Informationen wem
    was gehört. Und jedes Übertragen
  • 2:34 - 2:38
    eines Besitzes ist eine Transition,
    die zu einem neuen Zustand führt.
  • 2:38 - 2:42
    Also am Beispiel eines finanziellen
    Systems sagen wir, der Zustand ist
  • 2:42 - 2:46
    die Sammlung aller Konten, die es gibt.
    Das drückt für jede Person aus,
  • 2:46 - 2:51
    wieviel Geld ihr gehört. Und ein Übergang
    ist, wenn jemand eine Transaktion macht,
  • 2:51 - 2:54
    also Geld überweist, von einem Konto
    zu einem anderen, dann führt das
  • 2:54 - 2:58
    zu einem neuen Zustand.
    So, das sehen wir hier abgebildet
  • 2:58 - 3:02
    mit Grundstücken. Wir sehen hier, der
    Zustand, der enthält diese Information,
  • 3:02 - 3:07
    wem die Grundstücke gehören.
    Und dann verkauft der Bob
  • 3:07 - 3:11
    sein Grundstück Nr. 42 an Alice und
    das führt zu einem neuen Zustand.
  • 3:11 - 3:16
    Ich habe da den Unterschied markiert,
    damit der eindeutig sichtbar ist.
  • 3:16 - 3:20
    Nun, in all diesen Systemen ist es sehr
    wichtig, dass sich alle Teilnehmer des
  • 3:20 - 3:26
    Systems auf einen Zustand einigen können.
    Dass sie sich einig sind, wem was gehört.
  • 3:26 - 3:30
    Denn wenn sie das nicht können, sind
    Angriffe auf das System möglich,
  • 3:30 - 3:33
    insbesondere der sogenannte
    Double-Spend-Angriff,
  • 3:33 - 3:38
    der in der Blockchain-Welt bekannt und
    gefürchtet ist. Und was bedeutet das?
  • 3:38 - 3:41
    Das ist ganz einfach, wenn jemand etwas
    zweimal ausgibt. Bei Geld ist das ein
  • 3:41 - 3:45
    wenig abstrakt (also wie gibt man zweimal
    dasselbe Geld aus), aber bei Grundstücken
  • 3:45 - 3:49
    ist das ganz einfach. Stellen wir uns vor,
    jemand verkauft dasselbe Grundstück
  • 3:49 - 3:55
    zweimal. Das ist natürlich kriminell
    und darf nicht vorkommen.
  • 3:55 - 3:58
    Schauen wir uns jetzt mal an wie
    das funktioniert. Stellen wir uns vor,
  • 3:58 - 4:02
    Malroy hat ein schönes Grundstück,
    das Grundstück Nr. 5. Und sowohl Alice
  • 4:02 - 4:06
    als auch Bob möchten gerne das
    Grundstück kaufen. Und Malroy
  • 4:06 - 4:10
    wird jetzt versuchen, das an beide zu
    verkaufen. Also trifft er sich mit Alice.
  • 4:10 - 4:14
    Das ist also jetzt der aktuelle Zustand.
    Wir haben gesehen, das Grundstück Nr. 5
  • 4:14 - 4:20
    gehört hier dem Malroy. Der trifft sich
    mit Alice. Und er verkauft es an Alice.
  • 4:20 - 4:25
    Er überweist ihr das Grundstück. Wir sehen
    diese Transition – überweist das Grundstück
  • 4:25 - 4:29
    von Malroy an Alice. Und im neuen Zustand
    gehört es jetzt der Alice. So, der Bob,
  • 4:29 - 4:32
    der hat davon nichts mitgekriegt.
    Irgendwie – Bob und Alice wissen
  • 4:32 - 4:36
    immer noch nicht recht wie man sicher
    miteinander kommuniziert. Und deshalb
  • 4:36 - 4:39
    weiß der Bob jetzt nichts davon, dass
    die Alice das Grundstück gekauft hat.
  • 4:39 - 4:44
    Er denkt, das Grundstück gehört immer noch
    Malroy. Also trifft er sich mit Malroy.
  • 4:44 - 4:48
    Und auch er einigt sich mit Malroy auf
    einen Preis. Und Malroy tut jetzt so,
  • 4:48 - 4:53
    als würde er den Besitz des
    Grundstücks an Bob übertragen.
  • 4:53 - 4:56
    Und für Bob sieht die Welt jetzt so
    aus, d.h. Bob ist überzeugt, das ist
  • 4:56 - 5:00
    der korrekte Zustand des Systems.
    Da haben wir natürlich ein Problem,
  • 5:00 - 5:03
    weil Bob und Alice, die sind sich
    jetzt gar nicht einig darüber,
  • 5:03 - 5:07
    wem das Grundstück gehört. Ja, Malroy
    ist natürlich abgehauen mit dem Geld.
  • 5:07 - 5:11
    Und das System ist kaputt, weil Bob
    und Alice die können nicht mehr
  • 5:11 - 5:15
    miteinander handeln. Und auch wenn
    jetzt jemand anderes das Grundstück
  • 5:15 - 5:19
    kaufen möchte: Bei wem kauft er es
    denn jetzt? Was ist denn rechtmäßig?
  • 5:19 - 5:24
    Nun, in der Welt der Grundstücke gibt
    es dafür eine ganz einfache Lösung,
  • 5:24 - 5:28
    nämlich das Grundbuchamt. Und das
    Grundbuchamt fungiert eigentlich
  • 5:28 - 5:33
    als zentrale Referenzstelle,
    die den Zustand verwaltet,
  • 5:33 - 5:37
    und alle Änderungen verwaltet. Jedesmal
    wenn jemand ein Grundstück verkauft,
  • 5:37 - 5:42
    muss das über das Grundbuchamt erledigt
    werden. Das Grundbuchamt überprüft,
  • 5:42 - 5:46
    dass das überhaupt zulässig ist, ob das
    Grundstück wirklich der Person gehört
  • 5:46 - 5:50
    und führt das dann nach. Und so kann das
    Grundbuchamt diese einfachen Angriffe
  • 5:50 - 5:59
    verhindern. Diese Lösung
    funktioniert auch für Finanzsysteme.
  • 5:59 - 6:03
    Also wenn wir an Banken denken, wenn ich
    ein Konto habe, da ist dann halt die Bank
  • 6:03 - 6:07
    die zentrale Autorität, welche den Zustand
    verwaltet. Für jede… jedesmal,
  • 6:07 - 6:11
    wenn ich eine Transaktion mache, also Geld
    überweise, überprüft die Bank vorher,
  • 6:11 - 6:16
    ob ich wirklich das nötige Geld dazu
    habe. Und dann wird mein Kontostand
  • 6:16 - 6:22
    nachgeführt. Und die verwaltet so
    für alle Teilnehmer den Zustand.
  • 6:22 - 6:27
    Und das funktioniert eigentlich erstaunlich
    gut. Nun wollen wir ein System, mit dem
  • 6:27 - 6:31
    wir Zahlungen über das Internet abwickeln
    können. Und wir hätten gerne, dass das
  • 6:31 - 6:35
    dezentral ist. Weil, wenn das nicht
    dezentral ist, dann kann natürlich
  • 6:35 - 6:40
    eine zentrale Autorität das System
    zensieren und manipulieren.
  • 6:40 - 6:44
    Und eine zentrale Stelle kann angegriffen
    werden. Ich denke, wir haben das alle
  • 6:44 - 6:48
    in den letzten Jahren beobachten müssen,
    wie Paypal sehr einfach willkürlich
  • 6:48 - 6:53
    Konten sperrt, und das System zensiert.
    So, und deshalb brauchen wir ein
  • 6:53 - 6:56
    besseres System, eine bessere
    Lösung für das Internetzeitalter.
  • 6:56 - 7:00
    Und diese bessere Lösung ist
    natürlich die ‚Blockchain‘.
  • 7:00 - 7:06
    Die Blockchain bringt einige ganz
    unglaubliche Eigenschaften mit sich.
  • 7:06 - 7:10
    Die Blockchain braucht keine zentrale
    Stelle um den Zustand zu verwalten.
  • 7:10 - 7:13
    Die Teilnehmer des Systems müssen sich
    gegenseitig nicht vertrauen, sie müssen
  • 7:13 - 7:16
    sich gegenseitig nicht kennen. Sie müssen
    nicht einmal wissen, wieviele Leute
  • 7:16 - 7:20
    denn eigentlich da teilnehmen. Und
    trotzdem können die sich alle immer
  • 7:20 - 7:25
    auf einen Zustand des Systems einigen.
  • 7:25 - 7:28
    Ich werde das jetzt demonstrieren,
    die Regeln, die wir brauchen
  • 7:28 - 7:32
    um das zu ermöglichen. Anhand
    einer sehr einfachen Blockchain,
  • 7:32 - 7:36
    die in diesem ersten Kapitel auch
    noch keinen Proof-of-Work hat. Also
  • 7:36 - 7:39
    diese erste Blockchain wird noch
    angreifbar sein. Und ich werde auch
  • 7:39 - 7:43
    zeigen wie es geht. Und erst im nächsten
    Kapitel dann werde ich erklären,
  • 7:43 - 7:48
    welche Maßnahmen wir ergreifen
    müssen, um Angriffe zu verhindern.
  • 7:48 - 7:52
    Und das Ganze fängt an mit dem Netzwerk
    welches wir nutzen. Also wir sagen quasi,
  • 7:52 - 7:55
    wir sind alle diese Leute, und wir würden
    gerne miteinander Transaktionen machen
  • 7:55 - 8:00
    können. Und zuerst einigen wir uns
    alle auf einen Ursprungszustand.
  • 8:00 - 8:03
    Damit fangen wir an. Wir sagen z.B.
    „am Anfang gehört allen nichts“.
  • 8:03 - 8:08
    Das ist ein leerer Zustand. Und dann
    brauchen wir ein p2p-Netzwerk.
  • 8:08 - 8:14
    Und jedesmal wenn jemand Geld überweist
    an jemand anderes, dann veröffentlicht er
  • 8:14 - 8:17
    die Transaktion in diesem Netzwerk,
    und das Netzwerk leitet die Transaktion
  • 8:17 - 8:22
    solange an alle Teilnehmer weiter,
    bis alle Teilnehmer diese Transaktion
  • 8:22 - 8:27
    gesehen haben. Das bringt
    natürlich viele Probleme mit sich.
  • 8:27 - 8:30
    Das Netzwerk ist irgendwie nicht
    synchronisiert, nicht alle Leute
  • 8:30 - 8:35
    sehen die gleichen Transaktionen, die
    Reihenfolge der Transaktionen ist unklar.
  • 8:35 - 8:38
    Leute werden versuchen das anzugreifen
    – das wird dazu führen, dass es
  • 8:38 - 8:42
    Transaktionen gibt die nicht miteinander
    kompatibel sind. Und irgendwie
  • 8:42 - 8:45
    Transaktionen, die abhängen von
    nicht-kompatiblen Transaktionen und
  • 8:45 - 8:50
    dann auch wieder nicht kompatibel sind.
    Das ist ein riesengroßes Durcheinander da.
  • 8:50 - 8:52
    Und deshalb brauchen wir jetzt
    eine Möglichkeit, wie wir uns alle
  • 8:52 - 8:57
    auf einen Zustand, auf einen Konsens
    einigen können. Und – wie gesagt –
  • 8:57 - 9:01
    das ist jetzt die ‚Blockchain‘.
  • 9:01 - 9:04
    Und wir definieren einige Regeln,
    die wir anwenden um uns zu einigen.
  • 9:04 - 9:08
    Wir sagen, wir gruppieren die Transaktionen
    die vorher so lose auf dem Netzwerk waren
  • 9:08 - 9:13
    zu Blöcken. Die Blöcke hängen alle
    voneinander ab. Wir sagen dann auch,
  • 9:13 - 9:18
    der aktuelle Zustand des Netzwerks ist das
    Ende der längsten Kette zusammenhängender
  • 9:18 - 9:23
    Blöcke. Und die Blöcke müssen einige
    Kriterien erfüllen. Ich habe das da…
  • 9:23 - 9:27
    also das ist jetzt quasi der Ur… der
    leere Zustand, mit dem wir beginnen.
  • 9:27 - 9:32
    Und da kommen da Transaktionen
    über das Netzwerk. Und irgendwann
  • 9:32 - 9:35
    macht jemand einen Block der diese
    Transaktionen zusammenfasst. Und jetzt
  • 9:35 - 9:40
    sehen wir am Ende dieses Blocks ist
    der Zustand. Wenn ich diesen Zustand
  • 9:40 - 9:43
    nachvollziehen will dann nehme ich den
    leeren Ursprungszustand, und dann
  • 9:43 - 9:47
    jede Transaktion aus dem ersten Block,
    und dann wende ich diese Transaktionen,
  • 9:47 - 9:52
    eine nach der anderen, auf den Zustand
    an, und dann erhalte ich den Endzustand.
  • 9:52 - 9:55
    Mit der Zeit kommen
    neue Transaktionen rein
  • 9:55 - 10:00
    über das Netzwerk. Und diese Transaktionen
    werden nicht Teil des Zustands
  • 10:00 - 10:03
    – wir haben ja gesagt der Zustand ist das
    Ende der längsten Kette von Blöcken,
  • 10:03 - 10:06
    und die sind in keinem Block. Erst wenn
    jemand einen Block daraus macht,
  • 10:06 - 10:10
    werden die Teil des Zustands.
    Wir sehen auch, die Blöcke hängen jeweils
  • 10:10 - 10:14
    voneinander ab, die haben so einen Pfeil,
    der sie miteinander verbindet, also
  • 10:14 - 10:19
    jeder Block zeigt auf den vorhergehenden
    Block, und bildet so eben diese Kette
  • 10:19 - 10:24
    von Blöcken. Nun, jetzt versucht trotzdem
    jemand da eine bösartige Transaktion
  • 10:24 - 10:28
    zu machen, die mit den anderen nicht
    kompatibel ist. Da macht jemand
  • 10:28 - 10:32
    einen Block daraus. Und jetzt sagen
    wir aber einfach, Blöcke, die
  • 10:32 - 10:35
    Transaktionen enthalten welche sich
    widersprechen sind nicht valide.
  • 10:35 - 10:38
    Der Block, den kann zwar jemand
    erstellen, aber wir sagen dann, das ist
  • 10:38 - 10:42
    kein valider Block, der wird vom Netzwerk
    nicht akzeptiert. Und der wird auch
  • 10:42 - 10:46
    nicht Teil des Zustands. Also wenn jemand
    einen Block bauen will und eine dieser
  • 10:46 - 10:53
    Transaktionen enthält, dann muss sich
    derjenige der den Block erstellt
  • 10:53 - 10:56
    entscheiden welche der Transaktionen
    denn jetzt enthalten sein sollen
  • 10:56 - 11:00
    in dem Block. Und die anderen lässt er
    außen vor. Für welche er sich entscheidet,
  • 11:00 - 11:05
    das ist dem Typen ganz allein überlassen.
    Er kann das selber entscheiden was er da
  • 11:05 - 11:11
    reinpacken will. Dann kommen mit
    der Zeit neue Transaktionen rein.
  • 11:11 - 11:14
    Und jetzt könnte es sein, dass jemand so
    einen Block Nummer 4 macht, welcher
  • 11:14 - 11:19
    jetzt trotzdem wieder die böse Transaktion
    enthält. Und dann sagen wir aber einfach,
  • 11:19 - 11:22
    Blöcke welche Transaktionen enthalten,
    welche nicht kompatibel sind
  • 11:22 - 11:25
    mit Transaktionen in älteren Blöcken sind
    auch ungültig, und der Block wird auch
  • 11:25 - 11:30
    nicht Teil des Zustands. So. Was aber
    gültig ist, ist jemand der einen Block
  • 11:30 - 11:34
    Nummer 3 macht, der so aussieht. Und jetzt
    haben wir das Problem: Wir haben gesagt,
  • 11:34 - 11:37
    der Zustand ist die längste Kette von
    Blöcken. Hier ist jetzt der Zustand
  • 11:37 - 11:40
    nicht mehr eindeutig definiert und da muss
    jetzt halt jeder Teilnehmer des Netzwerkes
  • 11:40 - 11:45
    selbst entscheiden wie er damit umgeht,
    was er jetzt als Zustand anerkennt.
  • 11:45 - 11:48
    So, aber dann kommen halt neue
    Transaktionen wieder rein. Und irgendwann
  • 11:48 - 11:53
    baut jemand einen Block Nummer 4, der
    diese Transaktion enthält. Und dadurch,
  • 11:53 - 11:58
    dass der Block Nr. 4 auf den vorherigen
    Block Nr. 3 verweist, ist es jetzt klar,
  • 11:58 - 12:02
    von welchem Block der abhängt.
    Und damit ist die Kette auch wieder klar,
  • 12:02 - 12:06
    und die längste Kette wird wieder zum
    Zustand. So. Jetzt habe ich gesagt,
  • 12:06 - 12:10
    diese Blockchain die ich jetzt beschrieben
    habe hat keinen Proof-of-Work und folglich
  • 12:10 - 12:15
    ist sie angreifbar für ein double-spend.
    Sagen wir Malroy würde gerne
  • 12:15 - 12:19
    ein Fahrrad klauen. Er geht da so in den
    Fahrradladen von Alice, und möchte dort
  • 12:19 - 12:24
    gerne ein Fahrrad kaufen, das kostet
    jetzt 1000 Euro in dem Beispiel.
  • 12:24 - 12:26
    Ich werde jetzt… hier habe ich
    die Darstellung etwas geändert,
  • 12:26 - 12:30
    diese Vierecke mit Pfeilen dran, das sind
    jetzt halt einfach Blöcke. Ich werde
  • 12:30 - 12:35
    nicht mehr jede Transaktion einzeln
    zeichnen. Und die sehen den Zustand,
  • 12:35 - 12:39
    wie er da ist. Da sind all die Konten
    aufgeführt, unter anderem diejenigen
  • 12:39 - 12:45
    von Alice und Malroy. So.
    Malroy geht also in den Laden,
  • 12:45 - 12:51
    sucht sich das [Fahrrad] aus, geht zum
    Tresen und macht dort die Transaktion
  • 12:51 - 12:57
    an Alice. Und diese Transaktion wird
    übers Netzwerk zu Alice weitergeleitet.
  • 12:57 - 13:00
    Sie sieht die Transaktion, aber da sie
    noch nicht Teil eines Blockes ist,
  • 13:00 - 13:04
    ist sie auch noch nicht Teil des Zustands.
    Irgendwann aber erstellt jemand halt
  • 13:04 - 13:08
    einen Block der diese Transaktion enthält.
    Die ist jetzt Teil des Zustandes.
  • 13:08 - 13:13
    Wir sehen im Zustand des Systems,
    dass Alice das Geld erhalten hat.
  • 13:13 - 13:17
    Sie gibt das Fahrrad an Malroy, und der
    fährt davon. Neue Blöcke kommen dazu.
  • 13:17 - 13:21
    Und jetzt startet Malroy den Angriff.
    Und was Malroy macht, er erstellt
  • 13:21 - 13:25
    eine alternative Transaktion, die dasselbe
    Geld überweist, diesmal aber nicht
  • 13:25 - 13:30
    an Alice sondern an sich selbst. Genauer:
    an ein zweites Konto das ebenfalls ihm
  • 13:30 - 13:37
    gehört. Und er erstellt einen alternativen
    Block, der diese Transaktion enthält.
  • 13:37 - 13:41
    Und dann erstellt er ganz viele neue
    Blöcke die davon abhängen. Solange,
  • 13:41 - 13:45
    bis seine Kette von Blöcken länger
    ist als die anderen, also die Kette,
  • 13:45 - 13:50
    die zur Zeit auf dem Netzwerk ist. Und
    dann veröffentlicht er die gesamte Kette
  • 13:50 - 13:54
    auf dem Netzwerk. Und jetzt ist seine
    Kette die längste Kette. Die wird
  • 13:54 - 13:58
    vom Netzwerk als Zustand anerkannt. Und
    in diesem Zustand hat er das Geld erhalten.
  • 13:58 - 14:02
    Alice hat das Geld nicht erhalten. Und
    Malroy hat das Fahrrad erfolgreich
  • 14:02 - 14:06
    gestohlen. So, das hat also funktioniert.
  • 14:06 - 14:10
    Wir müssen das verhindern. Das
    Problem weshalb Malroy diesen Angriff
  • 14:10 - 14:14
    machen konnte ist natürlich, dass er in
    einer sehr kurzen Folge viele Blöcke
  • 14:14 - 14:18
    erstellen konnte. Also das Problem ist
    eigentlich, es ist zu einfach neue Blöcke
  • 14:18 - 14:23
    zu erstellen. Also machen wir es halt
    schwieriger, neue Blöcke zu erstellen.
  • 14:23 - 14:27
    Und dazu sagen wir, für jeden Block
    der erstellt wird, muss eine Aufgabe
  • 14:27 - 14:34
    gelöst werden, eine Challenge.
    Und um diese Challenge zu erstellen,
  • 14:34 - 14:40
    muss man halt Zeit, und Rechenzeit
    aufwenden. Die Lösung für diese Aufgabe
  • 14:40 - 14:45
    nennen wir den Proof-of-Work. Und den
    Prozess um den Proof-of-Work zu erstellen
  • 14:45 - 14:50
    nennen wir das ‚Mining‘. Und dann sagen
    wir, zusammen mit jedem neuen Block
  • 14:50 - 14:54
    muss der passende Proof-of-Work
    veröffentlicht werden. Und nur Blöcke,
  • 14:54 - 14:58
    welche einen passenden Proof-of-Work haben
    werden vom Netzwerk als Teil des Zustands
  • 14:58 - 15:03
    anerkannt. Jetzt funktioniert das
    Erstellen neuer Blöcke etwas anders.
  • 15:03 - 15:07
    Und zwar ist es jetzt so, dass ein Block
    nicht mehr einfach entsteht, sondern
  • 15:07 - 15:11
    ein ‚Miner‘ muss daran arbeiten. Jeder
    Miner arbeitet natürlich für sich selbst
  • 15:11 - 15:15
    daran, einen neuen Block zu erstellen.
    Wir sehen hier, der Block an dem der Miner
  • 15:15 - 15:20
    arbeitet, ist hier so gestrichelt
    markiert. Und dann, wenn der Miner
  • 15:20 - 15:24
    daran arbeitet, kommen neue Transaktionen
    rein. Und irgendwann gelingt es dem Miner
  • 15:24 - 15:28
    den Block fertigzustellen. In dem Moment
    veröffentlicht er den Block zusammen mit
  • 15:28 - 15:31
    dem Proof-of-Work im Netzwerk. Der wird
    vom Netzwerk anerkannt, und der Miner
  • 15:31 - 15:40
    beginnt sofort an einem neuen Block zu
    arbeiten, und das geht dann halt so weiter.
  • 15:40 - 15:44
    Nun, die Funktion die wir brauchen um das
    Erstellen der Blöcke schwierig zu machen
  • 15:44 - 15:50
    muss einige Bedingungen erfüllen. Sie
    muss natürlich schwierig sein zu lösen.
  • 15:50 - 15:53
    Dann muss aber… obwohl es lange gehen
    muss die zu erstellen, muss es sehr
  • 15:53 - 15:57
    einfach sein, das Ergebnis zu prüfen.
    Also wenn ich einen Block erhalte, und
  • 15:57 - 16:00
    den passenden Proof-of-Work, muss
    ich – zack! – sofort sagen können,
  • 16:00 - 16:03
    der Proof-of-Work ist gültig oder nicht,
    weil ich will ja entscheiden, ob das
  • 16:03 - 16:08
    Teil meines Zustandes
    sein soll oder nicht.
  • 16:08 - 16:12
    Und dann ist es wichtig, dass die
    Funktion abhängt von genau dem Block,
  • 16:12 - 16:15
    für den sie erstellt wird. Also der
    Proof-of-Work soll nur genau
  • 16:15 - 16:19
    für den einen Block gültig sein.
    Das ist sehr wichtig, denn ansonsten
  • 16:19 - 16:24
    könnte Malroy auf Vorrat über
    mehrere Wochen hinweg einfach
  • 16:24 - 16:27
    Proof-of-Works erstellen und dann die
    einfach an einen Block ranflanschen,
  • 16:27 - 16:32
    und so in kurzer Zeit trotzdem wieder
    eine lange Kette erstellen. Wenn aber
  • 16:32 - 16:37
    der Proof-of-Work direkt abhängig ist
    vom Block für den er erstellt wird,
  • 16:37 - 16:40
    dann muss Malroy mit dem Erstellen
    des Proof-of-Work so lange warten,
  • 16:40 - 16:44
    bis der vorhergehende Block bekannt
    ist und damit auch ihm bekannt ist,
  • 16:44 - 16:47
    was er jetzt in den neuen Block packt.
  • 16:47 - 16:52
    Und dann soll es auch noch möglich sein,
    die Schwierigkeit der Aufgabe zu variieren.
  • 16:52 - 16:56
    Denn damit das System als stabiles
    Finanzsystem funktioniert, möchte ich
  • 16:56 - 16:59
    gerne wissen, wie lange es geht von
    dem Moment wo ich eine Transaktion
  • 16:59 - 17:04
    veröffentliche bis sie Teil des Zustandes
    wird. Und wenn das Netzwerk
  • 17:04 - 17:08
    sehr viel mehr Rechenkraft hat, dann
    geht es plötzlich schneller, neue Blöcke
  • 17:08 - 17:11
    zu erstellen und dann will ich diese
    Schwierigkeit anpassen können, damit es
  • 17:11 - 17:17
    wieder länger geht. Nun jetzt, wo
    das Mining nicht mehr einfach ist,
  • 17:17 - 17:20
    und es aufwendig ist, müssen wir irgendwie
    einen Incentive haben, damit die Leute
  • 17:20 - 17:25
    es auch tun – also irgendeinen Anstoß.
    So und wir sagen halt, der Miner,
  • 17:25 - 17:29
    dem es gelingt einen Block zu erstellen,
    der bekommt eine Belohnung,
  • 17:29 - 17:34
    den sogenannten ‚Block Reward‘, und wir
    implementieren das, indem wir sagen,
  • 17:34 - 17:38
    der Miner darf für sich selbst eine
    zusätzliche Transaktion in den Block
  • 17:38 - 17:42
    hineinpacken, und mit dieser Transaktion
    überweist er sich selbst Geld
  • 17:42 - 17:46
    aus dem Nichts heraus. Wo das
    Geld herkommt: Es gibt eigentlich
  • 17:46 - 17:49
    zwei Möglichkeiten, die populär sind.
    Entweder sagen wir, das sind
  • 17:49 - 17:53
    die Überweisungsgebühren der anderen
    Transaktionen in dem Block.
  • 17:53 - 17:58
    Oder dann sagen wir halt, das ist Geld,
    welches neu geschaffen wird. Wir haben ja
  • 17:58 - 18:03
    vorhin gesehen, wir haben einen leeren
    Zustand als den Ursprungszustand definiert,
  • 18:03 - 18:06
    und wenn wir das so tun, muss das
    Geld, welches die Leute ausgeben,
  • 18:06 - 18:10
    irgendwo herkommen. Und das ist halt eine
    Möglichkeit, Geld in das System zu bringen,
  • 18:10 - 18:15
    die nicht von einer zentralen Stelle
    kontrolliert wird, und eigentlich
  • 18:15 - 18:21
    eine faire Möglichkeit.
    Etwas weiteres ist, dass…
  • 18:21 - 18:25
    diese zusätzliche Transaktion macht
    den Block natürlich individuell, denn
  • 18:25 - 18:30
    jeder Miner wird das Geld an sich selbst
    zu überweisen versuchen und, also,
  • 18:30 - 18:35
    diese eine Transaktion wird für jeden
    Miner anders sein. Und das stellt sicher,
  • 18:35 - 18:40
    dass die alle an einem ein wenig anderen
    Problem arbeiten. Wenn die alle
  • 18:40 - 18:44
    versuchen würden, das genau selbe Problem
    zu lösen, auf die genau selbe Art,
  • 18:44 - 18:48
    dann würde es immer demjenigen als erstes
    gelingen, der die meiste Rechenkraft hat,
  • 18:48 - 18:52
    und das wollen wir nicht, denn dann würde
    ja eine Person alle Blöcke erzeugen,
  • 18:52 - 18:55
    und wir wollen ja, dass viele Personen
    Blöcke erzeugen, damit das niemand
  • 18:55 - 19:00
    zensieren kann. Dadurch, dass das Problem,
    an welchem sie arbeiten, für jeden Miner
  • 19:00 - 19:03
    etwas anders ist, gelingt es halt
    zwischendurch auch jemandem
  • 19:03 - 19:07
    mit weniger Rechenkraft, als erstes eine
    Lösung zu finden. Und in der Praxis
  • 19:07 - 19:12
    geht das dann ganz gut, dass wir sagen
    können, wer 20% der Rechenkraft hat
  • 19:12 - 19:16
    dem wird es auch in etwa einem Fünftel
    der Fälle gelingen als erstes einen Block
  • 19:16 - 19:21
    zu finden. Dann muss der Miner halt
    noch entscheiden, an welchem Block
  • 19:21 - 19:25
    er arbeiten will. Aber der Miner will ja…
    also an welchem Ende der Kette…
  • 19:25 - 19:29
    Wir haben vorhin gesehen, es kann sein,
    dass diese Ketten mehrere Enden haben.
  • 19:29 - 19:34
    Aber das ist ganz einfach, denn der Miner
    will ja den Reward kriegen. Der Reward ist
  • 19:34 - 19:38
    eine Transaktion, welche nur dann
    Teil des Zustandes wird wenn es Teil
  • 19:38 - 19:41
    in einem Block ist, wenn es Teil der
    längsten Kette ist. Und der Block ist
  • 19:41 - 19:44
    nur dann Teil der längsten Kette wenn
    er an diesem Ende angesetzt wird.
  • 19:44 - 19:49
    Also arbeiten alle Miner am Ende der
    längsten Kette. So, jetzt habe ich
  • 19:49 - 19:53
    versprochen, dass wir so den Double-Spend
    verhindern können, von vorhin.
  • 19:53 - 19:57
    Wollen wir mal gucken, ob das geht!
    Das Szenario ist wieder dasselbe.
  • 19:57 - 20:03
    Malroy will das Fahrrad klauen,
    im Laden von Alice.
  • 20:03 - 20:09
    Der Unterschied ist, dass das Netzwerk
    arbeiten muss um die Blöcke zu erstellen.
  • 20:09 - 20:13
    Und dann geht es wieder so vonstatten.
    Malroy erstellt jetzt zwei Transaktionen.
  • 20:13 - 20:17
    Eine, um das Geld der Alice zu überweisen.
    Diese Transaktion macht er öffentlich
  • 20:17 - 20:21
    im Netzwerk, damit die von allen gesehen
    werden kann. Und eine Transaktion,
  • 20:21 - 20:25
    um das Geld an sich selbst zu überweisen.
    Die behält er vorläufig geheim. Dann wird
  • 20:25 - 20:29
    der vorhergehende Block fertiggestellt,
    und sofort fängt das Netzwerk an
  • 20:29 - 20:34
    den nächsten Block zu erstellen. Das
    Netzwerk enthält in dem Block natürlich
  • 20:34 - 20:38
    die Transaktion von Malroy an Alice,
    denn das ist ja die einzige Transaktion
  • 20:38 - 20:42
    die dem Netzwerk bekannt ist. Und
    Malroy arbeitet jetzt ganz alleine daran,
  • 20:42 - 20:48
    den alternativen Block zu erstellen. In
    dem die andere Transaktion enthalten ist.
  • 20:48 - 20:52
    Jetzt ist es aber so: das Netzwerk hat
    natürlich mehr Rechenkraft als Malroy
  • 20:52 - 20:57
    allein. Der hat halt nicht so viele
    Computer. Und deshalb wird das Netzwerk
  • 20:57 - 21:01
    immer schneller sein darin, neue Blöcke
    zu erstellen als Malroy. Malroys Kette
  • 21:01 - 21:06
    wird nie die längste Kette, wird nie Teil
    des Zustands. Und der Angriff wurde
  • 21:06 - 21:14
    erfolgreich abgewehrt. Die einzige Art
    und Weise wie Malroy gewinnen könnte,
  • 21:14 - 21:18
    also wie Malroy den Angriff trotzdem
    durchführen könnte, wäre, wenn er
  • 21:18 - 21:22
    schneller Blöcke erstellen könnte als
    das Netzwerk. Und das wird ihm aber
  • 21:22 - 21:26
    nur dann gelingen, wenn er mehr als
    50% der Rechenkraft im Netzwerk hätte.
  • 21:26 - 21:29
    Denn dann wäre die Wahrscheinlichkeit,
    dass er einen Block findet, höher
  • 21:29 - 21:33
    als bei allen anderen Minern gemeinsam.
    Und dann könnte er das tun. Und deshalb
  • 21:33 - 21:40
    spricht man bei Bitcoin und anderen
    Kryptowährungen von diesen 50%-Attacken.
  • 21:40 - 21:44
    So, jetzt gibt es noch eine andere Art,
    einen Double-Spend auszuführen. Das ist
  • 21:44 - 21:49
    ein etwas schwierigerer Angriff.
    Und er hat jetzt damit zu tun, wie
  • 21:49 - 21:53
    das Peer-to-Peer-Netzwerk funktioniert,
    das wir brauchen um die Transaktionen
  • 21:53 - 22:01
    und Blöcke zu verteilen. Jetzt ist der
    Angriff ein wenig schwieriger, also
  • 22:01 - 22:05
    muss Malroy etwas wertvolleres stehlen.
    Er geht zu Bob. Bob verkauft Autos.
  • 22:05 - 22:10
    Er wird versuchen ein Auto zu stehlen.
    Und um das zu tun, wird er versuchen
  • 22:10 - 22:13
    die Verbindung von Bob mit dem
    Peer-to-Peer-Netzwerk zu kontrollieren.
  • 22:13 - 22:17
    Wir sehen hier, Bob ist mit dem Netzwerk
    verbunden. Mit diesen drei Peers. Und
  • 22:17 - 22:22
    Malroy hat zwei Möglichkeiten: entweder
    er kontrolliert die Internetverbindung
  • 22:22 - 22:26
    von Bob. Oder dann kontrolliert er
    halt die drei Nodes, mit denen Bob
  • 22:26 - 22:30
    verbunden ist. Wie realistisch das ist,
    das will ich hier nicht diskutieren.
  • 22:30 - 22:35
    Grundsätzlich ist es ja schon
    vorstellbar. Und jetzt hat Malroy
  • 22:35 - 22:39
    einige interessante Möglichkeiten. Er kann
    jetzt nämlich kontrollieren, welche Blöcke
  • 22:39 - 22:43
    und Transaktionen der Bob sieht.
    Also Transaktionen und Blöcke,
  • 22:43 - 22:48
    welche auf dem Netzwerk erscheinen,
    kann Malroy quasi vor Bob geheimhalten.
  • 22:48 - 22:52
    Und er kann Bob auch Transaktionen und
    Blöcke präsentieren, die er dem Rest
  • 22:52 - 22:58
    des Netzwerkes nicht präsentiert.
    So, das ist der Angriff. Wir sehen,
  • 22:58 - 23:02
    was das Netzwerk sieht.
    Links und rechts, was Bob sieht.
  • 23:02 - 23:07
    Am Anfang ist das natürlich an beiden
    Orten gleich. Jetzt geht der Malroy
  • 23:07 - 23:12
    zu dem Bob und wird das Auto kaufen.
    Er macht eine Transaktion.
  • 23:12 - 23:16
    Er macht zwei Transaktionen. Eine,
    um das Geld an Bob zu überweisen.
  • 23:16 - 23:19
    Diese schickt er nur an Bob. Und
    versteckt sie vor dem Netzwerk.
  • 23:19 - 23:24
    Und eine zweite Transaktion, mit der er
    das Geld wieder an sich selbst überweist.
  • 23:24 - 23:28
    Diese Transaktion veröffentlicht er im
    Netzwerk. Jetzt wird das Netzwerk
  • 23:28 - 23:34
    daran arbeiten, einen Block zu erstellen,
    mit der Transaktion von Malroy zu Malroy.
  • 23:34 - 23:39
    Weil das Netzwerk kennt keine andere
    Transaktion. Und Malroy allein arbeitet
  • 23:39 - 23:45
    daran einen Block zu erstellen, mit
    dem er das Geld an Bob überweist.
  • 23:45 - 23:48
    Natürlich wiederum, das Netzwerk hat viel
    mehr Rechenkraft, es ist viel schneller
  • 23:48 - 23:52
    darin, neue Blöcke zu erstellen. So, und
  • 23:52 - 23:56
    schlussendlich gelingt es dann aber Bob
    [Malroy!] trotzdem, einen Block zu erstellen.
  • 23:56 - 24:00
    Und alle diese Blöcke die auf dem Netzwerk
    erstellt wurden – muss man vielleicht
  • 24:00 - 24:05
    noch sagen – die hält der Malroy vor Bob
    geheim. Also, alle diesen neuen Blöcke,
  • 24:05 - 24:09
    die hat Bob nie gesehen. Und deshalb
    wird Bob diesen einen Block von Malroy
  • 24:09 - 24:13
    als die längste Kette von Blöcken
    akzeptieren. Und jetzt ist die Transaktion
  • 24:13 - 24:18
    von Malroy an Bob Teil von Bobs
    Zustand. Er gibt Malroy das Auto.
  • 24:18 - 24:25
    Malroy fährt davon. Er beendet die
    Attacke. Und jetzt verbindet sich Bob
  • 24:25 - 24:29
    wieder ganz normal mit dem Netzwerk.
    Die beiden Ketten werden synchronisiert.
  • 24:29 - 24:33
    Und wir sehen, in der schlussendlich
    resultierenden Kette hat Bob das Geld
  • 24:33 - 24:42
    nicht erhalten. Malroy hat also das
    Auto erfolgreich stehlen können.
  • 24:42 - 24:46
    Das ist gar nicht gut. Jetzt hat ja dieser
    Angriff funktioniert. Oder hat er das
  • 24:46 - 24:53
    denn wirklich? Denn diesmal war der
    Angriff erfolgreich. Aber Malroy musste
  • 24:53 - 24:57
    jetzt dafür arbeiten. Er musste diesen
    einen Block erstellen. Und das hat ihn
  • 24:57 - 25:00
    viel Zeit gekostet. Natürlich kostet
    es ihn auch irgendwie Rechenkraft,
  • 25:00 - 25:03
    und den Strom den er braucht um seinen
    Computer zu betreiben. Das wollen wir
  • 25:03 - 25:07
    jetzt aber gar nicht mit einbeziehen.
    Sondern wir schauen jetzt nach diesen
  • 25:07 - 25:12
    Dings die Zeit gekostet. Denn der Malroy
    hat ja einen Computer, den er braucht,
  • 25:12 - 25:16
    um die Blöcke zu erstellen. Und dieser
    Computer kann immer nur eines auf’s Mal
  • 25:16 - 25:20
    tun. Entweder erstellt er jetzt diesen
    Fake-Block für Bob, oder er erstellt
  • 25:20 - 25:26
    richtige Blöcke auf die richtige Chain.
    Er kann nicht beides auf’s Mal tun.
  • 25:26 - 25:32
    So, und das macht es sehr, sehr
    teuer diesen Angriff durchzuführen.
  • 25:32 - 25:36
    Stellen wir uns vor… das sind jetzt einfach
    irgendwelche Annahmewerte für unser
  • 25:36 - 25:39
    Netzwerk… die sind da halt in jeder
    Kryptowährung etwas anders definiert.
  • 25:39 - 25:45
    Sagen wir, unser Netzwerk erzeugt einen
    Block alle zehn Minuten. Der Block Reward,
  • 25:45 - 25:50
    welchen der Miner kriegt ist 1000 Euro.
    Und Malroy hätte jetzt 20% der Rechenkraft
  • 25:50 - 25:55
    des Netzwerkes. Wenn wir sagen 100% der
    Rechenkraft erzeugt alle zehn Minuten.
  • 25:55 - 26:00
    einen Block, dann erzeugt Malroy auf
    sich alleine gestellt nur alle 50 Minuten
  • 26:00 - 26:06
    einen Block. D.h. der Angriff auf Bob
    dauert 50 Minuten. Nun, wenn aber Malroy
  • 26:06 - 26:12
    50 Minuten lang minen würde, anstatt Bob
    anzugreifen, dann würde er in dieser Zeit
  • 26:12 - 26:16
    durchschnittlich 1000 Euro verdienen.
    Er kann sich jetzt also entscheiden,
  • 26:16 - 26:23
    entweder greift er Bob an und stiehlt das
    23.000 Euro teure Auto, oder er verdient
  • 26:23 - 26:26
    mit fairem Mining 1000 Euro.
    Natürlich wird er dieses Auto immer noch
  • 26:26 - 26:32
    stehlen wollen. Der Mechanismus, um
    das zu verhindern ist aber ganz einfach.
  • 26:32 - 26:36
    Wir sagen jetzt, Bob gibt dem
    Malroy das Auto nicht, sobald Bob
  • 26:36 - 26:41
    das Geld erhalten hat, sondern er
    wartet dann noch einige Blöcke.
  • 26:41 - 26:44
    Das sieht dann in etwa so aus. Ich habe
    jetzt nicht genügend Blöcke gemalt,
  • 26:44 - 26:49
    weil die da nicht Platz hatten.
    Also sagen wir halt, wir sehen
  • 26:49 - 26:55
    auf der rechten Seite, wo die
    Transaktion Teil des Zustandes wird.
  • 26:55 - 27:00
    Und in diesem Moment gibt halt der
    Bob das Auto noch nicht an Malroy,
  • 27:00 - 27:05
    sondern erst einige Blöcke später. Und
    für jeden zusätzlichen Block, den Malroy
  • 27:05 - 27:08
    erstellen muss, um Bob davon zu
    überzeugen, dass das jetzt wirklich
  • 27:08 - 27:12
    die richtige Kette ist, muss Malroy
    weitere 50 Minuten aufwenden,
  • 27:12 - 27:18
    und das kostet ihn jedesmal 1000 Euro.
    Wenn also Bob sagt: „Ich warte 24 Blöcke
  • 27:18 - 27:23
    bevor ich dem Malroy das Auto gebe“. Dann
    ist der Angriff für Malroy plötzlich teurer
  • 27:23 - 27:27
    als das Auto einen Wert hat. Und dadurch
    kann Bob den Angriff verhindern.
  • 27:27 - 27:31
    Malroy kann den zwar immer noch
    durchführen, aber es ist schlicht einfach
  • 27:31 - 27:35
    nicht interessant für Malroy das zu tun,
    weil er mehr Geld macht wenn er
  • 27:35 - 27:45
    in der selben Zeit mint. So. Jetzt haben
    wir viel gesprochen über generische
  • 27:45 - 27:49
    Konzepte von Blockchains. Jetzt will
    ich noch etwas dazu sagen, wie das
  • 27:49 - 27:54
    in Bitcoin implementiert wird. Zumindest
    einige der Dinge. Schauen wir uns zuerst
  • 27:54 - 27:58
    die Blöcke an. Und wir wissen ja, in der
    Informatik mögen wir es, Bodys und Header
  • 27:58 - 28:03
    zu definieren. Das tun wir überall,
    irgendwie, in unseren Netzwerkprotokollen;
  • 28:03 - 28:08
    in Nachrichten und Dateiformaten
    sagen wir, der Body enthält den Inhalt,
  • 28:08 - 28:12
    die eigentlichen Daten. Und der Header
    enthält die Metadaten. Und genau dasselbe
  • 28:12 - 28:17
    tun wir auch in unseren Blockchains. In
    Bitcoin ist es so, der Body eines Blockes
  • 28:17 - 28:22
    enthält alle Transaktionen. Die sind dort
    geordnet aufgeführt. Der Miner muss
  • 28:22 - 28:29
    einige Regeln einhalten, wenn er das
    macht. Z.B. wenn Transaktion B
  • 28:29 - 28:32
    von Transaktion A abhängt, die beide
    im selben Block sind, müssen die
  • 28:32 - 28:36
    in der richtigen Reihenfolge drin sein.
    Aber sonst kann der die irgendwie
  • 28:36 - 28:40
    dort einpacken. Aber sobald er das mal
    gemacht hat, ist dann… diese Reihenfolge
  • 28:40 - 28:45
    ist anschließend wichtig. Und die erste
    Transaktion im Block ist jeweils
  • 28:45 - 28:48
    die coin-based-Transaktion,
    mit der sich der Miner
  • 28:48 - 28:53
    den Block Reward überweist.
  • 28:53 - 28:59
    Um jetzt diesen Body zu verbinden mit dem
    Header nutzt Bitcoin einen Merkle Tree.
  • 28:59 - 29:02
    Das ist ein binärer Baum,
  • 29:02 - 29:08
    bei dem jeweils… der Node ist der
    hash der konkatenierten Werte
  • 29:08 - 29:11
    der Children des Nodes.
  • 29:11 - 29:15
    Und Bitcoin verwendet fast überall…
    wo Bitcoin Hashes macht,
  • 29:15 - 29:18
    wenden sie einen – dhash nennen sie das,
  • 29:18 - 29:23
    das ist ein double-sha256-Hash, also
    so nennt sich der Hash eines Hashes
  • 29:23 - 29:28
    eines Wertes, den sie nehmen. Das
    sieht dann so aus: wir haben unseren Body
  • 29:28 - 29:32
    des Blocks. Dann erstellen wir für
    jede Transaktion den double-hash.
  • 29:32 - 29:35
    Und dann beginnen wir damit, den Tree
    zu erstellen. Also auf jeden Node,
  • 29:35 - 29:41
    für jeden blauen Node konkatenieren wir
    die beiden grünen Nodes, und machen dann
  • 29:41 - 29:44
    den Hash davon. Das machen wir für
    jede Ebene, bis wir schlussendlich
  • 29:44 - 29:50
    beim Merkle Root angelangen, und der
    wird dann Teil des Block Headers.
  • 29:50 - 29:54
    Und der Block Header enthält diese Dinge:
    die Version – das ist irgendwie
  • 29:54 - 29:58
    eine arbitrary Nummer, die von den
    Entwicklern von Zeit zu Zeit geändert wird,
  • 29:58 - 30:02
    wenn sie irgendwie finden,
    dass wird jetzt Zeit dafür.
  • 30:02 - 30:06
    Dann den Previous Block Hash. Wir haben
    gesehen, die Blöcke verweisen jeweils
  • 30:06 - 30:09
    auf den vorhergehenden Block. Das ist
    in Bitcoin so gelöst, dass der Header
  • 30:09 - 30:13
    eines Blocks den Hash des vorhergehenden
    Blocks enthält. Also auch hier wieder
  • 30:13 - 30:19
    den double-hash. Den Merkle Root haben
    wir bereits gesehen. Dann enthält
  • 30:19 - 30:22
    der Block-Header noch einen Time Stamp.
    Das sind ziemlich komplizierte Regeln,
  • 30:22 - 30:27
    wonach dieser Time Stamp gebildet
    wird, aber das ist egal. Das ist
  • 30:27 - 30:32
    nicht so wichtig. Die ‚Difficulty‘ ist ein
    Ausdruck dafür wie schwierig es war
  • 30:32 - 30:36
    den Proof-of-Work für diesen bestimmten
    Block zu definieren. Und die ‚Nonce‘
  • 30:36 - 30:44
    ist ein Wert der gebraucht wird zum Minen.
  • 30:44 - 30:48
    Ja und der Proof-of-Work in Bitcoin ist
    nichts anderes als der Hash des Blocks.
  • 30:48 - 30:53
    Und der muss dann eine Bedingung
    erfüllen. Und zwar muss dieser Hash
  • 30:53 - 30:59
    mit einer gewissen Anzahl Nullen beginnen.
    Also ich nehme den Header des Blocks
  • 30:59 - 31:04
    und bilde den double-hash davon.
    Und dann müssen die ersten paar Bits
  • 31:04 - 31:09
    von diesem Hash müssen Null sein. Und
    wieviele Bits das sind, das ist dann eben
  • 31:09 - 31:13
    die variable Schwierigkeit. Also wenn
    ich mehr Nullen haben muss zu Beginn
  • 31:13 - 31:17
    dann ist es schwieriger den Proof-of-Work
    zu erstellen. Und bei weniger
  • 31:17 - 31:22
    natürlich einfacher. Das Mining
    funktioniert dann so dass… der Miner
  • 31:22 - 31:26
    nimmt einfach mal diesen Header,
    und bildet den double-hash davon.
  • 31:26 - 31:30
    Dann prüft er ob der jetzt diese Bedingung
    erfüllt. Das wird er vermutlich nicht tun.
  • 31:30 - 31:34
    Und dann inkrementiert er halt die nonce,
    dadurch hat sich der Header verändert,
  • 31:34 - 31:39
    er bildet wieder den hash davon, und prüft
    das. Und so macht er immer weiter.
  • 31:39 - 31:46
    Es ist aber so, diese nonce ist lediglich
    32 bit lang, und der Hash mit 256 bit
  • 31:46 - 31:50
    ist wesentlich größer. Es kann also gut
    sein, dass einfach durch das Inkrementieren
  • 31:50 - 31:55
    der Nonce kein passender Proof-of-Work
    gefunden wird. Und in dem Fall wird
  • 31:55 - 32:01
    der Miner die coin-based Transaktion
    verändern. Und zwar hat diese coin-based
  • 32:01 - 32:05
    Transaktion hat den Transaction Input,
    der wird bei einer normalen Transaktion
  • 32:05 - 32:10
    dafür gebraucht zu beschreiben, woher
    das Geld kommt in dieser Transaktion.
  • 32:10 - 32:14
    Das hat die coin-based nicht, denn die
    macht ja quasi Geld aus dem Nichts heraus,
  • 32:14 - 32:18
    und den Wert in diesem Fall kann
    dann der Miner frei beeinflussen.
  • 32:18 - 32:22
    Dadurch ändert sich der Hash dieser
    Transaktion, und das setzt sich dann
  • 32:22 - 32:28
    durch den Merkle Tree hindurch fort bis
    es quasi auch den Merkle Root verändert.
  • 32:28 - 32:33
    Und dadurch ist der ganze Blockheader
    wieder verändert und der Miner
  • 32:33 - 32:38
    kann weiterarbeiten. So, das lässt sich ja
    dann auch sehr einfach prüfen, ob das jetzt
  • 32:38 - 32:42
    ein korrekter Proof-of-Work ist. Ich nehme
    einfach diesen Blockheader und bilde
  • 32:42 - 32:48
    den Hash und schaue ob das so stimmt.
  • 32:48 - 32:53
    Das Bitcoin-Netzwerk versucht alle zehn
    Minuten einen neuen Block zu erstellen.
  • 32:53 - 32:58
    Um diese Zeit stabil zu halten,
    wird die Schwierigkeit im Netzwerk
  • 32:58 - 33:03
    alle 14 Tage, also alle 2016 Blöcke,
    angepasst, mit einem Algorithmus
  • 33:03 - 33:11
    wo jeder Miner feststellen kann wie weit
    muss ich jetzt die Schwierigkeit verändern.
  • 33:11 - 33:14
    Die coin-based Transaktion, mit der
    sich der Miner Geld überweist,
  • 33:14 - 33:18
    enthält in Bitcoin zwei Dinge:
    einerseits die Transaction Fees, also
  • 33:18 - 33:25
    die Transaktionsgebühren der Transaktion
    in den Block; und anderseits auch noch
  • 33:25 - 33:30
    neue Bitcoin, die neu ins System kommen.
    Das waren ursprünglich 50 Bitcoin pro Block,
  • 33:30 - 33:35
    heute sind es noch 12,5, der
    Wert halbiert sich alle vier Jahre.
  • 33:35 - 33:39
    Das war das letzte Mal in diesem Sommer,
    da hat sich der Wert halbiert. Seither
  • 33:39 - 33:48
    gibt es nur noch 12,5 Bitcoin
    für einen neuen Block.
  • 33:48 - 33:52
    Jetzt wollen wir noch uns anschauen
    wie wir ‚Light Clients‘ bauen können.
  • 33:52 - 33:57
    Bitcoin kennt eigentlich mehr oder weniger,
    drei Arten von Clients: ein ‚Full Node‘
  • 33:57 - 34:03
    ist ein Client, welcher die
    gesamte Blockchain speichert.
  • 34:03 - 34:07
    Der überprüft jede eingehende
    Transaktion, jeden eingehenden Block
  • 34:07 - 34:11
    überprüft dieser Client, ob der auch
    wirklich valide ist. Und er tut noch
  • 34:11 - 34:14
    etwas anderes, nämlich er seeded diese
    Blöcke die er hat an das Netzwerk.
  • 34:14 - 34:18
    Also wenn jemand kommt und sagt:
    „Ich hätte gern einen Block“ dann gibt
  • 34:18 - 34:22
    der Full Node diesen Block raus. Dann gibt
    es ‚Pruning Clients‘. Der macht eigentlich
  • 34:22 - 34:28
    das genau selbe wie der Full Node.
    Also der überprüft auch alle Transaktionen
  • 34:28 - 34:33
    und alle Blöcke. Aber der speichert jetzt
    halt nicht die ganze Blockchain, sondern
  • 34:33 - 34:36
    wenn er findet „den Block brauche ich
    nicht mehr“, dann löscht er den.
  • 34:36 - 34:39
    Und das macht dem Client Speicherplatz.
    Der braucht aber immer noch
  • 34:39 - 34:44
    sehr viel Rechenkraft und sehr viel
    Bandbreite, deutlich zuviel als dass ich
  • 34:44 - 34:48
    das auf meinem Smartphone laufen lassen
    möchte. Und deshalb gibt es noch
  • 34:48 - 34:54
    die Light Clients oder SPV Clients.
    Die dann auch geeignet sind,
  • 34:54 - 34:57
    um [sie] auf einem mobilen Gerät laufen
    zu lassen. Und wie die funktionieren,
  • 34:57 - 35:01
    will ich jetzt noch besprechen.
  • 35:01 - 35:06
    Ein Light Client oder ein SPV Client,
    was der tut zuerst ist, er lädt
  • 35:06 - 35:09
    die Header aller Blöcke herunter. Wir
    haben ja gesehen, der Proof-of-Work
  • 35:09 - 35:15
    ist der Hash des Block Headers. D.h.
    um den Proof-of-Work zu kontrollieren
  • 35:15 - 35:19
    brauche ich nicht den gesamten
    Block, der Block Header genügt.
  • 35:19 - 35:23
    Und dasselbe gilt auch für die
    Verknüpfung der Blöcke untereinander.
  • 35:23 - 35:26
    Welches der vorhergehende Block
    ist, das steht ja auch im Header.
  • 35:26 - 35:31
    D.h. auch für diese Funktion brauche ich
    nicht die ganzen Blöcke herunterzuladen.
  • 35:31 - 35:35
    Und so kann ich korrekt
    die längste Kette erstellen,
  • 35:35 - 35:40
    innerhalb des Netzwerks, indem
    ich nur die Header herunterlade.
  • 35:40 - 35:46
    Und der Gewinn dabei ist natürlich enorm.
    Zur Zeit gibt es etwa 450.000 Blöcke.
  • 35:46 - 35:52
    Die brauchen mehr als 95 GB Speicherplatz.
    Wenn man dann noch TX Index aktiviert
  • 35:52 - 35:56
    sind es, glaube ich, so um die
    110 GB Speicherplatz, die es braucht.
  • 35:56 - 36:00
    Das ist natürlich blödsinnig viel auf einem
    Smartphone. Aber nur die Block Headers,
  • 36:00 - 36:04
    alle Block Headers von diesen
    450.000 Blöcken, die passen
  • 36:04 - 36:10
    in deutlich weniger als 100 MB rein. Und
    das ist dann durchaus ein realistischer Wert,
  • 36:10 - 36:15
    dass ich das auf einem Smartphone habe.
    Das zweite Konzept ist der Merkle Branch,
  • 36:15 - 36:19
    und das ist dann eigentlich noch fast
    die interessantere Funktion, die uns
  • 36:19 - 36:23
    der Merkle Tree bildet. Und damit kann
    jeder beweisen, dass eine Transaktion
  • 36:23 - 36:27
    tatsächlich Teil des Zustands ist.
  • 36:27 - 36:31
    Nun, die eine Möglichkeit, wie wir den
    Merkle Tree nachbauen können,
  • 36:31 - 36:35
    ist natürlich, indem wir den Block
    Body herunterladen, und dann
  • 36:35 - 36:40
    den ganzen Merkle Tree bauen.
    Wenn ich jetzt aber nur beweisen will
  • 36:40 - 36:44
    dass eine Transaktion Teil des Blockes
    ist, gibt es eine effizientere Möglichkeit.
  • 36:44 - 36:48
    Angenommen ich will jetzt beweisen,
    dass die Transaktion (3) tatsächlich
  • 36:48 - 36:52
    Teil des Blocks ist. Dann brauche ich
    nicht alle Transaktionen herunterzuladen,
  • 36:52 - 36:58
    sondern es reicht diese Transaktion (3)
    herunterzuladen. – Ui, das war falsch. –
  • 36:58 - 37:01
    Und dann die restlichen Hashes,
    also von jeder Ebene des Baums
  • 37:01 - 37:04
    lade ich einen Hash herunter.
    Und damit kann ich jetzt
  • 37:04 - 37:11
    den Merkle Root Node wieder nachbilden,
    und so feststellen, dass diese Transaktion
  • 37:11 - 37:16
    tatsächlich Teil des Blocks ist.
    Das ist genau das was…
  • 37:16 - 37:19
    das hat jetzt natürlich auch einige
    Vorteile. Ich brauche jetzt
  • 37:19 - 37:24
    weniger Elemente herunterzuladen, und
    ich kann halt Hashes herunterladen, also
  • 37:24 - 37:27
    anstatt Transaktionen. Vorhin in dem
    Beispiel hat das nicht soviel gebracht.
  • 37:27 - 37:30
    Aber wenn wir einen Block nehmen
    mit 1600 Transaktionen, das ist
  • 37:30 - 37:35
    dieser Tage durchaus ein üblicher Block,
    dann brauche ich jetzt zum Validieren
  • 37:35 - 37:39
    nicht mehr 1600 Transaktionen
    herunterzuladen, sondern es genügt
  • 37:39 - 37:42
    eine Transaktion herunterzuladen und
    dann elf Hashes, und damit kann ich
  • 37:42 - 37:47
    den Merkle Branch nachbauen.
  • 37:47 - 37:53
    Und so funktioniert ein SPV Client. SPV
    steht für ‚simple payment verification‘.
  • 37:53 - 37:57
    Und das hat eigentlich… das wurde schon
    im White Paper zu Bitcoin beschrieben,
  • 37:57 - 38:01
    wie das funktioniert. Alles was der
    tun muss, um zu beweisen, dass
  • 38:01 - 38:05
    eine Transaktion reingekommen ist, ist,
    er lädt zuerst alle Block Header herunter,
  • 38:05 - 38:10
    wie vorhin besprochen, er bildet
    den längsten Branch daraus,
  • 38:10 - 38:16
    dann lädt er eine Transaktion herunter.
    Und wenn ich jetzt wissen will…
  • 38:16 - 38:18
    wenn ich von jemandem Geld erhalte und
    ich will jetzt zeigen, ich habe das Geld
  • 38:18 - 38:23
    tatsächlich erhalten, lade ich halt diese
    Transaktion herunter, und dann lade ich
  • 38:23 - 38:27
    den passenden Merkle Branch herunter.
    Und jetzt kann ich quasi zeigen, dass
  • 38:27 - 38:32
    dieser Merkle Branch tatsächlich mit der
    längsten Kette von Blöcken verbunden ist.
  • 38:32 - 38:37
    Und so habe ich jetzt den Beweis dafür,
    dass ich das Geld tatsächlich erhalten habe.
  • 38:37 - 38:41
    So, das ist diese Funktionsweise.
    Jetzt haben wir noch etwas mehr Zeit,
  • 38:41 - 38:44
    als ich gehofft hatte. Ich werde jetzt
    noch versuchen, die Pruning Clients
  • 38:44 - 38:49
    zu erklären. Das hängt dann damit zusammen
    wie eigentlich Bitcoin-Transaktionen
  • 38:49 - 38:54
    funktionieren. Nun, wir sind es ja
    gewohnt, dass wir irgendwie auf der Bank
  • 38:54 - 38:58
    ein Konto haben. Und das Konto
    hat einen Besitzer. Hoffentlich mich!
  • 38:58 - 39:03
    Und es hat einen Geldbetrag. Und jedesmal,
    wenn ich eine Transaktion durchführe,
  • 39:03 - 39:07
    verändert sich der Geldbetrag. Also ich
    überweisen jemandem Geld, und dann
  • 39:07 - 39:12
    verändert sich halt der Betrag auf meinem
    Konto. In Bitcoin funktioniert das
  • 39:12 - 39:16
    wesentlich anders, dort besitze ich
    nicht ein Konto, sondern ich besitze
  • 39:16 - 39:20
    sogenannte ‚Unspent Transaction Outputs‘.
    Und wir sehen jetzt hier, sagen wir Alice
  • 39:20 - 39:24
    hat diese fünf Unspent Transaction
    Outputs, die haben jeweils einen Besitzer,
  • 39:24 - 39:29
    nämlich Alice. Und jeweils einen Betrag
    der dort verfügbar ist. Und der Betrag
  • 39:29 - 39:34
    kann nicht geändert werden. Das ist fest.
    Und nehmen wir jetzt an, Alice würde gerne
  • 39:34 - 39:39
    eine Transaktion machen, an Bob,
    die würde ihm gerne 42 Bitcoin überweisen.
  • 39:39 - 39:42
    Dann erstellt sie eine Transaktion, und
    sagt, das Geld dieser Transaktion,
  • 39:42 - 39:47
    42 Bitcoin, sollen an Bob gehen. Und jetzt
    muss sie das Geld irgendwoher haben.
  • 39:47 - 39:53
    Und dann sagt sie halt, ich gebe
    diese drei Transaction Outputs aus.
  • 39:53 - 39:57
    Und das Interessante an Transaction
    Outputs… wie gesagt, den Betrag
  • 39:57 - 40:02
    kann man nicht verändern, sondern
    Alice muss die alle komplett ausgeben.
  • 40:02 - 40:06
    Jetzt sind aber diese Transaction Outputs
    zusammengenommen 44 Bitcoin,
  • 40:06 - 40:11
    und nicht 42 Bitcoins. D.h. diese
    Transaktion gibt jetzt zuviel Geld aus,
  • 40:11 - 40:17
    also sie gibt mehr Transaction Outputs aus
    als sie dann schlussendlich Geld dem Bob
  • 40:17 - 40:21
    überweist. Und was kann jetzt Alice
    tun? Was sie tut, ist, sie macht
  • 40:21 - 40:27
    einen zweiten Output in ihrer Transaktion.
    Und hier überweist sie jetzt Geld an Alice.
  • 40:27 - 40:32
    D.h. eine Transaktion in Bitcoin kann
    beliebig viele Inputs und beliebig viele
  • 40:32 - 40:37
    Outputs haben. Was es hier noch zu
    sagen gibt, ist, haben wir immer noch
  • 40:37 - 40:41
    einen Unterschied. Jetzt haben wir 44
    Bitcoin, die in die Transaktion reinkommen,
  • 40:41 - 40:46
    und nur 43 die rausgehen. Das restliche
    Bitcoin, das jetzt hier nicht ausgegeben wird,
  • 40:46 - 40:51
    das ist quasi impliziert die Transaction
    Fee, welche der Miner erhält, der diese
  • 40:51 - 40:56
    Transaktion mint. So eine Transaction Fee
    ist implementiert. Jetzt haben wir gesehen,
  • 40:56 - 41:00
    Alice hat durch das Erstellen dieser
    Transaktion neue Transaction Outputs
  • 41:00 - 41:06
    erstellt. Nämlich einen, der jetzt Bob
    gehört, und einen der Alice gehört.
  • 41:06 - 41:09
    Und jetzt können wir auch nachvollziehen,
    diese Transaction Outputs, welche Alice
  • 41:09 - 41:14
    ausgegeben hat, die gehören alle irgendwie
    zu anderen Transaktionen, welche es vorhin
  • 41:14 - 41:20
    gegeben hat. Nun, ein Transaction Output
    kann einen von zwei Zuständen haben.
  • 41:20 - 41:25
    Er kann ausgegeben sein, oder nicht.
    Und natürlich kann man nur die ausgeben,
  • 41:25 - 41:29
    die noch nicht ausgegeben sind. Und das
    heißt, wenn ich wissen will, wieviel Geld
  • 41:29 - 41:33
    Alice gehört, dann suche ich mir alle
    Transaction Outputs zusammen,
  • 41:33 - 41:38
    die Alice gehören, und addiere die Summe,
    und dann weiß ich, Alice gehört „soviel“ Geld.
  • 41:38 - 41:41
    Das kann ich für jeden Teilnehmer
    des Systems machen, dann weiß ich
  • 41:41 - 41:47
    für jeden Teilnehmer, wieviel Geld denn
    der Person gehört. Wenn ich jetzt also
  • 41:47 - 41:51
    alle Transaction Outputs nehme, die
    nicht ausgegeben sind, dann habe ich
  • 41:51 - 41:57
    den aktuellen Zustand des Netzwerks. Dann
    weiß ich für jeden Teilnehmer, wieviel Geld
  • 41:57 - 42:05
    diese Person hat. Und genau diesen
    Mechanismus macht sich ein Pruning Client
  • 42:05 - 42:09
    zunutze. Der sagt nämlich, eigentlich
    brauche ich nicht die ganze Blockchain
  • 42:09 - 42:13
    zu speichern, das ist ja blöd, denn wenn
    eine neue Transaktion reinkommt, und
  • 42:13 - 42:17
    ich wissen will ob die tatsächlich valide
    ist, dann muss ich nur prüfen, ob die
  • 42:17 - 42:22
    einen Output ausgibt, der noch unspent
    ist, denn wenn die Transaktion einen
  • 42:22 - 42:26
    Transaction Output ausgibt, der schon
    ausgegeben ist, dann ist die natürlich
  • 42:26 - 42:29
    nicht valide, man kann ja nicht dasselbe
    Geld zweimal ausgeben. Oder wenn
  • 42:29 - 42:33
    die Transaktion versucht, einen
    Transaction Output auszugeben,
  • 42:33 - 42:36
    den es gar nicht gibt, dann ist
    die natürlich auch nicht valide.
  • 42:36 - 42:42
    Was jetzt also ein Pruning Client tut –
    und das tut übrigens auch ein Full Node:
  • 42:42 - 42:46
    wenn eine neue Transaktion reinkommt,
    und da steht in der Transaktion „ich gebe
  • 42:46 - 42:52
    diesen Transaction Output aus“, dann
    geht der Full Node nicht und versucht,
  • 42:52 - 42:56
    die 100 GB große Blockchain zu durchsuchen
    nach diesem Transaction Output, das wäre
  • 42:56 - 43:00
    ja blödsinnig, sondern der legt sich halt
    eine kleine Datenbank an, und dort
  • 43:00 - 43:06
    stehen alle Transaction Outputs drin.
    Und dann sagt er sich, für jeden…
  • 43:06 - 43:09
    also alle Unspent Transaction Outputs
    stehen dort drin, und dann sagt sich
  • 43:09 - 43:12
    der Client, für jede Transaktion,
    die reinkommt und die valide ist,
  • 43:12 - 43:18
    entferne ich alle Transaction Outputs die
    die Transaktion ausgibt aus der Datenbank,
  • 43:18 - 43:23
    und alle neuen Transaction Outputs füge
    ich dort ein. Und so behält der Client
  • 43:23 - 43:29
    den Zustand. Und der Pruning Client sagt
    sich dann halt: „Naja, die Blöcke, die
  • 43:29 - 43:32
    brauche ich jetzt ja nicht mehr, weil ich
    habe den Zustand in der Datenbank,
  • 43:32 - 43:35
    der ist auch viel kleiner als all die
    blöden Blöcke, die Blöcke werfe ich fort.“
  • 43:35 - 43:39
    Der muss dann noch etwas vorsichtig sein,
    denn wenn jetzt plötzlich von weiter hinten
  • 43:39 - 43:43
    eine längere Kette kommt, dann muss er
    das ja wieder nachvollziehen können,
  • 43:43 - 43:48
    also wird er sich noch einige Blöcke
    zusätzlich speichern, als nur den neuesten.
  • 43:48 - 43:55
    Aber er kann so sehr viel Speicherplatz
    sparen. Er muss aber… trotzdem
  • 43:55 - 44:00
    muss ein Pruning Client eigentlich jede
    Transaktion, die es jemals gegeben hat,
  • 44:00 - 44:04
    herunterladen, und muss dann halt auch
    die alle verifizieren. Das braucht auch
  • 44:04 - 44:08
    immer noch sehr viel Rechenkraft, und
    sehr viel Bandbreite. Und deshalb sind
  • 44:08 - 44:13
    solche Clients nicht geeignet
    für Mobilgeräte.
  • 44:13 - 44:16
    Und was man hier vielleicht noch sagen
    kann, ich habe jetzt eigentlich irgendwie
  • 44:16 - 44:25
    gesagt, …
  • 44:25 - 44:32
    …ich habe jetzt gesagt, Alice gibt einen
    Transaction Output aus. Das ist…
  • 44:32 - 44:35
    In Wirklichkeit ist es in Bitcoin
    recht kompliziert implementiert.
  • 44:35 - 44:39
    Das funktioniert nämlich so, dass der
    Transaction Output hat ein Stück Code
  • 44:39 - 44:45
    drin. Dafür gibt es in Bitcoin eine eigene
    Assemblersprache, die das betreibt.
  • 44:45 - 44:51
    Und der Input muss jetzt ebenfalls ein
    Stück Code enthalten. Und wenn die dann
  • 44:51 - 44:56
    nacheinander ausgeführt werden, muss das
    am Schluss den Wert 'two' ergeben,
  • 44:56 - 45:00
    und nur in dem Fall wurde der Output
    richtig ausgegeben. Und das ist
  • 45:00 - 45:04
    ein ziemlich kompliziertes System, wie das
    wirklich funktioniert. Das ist dann halt
  • 45:04 - 45:07
    eine eigene Programmiersprache, die ist
    zwar nicht Turing-vollständig, aber damit
  • 45:07 - 45:12
    lassen sich dann alle möglichen lustigen
    Regeln implementieren. Die häufigste Regel
  • 45:12 - 45:23
    die man findet, in über 80%
    der Fälle, sind sogenannte…
  • 45:23 - 45:28
    …die Regel sagt dann irgendsowas wie:
    „Um diesen Output ausgeben zu können,
  • 45:28 - 45:32
    musst du beweisen, dass du den geheimen
    Schlüssel besitzt zu dem öffentlichen
  • 45:32 - 45:37
    Schlüssel, dessen Hash ich jetzt hier
    reinpacke.“ Und in dem Input steht dann
  • 45:37 - 45:43
    halt: „Ja, ich besitze diesen geheimen
    Schlüssel, und ich beweise dir das,
  • 45:43 - 45:48
    indem ich hier den öffentlichen Schlüssel
    reinpacke und die Transaktion mit dem
  • 45:48 - 45:53
    geheimen Schlüssel signiere.“ Und dann
    kann jemand, der das verifizieren will,
  • 45:53 - 45:57
    kann einfach den öffentlichen Schlüssel
    nehmen, schauen ob das dem Hash entspricht,
  • 45:57 - 46:05
    und dann mit dem öffentlichen Schlüssel
    die Signatur der Transaktion verifizieren.
  • 46:05 - 46:10
    Das ist die mit Abstand häufigste Art,
    wie diese Transaktionen in Wirklichkeit
  • 46:10 - 46:14
    funktionieren. Aber das ist halt dann sehr
    kompliziert, und damit könnte man leicht
  • 46:14 - 46:22
    einen eigenen Vortrag füllen.
    Deshalb werde ich jetzt hier aufhören.
  • 46:22 - 46:29
    Habe ich da diese tolle Seite gebastelt.
  • 46:29 - 46:33
    – Ups, das ist eigentlich zu weit –
  • 46:33 - 46:43
    Finde ich es, oder nicht?
  • 46:43 - 46:46
    Ja, ha, gefunden! Unglaublich.
    Lachen
  • 46:46 - 46:49
    Also wir haben jetzt noch Zeit für Fragen,
    wenn ihr noch was wissen wollt.
  • 46:49 - 46:55
    Oder ihr könnt mich auch erreichen,
    am einfachsten hier über das DECT-Telefon
  • 46:55 - 47:02
    in dem Kongress, wenn ihr Fragen habt.
    Ihr findet einen Handout der Slides
  • 47:02 - 47:06
    auch im Fahrplan. Und ich werde auch
    die Folien selbst noch hochladen,
  • 47:06 - 47:10
    und den entsprechenden Source Code
    zum Erzeugen der Folien werde ich auch
  • 47:10 - 47:11
    verlinken.
  • 47:11 - 47:13
    Beifall
  • 47:13 - 47:15
    Herald: vimja!!
  • 47:15 - 47:25
    andauernder Beifall
  • 47:25 - 47:32
    Es ist noch einiges an Zeit für Fragen;
    also wenn ihr Fragen habt,
  • 47:32 - 47:35
    dann reiht euch an den Mikrofonen auf.
    Eine Sache möchte ich sagen:
  • 47:35 - 47:40
    wenn ihr jetzt rausgehen wollt, verlasst
    bitte leise den Saal, damit das
  • 47:40 - 47:44
    mit den Fragen einigermaßen klappt.
    Liebe Tür-Engel, wir lassen im Moment
  • 47:44 - 47:50
    noch niemanden rein. Erstmal können Leute
    nur rausgehen. Und bitte tut das leise.
  • 47:50 - 47:56
    Wir fangen mit dem Signal-Engel an.
  • 47:56 - 47:59
    Signal Angel: Eine Frage aus dem Internet
    bezüglich dem Man-in-the-middle
  • 47:59 - 48:02
    double-spending-Angriff. Könnte Mallory
    nicht diesen Angriff gleichzeitig
  • 48:02 - 48:07
    mit derselben Fake-Blockchain gegen zehn
    verschiedene Autohändler machen, und
  • 48:07 - 48:13
    mit dem gleichen Aufwand zehn Autos klauen?
    Damit würde es sich doch wieder lohnen,
  • 48:13 - 48:20
    auch wenn man mit dem Gegenwert eines
    Autos an Rechenzeit investieren müsste.
  • 48:20 - 48:26
    vimja: Das ist eine gute Überlegung die
    ich mir so noch auch gar nie gemacht habe.
  • 48:26 - 48:30
    Ich müsste darüber mal nachdenken. Ich
    nehme aber grundsätzlich an, dass es
  • 48:30 - 48:36
    vermutlich funktionieren würde. Der
    Aufwand wird dann aber halt sehr viel
  • 48:36 - 48:41
    größer, irgendwie um die Netzwerk-Nodes
    zu kontrollieren. Grundsätzlich denke ich
  • 48:41 - 48:45
    aber, dass es kein… damit das System
    wirklich sicher ist, sollte das
  • 48:45 - 48:51
    kein Argument sein dürfen. Also ich hätte
    jetzt auf Anhieb gesagt, dass es vermutlich
  • 48:51 - 48:55
    klappen würde.
  • 48:55 - 48:58
    Herald: Okay, dann machen wir weiter
    mit Mikrofon 2, hier vorne, bitte!
  • 48:58 - 49:03
    Frage: Ja, hallo. Du hast gesagt, mit
    einer 50%-Attack kann man im Prinzip
  • 49:03 - 49:07
    die Blockchains hijacken. Wenn man
    sich jetzt mal eine hypothetische
  • 49:07 - 49:11
    Regierungsorganisation mit sehr, sehr,
    sehr viel Rechenpower überlegt,
  • 49:11 - 49:16
    mal so ganz in den Raum geraten, gibt’s
    Überlegungen, wie wahrscheinlich das ist?
  • 49:16 - 49:20
    vimja: Nun, es ist so, mit einfach
    herkömmlicher Rechenpower wird das
  • 49:20 - 49:23
    kaum möglich sein, also irgendwie
    für diese spezielle Aufgabe,
  • 49:23 - 49:28
    den Double-SHA256-Hash, hat das Bitcoin-
    Netzwerk ein Vielfaches der Rechenkraft,
  • 49:28 - 49:33
    die selbst die 500 schnellsten Supercomputer
    aufbringen könnten. Es gibt aber eine
  • 49:33 - 49:37
    viel einfachere Möglichkeit, unser guter
    Freund China, denn die meisten…
  • 49:37 - 49:40
    denn heute ist es halt so: eigentlich
    möchte man gerne, dass die Miner
  • 49:40 - 49:44
    verteilt sind, und jeder ein wenig zuhause
    minet. In Praxis ist es aber so, dass
  • 49:44 - 49:48
    das heute das große Geschäft ist. Und das
    wird dann halt heute in Rechenzentren
  • 49:48 - 49:54
    in China betrieben. Und China hat heute
    mehr als 50% der Rechenkraft von Bitcoin,
  • 49:54 - 49:57
    also, toll, unsere unabhängige Währung
    gehört jetzt den Chinesen.
  • 49:57 - 50:01
    Und selbst wenn das nicht stimmen sollte,
    und das nicht funktionieren sollte,
  • 50:01 - 50:05
    ist es so, dass all die spezielle
    Hardware, die heute zum Mining
  • 50:05 - 50:09
    notwendig ist, in China hergestellt wird.
    Und China könnte einfach all diese Fabriken,
  • 50:09 - 50:13
    in denen die hergestellt werden,
    beschlagnahmen, und nach einigen Monaten
  • 50:13 - 50:15
    hätten sie trotzdem wieder mehr
    Rechenleistung als jeder andere,
  • 50:15 - 50:21
    und könnte die Währung so kontrollieren.
    Also, das ist durchaus wahrscheinlich.
  • 50:21 - 50:25
    Herald: Dann machen wir weiter
    mit Mikrofon 1, hier vorne, bitte.
  • 50:25 - 50:29
    Frage: Ja, mir geht’s auch gerade um die
    Rechenpower. Also gibt es da irgendwie
  • 50:29 - 50:34
    Ansätze in anderen elektronischen
    Währungen, wie das verhindert werden kann,
  • 50:34 - 50:40
    dass immer quasi zum Stand der aktuellen
    Technik die maximale Rechenpower nötig ist,
  • 50:40 - 50:44
    um so ein System laufen zu lassen?
  • 50:44 - 50:47
    vimja: Es hat zur Zeit, im Verlauf der
    Zeit verschiedene Möglichkeiten,
  • 50:47 - 50:52
    also verschiedene Ansätze gegeben.
  • 50:52 - 50:55
    Das eine was man immer wieder versucht
    hat, ist halt, dass man das nicht nur auf
  • 50:55 - 51:00
    Rechenkraft beschränkt, sondern dass man
    sagt, der Angriff der braucht nicht nur
  • 51:00 - 51:04
    Rechenpower sondern auch viel RAM,
    oder viel Memory. Und dadurch ist es
  • 51:04 - 51:08
    sehr viel schwieriger, Hardware zu bauen.
    Oder sehr viel teurer, Hardware zu bauen,
  • 51:08 - 51:12
    die darauf spezialisiert ist, und man
    erhofft sich davon Erfolge, aber
  • 51:12 - 51:16
    schlussendlich hat man dort wieder
    dasselbe Problem. Ich weiß aber,
  • 51:16 - 51:22
    dass Ethereum arbeitet an einem Konzept,
    das nennen sie Proof-of-Stake.
  • 51:22 - 51:25
    Und wie genau das funktioniert, kann ich
    dir nicht sagen. Aber da hängt dann
  • 51:25 - 51:29
    die Wahrscheinlichkeit, dass du einen
    Block erstellst, davon ab wieviel Geld
  • 51:29 - 51:33
    du besitzt in dem Netzwerk, oder sowas.
    Und die brauchen dann eigentlich
  • 51:33 - 51:36
    kein Mining mehr. Und die haben dann halt
    auch das Problem nicht mehr dass man
  • 51:36 - 51:41
    unglaublich viel Strom braucht, um das
    Ding zu minen. Und ich dachte, die wollten
  • 51:41 - 51:45
    diesen Sommer umstellen. Ich habe dann
    aber das Ganze ein wenig aus den Augen
  • 51:45 - 51:48
    verloren, und kann dir jetzt nicht
    sagen wie weit die damit sind.
  • 51:48 - 51:48
    Also grundsätzlich…
  • 51:48 - 51:50
    Frage: Wie heißt das nochmal?
  • 51:50 - 51:54
    vimja: ‚Proof-of-Stake‘. Und das wird in
    Ethereum implementiert. Aber wie weit
  • 51:54 - 51:57
    die sind, kann ich dir nicht sagen. Das
    müsstest du selbst nachschauen gehen.
  • 51:57 - 51:59
    Frage: Danke.
  • 51:59 - 52:02
    Herald: Dann machen wir weiter mit
    Mikrofon 4, dort drüben, bitte!
  • 52:02 - 52:07
    Frage: Ich stelle mal zwei Fragen. Das
    eine ist: öffentliche Grundbuchämter
  • 52:07 - 52:11
    könnte man doch sehr gut in der Blockchain
    umlegen [anlegen], und dadurch könnte
  • 52:11 - 52:15
    doch die Verwaltung sehr viel Geld
    einsparen, und z.B. Handelsregister
  • 52:15 - 52:17
    sind ja auch öffentlich, die könnte man
    doch auch in die Blockchain verschieben.
  • 52:17 - 52:20
    Oder mache ich da irgendeinen Denkfehler,
    dass es am Schluss für die Verwaltung
  • 52:20 - 52:23
    teurer kommt? Und was mich auch
    noch wundert, was deine Meinung
  • 52:23 - 52:26
    zu Smart Contracts ist.
  • 52:26 - 52:30
    vimja: Also, zu der ersten Frage, das ist
    so, daran wird tatsächlich gearbeitet.
  • 52:30 - 52:35
    Insbesondere die britische Regierung hat
    auch Forschungsgruppen, die erforschen
  • 52:35 - 52:42
    sollen, wie Blockchains der Verwaltung
    helfen können. Gerade beim Grundbuchamt,
  • 52:42 - 52:46
    also solche Systeme brauchen starke
    Anpassungen, gerade wenn wir uns
  • 52:46 - 52:52
    vorstellen, ein Grundbuchamt, wenn es dann
    jemandem gelingen würde, irgendwie
  • 52:52 - 52:56
    jetzt trotzdem ein Grundstück quasi
    zu stehlen, und das würde einfach
  • 52:56 - 53:02
    in dieser Blockchain drin feststehen, wie
    würde man das wieder rückgängig machen?
  • 53:02 - 53:06
    Also wenn wir heute ein Grundbuchamt
    haben, dann können die alles überschreiben.
  • 53:06 - 53:10
    Und irgendwie möchten wir ja dann trotzdem
    nicht einfach nur dieser Blockchain vertrauen.
  • 53:10 - 53:15
    Wir möchten trotzdem die Möglichkeit
    haben, dass gewisse Stellen, gerade eben
  • 53:15 - 53:18
    unser Staat, das überschreiben können.
    Da müssen dann in diese Blockchains
  • 53:18 - 53:22
    zusätzliche Mechanismen eingebaut werden,
    dass das trotzdem geht, und das ist dann
  • 53:22 - 53:27
    halt bedenklich, weil jetzt trotzdem da
    jemand das Zeugs kaputtmachen kann.
  • 53:27 - 53:31
    Also das ist nicht ganz einfach, diese
    Dinge zu tun. Aber ich denke schon,
  • 53:31 - 53:38
    dass gerade Grundbuchämter eine gute
    Chance sind, und das ist vermutlich auch
  • 53:38 - 53:44
    etwas vom Ersten, was wir implementiert
    sehen werden. Soviel für öffentliche Ämter.
  • 53:44 - 53:48
    Aber ich denke auch, dass es einen
    Hybridbetrieb geben wird. Also
  • 53:48 - 53:52
    dass man quasi sagt, das ist zwar
    öffentlich in einer Blockchain, aber
  • 53:52 - 53:56
    schlussendlich, was wirklich gilt ist
    immer noch das, was im Grundbuchamt steht,
  • 53:56 - 53:59
    und das wird dann halt solange so
    weiterbetrieben, bis sich das wirklich
  • 53:59 - 54:03
    bewährt hat, und man den Übergang macht.
    Und die zweite Frage, sorry, habe ich
  • 54:03 - 54:07
    wieder vergessen.
  • 54:07 - 54:10
    Herald: Okay, wenn das die Frage
    beantwortet und er nicht wieder aufsteht,
  • 54:10 - 54:15
    dann würde ich jetzt mit Mikrofon 7
    weitermachen, dort oben, bitte.
  • 54:15 - 54:20
    Frage: Ja, vielen Dank für den spannenden
    Vortrag. Mich würde noch interessieren,
  • 54:20 - 54:25
    vielleicht noch was zu dem Thema ‚Ende
    der Bitcoins‘, die sind ja anscheinend
  • 54:25 - 54:29
    begrenzt, soweit ich das verstanden habe.
    Und wie wird das Erstellen von neuen
  • 54:29 - 54:34
    Blöcken letztendlich in ferner Zukunft
    dann belohnt, werden die einfach immer so
  • 54:34 - 54:37
    weiter unterteilt, und man bekommt dann
    nur noch Bruchteile von Bitcoins
  • 54:37 - 54:38
    als Belohnung, oder wie funktioniert das?
  • 54:38 - 54:42
    vimja: Das ist eine sehr gute Frage,
    die sich natürlich auch diesen Sommer
  • 54:42 - 54:45
    gestellt hat, weil sich ja der
    Block Reward halbiert hat.
  • 54:45 - 54:49
    Und erstaunlicherweise ist es dann aber
    eigentlich ohne Weiteres weitergegangen.
  • 54:49 - 54:53
    Nun ist es so, der Mechanismus,
    der eigentlich greifen sollte, ist
  • 54:53 - 54:58
    die Transaction Fees. Dass es durch
    die Transaction Fees getragen wird,
  • 54:58 - 55:03
    diese Gebühr. Nur ist es heute so, dass
    die Transaction Fees so niedrig sind,
  • 55:03 - 55:07
    dass das Minen sich nicht rentieren würde,
    also der Stromverbrauch ist viel zu hoch,
  • 55:07 - 55:14
    als dass es sich lohnen würde, nur
    für die Transaction Fees zu minen.
  • 55:14 - 55:17
    Andererseits ist es aber so, dass die
    Transaction Fees heute schon sehr hoch
  • 55:17 - 55:21
    sind, also die kommen heute irgendwo
    zwischendurch schon in die Bereiche
  • 55:21 - 55:25
    der Transaction Fees, die man auch
    zahlt bei Kreditkartenüberweisungen.
  • 55:25 - 55:29
    Und das ist natürlich absolut lächerlich
    hoch. Und dann ist es aber auch so,
  • 55:29 - 55:33
    dass die Blöcke voll sind, d.h. wenn das
    Block Limit – das ist ein künstliches
  • 55:33 - 55:37
    Limit, wie groß die Blöcke sein dürfen,
    und die Community führt da großen Krieg
  • 55:37 - 55:42
    darüber ob man das jetzt ändern soll oder
    nicht – aber wenn dieses Limit halt nicht
  • 55:42 - 55:45
    erhöht wird, dann passen nicht mehr
    Transaktionen rein, und dann ist
  • 55:45 - 55:49
    der einzige Weg höhere Transaction…
    also mehr Transaction Fees zu haben
  • 55:49 - 55:52
    für den Miner, ist diese Transaction Fees
    zu erhöhen. Und wenn man die weiter
  • 55:52 - 55:56
    erhöht, dann lohnt es sich einfach
    nicht mehr, Bitcoin zu verwenden.
  • 55:56 - 55:59
    Im Moment ist es noch nicht so ein
    Problem, für die nächsten vier Jahre
  • 55:59 - 56:03
    sind es ja noch 12,5 Bitcoin die
    man kriegt. Aber wie es danach
  • 56:03 - 56:07
    weitergehen wird, das muss man abwarten,
    und dann schauen, was da genau passiert.
  • 56:07 - 56:11
    Und ich denke dass das ist auch noch ein
    dynamisches System, das sich schnell
  • 56:11 - 56:15
    wandelt, und da werden auch noch
    viele Leute viele gute Ideen haben.
  • 56:15 - 56:18
    Frage: Darf ich noch mal kurz was
    nachfragen? D.h. der Proof-of-Work
  • 56:18 - 56:23
    ist nicht der direkte Bitcoin, den ich
    bekomme, also nicht die 12,5 Bitcoins,
  • 56:23 - 56:28
    die ich bekomme, um einen Block zu
    erstellen, ist nicht der Proof-of-Work?
  • 56:28 - 56:32
    vimja: Nein nein, das ist… die 12,5 Bitcoin
    die du kriegst, also die 12,5 Bitcoin
  • 56:32 - 56:35
    plus das klein weniger, was von den
    Transaction Fees kommt, das ist
  • 56:35 - 56:39
    der Block Reward. Nennt sich das. Und der
    Proof-of-Work ist einfach der Beweis dafür,
  • 56:39 - 56:45
    dass du die Arbeit auf dich genommen
    hast, einen Block zu erstellen.
  • 56:45 - 56:50
    Herald: Gut, dann machen wir oben
    auf dem Balkon weiter mit der 8. Bitte.
  • 56:50 - 56:53
    Frage: Ja, das ganze Erstellen von
    den Blöcken basiert ja darauf, dass
  • 56:53 - 56:57
    Transaktionen in des System reinkommen.
    Die Frage wäre jetzt, was passiert, wenn
  • 56:57 - 57:02
    keine Transaktionen zur Verfügung stehen.
    Werden dann Dummy-Transaktionen erzeugt,
  • 57:02 - 57:04
    oder leere Blöcke, oder was passiert dann?
  • 57:04 - 57:08
    vimja: Nein, das kannst du sehen, wenn du
    ganz zurückgehst, die ersten Blöcke, die
  • 57:08 - 57:12
    überhaupt erstellt wurden, dort gab es ja
    noch keine Transaktionen. Was hätte auch
  • 57:12 - 57:17
    überwiesen werden sollen wenn niemand Geld
    hat. Und da war es dann halt so, dass
  • 57:17 - 57:21
    der Block enthält dann nur die Coin-based-
    Transaktion. Der Miner wird ja immer
  • 57:21 - 57:25
    eine Coin-based-Transaktion machen.
    Einfach, weil es für ihn interessant ist.
  • 57:25 - 57:33
    Und dann erstellt er halt einen Block, der
    nur diese Coin-based-Transaktion enthält.
  • 57:33 - 57:36
    Herald: Dann machen wir weiter
    hier vorne mit der 2. Bitte.
  • 57:36 - 57:38
    Mikro 2 will Mikro 4 Vorrang geben
    Bitte?
  • 57:38 - 57:42
    Wenn du nicht möchtest, dann machen
    wir mit der 4 weiter! Sehr fair von dir!
  • 57:42 - 57:49
    Frage: Och, dankeschön. Ich habe das Thema
    ‚Blockchain‘ in verschiedenen Kontexten
  • 57:49 - 57:51
    jetzt im letzten Jahr sehr viel gesehen.
    Es ist fast ein Buzzword in sehr sehr
  • 57:51 - 57:56
    vielen Branchen, von FinTech bis zu
    IoT oder wo auch immer. Konntest du
  • 57:56 - 58:00
    im Kontext deiner Arbeit ein bisschen
    so einen Trend raussehen, wo sich da
  • 58:00 - 58:04
    erste Anwendungen
    wirklich bewähren können?
  • 58:04 - 58:08
    vimja: Erste Anwendungen gibt es ja bereits.
    Du kannst mit Bitcoin Dinge bezahlen.
  • 58:08 - 58:14
    Aber das ist so ein wenig eine Sache.
    Eines, was ich gesehen habe, wo ich mich
  • 58:14 - 58:18
    aber schlicht weigere mich zu beteiligen,
    ist halt dass Banken das zu verwenden
  • 58:18 - 58:23
    versuchen, um die Transaktionen zwischen
    den Banken zu regeln. Da wird es ja,
  • 58:23 - 58:26
    glaube ich, im Anschluss im Saal G
    einen Talk geben dazu, wie das heute
  • 58:26 - 58:31
    gemacht wird, wie Banken zwischeneinander
    Geld austauschen. Und das möchte man
  • 58:31 - 58:34
    in Zukunft mit Bitcoin [eher: Blockchain]
    machen. Und da sind die Banken auch dran,
  • 58:34 - 58:39
    sehr viel Geld und sehr viel Zeit rein zu
    investieren. Das ist halt sehr schade,
  • 58:39 - 58:43
    dass diese eigentlich coole Technologie
    jetzt für sowas verwendet werden soll.
  • 58:43 - 58:49
    Aber ich denke das ist eine Anwendung die
    kommt. Dann eben einfache Kryptowährungen,
  • 58:49 - 58:54
    wie etwa Bitcoin, um Dinge
    zu bezahlen. Und auch…
  • 58:54 - 58:58
    ich denke auch mit Ethereum, eben gerade
    diese Smart Contracts werden kommen,
  • 58:58 - 59:01
    dass man halt eben irgendwelche Dinge,
    irgendwelche Third Parties, die man
  • 59:01 - 59:06
    verwendet für Dinge zu regeln, ersetzen
    wir jetzt aber. Was jetzt als Erstes
  • 59:06 - 59:10
    quasi den Durchbruch schaffen wird und
    als Großes eingesetzt werden wird,
  • 59:10 - 59:12
    kann ich dir nicht sagen.
  • 59:12 - 59:16
    Herald: Gut, dann, wir sind so ganz knapp
    an der Zeit, aber du darfst deine Frage
  • 59:16 - 59:17
    auf jeden Fall stellen, bitte!
  • 59:17 - 59:21
    Frage: Ist auch nur eine ganz kurze,
    schnelle Frage. Gibt es einen Schutz
  • 59:21 - 59:24
    gegen DDoS, dass ich irgendwie das
    Netzwerk mit falschen Transaktionen
  • 59:24 - 59:28
    bombardiere, und dann bricht alles
    zusammen, gibt es da irgendwie
  • 59:28 - 59:29
    einen Schutz dagegen?
  • 59:29 - 59:32
    vimja: Ja, das war ja ganz interessant.
    Das hat es glaube ich vor über einem Jahr
  • 59:32 - 59:35
    gegeben, bei Bitcoin, dass das passiert
    ist, und die waren sich dann
  • 59:35 - 59:39
    nicht so ganz einig in der Community,
    weil die mögen sich sowieso nicht mehr,
  • 59:39 - 59:42
    und ‚kriegen‘ nur miteinander, die waren
    sich da nicht so ganz einig, ob das jetzt
  • 59:42 - 59:46
    ein Test war, oder ob das ein DDoS war.
    Und das Interessante daran ist ja,
  • 59:46 - 59:52
    dass es ja tatsächlich Geld kostet, eine
    Transaktion zu machen. Also du zahlst
  • 59:52 - 59:56
    zuerst eine Transaction-Gebühr, und der
    Schutz sollte eigentlich, hoffentlich,
  • 59:56 - 60:00
    sein, dass das da zu teuer ist.
    Aber offenbar gibt es immer noch
  • 60:00 - 60:04
    so viele Bitcoin-Millionäre, die einfach
    Bitcoins haben zum Davonschmeißen,
  • 60:04 - 60:08
    und die dann sowas tun können. Es
    wird auf jeden Fall an irgendwelchen
  • 60:08 - 60:12
    Schutzmechanismen gearbeitet, aber
    was das ist… zuckt mit den Schultern
  • 60:12 - 60:16
    Also was es gibt, in Bitcoin,
    ist dieses Replace-by-Fee,
  • 60:16 - 60:23
    damit die Transaction-Gebühr nach
    der Veröffentlichung der Transaktion
  • 60:23 - 60:26
    anschließend noch erhöht werden
    kann. Und damit kannst du halt…
  • 60:26 - 60:29
    wenn du jetzt siehst, es kommen sehr viele
    DDoS-Transaktionen rein, kannst du halt
  • 60:29 - 60:34
    im Nachhinein die Transaction-Gebühr
    erhöhen, und das dadurch den Minern
  • 60:34 - 60:38
    quasi schmackhaft machen, deine
    valide Transaktion zu includen.
  • 60:38 - 60:44
    Dieses Replace-by-Fee, dieses RBF,
    ist aber sehr stark umstritten, und
  • 60:44 - 60:50
    wird auch standardmäßig nicht
    aktiviert von der Client-Software.
  • 60:50 - 60:56
    Herald: Gut, dann danke vimja, für diese
    großartige Einführung in die Blockchain!
  • 60:56 - 61:01
    Beifall
  • 61:01 - 61:05
    Abspannmusik
  • 61:05 - 61:25
    Untertitel erstellt von c3subtitles.de
    im Jahr 2017. Mach mit und hilf uns!
Title:
Einführung zu Blockchains (33c3)
Description:

more » « less
Video Language:
German
Duration:
01:01:25

German subtitles

Revisions