[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.00,0:00:13.89,Default,,0000,0000,0000,,{\i1}33C3-Vorspannmusik{\i0} Dialogue: 0,0:00:13.89,0:00:20.81,Default,,0000,0000,0000,,Herald: Gut, dann machen wir\Nweiter mit dem nächsten Vortrag. Dialogue: 0,0:00:20.81,0:00:24.51,Default,,0000,0000,0000,,Der ist von vimja, der ist\NInformatikstudent aus Bern in der Schweiz, Dialogue: 0,0:00:24.51,0:00:28.74,Default,,0000,0000,0000,,und er arbeitete bzw. er\Nbeschäftigte sich mit Bitcoin Dialogue: 0,0:00:28.74,0:00:32.89,Default,,0000,0000,0000,,und Ethereum, und schrieb seine\NBachelorarbeit über die Suche Dialogue: 0,0:00:32.89,0:00:38.21,Default,,0000,0000,0000,,nach Informationen in der Bitcoin-\NBlockchain. Und da macht es total Sinn, Dialogue: 0,0:00:38.21,0:00:43.12,Default,,0000,0000,0000,,dass der uns jetzt eine Einführung\Nzu Blockchains präsentieren wird. Dialogue: 0,0:00:43.12,0:00:45.58,Default,,0000,0000,0000,,Ein großer Applaus für vimja! Dialogue: 0,0:00:45.58,0:00:50.03,Default,,0000,0000,0000,,{\i1}Applaus mit Pfeifen und Jubel{\i0}\NDas ist deine Bühne! Dialogue: 0,0:00:50.03,0:00:56.52,Default,,0000,0000,0000,,{\i1}weiterhin Applaus{\i0} Dialogue: 0,0:00:56.52,0:00:58.92,Default,,0000,0000,0000,,vimja: Toll, das ist jetzt\Ngerade kaputtgegangen. Dialogue: 0,0:00:58.92,0:01:05.46,Default,,0000,0000,0000,,{\i1}Gelächter{\i0} Dialogue: 0,0:01:05.46,0:01:08.00,Default,,0000,0000,0000,,So ist es besser. Dialogue: 0,0:01:08.00,0:01:13.23,Default,,0000,0000,0000,,{\i1}Applaus{\i0}\NDanke. Dialogue: 0,0:01:13.23,0:01:19.98,Default,,0000,0000,0000,,Genau, das geht jetzt\Nnatürlich auch nicht. Dialogue: 0,0:01:19.98,0:01:22.24,Default,,0000,0000,0000,,Mache ich es halt von Hand. Dialogue: 0,0:01:22.24,0:01:27.74,Default,,0000,0000,0000,,Ist vermutlich, weil ihr alle das Wi-Fi\Nbraucht, geht das 2,4-GHz-Band nicht mehr. Dialogue: 0,0:01:27.74,0:01:31.57,Default,,0000,0000,0000,,Ja das hat er euch ja alles\Nschon gesagt, der Herald. Dialogue: 0,0:01:31.57,0:01:34.68,Default,,0000,0000,0000,,In dieser Zeit, in der ich mich\Nmit Blockchains befasst habe, Dialogue: 0,0:01:34.68,0:01:39.27,Default,,0000,0000,0000,,durfte ich natürlich sehr viele\Nsehr interessante Dinge lernen, Dialogue: 0,0:01:39.27,0:01:41.83,Default,,0000,0000,0000,,und ich möchte jetzt heute abend\Neinen Teil dieses Wissens Dialogue: 0,0:01:41.83,0:01:48.81,Default,,0000,0000,0000,,an euch weitergeben. Genau. Dialogue: 0,0:01:48.81,0:01:52.71,Default,,0000,0000,0000,,Das Ganze ist natürlich ein sehr komplexes\NThema, das viele komplizierte Dinge Dialogue: 0,0:01:52.71,0:01:56.12,Default,,0000,0000,0000,,enthält, und deshalb fangen wir jetzt mit\Netwas sehr einfachem an, was wir alles Dialogue: 0,0:01:56.12,0:01:59.85,Default,,0000,0000,0000,,kennen. Und zwar herkömmliche\NBesitzsysteme – also Systeme, Dialogue: 0,0:01:59.85,0:02:04.10,Default,,0000,0000,0000,,die ausdrücken wem etwas gehört. Und,\Neigentlich, mit der Erkenntnis, dass man Dialogue: 0,0:02:04.10,0:02:11.19,Default,,0000,0000,0000,,all diese Besitzsysteme als\NZustandsübergangssysteme darstellen kann. Dialogue: 0,0:02:11.19,0:02:16.02,Default,,0000,0000,0000,,Das gilt sowohl für Finanzsysteme,\Ndie wir haben um Geld zu verwalten, Dialogue: 0,0:02:16.02,0:02:20.09,Default,,0000,0000,0000,,als auch etwa für Grundstücke, also\NSysteme mit denen wir verwalten, Dialogue: 0,0:02:20.09,0:02:23.49,Default,,0000,0000,0000,,wem ein Grundstück gehört. Dialogue: 0,0:02:23.49,0:02:27.52,Default,,0000,0000,0000,,Das Mapping funktioniert dann in etwa\Nso, dass wir sagen, der Zustand ist Dialogue: 0,0:02:27.52,0:02:33.51,Default,,0000,0000,0000,,die Sammlung der Informationen wem\Nwas gehört. Und jedes Übertragen Dialogue: 0,0:02:33.51,0:02:37.72,Default,,0000,0000,0000,,eines Besitzes ist eine Transition,\Ndie zu einem neuen Zustand führt. Dialogue: 0,0:02:37.72,0:02:41.76,Default,,0000,0000,0000,,Also am Beispiel eines finanziellen\NSystems sagen wir, der Zustand ist Dialogue: 0,0:02:41.76,0:02:45.88,Default,,0000,0000,0000,,die Sammlung aller Konten, die es gibt.\NDas drückt für jede Person aus, Dialogue: 0,0:02:45.88,0:02:51.23,Default,,0000,0000,0000,,wieviel Geld ihr gehört. Und ein Übergang\Nist, wenn jemand eine Transaktion macht, Dialogue: 0,0:02:51.23,0:02:54.16,Default,,0000,0000,0000,,also Geld überweist, von einem Konto\Nzu einem anderen, dann führt das Dialogue: 0,0:02:54.16,0:02:58.44,Default,,0000,0000,0000,,zu einem neuen Zustand.\NSo, das sehen wir hier abgebildet Dialogue: 0,0:02:58.44,0:03:02.28,Default,,0000,0000,0000,,mit Grundstücken. Wir sehen hier, der\NZustand, der enthält diese Information, Dialogue: 0,0:03:02.28,0:03:06.76,Default,,0000,0000,0000,,wem die Grundstücke gehören.\NUnd dann verkauft der Bob Dialogue: 0,0:03:06.76,0:03:10.89,Default,,0000,0000,0000,,sein Grundstück Nr. 42 an Alice und\Ndas führt zu einem neuen Zustand. Dialogue: 0,0:03:10.89,0:03:15.66,Default,,0000,0000,0000,,Ich habe da den Unterschied markiert,\Ndamit der eindeutig sichtbar ist. Dialogue: 0,0:03:15.66,0:03:20.41,Default,,0000,0000,0000,,Nun, in all diesen Systemen ist es sehr\Nwichtig, dass sich alle Teilnehmer des Dialogue: 0,0:03:20.41,0:03:26.15,Default,,0000,0000,0000,,Systems auf einen Zustand einigen können.\NDass sie sich einig sind, wem was gehört. Dialogue: 0,0:03:26.15,0:03:30.05,Default,,0000,0000,0000,,Denn wenn sie das nicht können, sind\NAngriffe auf das System möglich, Dialogue: 0,0:03:30.05,0:03:32.95,Default,,0000,0000,0000,,insbesondere der sogenannte\NDouble-Spend-Angriff, Dialogue: 0,0:03:32.95,0:03:37.84,Default,,0000,0000,0000,,der in der Blockchain-Welt bekannt und\Ngefürchtet ist. Und was bedeutet das? Dialogue: 0,0:03:37.84,0:03:41.44,Default,,0000,0000,0000,,Das ist ganz einfach, wenn jemand etwas\Nzweimal ausgibt. Bei Geld ist das ein Dialogue: 0,0:03:41.44,0:03:45.31,Default,,0000,0000,0000,,wenig abstrakt (also wie gibt man zweimal\Ndasselbe Geld aus), aber bei Grundstücken Dialogue: 0,0:03:45.31,0:03:48.99,Default,,0000,0000,0000,,ist das ganz einfach. Stellen wir uns vor,\Njemand verkauft dasselbe Grundstück Dialogue: 0,0:03:48.99,0:03:54.88,Default,,0000,0000,0000,,zweimal. Das ist natürlich kriminell\Nund darf nicht vorkommen. Dialogue: 0,0:03:54.88,0:03:57.85,Default,,0000,0000,0000,,Schauen wir uns jetzt mal an wie\Ndas funktioniert. Stellen wir uns vor, Dialogue: 0,0:03:57.85,0:04:01.94,Default,,0000,0000,0000,,Malroy hat ein schönes Grundstück,\Ndas Grundstück Nr. 5. Und sowohl Alice Dialogue: 0,0:04:01.94,0:04:05.70,Default,,0000,0000,0000,,als auch Bob möchten gerne das\NGrundstück kaufen. Und Malroy Dialogue: 0,0:04:05.70,0:04:10.02,Default,,0000,0000,0000,,wird jetzt versuchen, das an beide zu\Nverkaufen. Also trifft er sich mit Alice. Dialogue: 0,0:04:10.02,0:04:13.76,Default,,0000,0000,0000,,Das ist also jetzt der aktuelle Zustand.\NWir haben gesehen, das Grundstück Nr. 5 Dialogue: 0,0:04:13.76,0:04:20.43,Default,,0000,0000,0000,,gehört hier dem Malroy. Der trifft sich\Nmit Alice. Und er verkauft es an Alice. Dialogue: 0,0:04:20.43,0:04:24.55,Default,,0000,0000,0000,,Er überweist ihr das Grundstück. Wir sehen\Ndiese Transition – überweist das Grundstück Dialogue: 0,0:04:24.55,0:04:29.13,Default,,0000,0000,0000,,von Malroy an Alice. Und im neuen Zustand\Ngehört es jetzt der Alice. So, der Bob, Dialogue: 0,0:04:29.13,0:04:31.99,Default,,0000,0000,0000,,der hat davon nichts mitgekriegt.\NIrgendwie – Bob und Alice wissen Dialogue: 0,0:04:31.99,0:04:36.30,Default,,0000,0000,0000,,immer noch nicht recht wie man sicher\Nmiteinander kommuniziert. Und deshalb Dialogue: 0,0:04:36.30,0:04:39.20,Default,,0000,0000,0000,,weiß der Bob jetzt nichts davon, dass\Ndie Alice das Grundstück gekauft hat. Dialogue: 0,0:04:39.20,0:04:43.68,Default,,0000,0000,0000,,Er denkt, das Grundstück gehört immer noch\NMalroy. Also trifft er sich mit Malroy. Dialogue: 0,0:04:43.68,0:04:47.94,Default,,0000,0000,0000,,Und auch er einigt sich mit Malroy auf\Neinen Preis. Und Malroy tut jetzt so, Dialogue: 0,0:04:47.94,0:04:52.71,Default,,0000,0000,0000,,als würde er den Besitz des\NGrundstücks an Bob übertragen. Dialogue: 0,0:04:52.71,0:04:56.46,Default,,0000,0000,0000,,Und für Bob sieht die Welt jetzt so\Naus, d.h. Bob ist überzeugt, das ist Dialogue: 0,0:04:56.46,0:05:00.34,Default,,0000,0000,0000,,der korrekte Zustand des Systems.\NDa haben wir natürlich ein Problem, Dialogue: 0,0:05:00.34,0:05:03.29,Default,,0000,0000,0000,,weil Bob und Alice, die sind sich\Njetzt gar nicht einig darüber, Dialogue: 0,0:05:03.29,0:05:07.50,Default,,0000,0000,0000,,wem das Grundstück gehört. Ja, Malroy\Nist natürlich abgehauen mit dem Geld. Dialogue: 0,0:05:07.50,0:05:10.98,Default,,0000,0000,0000,,Und das System ist kaputt, weil Bob\Nund Alice die können nicht mehr Dialogue: 0,0:05:10.98,0:05:14.69,Default,,0000,0000,0000,,miteinander handeln. Und auch wenn\Njetzt jemand anderes das Grundstück Dialogue: 0,0:05:14.69,0:05:18.75,Default,,0000,0000,0000,,kaufen möchte: Bei wem kauft er es\Ndenn jetzt? Was ist denn rechtmäßig? Dialogue: 0,0:05:18.75,0:05:23.86,Default,,0000,0000,0000,,Nun, in der Welt der Grundstücke gibt\Nes dafür eine ganz einfache Lösung, Dialogue: 0,0:05:23.86,0:05:27.56,Default,,0000,0000,0000,,nämlich das Grundbuchamt. Und das\NGrundbuchamt fungiert eigentlich Dialogue: 0,0:05:27.56,0:05:33.31,Default,,0000,0000,0000,,als zentrale Referenzstelle,\Ndie den Zustand verwaltet, Dialogue: 0,0:05:33.31,0:05:37.46,Default,,0000,0000,0000,,und alle Änderungen verwaltet. Jedesmal\Nwenn jemand ein Grundstück verkauft, Dialogue: 0,0:05:37.46,0:05:42.09,Default,,0000,0000,0000,,muss das über das Grundbuchamt erledigt\Nwerden. Das Grundbuchamt überprüft, Dialogue: 0,0:05:42.09,0:05:46.02,Default,,0000,0000,0000,,dass das überhaupt zulässig ist, ob das\NGrundstück wirklich der Person gehört Dialogue: 0,0:05:46.02,0:05:50.17,Default,,0000,0000,0000,,und führt das dann nach. Und so kann das\NGrundbuchamt diese einfachen Angriffe Dialogue: 0,0:05:50.17,0:05:58.96,Default,,0000,0000,0000,,verhindern. Diese Lösung\Nfunktioniert auch für Finanzsysteme. Dialogue: 0,0:05:58.96,0:06:02.77,Default,,0000,0000,0000,,Also wenn wir an Banken denken, wenn ich\Nein Konto habe, da ist dann halt die Bank Dialogue: 0,0:06:02.77,0:06:07.29,Default,,0000,0000,0000,,die zentrale Autorität, welche den Zustand\Nverwaltet. Für jede… jedesmal, Dialogue: 0,0:06:07.29,0:06:11.50,Default,,0000,0000,0000,,wenn ich eine Transaktion mache, also Geld\Nüberweise, überprüft die Bank vorher, Dialogue: 0,0:06:11.50,0:06:15.76,Default,,0000,0000,0000,,ob ich wirklich das nötige Geld dazu\Nhabe. Und dann wird mein Kontostand Dialogue: 0,0:06:15.76,0:06:22.50,Default,,0000,0000,0000,,nachgeführt. Und die verwaltet so\Nfür alle Teilnehmer den Zustand. Dialogue: 0,0:06:22.50,0:06:26.92,Default,,0000,0000,0000,,Und das funktioniert eigentlich erstaunlich\Ngut. Nun wollen wir ein System, mit dem Dialogue: 0,0:06:26.92,0:06:31.23,Default,,0000,0000,0000,,wir Zahlungen über das Internet abwickeln\Nkönnen. Und wir hätten gerne, dass das Dialogue: 0,0:06:31.23,0:06:34.85,Default,,0000,0000,0000,,dezentral ist. Weil, wenn das nicht\Ndezentral ist, dann kann natürlich Dialogue: 0,0:06:34.85,0:06:39.91,Default,,0000,0000,0000,,eine zentrale Autorität das System\Nzensieren und manipulieren. Dialogue: 0,0:06:39.91,0:06:43.54,Default,,0000,0000,0000,,Und eine zentrale Stelle kann angegriffen\Nwerden. Ich denke, wir haben das alle Dialogue: 0,0:06:43.54,0:06:47.72,Default,,0000,0000,0000,,in den letzten Jahren beobachten müssen,\Nwie Paypal sehr einfach willkürlich Dialogue: 0,0:06:47.72,0:06:52.65,Default,,0000,0000,0000,,Konten sperrt, und das System zensiert.\NSo, und deshalb brauchen wir ein Dialogue: 0,0:06:52.65,0:06:56.25,Default,,0000,0000,0000,,besseres System, eine bessere\NLösung für das Internetzeitalter. Dialogue: 0,0:06:56.25,0:06:59.84,Default,,0000,0000,0000,,Und diese bessere Lösung ist\Nnatürlich die ‚Blockchain‘. Dialogue: 0,0:06:59.84,0:07:05.76,Default,,0000,0000,0000,,Die Blockchain bringt einige ganz\Nunglaubliche Eigenschaften mit sich. Dialogue: 0,0:07:05.76,0:07:09.53,Default,,0000,0000,0000,,Die Blockchain braucht keine zentrale\NStelle um den Zustand zu verwalten. Dialogue: 0,0:07:09.53,0:07:12.93,Default,,0000,0000,0000,,Die Teilnehmer des Systems müssen sich\Ngegenseitig nicht vertrauen, sie müssen Dialogue: 0,0:07:12.93,0:07:16.42,Default,,0000,0000,0000,,sich gegenseitig nicht kennen. Sie müssen\Nnicht einmal wissen, wieviele Leute Dialogue: 0,0:07:16.42,0:07:19.99,Default,,0000,0000,0000,,denn eigentlich da teilnehmen. Und\Ntrotzdem können die sich alle immer Dialogue: 0,0:07:19.99,0:07:25.47,Default,,0000,0000,0000,,auf einen Zustand des Systems einigen. Dialogue: 0,0:07:25.47,0:07:27.96,Default,,0000,0000,0000,,Ich werde das jetzt demonstrieren,\Ndie Regeln, die wir brauchen Dialogue: 0,0:07:27.96,0:07:32.25,Default,,0000,0000,0000,,um das zu ermöglichen. Anhand\Neiner sehr einfachen Blockchain, Dialogue: 0,0:07:32.25,0:07:35.76,Default,,0000,0000,0000,,die in diesem ersten Kapitel auch\Nnoch keinen Proof-of-Work hat. Also Dialogue: 0,0:07:35.76,0:07:39.15,Default,,0000,0000,0000,,diese erste Blockchain wird noch\Nangreifbar sein. Und ich werde auch Dialogue: 0,0:07:39.15,0:07:42.97,Default,,0000,0000,0000,,zeigen wie es geht. Und erst im nächsten\NKapitel dann werde ich erklären, Dialogue: 0,0:07:42.97,0:07:47.82,Default,,0000,0000,0000,,welche Maßnahmen wir ergreifen\Nmüssen, um Angriffe zu verhindern. Dialogue: 0,0:07:47.82,0:07:51.66,Default,,0000,0000,0000,,Und das Ganze fängt an mit dem Netzwerk\Nwelches wir nutzen. Also wir sagen quasi, Dialogue: 0,0:07:51.66,0:07:55.04,Default,,0000,0000,0000,,wir sind alle diese Leute, und wir würden\Ngerne miteinander Transaktionen machen Dialogue: 0,0:07:55.04,0:07:59.76,Default,,0000,0000,0000,,können. Und zuerst einigen wir uns\Nalle auf einen Ursprungszustand. Dialogue: 0,0:07:59.76,0:08:03.32,Default,,0000,0000,0000,,Damit fangen wir an. Wir sagen z.B.\N„am Anfang gehört allen nichts“. Dialogue: 0,0:08:03.32,0:08:08.43,Default,,0000,0000,0000,,Das ist ein leerer Zustand. Und dann\Nbrauchen wir ein p2p-Netzwerk. Dialogue: 0,0:08:08.43,0:08:13.53,Default,,0000,0000,0000,,Und jedesmal wenn jemand Geld überweist\Nan jemand anderes, dann veröffentlicht er Dialogue: 0,0:08:13.53,0:08:17.49,Default,,0000,0000,0000,,die Transaktion in diesem Netzwerk,\Nund das Netzwerk leitet die Transaktion Dialogue: 0,0:08:17.49,0:08:21.95,Default,,0000,0000,0000,,solange an alle Teilnehmer weiter,\Nbis alle Teilnehmer diese Transaktion Dialogue: 0,0:08:21.95,0:08:27.17,Default,,0000,0000,0000,,gesehen haben. Das bringt\Nnatürlich viele Probleme mit sich. Dialogue: 0,0:08:27.17,0:08:29.53,Default,,0000,0000,0000,,Das Netzwerk ist irgendwie nicht\Nsynchronisiert, nicht alle Leute Dialogue: 0,0:08:29.53,0:08:34.51,Default,,0000,0000,0000,,sehen die gleichen Transaktionen, die\NReihenfolge der Transaktionen ist unklar. Dialogue: 0,0:08:34.51,0:08:37.94,Default,,0000,0000,0000,,Leute werden versuchen das anzugreifen\N– das wird dazu führen, dass es Dialogue: 0,0:08:37.94,0:08:42.46,Default,,0000,0000,0000,,Transaktionen gibt die nicht miteinander\Nkompatibel sind. Und irgendwie Dialogue: 0,0:08:42.46,0:08:45.31,Default,,0000,0000,0000,,Transaktionen, die abhängen von\Nnicht-kompatiblen Transaktionen und Dialogue: 0,0:08:45.31,0:08:49.79,Default,,0000,0000,0000,,dann auch wieder nicht kompatibel sind.\NDas ist ein riesengroßes Durcheinander da. Dialogue: 0,0:08:49.79,0:08:52.37,Default,,0000,0000,0000,,Und deshalb brauchen wir jetzt\Neine Möglichkeit, wie wir uns alle Dialogue: 0,0:08:52.37,0:08:57.18,Default,,0000,0000,0000,,auf einen Zustand, auf einen Konsens\Neinigen können. Und – wie gesagt – Dialogue: 0,0:08:57.18,0:09:00.79,Default,,0000,0000,0000,,das ist jetzt die ‚Blockchain‘. Dialogue: 0,0:09:00.79,0:09:04.42,Default,,0000,0000,0000,,Und wir definieren einige Regeln,\Ndie wir anwenden um uns zu einigen. Dialogue: 0,0:09:04.42,0:09:08.24,Default,,0000,0000,0000,,Wir sagen, wir gruppieren die Transaktionen\Ndie vorher so lose auf dem Netzwerk waren Dialogue: 0,0:09:08.24,0:09:13.47,Default,,0000,0000,0000,,zu Blöcken. Die Blöcke hängen alle\Nvoneinander ab. Wir sagen dann auch, Dialogue: 0,0:09:13.47,0:09:17.78,Default,,0000,0000,0000,,der aktuelle Zustand des Netzwerks ist das\NEnde der längsten Kette zusammenhängender Dialogue: 0,0:09:17.78,0:09:22.72,Default,,0000,0000,0000,,Blöcke. Und die Blöcke müssen einige\NKriterien erfüllen. Ich habe das da… Dialogue: 0,0:09:22.72,0:09:26.94,Default,,0000,0000,0000,,also das ist jetzt quasi der Ur… der\Nleere Zustand, mit dem wir beginnen. Dialogue: 0,0:09:26.94,0:09:32.30,Default,,0000,0000,0000,,Und da kommen da Transaktionen\Nüber das Netzwerk. Und irgendwann Dialogue: 0,0:09:32.30,0:09:34.95,Default,,0000,0000,0000,,macht jemand einen Block der diese\NTransaktionen zusammenfasst. Und jetzt Dialogue: 0,0:09:34.95,0:09:39.81,Default,,0000,0000,0000,,sehen wir am Ende dieses Blocks ist\Nder Zustand. Wenn ich diesen Zustand Dialogue: 0,0:09:39.81,0:09:43.11,Default,,0000,0000,0000,,nachvollziehen will dann nehme ich den\Nleeren Ursprungszustand, und dann Dialogue: 0,0:09:43.11,0:09:47.08,Default,,0000,0000,0000,,jede Transaktion aus dem ersten Block,\Nund dann wende ich diese Transaktionen, Dialogue: 0,0:09:47.08,0:09:52.17,Default,,0000,0000,0000,,eine nach der anderen, auf den Zustand\Nan, und dann erhalte ich den Endzustand. Dialogue: 0,0:09:52.17,0:09:55.42,Default,,0000,0000,0000,,Mit der Zeit kommen\Nneue Transaktionen rein Dialogue: 0,0:09:55.42,0:10:00.14,Default,,0000,0000,0000,,über das Netzwerk. Und diese Transaktionen\Nwerden nicht Teil des Zustands Dialogue: 0,0:10:00.14,0:10:02.95,Default,,0000,0000,0000,,– wir haben ja gesagt der Zustand ist das\NEnde der längsten Kette von Blöcken, Dialogue: 0,0:10:02.95,0:10:06.27,Default,,0000,0000,0000,,und die sind in keinem Block. Erst wenn\Njemand einen Block daraus macht, Dialogue: 0,0:10:06.27,0:10:09.89,Default,,0000,0000,0000,,werden die Teil des Zustands.\NWir sehen auch, die Blöcke hängen jeweils Dialogue: 0,0:10:09.89,0:10:13.54,Default,,0000,0000,0000,,voneinander ab, die haben so einen Pfeil,\Nder sie miteinander verbindet, also Dialogue: 0,0:10:13.54,0:10:18.59,Default,,0000,0000,0000,,jeder Block zeigt auf den vorhergehenden\NBlock, und bildet so eben diese Kette Dialogue: 0,0:10:18.59,0:10:23.65,Default,,0000,0000,0000,,von Blöcken. Nun, jetzt versucht trotzdem\Njemand da eine bösartige Transaktion Dialogue: 0,0:10:23.65,0:10:27.81,Default,,0000,0000,0000,,zu machen, die mit den anderen nicht\Nkompatibel ist. Da macht jemand Dialogue: 0,0:10:27.81,0:10:32.00,Default,,0000,0000,0000,,einen Block daraus. Und jetzt sagen\Nwir aber einfach, Blöcke, die Dialogue: 0,0:10:32.00,0:10:35.47,Default,,0000,0000,0000,,Transaktionen enthalten welche sich\Nwidersprechen sind nicht valide. Dialogue: 0,0:10:35.47,0:10:38.36,Default,,0000,0000,0000,,Der Block, den kann zwar jemand\Nerstellen, aber wir sagen dann, das ist Dialogue: 0,0:10:38.36,0:10:42.18,Default,,0000,0000,0000,,kein valider Block, der wird vom Netzwerk\Nnicht akzeptiert. Und der wird auch Dialogue: 0,0:10:42.18,0:10:46.45,Default,,0000,0000,0000,,nicht Teil des Zustands. Also wenn jemand\Neinen Block bauen will und eine dieser Dialogue: 0,0:10:46.45,0:10:52.61,Default,,0000,0000,0000,,Transaktionen enthält, dann muss sich\Nderjenige der den Block erstellt Dialogue: 0,0:10:52.61,0:10:56.09,Default,,0000,0000,0000,,entscheiden welche der Transaktionen\Ndenn jetzt enthalten sein sollen Dialogue: 0,0:10:56.09,0:11:00.28,Default,,0000,0000,0000,,in dem Block. Und die anderen lässt er\Naußen vor. Für welche er sich entscheidet, Dialogue: 0,0:11:00.28,0:11:04.66,Default,,0000,0000,0000,,das ist dem Typen ganz allein überlassen.\NEr kann das selber entscheiden was er da Dialogue: 0,0:11:04.66,0:11:10.69,Default,,0000,0000,0000,,reinpacken will. Dann kommen mit\Nder Zeit neue Transaktionen rein. Dialogue: 0,0:11:10.69,0:11:14.30,Default,,0000,0000,0000,,Und jetzt könnte es sein, dass jemand so\Neinen Block Nummer 4 macht, welcher Dialogue: 0,0:11:14.30,0:11:18.73,Default,,0000,0000,0000,,jetzt trotzdem wieder die böse Transaktion\Nenthält. Und dann sagen wir aber einfach, Dialogue: 0,0:11:18.73,0:11:21.91,Default,,0000,0000,0000,,Blöcke welche Transaktionen enthalten,\Nwelche nicht kompatibel sind Dialogue: 0,0:11:21.91,0:11:25.45,Default,,0000,0000,0000,,mit Transaktionen in älteren Blöcken sind\Nauch ungültig, und der Block wird auch Dialogue: 0,0:11:25.45,0:11:29.87,Default,,0000,0000,0000,,nicht Teil des Zustands. So. Was aber\Ngültig ist, ist jemand der einen Block Dialogue: 0,0:11:29.87,0:11:33.88,Default,,0000,0000,0000,,Nummer 3 macht, der so aussieht. Und jetzt\Nhaben wir das Problem: Wir haben gesagt, Dialogue: 0,0:11:33.88,0:11:36.64,Default,,0000,0000,0000,,der Zustand ist die längste Kette von\NBlöcken. Hier ist jetzt der Zustand Dialogue: 0,0:11:36.64,0:11:40.37,Default,,0000,0000,0000,,nicht mehr eindeutig definiert und da muss\Njetzt halt jeder Teilnehmer des Netzwerkes Dialogue: 0,0:11:40.37,0:11:44.96,Default,,0000,0000,0000,,selbst entscheiden wie er damit umgeht,\Nwas er jetzt als Zustand anerkennt. Dialogue: 0,0:11:44.96,0:11:48.24,Default,,0000,0000,0000,,So, aber dann kommen halt neue\NTransaktionen wieder rein. Und irgendwann Dialogue: 0,0:11:48.24,0:11:52.59,Default,,0000,0000,0000,,baut jemand einen Block Nummer 4, der\Ndiese Transaktion enthält. Und dadurch, Dialogue: 0,0:11:52.59,0:11:57.92,Default,,0000,0000,0000,,dass der Block Nr. 4 auf den vorherigen\NBlock Nr. 3 verweist, ist es jetzt klar, Dialogue: 0,0:11:57.92,0:12:01.53,Default,,0000,0000,0000,,von welchem Block der abhängt.\NUnd damit ist die Kette auch wieder klar, Dialogue: 0,0:12:01.53,0:12:06.30,Default,,0000,0000,0000,,und die längste Kette wird wieder zum\NZustand. So. Jetzt habe ich gesagt, Dialogue: 0,0:12:06.30,0:12:09.83,Default,,0000,0000,0000,,diese Blockchain die ich jetzt beschrieben\Nhabe hat keinen Proof-of-Work und folglich Dialogue: 0,0:12:09.83,0:12:14.51,Default,,0000,0000,0000,,ist sie angreifbar für ein double-spend.\NSagen wir Malroy würde gerne Dialogue: 0,0:12:14.51,0:12:19.05,Default,,0000,0000,0000,,ein Fahrrad klauen. Er geht da so in den\NFahrradladen von Alice, und möchte dort Dialogue: 0,0:12:19.05,0:12:23.51,Default,,0000,0000,0000,,gerne ein Fahrrad kaufen, das kostet\Njetzt 1000 Euro in dem Beispiel. Dialogue: 0,0:12:23.51,0:12:26.17,Default,,0000,0000,0000,,Ich werde jetzt… hier habe ich\Ndie Darstellung etwas geändert, Dialogue: 0,0:12:26.17,0:12:30.37,Default,,0000,0000,0000,,diese Vierecke mit Pfeilen dran, das sind\Njetzt halt einfach Blöcke. Ich werde Dialogue: 0,0:12:30.37,0:12:34.57,Default,,0000,0000,0000,,nicht mehr jede Transaktion einzeln\Nzeichnen. Und die sehen den Zustand, Dialogue: 0,0:12:34.57,0:12:39.11,Default,,0000,0000,0000,,wie er da ist. Da sind all die Konten\Naufgeführt, unter anderem diejenigen Dialogue: 0,0:12:39.11,0:12:45.07,Default,,0000,0000,0000,,von Alice und Malroy. So.\NMalroy geht also in den Laden, Dialogue: 0,0:12:45.07,0:12:51.34,Default,,0000,0000,0000,,sucht sich das [Fahrrad] aus, geht zum\NTresen und macht dort die Transaktion Dialogue: 0,0:12:51.34,0:12:56.88,Default,,0000,0000,0000,,an Alice. Und diese Transaktion wird\Nübers Netzwerk zu Alice weitergeleitet. Dialogue: 0,0:12:56.88,0:13:00.48,Default,,0000,0000,0000,,Sie sieht die Transaktion, aber da sie\Nnoch nicht Teil eines Blockes ist, Dialogue: 0,0:13:00.48,0:13:04.26,Default,,0000,0000,0000,,ist sie auch noch nicht Teil des Zustands.\NIrgendwann aber erstellt jemand halt Dialogue: 0,0:13:04.26,0:13:07.88,Default,,0000,0000,0000,,einen Block der diese Transaktion enthält.\NDie ist jetzt Teil des Zustandes. Dialogue: 0,0:13:07.88,0:13:12.76,Default,,0000,0000,0000,,Wir sehen im Zustand des Systems,\Ndass Alice das Geld erhalten hat. Dialogue: 0,0:13:12.76,0:13:17.13,Default,,0000,0000,0000,,Sie gibt das Fahrrad an Malroy, und der\Nfährt davon. Neue Blöcke kommen dazu. Dialogue: 0,0:13:17.13,0:13:20.86,Default,,0000,0000,0000,,Und jetzt startet Malroy den Angriff.\NUnd was Malroy macht, er erstellt Dialogue: 0,0:13:20.86,0:13:25.23,Default,,0000,0000,0000,,eine alternative Transaktion, die dasselbe\NGeld überweist, diesmal aber nicht Dialogue: 0,0:13:25.23,0:13:30.26,Default,,0000,0000,0000,,an Alice sondern an sich selbst. Genauer:\Nan ein zweites Konto das ebenfalls ihm Dialogue: 0,0:13:30.26,0:13:36.51,Default,,0000,0000,0000,,gehört. Und er erstellt einen alternativen\NBlock, der diese Transaktion enthält. Dialogue: 0,0:13:36.51,0:13:40.83,Default,,0000,0000,0000,,Und dann erstellt er ganz viele neue\NBlöcke die davon abhängen. Solange, Dialogue: 0,0:13:40.83,0:13:44.67,Default,,0000,0000,0000,,bis seine Kette von Blöcken länger\Nist als die anderen, also die Kette, Dialogue: 0,0:13:44.67,0:13:49.57,Default,,0000,0000,0000,,die zur Zeit auf dem Netzwerk ist. Und\Ndann veröffentlicht er die gesamte Kette Dialogue: 0,0:13:49.57,0:13:53.54,Default,,0000,0000,0000,,auf dem Netzwerk. Und jetzt ist seine\NKette die längste Kette. Die wird Dialogue: 0,0:13:53.54,0:13:58.38,Default,,0000,0000,0000,,vom Netzwerk als Zustand anerkannt. Und\Nin diesem Zustand hat er das Geld erhalten. Dialogue: 0,0:13:58.38,0:14:02.21,Default,,0000,0000,0000,,Alice hat das Geld nicht erhalten. Und\NMalroy hat das Fahrrad erfolgreich Dialogue: 0,0:14:02.21,0:14:05.72,Default,,0000,0000,0000,,gestohlen. So, das hat also funktioniert. Dialogue: 0,0:14:05.72,0:14:09.65,Default,,0000,0000,0000,,Wir müssen das verhindern. Das\NProblem weshalb Malroy diesen Angriff Dialogue: 0,0:14:09.65,0:14:13.78,Default,,0000,0000,0000,,machen konnte ist natürlich, dass er in\Neiner sehr kurzen Folge viele Blöcke Dialogue: 0,0:14:13.78,0:14:18.23,Default,,0000,0000,0000,,erstellen konnte. Also das Problem ist\Neigentlich, es ist zu einfach neue Blöcke Dialogue: 0,0:14:18.23,0:14:23.25,Default,,0000,0000,0000,,zu erstellen. Also machen wir es halt\Nschwieriger, neue Blöcke zu erstellen. Dialogue: 0,0:14:23.25,0:14:27.03,Default,,0000,0000,0000,,Und dazu sagen wir, für jeden Block\Nder erstellt wird, muss eine Aufgabe Dialogue: 0,0:14:27.03,0:14:33.98,Default,,0000,0000,0000,,gelöst werden, eine Challenge.\NUnd um diese Challenge zu erstellen, Dialogue: 0,0:14:33.98,0:14:40.12,Default,,0000,0000,0000,,muss man halt Zeit, und Rechenzeit\Naufwenden. Die Lösung für diese Aufgabe Dialogue: 0,0:14:40.12,0:14:45.16,Default,,0000,0000,0000,,nennen wir den Proof-of-Work. Und den\NProzess um den Proof-of-Work zu erstellen Dialogue: 0,0:14:45.16,0:14:49.56,Default,,0000,0000,0000,,nennen wir das ‚Mining‘. Und dann sagen\Nwir, zusammen mit jedem neuen Block Dialogue: 0,0:14:49.56,0:14:53.80,Default,,0000,0000,0000,,muss der passende Proof-of-Work\Nveröffentlicht werden. Und nur Blöcke, Dialogue: 0,0:14:53.80,0:14:58.21,Default,,0000,0000,0000,,welche einen passenden Proof-of-Work haben\Nwerden vom Netzwerk als Teil des Zustands Dialogue: 0,0:14:58.21,0:15:03.30,Default,,0000,0000,0000,,anerkannt. Jetzt funktioniert das\NErstellen neuer Blöcke etwas anders. Dialogue: 0,0:15:03.30,0:15:06.81,Default,,0000,0000,0000,,Und zwar ist es jetzt so, dass ein Block\Nnicht mehr einfach entsteht, sondern Dialogue: 0,0:15:06.81,0:15:10.65,Default,,0000,0000,0000,,ein ‚Miner‘ muss daran arbeiten. Jeder\NMiner arbeitet natürlich für sich selbst Dialogue: 0,0:15:10.65,0:15:14.54,Default,,0000,0000,0000,,daran, einen neuen Block zu erstellen.\NWir sehen hier, der Block an dem der Miner Dialogue: 0,0:15:14.54,0:15:19.99,Default,,0000,0000,0000,,arbeitet, ist hier so gestrichelt\Nmarkiert. Und dann, wenn der Miner Dialogue: 0,0:15:19.99,0:15:23.92,Default,,0000,0000,0000,,daran arbeitet, kommen neue Transaktionen\Nrein. Und irgendwann gelingt es dem Miner Dialogue: 0,0:15:23.92,0:15:27.91,Default,,0000,0000,0000,,den Block fertigzustellen. In dem Moment\Nveröffentlicht er den Block zusammen mit Dialogue: 0,0:15:27.91,0:15:31.44,Default,,0000,0000,0000,,dem Proof-of-Work im Netzwerk. Der wird\Nvom Netzwerk anerkannt, und der Miner Dialogue: 0,0:15:31.44,0:15:39.74,Default,,0000,0000,0000,,beginnt sofort an einem neuen Block zu\Narbeiten, und das geht dann halt so weiter. Dialogue: 0,0:15:39.74,0:15:43.99,Default,,0000,0000,0000,,Nun, die Funktion die wir brauchen um das\NErstellen der Blöcke schwierig zu machen Dialogue: 0,0:15:43.99,0:15:49.73,Default,,0000,0000,0000,,muss einige Bedingungen erfüllen. Sie\Nmuss natürlich schwierig sein zu lösen. Dialogue: 0,0:15:49.73,0:15:53.11,Default,,0000,0000,0000,,Dann muss aber… obwohl es lange gehen\Nmuss die zu erstellen, muss es sehr Dialogue: 0,0:15:53.11,0:15:56.58,Default,,0000,0000,0000,,einfach sein, das Ergebnis zu prüfen.\NAlso wenn ich einen Block erhalte, und Dialogue: 0,0:15:56.58,0:16:00.46,Default,,0000,0000,0000,,den passenden Proof-of-Work, muss\Nich – zack! – sofort sagen können, Dialogue: 0,0:16:00.46,0:16:03.39,Default,,0000,0000,0000,,der Proof-of-Work ist gültig oder nicht,\Nweil ich will ja entscheiden, ob das Dialogue: 0,0:16:03.39,0:16:07.50,Default,,0000,0000,0000,,Teil meines Zustandes\Nsein soll oder nicht. Dialogue: 0,0:16:07.50,0:16:11.96,Default,,0000,0000,0000,,Und dann ist es wichtig, dass die\NFunktion abhängt von genau dem Block, Dialogue: 0,0:16:11.96,0:16:15.23,Default,,0000,0000,0000,,für den sie erstellt wird. Also der\NProof-of-Work soll nur genau Dialogue: 0,0:16:15.23,0:16:19.14,Default,,0000,0000,0000,,für den einen Block gültig sein.\NDas ist sehr wichtig, denn ansonsten Dialogue: 0,0:16:19.14,0:16:23.59,Default,,0000,0000,0000,,könnte Malroy auf Vorrat über\Nmehrere Wochen hinweg einfach Dialogue: 0,0:16:23.59,0:16:27.22,Default,,0000,0000,0000,,Proof-of-Works erstellen und dann die\Neinfach an einen Block ranflanschen, Dialogue: 0,0:16:27.22,0:16:31.81,Default,,0000,0000,0000,,und so in kurzer Zeit trotzdem wieder\Neine lange Kette erstellen. Wenn aber Dialogue: 0,0:16:31.81,0:16:37.15,Default,,0000,0000,0000,,der Proof-of-Work direkt abhängig ist\Nvom Block für den er erstellt wird, Dialogue: 0,0:16:37.15,0:16:40.15,Default,,0000,0000,0000,,dann muss Malroy mit dem Erstellen\Ndes Proof-of-Work so lange warten, Dialogue: 0,0:16:40.15,0:16:44.29,Default,,0000,0000,0000,,bis der vorhergehende Block bekannt\Nist und damit auch ihm bekannt ist, Dialogue: 0,0:16:44.29,0:16:47.36,Default,,0000,0000,0000,,was er jetzt in den neuen Block packt. Dialogue: 0,0:16:47.36,0:16:52.01,Default,,0000,0000,0000,,Und dann soll es auch noch möglich sein,\Ndie Schwierigkeit der Aufgabe zu variieren. Dialogue: 0,0:16:52.01,0:16:56.11,Default,,0000,0000,0000,,Denn damit das System als stabiles\NFinanzsystem funktioniert, möchte ich Dialogue: 0,0:16:56.11,0:16:59.25,Default,,0000,0000,0000,,gerne wissen, wie lange es geht von\Ndem Moment wo ich eine Transaktion Dialogue: 0,0:16:59.25,0:17:04.41,Default,,0000,0000,0000,,veröffentliche bis sie Teil des Zustandes\Nwird. Und wenn das Netzwerk Dialogue: 0,0:17:04.41,0:17:08.00,Default,,0000,0000,0000,,sehr viel mehr Rechenkraft hat, dann\Ngeht es plötzlich schneller, neue Blöcke Dialogue: 0,0:17:08.00,0:17:11.18,Default,,0000,0000,0000,,zu erstellen und dann will ich diese\NSchwierigkeit anpassen können, damit es Dialogue: 0,0:17:11.18,0:17:16.66,Default,,0000,0000,0000,,wieder länger geht. Nun jetzt, wo\Ndas Mining nicht mehr einfach ist, Dialogue: 0,0:17:16.66,0:17:20.17,Default,,0000,0000,0000,,und es aufwendig ist, müssen wir irgendwie\Neinen Incentive haben, damit die Leute Dialogue: 0,0:17:20.17,0:17:25.09,Default,,0000,0000,0000,,es auch tun – also irgendeinen Anstoß.\NSo und wir sagen halt, der Miner, Dialogue: 0,0:17:25.09,0:17:29.02,Default,,0000,0000,0000,,dem es gelingt einen Block zu erstellen,\Nder bekommt eine Belohnung, Dialogue: 0,0:17:29.02,0:17:34.35,Default,,0000,0000,0000,,den sogenannten ‚Block Reward‘, und wir\Nimplementieren das, indem wir sagen, Dialogue: 0,0:17:34.35,0:17:38.01,Default,,0000,0000,0000,,der Miner darf für sich selbst eine\Nzusätzliche Transaktion in den Block Dialogue: 0,0:17:38.01,0:17:41.100,Default,,0000,0000,0000,,hineinpacken, und mit dieser Transaktion\Nüberweist er sich selbst Geld Dialogue: 0,0:17:41.100,0:17:45.81,Default,,0000,0000,0000,,aus dem Nichts heraus. Wo das\NGeld herkommt: Es gibt eigentlich Dialogue: 0,0:17:45.81,0:17:48.78,Default,,0000,0000,0000,,zwei Möglichkeiten, die populär sind.\NEntweder sagen wir, das sind Dialogue: 0,0:17:48.78,0:17:53.11,Default,,0000,0000,0000,,die Überweisungsgebühren der anderen\NTransaktionen in dem Block. Dialogue: 0,0:17:53.11,0:17:57.54,Default,,0000,0000,0000,,Oder dann sagen wir halt, das ist Geld,\Nwelches neu geschaffen wird. Wir haben ja Dialogue: 0,0:17:57.54,0:18:02.67,Default,,0000,0000,0000,,vorhin gesehen, wir haben einen leeren\NZustand als den Ursprungszustand definiert, Dialogue: 0,0:18:02.67,0:18:06.07,Default,,0000,0000,0000,,und wenn wir das so tun, muss das\NGeld, welches die Leute ausgeben, Dialogue: 0,0:18:06.07,0:18:10.25,Default,,0000,0000,0000,,irgendwo herkommen. Und das ist halt eine\NMöglichkeit, Geld in das System zu bringen, Dialogue: 0,0:18:10.25,0:18:14.56,Default,,0000,0000,0000,,die nicht von einer zentralen Stelle\Nkontrolliert wird, und eigentlich Dialogue: 0,0:18:14.56,0:18:21.29,Default,,0000,0000,0000,,eine faire Möglichkeit.\NEtwas weiteres ist, dass… Dialogue: 0,0:18:21.29,0:18:25.29,Default,,0000,0000,0000,,diese zusätzliche Transaktion macht\Nden Block natürlich individuell, denn Dialogue: 0,0:18:25.29,0:18:29.77,Default,,0000,0000,0000,,jeder Miner wird das Geld an sich selbst\Nzu überweisen versuchen und, also, Dialogue: 0,0:18:29.77,0:18:35.13,Default,,0000,0000,0000,,diese eine Transaktion wird für jeden\NMiner anders sein. Und das stellt sicher, Dialogue: 0,0:18:35.13,0:18:39.60,Default,,0000,0000,0000,,dass die alle an einem ein wenig anderen\NProblem arbeiten. Wenn die alle Dialogue: 0,0:18:39.60,0:18:43.66,Default,,0000,0000,0000,,versuchen würden, das genau selbe Problem\Nzu lösen, auf die genau selbe Art, Dialogue: 0,0:18:43.66,0:18:47.81,Default,,0000,0000,0000,,dann würde es immer demjenigen als erstes\Ngelingen, der die meiste Rechenkraft hat, Dialogue: 0,0:18:47.81,0:18:51.68,Default,,0000,0000,0000,,und das wollen wir nicht, denn dann würde\Nja eine Person alle Blöcke erzeugen, Dialogue: 0,0:18:51.68,0:18:54.57,Default,,0000,0000,0000,,und wir wollen ja, dass viele Personen\NBlöcke erzeugen, damit das niemand Dialogue: 0,0:18:54.57,0:18:59.83,Default,,0000,0000,0000,,zensieren kann. Dadurch, dass das Problem,\Nan welchem sie arbeiten, für jeden Miner Dialogue: 0,0:18:59.83,0:19:02.75,Default,,0000,0000,0000,,etwas anders ist, gelingt es halt\Nzwischendurch auch jemandem Dialogue: 0,0:19:02.75,0:19:06.88,Default,,0000,0000,0000,,mit weniger Rechenkraft, als erstes eine\NLösung zu finden. Und in der Praxis Dialogue: 0,0:19:06.88,0:19:12.16,Default,,0000,0000,0000,,geht das dann ganz gut, dass wir sagen\Nkönnen, wer 20% der Rechenkraft hat Dialogue: 0,0:19:12.16,0:19:15.56,Default,,0000,0000,0000,,dem wird es auch in etwa einem Fünftel\Nder Fälle gelingen als erstes einen Block Dialogue: 0,0:19:15.56,0:19:21.21,Default,,0000,0000,0000,,zu finden. Dann muss der Miner halt\Nnoch entscheiden, an welchem Block Dialogue: 0,0:19:21.21,0:19:25.40,Default,,0000,0000,0000,,er arbeiten will. Aber der Miner will ja…\Nalso an welchem Ende der Kette… Dialogue: 0,0:19:25.40,0:19:29.13,Default,,0000,0000,0000,,Wir haben vorhin gesehen, es kann sein,\Ndass diese Ketten mehrere Enden haben. Dialogue: 0,0:19:29.13,0:19:33.73,Default,,0000,0000,0000,,Aber das ist ganz einfach, denn der Miner\Nwill ja den Reward kriegen. Der Reward ist Dialogue: 0,0:19:33.73,0:19:37.72,Default,,0000,0000,0000,,eine Transaktion, welche nur dann\NTeil des Zustandes wird wenn es Teil Dialogue: 0,0:19:37.72,0:19:40.74,Default,,0000,0000,0000,,in einem Block ist, wenn es Teil der\Nlängsten Kette ist. Und der Block ist Dialogue: 0,0:19:40.74,0:19:44.25,Default,,0000,0000,0000,,nur dann Teil der längsten Kette wenn\Ner an diesem Ende angesetzt wird. Dialogue: 0,0:19:44.25,0:19:49.04,Default,,0000,0000,0000,,Also arbeiten alle Miner am Ende der\Nlängsten Kette. So, jetzt habe ich Dialogue: 0,0:19:49.04,0:19:52.97,Default,,0000,0000,0000,,versprochen, dass wir so den Double-Spend\Nverhindern können, von vorhin. Dialogue: 0,0:19:52.97,0:19:57.39,Default,,0000,0000,0000,,Wollen wir mal gucken, ob das geht!\NDas Szenario ist wieder dasselbe. Dialogue: 0,0:19:57.39,0:20:03.29,Default,,0000,0000,0000,,Malroy will das Fahrrad klauen,\Nim Laden von Alice. Dialogue: 0,0:20:03.29,0:20:08.76,Default,,0000,0000,0000,,Der Unterschied ist, dass das Netzwerk\Narbeiten muss um die Blöcke zu erstellen. Dialogue: 0,0:20:08.76,0:20:13.09,Default,,0000,0000,0000,,Und dann geht es wieder so vonstatten.\NMalroy erstellt jetzt zwei Transaktionen. Dialogue: 0,0:20:13.09,0:20:17.11,Default,,0000,0000,0000,,Eine, um das Geld der Alice zu überweisen.\NDiese Transaktion macht er öffentlich Dialogue: 0,0:20:17.11,0:20:20.55,Default,,0000,0000,0000,,im Netzwerk, damit die von allen gesehen\Nwerden kann. Und eine Transaktion, Dialogue: 0,0:20:20.55,0:20:25.33,Default,,0000,0000,0000,,um das Geld an sich selbst zu überweisen.\NDie behält er vorläufig geheim. Dann wird Dialogue: 0,0:20:25.33,0:20:29.35,Default,,0000,0000,0000,,der vorhergehende Block fertiggestellt,\Nund sofort fängt das Netzwerk an Dialogue: 0,0:20:29.35,0:20:34.22,Default,,0000,0000,0000,,den nächsten Block zu erstellen. Das\NNetzwerk enthält in dem Block natürlich Dialogue: 0,0:20:34.22,0:20:37.75,Default,,0000,0000,0000,,die Transaktion von Malroy an Alice,\Ndenn das ist ja die einzige Transaktion Dialogue: 0,0:20:37.75,0:20:42.13,Default,,0000,0000,0000,,die dem Netzwerk bekannt ist. Und\NMalroy arbeitet jetzt ganz alleine daran, Dialogue: 0,0:20:42.13,0:20:47.58,Default,,0000,0000,0000,,den alternativen Block zu erstellen. In\Ndem die andere Transaktion enthalten ist. Dialogue: 0,0:20:47.58,0:20:51.54,Default,,0000,0000,0000,,Jetzt ist es aber so: das Netzwerk hat\Nnatürlich mehr Rechenkraft als Malroy Dialogue: 0,0:20:51.54,0:20:56.66,Default,,0000,0000,0000,,allein. Der hat halt nicht so viele\NComputer. Und deshalb wird das Netzwerk Dialogue: 0,0:20:56.66,0:21:01.34,Default,,0000,0000,0000,,immer schneller sein darin, neue Blöcke\Nzu erstellen als Malroy. Malroys Kette Dialogue: 0,0:21:01.34,0:21:06.17,Default,,0000,0000,0000,,wird nie die längste Kette, wird nie Teil\Ndes Zustands. Und der Angriff wurde Dialogue: 0,0:21:06.17,0:21:13.78,Default,,0000,0000,0000,,erfolgreich abgewehrt. Die einzige Art\Nund Weise wie Malroy gewinnen könnte, Dialogue: 0,0:21:13.78,0:21:17.64,Default,,0000,0000,0000,,also wie Malroy den Angriff trotzdem\Ndurchführen könnte, wäre, wenn er Dialogue: 0,0:21:17.64,0:21:21.90,Default,,0000,0000,0000,,schneller Blöcke erstellen könnte als\Ndas Netzwerk. Und das wird ihm aber Dialogue: 0,0:21:21.90,0:21:25.91,Default,,0000,0000,0000,,nur dann gelingen, wenn er mehr als\N50% der Rechenkraft im Netzwerk hätte. Dialogue: 0,0:21:25.91,0:21:28.68,Default,,0000,0000,0000,,Denn dann wäre die Wahrscheinlichkeit,\Ndass er einen Block findet, höher Dialogue: 0,0:21:28.68,0:21:33.47,Default,,0000,0000,0000,,als bei allen anderen Minern gemeinsam.\NUnd dann könnte er das tun. Und deshalb Dialogue: 0,0:21:33.47,0:21:40.50,Default,,0000,0000,0000,,spricht man bei Bitcoin und anderen\NKryptowährungen von diesen 50%-Attacken. Dialogue: 0,0:21:40.50,0:21:43.77,Default,,0000,0000,0000,,So, jetzt gibt es noch eine andere Art,\Neinen Double-Spend auszuführen. Das ist Dialogue: 0,0:21:43.77,0:21:49.02,Default,,0000,0000,0000,,ein etwas schwierigerer Angriff.\NUnd er hat jetzt damit zu tun, wie Dialogue: 0,0:21:49.02,0:21:53.43,Default,,0000,0000,0000,,das Peer-to-Peer-Netzwerk funktioniert,\Ndas wir brauchen um die Transaktionen Dialogue: 0,0:21:53.43,0:22:01.28,Default,,0000,0000,0000,,und Blöcke zu verteilen. Jetzt ist der\NAngriff ein wenig schwieriger, also Dialogue: 0,0:22:01.28,0:22:05.33,Default,,0000,0000,0000,,muss Malroy etwas wertvolleres stehlen.\NEr geht zu Bob. Bob verkauft Autos. Dialogue: 0,0:22:05.33,0:22:09.52,Default,,0000,0000,0000,,Er wird versuchen ein Auto zu stehlen.\NUnd um das zu tun, wird er versuchen Dialogue: 0,0:22:09.52,0:22:13.21,Default,,0000,0000,0000,,die Verbindung von Bob mit dem\NPeer-to-Peer-Netzwerk zu kontrollieren. Dialogue: 0,0:22:13.21,0:22:17.26,Default,,0000,0000,0000,,Wir sehen hier, Bob ist mit dem Netzwerk\Nverbunden. Mit diesen drei Peers. Und Dialogue: 0,0:22:17.26,0:22:21.71,Default,,0000,0000,0000,,Malroy hat zwei Möglichkeiten: entweder\Ner kontrolliert die Internetverbindung Dialogue: 0,0:22:21.71,0:22:26.49,Default,,0000,0000,0000,,von Bob. Oder dann kontrolliert er\Nhalt die drei Nodes, mit denen Bob Dialogue: 0,0:22:26.49,0:22:30.40,Default,,0000,0000,0000,,verbunden ist. Wie realistisch das ist,\Ndas will ich hier nicht diskutieren. Dialogue: 0,0:22:30.40,0:22:34.82,Default,,0000,0000,0000,,Grundsätzlich ist es ja schon\Nvorstellbar. Und jetzt hat Malroy Dialogue: 0,0:22:34.82,0:22:39.19,Default,,0000,0000,0000,,einige interessante Möglichkeiten. Er kann\Njetzt nämlich kontrollieren, welche Blöcke Dialogue: 0,0:22:39.19,0:22:43.33,Default,,0000,0000,0000,,und Transaktionen der Bob sieht.\NAlso Transaktionen und Blöcke, Dialogue: 0,0:22:43.33,0:22:47.71,Default,,0000,0000,0000,,welche auf dem Netzwerk erscheinen,\Nkann Malroy quasi vor Bob geheimhalten. Dialogue: 0,0:22:47.71,0:22:52.06,Default,,0000,0000,0000,,Und er kann Bob auch Transaktionen und\NBlöcke präsentieren, die er dem Rest Dialogue: 0,0:22:52.06,0:22:57.92,Default,,0000,0000,0000,,des Netzwerkes nicht präsentiert.\NSo, das ist der Angriff. Wir sehen, Dialogue: 0,0:22:57.92,0:23:01.88,Default,,0000,0000,0000,,was das Netzwerk sieht.\NLinks und rechts, was Bob sieht. Dialogue: 0,0:23:01.88,0:23:06.93,Default,,0000,0000,0000,,Am Anfang ist das natürlich an beiden\NOrten gleich. Jetzt geht der Malroy Dialogue: 0,0:23:06.93,0:23:12.23,Default,,0000,0000,0000,,zu dem Bob und wird das Auto kaufen.\NEr macht eine Transaktion. Dialogue: 0,0:23:12.23,0:23:15.85,Default,,0000,0000,0000,,Er macht zwei Transaktionen. Eine,\Num das Geld an Bob zu überweisen. Dialogue: 0,0:23:15.85,0:23:19.48,Default,,0000,0000,0000,,Diese schickt er nur an Bob. Und\Nversteckt sie vor dem Netzwerk. Dialogue: 0,0:23:19.48,0:23:23.96,Default,,0000,0000,0000,,Und eine zweite Transaktion, mit der er\Ndas Geld wieder an sich selbst überweist. Dialogue: 0,0:23:23.96,0:23:28.48,Default,,0000,0000,0000,,Diese Transaktion veröffentlicht er im\NNetzwerk. Jetzt wird das Netzwerk Dialogue: 0,0:23:28.48,0:23:33.95,Default,,0000,0000,0000,,daran arbeiten, einen Block zu erstellen,\Nmit der Transaktion von Malroy zu Malroy. Dialogue: 0,0:23:33.95,0:23:38.99,Default,,0000,0000,0000,,Weil das Netzwerk kennt keine andere\NTransaktion. Und Malroy allein arbeitet Dialogue: 0,0:23:38.99,0:23:44.75,Default,,0000,0000,0000,,daran einen Block zu erstellen, mit\Ndem er das Geld an Bob überweist. Dialogue: 0,0:23:44.75,0:23:48.13,Default,,0000,0000,0000,,Natürlich wiederum, das Netzwerk hat viel\Nmehr Rechenkraft, es ist viel schneller Dialogue: 0,0:23:48.13,0:23:51.55,Default,,0000,0000,0000,,darin, neue Blöcke zu erstellen. So, und Dialogue: 0,0:23:51.55,0:23:56.15,Default,,0000,0000,0000,,schlussendlich gelingt es dann aber Bob\N[Malroy!] trotzdem, einen Block zu erstellen. Dialogue: 0,0:23:56.15,0:23:59.69,Default,,0000,0000,0000,,Und alle diese Blöcke die auf dem Netzwerk\Nerstellt wurden – muss man vielleicht Dialogue: 0,0:23:59.69,0:24:05.35,Default,,0000,0000,0000,,noch sagen – die hält der Malroy vor Bob\Ngeheim. Also, alle diesen neuen Blöcke, Dialogue: 0,0:24:05.35,0:24:08.92,Default,,0000,0000,0000,,die hat Bob nie gesehen. Und deshalb\Nwird Bob diesen einen Block von Malroy Dialogue: 0,0:24:08.92,0:24:13.27,Default,,0000,0000,0000,,als die längste Kette von Blöcken\Nakzeptieren. Und jetzt ist die Transaktion Dialogue: 0,0:24:13.27,0:24:18.47,Default,,0000,0000,0000,,von Malroy an Bob Teil von Bobs\NZustand. Er gibt Malroy das Auto. Dialogue: 0,0:24:18.47,0:24:25.21,Default,,0000,0000,0000,,Malroy fährt davon. Er beendet die\NAttacke. Und jetzt verbindet sich Bob Dialogue: 0,0:24:25.21,0:24:29.34,Default,,0000,0000,0000,,wieder ganz normal mit dem Netzwerk.\NDie beiden Ketten werden synchronisiert. Dialogue: 0,0:24:29.34,0:24:33.41,Default,,0000,0000,0000,,Und wir sehen, in der schlussendlich\Nresultierenden Kette hat Bob das Geld Dialogue: 0,0:24:33.41,0:24:41.69,Default,,0000,0000,0000,,nicht erhalten. Malroy hat also das\NAuto erfolgreich stehlen können. Dialogue: 0,0:24:41.69,0:24:45.69,Default,,0000,0000,0000,,Das ist gar nicht gut. Jetzt hat ja dieser\NAngriff funktioniert. Oder hat er das Dialogue: 0,0:24:45.69,0:24:52.66,Default,,0000,0000,0000,,denn wirklich? Denn diesmal war der\NAngriff erfolgreich. Aber Malroy musste Dialogue: 0,0:24:52.66,0:24:56.52,Default,,0000,0000,0000,,jetzt dafür arbeiten. Er musste diesen\Neinen Block erstellen. Und das hat ihn Dialogue: 0,0:24:56.52,0:25:00.40,Default,,0000,0000,0000,,viel Zeit gekostet. Natürlich kostet\Nes ihn auch irgendwie Rechenkraft, Dialogue: 0,0:25:00.40,0:25:03.44,Default,,0000,0000,0000,,und den Strom den er braucht um seinen\NComputer zu betreiben. Das wollen wir Dialogue: 0,0:25:03.44,0:25:07.36,Default,,0000,0000,0000,,jetzt aber gar nicht mit einbeziehen.\NSondern wir schauen jetzt nach diesen Dialogue: 0,0:25:07.36,0:25:11.51,Default,,0000,0000,0000,,Dings die Zeit gekostet. Denn der Malroy\Nhat ja einen Computer, den er braucht, Dialogue: 0,0:25:11.51,0:25:15.76,Default,,0000,0000,0000,,um die Blöcke zu erstellen. Und dieser\NComputer kann immer nur eines auf’s Mal Dialogue: 0,0:25:15.76,0:25:20.29,Default,,0000,0000,0000,,tun. Entweder erstellt er jetzt diesen\NFake-Block für Bob, oder er erstellt Dialogue: 0,0:25:20.29,0:25:25.79,Default,,0000,0000,0000,,richtige Blöcke auf die richtige Chain.\NEr kann nicht beides auf’s Mal tun. Dialogue: 0,0:25:25.79,0:25:31.75,Default,,0000,0000,0000,,So, und das macht es sehr, sehr\Nteuer diesen Angriff durchzuführen. Dialogue: 0,0:25:31.75,0:25:35.76,Default,,0000,0000,0000,,Stellen wir uns vor… das sind jetzt einfach \Nirgendwelche Annahmewerte für unser Dialogue: 0,0:25:35.76,0:25:39.38,Default,,0000,0000,0000,,Netzwerk… die sind da halt in jeder\NKryptowährung etwas anders definiert. Dialogue: 0,0:25:39.38,0:25:44.73,Default,,0000,0000,0000,,Sagen wir, unser Netzwerk erzeugt einen\NBlock alle zehn Minuten. Der Block Reward, Dialogue: 0,0:25:44.73,0:25:49.70,Default,,0000,0000,0000,,welchen der Miner kriegt ist 1000 Euro.\NUnd Malroy hätte jetzt 20% der Rechenkraft Dialogue: 0,0:25:49.70,0:25:54.69,Default,,0000,0000,0000,,des Netzwerkes. Wenn wir sagen 100% der\NRechenkraft erzeugt alle zehn Minuten. Dialogue: 0,0:25:54.69,0:26:00.31,Default,,0000,0000,0000,,einen Block, dann erzeugt Malroy auf\Nsich alleine gestellt nur alle 50 Minuten Dialogue: 0,0:26:00.31,0:26:06.41,Default,,0000,0000,0000,,einen Block. D.h. der Angriff auf Bob\Ndauert 50 Minuten. Nun, wenn aber Malroy Dialogue: 0,0:26:06.41,0:26:12.00,Default,,0000,0000,0000,,50 Minuten lang minen würde, anstatt Bob\Nanzugreifen, dann würde er in dieser Zeit Dialogue: 0,0:26:12.00,0:26:16.29,Default,,0000,0000,0000,,durchschnittlich 1000 Euro verdienen.\NEr kann sich jetzt also entscheiden, Dialogue: 0,0:26:16.29,0:26:22.59,Default,,0000,0000,0000,,entweder greift er Bob an und stiehlt das\N23.000 Euro teure Auto, oder er verdient Dialogue: 0,0:26:22.59,0:26:26.47,Default,,0000,0000,0000,,mit fairem Mining 1000 Euro.\NNatürlich wird er dieses Auto immer noch Dialogue: 0,0:26:26.47,0:26:31.81,Default,,0000,0000,0000,,stehlen wollen. Der Mechanismus, um\Ndas zu verhindern ist aber ganz einfach. Dialogue: 0,0:26:31.81,0:26:36.42,Default,,0000,0000,0000,,Wir sagen jetzt, Bob gibt dem\NMalroy das Auto nicht, sobald Bob Dialogue: 0,0:26:36.42,0:26:41.26,Default,,0000,0000,0000,,das Geld erhalten hat, sondern er\Nwartet dann noch einige Blöcke. Dialogue: 0,0:26:41.26,0:26:43.85,Default,,0000,0000,0000,,Das sieht dann in etwa so aus. Ich habe\Njetzt nicht genügend Blöcke gemalt, Dialogue: 0,0:26:43.85,0:26:49.28,Default,,0000,0000,0000,,weil die da nicht Platz hatten.\NAlso sagen wir halt, wir sehen Dialogue: 0,0:26:49.28,0:26:54.51,Default,,0000,0000,0000,,auf der rechten Seite, wo die\NTransaktion Teil des Zustandes wird. Dialogue: 0,0:26:54.51,0:26:59.61,Default,,0000,0000,0000,,Und in diesem Moment gibt halt der\NBob das Auto noch nicht an Malroy, Dialogue: 0,0:26:59.61,0:27:05.18,Default,,0000,0000,0000,,sondern erst einige Blöcke später. Und\Nfür jeden zusätzlichen Block, den Malroy Dialogue: 0,0:27:05.18,0:27:08.04,Default,,0000,0000,0000,,erstellen muss, um Bob davon zu\Nüberzeugen, dass das jetzt wirklich Dialogue: 0,0:27:08.04,0:27:12.23,Default,,0000,0000,0000,,die richtige Kette ist, muss Malroy\Nweitere 50 Minuten aufwenden, Dialogue: 0,0:27:12.23,0:27:17.58,Default,,0000,0000,0000,,und das kostet ihn jedesmal 1000 Euro.\NWenn also Bob sagt: „Ich warte 24 Blöcke Dialogue: 0,0:27:17.58,0:27:22.53,Default,,0000,0000,0000,,bevor ich dem Malroy das Auto gebe“. Dann\Nist der Angriff für Malroy plötzlich teurer Dialogue: 0,0:27:22.53,0:27:27.36,Default,,0000,0000,0000,,als das Auto einen Wert hat. Und dadurch\Nkann Bob den Angriff verhindern. Dialogue: 0,0:27:27.36,0:27:31.18,Default,,0000,0000,0000,,Malroy kann den zwar immer noch\Ndurchführen, aber es ist schlicht einfach Dialogue: 0,0:27:31.18,0:27:35.07,Default,,0000,0000,0000,,nicht interessant für Malroy das zu tun,\Nweil er mehr Geld macht wenn er Dialogue: 0,0:27:35.07,0:27:44.74,Default,,0000,0000,0000,,in der selben Zeit mint. So. Jetzt haben\Nwir viel gesprochen über generische Dialogue: 0,0:27:44.74,0:27:48.58,Default,,0000,0000,0000,,Konzepte von Blockchains. Jetzt will\Nich noch etwas dazu sagen, wie das Dialogue: 0,0:27:48.58,0:27:53.82,Default,,0000,0000,0000,,in Bitcoin implementiert wird. Zumindest\Neinige der Dinge. Schauen wir uns zuerst Dialogue: 0,0:27:53.82,0:27:58.50,Default,,0000,0000,0000,,die Blöcke an. Und wir wissen ja, in der\NInformatik mögen wir es, Bodys und Header Dialogue: 0,0:27:58.50,0:28:03.34,Default,,0000,0000,0000,,zu definieren. Das tun wir überall,\Nirgendwie, in unseren Netzwerkprotokollen; Dialogue: 0,0:28:03.34,0:28:07.80,Default,,0000,0000,0000,,in Nachrichten und Dateiformaten\Nsagen wir, der Body enthält den Inhalt, Dialogue: 0,0:28:07.80,0:28:12.05,Default,,0000,0000,0000,,die eigentlichen Daten. Und der Header\Nenthält die Metadaten. Und genau dasselbe Dialogue: 0,0:28:12.05,0:28:17.39,Default,,0000,0000,0000,,tun wir auch in unseren Blockchains. In\NBitcoin ist es so, der Body eines Blockes Dialogue: 0,0:28:17.39,0:28:22.50,Default,,0000,0000,0000,,enthält alle Transaktionen. Die sind dort\Ngeordnet aufgeführt. Der Miner muss Dialogue: 0,0:28:22.50,0:28:29.13,Default,,0000,0000,0000,,einige Regeln einhalten, wenn er das\Nmacht. Z.B. wenn Transaktion B Dialogue: 0,0:28:29.13,0:28:32.46,Default,,0000,0000,0000,,von Transaktion A abhängt, die beide\Nim selben Block sind, müssen die Dialogue: 0,0:28:32.46,0:28:36.19,Default,,0000,0000,0000,,in der richtigen Reihenfolge drin sein.\NAber sonst kann der die irgendwie Dialogue: 0,0:28:36.19,0:28:40.35,Default,,0000,0000,0000,,dort einpacken. Aber sobald er das mal\Ngemacht hat, ist dann… diese Reihenfolge Dialogue: 0,0:28:40.35,0:28:44.74,Default,,0000,0000,0000,,ist anschließend wichtig. Und die erste\NTransaktion im Block ist jeweils Dialogue: 0,0:28:44.74,0:28:47.75,Default,,0000,0000,0000,,die coin-based-Transaktion,\Nmit der sich der Miner Dialogue: 0,0:28:47.75,0:28:53.02,Default,,0000,0000,0000,,den Block Reward überweist. Dialogue: 0,0:28:53.02,0:28:59.00,Default,,0000,0000,0000,,Um jetzt diesen Body zu verbinden mit dem\NHeader nutzt Bitcoin einen Merkle Tree. Dialogue: 0,0:28:59.00,0:29:02.25,Default,,0000,0000,0000,,Das ist ein binärer Baum, Dialogue: 0,0:29:02.25,0:29:08.47,Default,,0000,0000,0000,,bei dem jeweils… der Node ist der\Nhash der konkatenierten Werte Dialogue: 0,0:29:08.47,0:29:11.48,Default,,0000,0000,0000,,der Children des Nodes. Dialogue: 0,0:29:11.48,0:29:15.05,Default,,0000,0000,0000,,Und Bitcoin verwendet fast überall…\Nwo Bitcoin Hashes macht, Dialogue: 0,0:29:15.05,0:29:17.99,Default,,0000,0000,0000,,wenden sie einen – dhash nennen sie das, Dialogue: 0,0:29:17.99,0:29:22.98,Default,,0000,0000,0000,,das ist ein double-sha256-Hash, also\Nso nennt sich der Hash eines Hashes Dialogue: 0,0:29:22.98,0:29:27.70,Default,,0000,0000,0000,,eines Wertes, den sie nehmen. Das\Nsieht dann so aus: wir haben unseren Body Dialogue: 0,0:29:27.70,0:29:31.54,Default,,0000,0000,0000,,des Blocks. Dann erstellen wir für\Njede Transaktion den double-hash. Dialogue: 0,0:29:31.54,0:29:34.71,Default,,0000,0000,0000,,Und dann beginnen wir damit, den Tree\Nzu erstellen. Also auf jeden Node, Dialogue: 0,0:29:34.71,0:29:40.63,Default,,0000,0000,0000,,für jeden blauen Node konkatenieren wir\Ndie beiden grünen Nodes, und machen dann Dialogue: 0,0:29:40.63,0:29:44.41,Default,,0000,0000,0000,,den Hash davon. Das machen wir für\Njede Ebene, bis wir schlussendlich Dialogue: 0,0:29:44.41,0:29:49.85,Default,,0000,0000,0000,,beim Merkle Root angelangen, und der\Nwird dann Teil des Block Headers. Dialogue: 0,0:29:49.85,0:29:53.88,Default,,0000,0000,0000,,Und der Block Header enthält diese Dinge:\Ndie Version – das ist irgendwie Dialogue: 0,0:29:53.88,0:29:58.48,Default,,0000,0000,0000,,eine arbitrary Nummer, die von den\NEntwicklern von Zeit zu Zeit geändert wird, Dialogue: 0,0:29:58.48,0:30:01.81,Default,,0000,0000,0000,,wenn sie irgendwie finden,\Ndass wird jetzt Zeit dafür. Dialogue: 0,0:30:01.81,0:30:05.56,Default,,0000,0000,0000,,Dann den Previous Block Hash. Wir haben\Ngesehen, die Blöcke verweisen jeweils Dialogue: 0,0:30:05.56,0:30:09.20,Default,,0000,0000,0000,,auf den vorhergehenden Block. Das ist\Nin Bitcoin so gelöst, dass der Header Dialogue: 0,0:30:09.20,0:30:13.07,Default,,0000,0000,0000,,eines Blocks den Hash des vorhergehenden\NBlocks enthält. Also auch hier wieder Dialogue: 0,0:30:13.07,0:30:18.73,Default,,0000,0000,0000,,den double-hash. Den Merkle Root haben\Nwir bereits gesehen. Dann enthält Dialogue: 0,0:30:18.73,0:30:22.46,Default,,0000,0000,0000,,der Block-Header noch einen Time Stamp.\NDas sind ziemlich komplizierte Regeln, Dialogue: 0,0:30:22.46,0:30:26.78,Default,,0000,0000,0000,,wonach dieser Time Stamp gebildet\Nwird, aber das ist egal. Das ist Dialogue: 0,0:30:26.78,0:30:31.85,Default,,0000,0000,0000,,nicht so wichtig. Die ‚Difficulty‘ ist ein\NAusdruck dafür wie schwierig es war Dialogue: 0,0:30:31.85,0:30:35.99,Default,,0000,0000,0000,,den Proof-of-Work für diesen bestimmten\NBlock zu definieren. Und die ‚Nonce‘ Dialogue: 0,0:30:35.99,0:30:43.58,Default,,0000,0000,0000,,ist ein Wert der gebraucht wird zum Minen. Dialogue: 0,0:30:43.58,0:30:48.36,Default,,0000,0000,0000,,Ja und der Proof-of-Work in Bitcoin ist\Nnichts anderes als der Hash des Blocks. Dialogue: 0,0:30:48.36,0:30:53.14,Default,,0000,0000,0000,,Und der muss dann eine Bedingung\Nerfüllen. Und zwar muss dieser Hash Dialogue: 0,0:30:53.14,0:30:58.58,Default,,0000,0000,0000,,mit einer gewissen Anzahl Nullen beginnen.\NAlso ich nehme den Header des Blocks Dialogue: 0,0:30:58.58,0:31:04.36,Default,,0000,0000,0000,,und bilde den double-hash davon.\NUnd dann müssen die ersten paar Bits Dialogue: 0,0:31:04.36,0:31:08.56,Default,,0000,0000,0000,,von diesem Hash müssen Null sein. Und\Nwieviele Bits das sind, das ist dann eben Dialogue: 0,0:31:08.56,0:31:13.47,Default,,0000,0000,0000,,die variable Schwierigkeit. Also wenn\Nich mehr Nullen haben muss zu Beginn Dialogue: 0,0:31:13.47,0:31:16.97,Default,,0000,0000,0000,,dann ist es schwieriger den Proof-of-Work\Nzu erstellen. Und bei weniger Dialogue: 0,0:31:16.97,0:31:22.23,Default,,0000,0000,0000,,natürlich einfacher. Das Mining\Nfunktioniert dann so dass… der Miner Dialogue: 0,0:31:22.23,0:31:25.92,Default,,0000,0000,0000,,nimmt einfach mal diesen Header,\Nund bildet den double-hash davon. Dialogue: 0,0:31:25.92,0:31:29.92,Default,,0000,0000,0000,,Dann prüft er ob der jetzt diese Bedingung\Nerfüllt. Das wird er vermutlich nicht tun. Dialogue: 0,0:31:29.92,0:31:34.21,Default,,0000,0000,0000,,Und dann inkrementiert er halt die nonce,\Ndadurch hat sich der Header verändert, Dialogue: 0,0:31:34.21,0:31:39.11,Default,,0000,0000,0000,,er bildet wieder den hash davon, und prüft\Ndas. Und so macht er immer weiter. Dialogue: 0,0:31:39.11,0:31:45.51,Default,,0000,0000,0000,,Es ist aber so, diese nonce ist lediglich\N32 bit lang, und der Hash mit 256 bit Dialogue: 0,0:31:45.51,0:31:50.25,Default,,0000,0000,0000,,ist wesentlich größer. Es kann also gut\Nsein, dass einfach durch das Inkrementieren Dialogue: 0,0:31:50.25,0:31:55.13,Default,,0000,0000,0000,,der Nonce kein passender Proof-of-Work\Ngefunden wird. Und in dem Fall wird Dialogue: 0,0:31:55.13,0:32:00.95,Default,,0000,0000,0000,,der Miner die coin-based Transaktion\Nverändern. Und zwar hat diese coin-based Dialogue: 0,0:32:00.95,0:32:05.45,Default,,0000,0000,0000,,Transaktion hat den Transaction Input,\Nder wird bei einer normalen Transaktion Dialogue: 0,0:32:05.45,0:32:09.73,Default,,0000,0000,0000,,dafür gebraucht zu beschreiben, woher\Ndas Geld kommt in dieser Transaktion. Dialogue: 0,0:32:09.73,0:32:14.23,Default,,0000,0000,0000,,Das hat die coin-based nicht, denn die\Nmacht ja quasi Geld aus dem Nichts heraus, Dialogue: 0,0:32:14.23,0:32:18.18,Default,,0000,0000,0000,,und den Wert in diesem Fall kann\Ndann der Miner frei beeinflussen. Dialogue: 0,0:32:18.18,0:32:22.24,Default,,0000,0000,0000,,Dadurch ändert sich der Hash dieser\NTransaktion, und das setzt sich dann Dialogue: 0,0:32:22.24,0:32:27.80,Default,,0000,0000,0000,,durch den Merkle Tree hindurch fort bis\Nes quasi auch den Merkle Root verändert. Dialogue: 0,0:32:27.80,0:32:32.68,Default,,0000,0000,0000,,Und dadurch ist der ganze Blockheader\Nwieder verändert und der Miner Dialogue: 0,0:32:32.68,0:32:37.80,Default,,0000,0000,0000,,kann weiterarbeiten. So, das lässt sich ja\Ndann auch sehr einfach prüfen, ob das jetzt Dialogue: 0,0:32:37.80,0:32:41.70,Default,,0000,0000,0000,,ein korrekter Proof-of-Work ist. Ich nehme\Neinfach diesen Blockheader und bilde Dialogue: 0,0:32:41.70,0:32:48.45,Default,,0000,0000,0000,,den Hash und schaue ob das so stimmt. Dialogue: 0,0:32:48.45,0:32:53.33,Default,,0000,0000,0000,,Das Bitcoin-Netzwerk versucht alle zehn\NMinuten einen neuen Block zu erstellen. Dialogue: 0,0:32:53.33,0:32:57.52,Default,,0000,0000,0000,,Um diese Zeit stabil zu halten,\Nwird die Schwierigkeit im Netzwerk Dialogue: 0,0:32:57.52,0:33:02.90,Default,,0000,0000,0000,,alle 14 Tage, also alle 2016 Blöcke,\Nangepasst, mit einem Algorithmus Dialogue: 0,0:33:02.90,0:33:10.54,Default,,0000,0000,0000,,wo jeder Miner feststellen kann wie weit\Nmuss ich jetzt die Schwierigkeit verändern. Dialogue: 0,0:33:10.54,0:33:14.38,Default,,0000,0000,0000,,Die coin-based Transaktion, mit der\Nsich der Miner Geld überweist, Dialogue: 0,0:33:14.38,0:33:18.04,Default,,0000,0000,0000,,enthält in Bitcoin zwei Dinge:\Neinerseits die Transaction Fees, also Dialogue: 0,0:33:18.04,0:33:24.76,Default,,0000,0000,0000,,die Transaktionsgebühren der Transaktion\Nin den Block; und anderseits auch noch Dialogue: 0,0:33:24.76,0:33:29.50,Default,,0000,0000,0000,,neue Bitcoin, die neu ins System kommen.\NDas waren ursprünglich 50 Bitcoin pro Block, Dialogue: 0,0:33:29.50,0:33:34.62,Default,,0000,0000,0000,,heute sind es noch 12,5, der\NWert halbiert sich alle vier Jahre. Dialogue: 0,0:33:34.62,0:33:38.51,Default,,0000,0000,0000,,Das war das letzte Mal in diesem Sommer,\Nda hat sich der Wert halbiert. Seither Dialogue: 0,0:33:38.51,0:33:47.81,Default,,0000,0000,0000,,gibt es nur noch 12,5 Bitcoin\Nfür einen neuen Block. Dialogue: 0,0:33:47.81,0:33:51.100,Default,,0000,0000,0000,,Jetzt wollen wir noch uns anschauen\Nwie wir ‚Light Clients‘ bauen können. Dialogue: 0,0:33:51.100,0:33:56.51,Default,,0000,0000,0000,,Bitcoin kennt eigentlich mehr oder weniger,\Ndrei Arten von Clients: ein ‚Full Node‘ Dialogue: 0,0:33:56.51,0:34:02.59,Default,,0000,0000,0000,,ist ein Client, welcher die\Ngesamte Blockchain speichert. Dialogue: 0,0:34:02.59,0:34:06.63,Default,,0000,0000,0000,,Der überprüft jede eingehende\NTransaktion, jeden eingehenden Block Dialogue: 0,0:34:06.63,0:34:10.64,Default,,0000,0000,0000,,überprüft dieser Client, ob der auch\Nwirklich valide ist. Und er tut noch Dialogue: 0,0:34:10.64,0:34:14.12,Default,,0000,0000,0000,,etwas anderes, nämlich er seeded diese\NBlöcke die er hat an das Netzwerk. Dialogue: 0,0:34:14.12,0:34:17.80,Default,,0000,0000,0000,,Also wenn jemand kommt und sagt:\N„Ich hätte gern einen Block“ dann gibt Dialogue: 0,0:34:17.80,0:34:22.15,Default,,0000,0000,0000,,der Full Node diesen Block raus. Dann gibt\Nes ‚Pruning Clients‘. Der macht eigentlich Dialogue: 0,0:34:22.15,0:34:27.94,Default,,0000,0000,0000,,das genau selbe wie der Full Node.\NAlso der überprüft auch alle Transaktionen Dialogue: 0,0:34:27.94,0:34:32.52,Default,,0000,0000,0000,,und alle Blöcke. Aber der speichert jetzt\Nhalt nicht die ganze Blockchain, sondern Dialogue: 0,0:34:32.52,0:34:35.55,Default,,0000,0000,0000,,wenn er findet „den Block brauche ich\Nnicht mehr“, dann löscht er den. Dialogue: 0,0:34:35.55,0:34:39.10,Default,,0000,0000,0000,,Und das macht dem Client Speicherplatz.\NDer braucht aber immer noch Dialogue: 0,0:34:39.10,0:34:43.58,Default,,0000,0000,0000,,sehr viel Rechenkraft und sehr viel\NBandbreite, deutlich zuviel als dass ich Dialogue: 0,0:34:43.58,0:34:48.13,Default,,0000,0000,0000,,das auf meinem Smartphone laufen lassen\Nmöchte. Und deshalb gibt es noch Dialogue: 0,0:34:48.13,0:34:53.52,Default,,0000,0000,0000,,die Light Clients oder SPV Clients.\NDie dann auch geeignet sind, Dialogue: 0,0:34:53.52,0:34:56.98,Default,,0000,0000,0000,,um [sie] auf einem mobilen Gerät laufen\Nzu lassen. Und wie die funktionieren, Dialogue: 0,0:34:56.98,0:35:01.21,Default,,0000,0000,0000,,will ich jetzt noch besprechen. Dialogue: 0,0:35:01.21,0:35:05.59,Default,,0000,0000,0000,,Ein Light Client oder ein SPV Client,\Nwas der tut zuerst ist, er lädt Dialogue: 0,0:35:05.59,0:35:09.02,Default,,0000,0000,0000,,die Header aller Blöcke herunter. Wir\Nhaben ja gesehen, der Proof-of-Work Dialogue: 0,0:35:09.02,0:35:15.42,Default,,0000,0000,0000,,ist der Hash des Block Headers. D.h.\Num den Proof-of-Work zu kontrollieren Dialogue: 0,0:35:15.42,0:35:18.76,Default,,0000,0000,0000,,brauche ich nicht den gesamten\NBlock, der Block Header genügt. Dialogue: 0,0:35:18.76,0:35:23.23,Default,,0000,0000,0000,,Und dasselbe gilt auch für die\NVerknüpfung der Blöcke untereinander. Dialogue: 0,0:35:23.23,0:35:26.39,Default,,0000,0000,0000,,Welches der vorhergehende Block\Nist, das steht ja auch im Header. Dialogue: 0,0:35:26.39,0:35:30.51,Default,,0000,0000,0000,,D.h. auch für diese Funktion brauche ich\Nnicht die ganzen Blöcke herunterzuladen. Dialogue: 0,0:35:30.51,0:35:35.45,Default,,0000,0000,0000,,Und so kann ich korrekt\Ndie längste Kette erstellen, Dialogue: 0,0:35:35.45,0:35:40.35,Default,,0000,0000,0000,,innerhalb des Netzwerks, indem\Nich nur die Header herunterlade. Dialogue: 0,0:35:40.35,0:35:45.56,Default,,0000,0000,0000,,Und der Gewinn dabei ist natürlich enorm.\NZur Zeit gibt es etwa 450.000 Blöcke. Dialogue: 0,0:35:45.56,0:35:52.35,Default,,0000,0000,0000,,Die brauchen mehr als 95 GB Speicherplatz.\NWenn man dann noch TX Index aktiviert Dialogue: 0,0:35:52.35,0:35:56.23,Default,,0000,0000,0000,,sind es, glaube ich, so um die\N110 GB Speicherplatz, die es braucht. Dialogue: 0,0:35:56.23,0:36:00.45,Default,,0000,0000,0000,,Das ist natürlich blödsinnig viel auf einem\NSmartphone. Aber nur die Block Headers, Dialogue: 0,0:36:00.45,0:36:03.73,Default,,0000,0000,0000,,alle Block Headers von diesen\N450.000 Blöcken, die passen Dialogue: 0,0:36:03.73,0:36:10.18,Default,,0000,0000,0000,,in deutlich weniger als 100 MB rein. Und\Ndas ist dann durchaus ein realistischer Wert, Dialogue: 0,0:36:10.18,0:36:14.94,Default,,0000,0000,0000,,dass ich das auf einem Smartphone habe.\NDas zweite Konzept ist der Merkle Branch, Dialogue: 0,0:36:14.94,0:36:18.54,Default,,0000,0000,0000,,und das ist dann eigentlich noch fast\Ndie interessantere Funktion, die uns Dialogue: 0,0:36:18.54,0:36:22.79,Default,,0000,0000,0000,,der Merkle Tree bildet. Und damit kann\Njeder beweisen, dass eine Transaktion Dialogue: 0,0:36:22.79,0:36:26.77,Default,,0000,0000,0000,,tatsächlich Teil des Zustands ist. Dialogue: 0,0:36:26.77,0:36:30.65,Default,,0000,0000,0000,,Nun, die eine Möglichkeit, wie wir den\NMerkle Tree nachbauen können, Dialogue: 0,0:36:30.65,0:36:35.21,Default,,0000,0000,0000,,ist natürlich, indem wir den Block\NBody herunterladen, und dann Dialogue: 0,0:36:35.21,0:36:39.58,Default,,0000,0000,0000,,den ganzen Merkle Tree bauen.\NWenn ich jetzt aber nur beweisen will Dialogue: 0,0:36:39.58,0:36:44.20,Default,,0000,0000,0000,,dass eine Transaktion Teil des Blockes\Nist, gibt es eine effizientere Möglichkeit. Dialogue: 0,0:36:44.20,0:36:47.95,Default,,0000,0000,0000,,Angenommen ich will jetzt beweisen,\Ndass die Transaktion (3) tatsächlich Dialogue: 0,0:36:47.95,0:36:51.92,Default,,0000,0000,0000,,Teil des Blocks ist. Dann brauche ich\Nnicht alle Transaktionen herunterzuladen, Dialogue: 0,0:36:51.92,0:36:57.76,Default,,0000,0000,0000,,sondern es reicht diese Transaktion (3)\Nherunterzuladen. – Ui, das war falsch. – Dialogue: 0,0:36:57.76,0:37:01.48,Default,,0000,0000,0000,,Und dann die restlichen Hashes,\Nalso von jeder Ebene des Baums Dialogue: 0,0:37:01.48,0:37:04.48,Default,,0000,0000,0000,,lade ich einen Hash herunter.\NUnd damit kann ich jetzt Dialogue: 0,0:37:04.48,0:37:11.42,Default,,0000,0000,0000,,den Merkle Root Node wieder nachbilden,\Nund so feststellen, dass diese Transaktion Dialogue: 0,0:37:11.42,0:37:15.89,Default,,0000,0000,0000,,tatsächlich Teil des Blocks ist.\NDas ist genau das was… Dialogue: 0,0:37:15.89,0:37:19.15,Default,,0000,0000,0000,,das hat jetzt natürlich auch einige\NVorteile. Ich brauche jetzt Dialogue: 0,0:37:19.15,0:37:23.52,Default,,0000,0000,0000,,weniger Elemente herunterzuladen, und\Nich kann halt Hashes herunterladen, also Dialogue: 0,0:37:23.52,0:37:27.11,Default,,0000,0000,0000,,anstatt Transaktionen. Vorhin in dem\NBeispiel hat das nicht soviel gebracht. Dialogue: 0,0:37:27.11,0:37:30.37,Default,,0000,0000,0000,,Aber wenn wir einen Block nehmen\Nmit 1600 Transaktionen, das ist Dialogue: 0,0:37:30.37,0:37:34.88,Default,,0000,0000,0000,,dieser Tage durchaus ein üblicher Block,\Ndann brauche ich jetzt zum Validieren Dialogue: 0,0:37:34.88,0:37:38.81,Default,,0000,0000,0000,,nicht mehr 1600 Transaktionen\Nherunterzuladen, sondern es genügt Dialogue: 0,0:37:38.81,0:37:42.40,Default,,0000,0000,0000,,eine Transaktion herunterzuladen und\Ndann elf Hashes, und damit kann ich Dialogue: 0,0:37:42.40,0:37:47.27,Default,,0000,0000,0000,,den Merkle Branch nachbauen. Dialogue: 0,0:37:47.27,0:37:52.64,Default,,0000,0000,0000,,Und so funktioniert ein SPV Client. SPV\Nsteht für ‚simple payment verification‘. Dialogue: 0,0:37:52.64,0:37:56.66,Default,,0000,0000,0000,,Und das hat eigentlich… das wurde schon\Nim White Paper zu Bitcoin beschrieben, Dialogue: 0,0:37:56.66,0:38:00.89,Default,,0000,0000,0000,,wie das funktioniert. Alles was der\Ntun muss, um zu beweisen, dass Dialogue: 0,0:38:00.89,0:38:04.95,Default,,0000,0000,0000,,eine Transaktion reingekommen ist, ist,\Ner lädt zuerst alle Block Header herunter, Dialogue: 0,0:38:04.95,0:38:10.32,Default,,0000,0000,0000,,wie vorhin besprochen, er bildet\Nden längsten Branch daraus, Dialogue: 0,0:38:10.32,0:38:15.58,Default,,0000,0000,0000,,dann lädt er eine Transaktion herunter.\NUnd wenn ich jetzt wissen will… Dialogue: 0,0:38:15.58,0:38:18.33,Default,,0000,0000,0000,,wenn ich von jemandem Geld erhalte und\Nich will jetzt zeigen, ich habe das Geld Dialogue: 0,0:38:18.33,0:38:22.61,Default,,0000,0000,0000,,tatsächlich erhalten, lade ich halt diese\NTransaktion herunter, und dann lade ich Dialogue: 0,0:38:22.61,0:38:27.11,Default,,0000,0000,0000,,den passenden Merkle Branch herunter.\NUnd jetzt kann ich quasi zeigen, dass Dialogue: 0,0:38:27.11,0:38:32.16,Default,,0000,0000,0000,,dieser Merkle Branch tatsächlich mit der\Nlängsten Kette von Blöcken verbunden ist. Dialogue: 0,0:38:32.16,0:38:36.99,Default,,0000,0000,0000,,Und so habe ich jetzt den Beweis dafür,\Ndass ich das Geld tatsächlich erhalten habe. Dialogue: 0,0:38:36.99,0:38:40.56,Default,,0000,0000,0000,,So, das ist diese Funktionsweise.\NJetzt haben wir noch etwas mehr Zeit, Dialogue: 0,0:38:40.56,0:38:44.29,Default,,0000,0000,0000,,als ich gehofft hatte. Ich werde jetzt\Nnoch versuchen, die Pruning Clients Dialogue: 0,0:38:44.29,0:38:49.01,Default,,0000,0000,0000,,zu erklären. Das hängt dann damit zusammen\Nwie eigentlich Bitcoin-Transaktionen Dialogue: 0,0:38:49.01,0:38:53.91,Default,,0000,0000,0000,,funktionieren. Nun, wir sind es ja\Ngewohnt, dass wir irgendwie auf der Bank Dialogue: 0,0:38:53.91,0:38:58.44,Default,,0000,0000,0000,,ein Konto haben. Und das Konto\Nhat einen Besitzer. Hoffentlich mich! Dialogue: 0,0:38:58.44,0:39:02.72,Default,,0000,0000,0000,,Und es hat einen Geldbetrag. Und jedesmal,\Nwenn ich eine Transaktion durchführe, Dialogue: 0,0:39:02.72,0:39:06.76,Default,,0000,0000,0000,,verändert sich der Geldbetrag. Also ich\Nüberweisen jemandem Geld, und dann Dialogue: 0,0:39:06.76,0:39:11.52,Default,,0000,0000,0000,,verändert sich halt der Betrag auf meinem\NKonto. In Bitcoin funktioniert das Dialogue: 0,0:39:11.52,0:39:15.62,Default,,0000,0000,0000,,wesentlich anders, dort besitze ich\Nnicht ein Konto, sondern ich besitze Dialogue: 0,0:39:15.62,0:39:20.17,Default,,0000,0000,0000,,sogenannte ‚Unspent Transaction Outputs‘.\NUnd wir sehen jetzt hier, sagen wir Alice Dialogue: 0,0:39:20.17,0:39:23.88,Default,,0000,0000,0000,,hat diese fünf Unspent Transaction\NOutputs, die haben jeweils einen Besitzer, Dialogue: 0,0:39:23.88,0:39:29.23,Default,,0000,0000,0000,,nämlich Alice. Und jeweils einen Betrag\Nder dort verfügbar ist. Und der Betrag Dialogue: 0,0:39:29.23,0:39:33.84,Default,,0000,0000,0000,,kann nicht geändert werden. Das ist fest.\NUnd nehmen wir jetzt an, Alice würde gerne Dialogue: 0,0:39:33.84,0:39:38.91,Default,,0000,0000,0000,,eine Transaktion machen, an Bob,\Ndie würde ihm gerne 42 Bitcoin überweisen. Dialogue: 0,0:39:38.91,0:39:42.20,Default,,0000,0000,0000,,Dann erstellt sie eine Transaktion, und\Nsagt, das Geld dieser Transaktion, Dialogue: 0,0:39:42.20,0:39:47.27,Default,,0000,0000,0000,,42 Bitcoin, sollen an Bob gehen. Und jetzt\Nmuss sie das Geld irgendwoher haben. Dialogue: 0,0:39:47.27,0:39:53.20,Default,,0000,0000,0000,,Und dann sagt sie halt, ich gebe\Ndiese drei Transaction Outputs aus. Dialogue: 0,0:39:53.20,0:39:56.92,Default,,0000,0000,0000,,Und das Interessante an Transaction\NOutputs… wie gesagt, den Betrag Dialogue: 0,0:39:56.92,0:40:01.76,Default,,0000,0000,0000,,kann man nicht verändern, sondern\NAlice muss die alle komplett ausgeben. Dialogue: 0,0:40:01.76,0:40:05.93,Default,,0000,0000,0000,,Jetzt sind aber diese Transaction Outputs\Nzusammengenommen 44 Bitcoin, Dialogue: 0,0:40:05.93,0:40:10.99,Default,,0000,0000,0000,,und nicht 42 Bitcoins. D.h. diese\NTransaktion gibt jetzt zuviel Geld aus, Dialogue: 0,0:40:10.99,0:40:17.33,Default,,0000,0000,0000,,also sie gibt mehr Transaction Outputs aus\Nals sie dann schlussendlich Geld dem Bob Dialogue: 0,0:40:17.33,0:40:21.40,Default,,0000,0000,0000,,überweist. Und was kann jetzt Alice\Ntun? Was sie tut, ist, sie macht Dialogue: 0,0:40:21.40,0:40:27.36,Default,,0000,0000,0000,,einen zweiten Output in ihrer Transaktion.\NUnd hier überweist sie jetzt Geld an Alice. Dialogue: 0,0:40:27.36,0:40:31.67,Default,,0000,0000,0000,,D.h. eine Transaktion in Bitcoin kann\Nbeliebig viele Inputs und beliebig viele Dialogue: 0,0:40:31.67,0:40:36.74,Default,,0000,0000,0000,,Outputs haben. Was es hier noch zu\Nsagen gibt, ist, haben wir immer noch Dialogue: 0,0:40:36.74,0:40:41.07,Default,,0000,0000,0000,,einen Unterschied. Jetzt haben wir 44\NBitcoin, die in die Transaktion reinkommen, Dialogue: 0,0:40:41.07,0:40:45.86,Default,,0000,0000,0000,,und nur 43 die rausgehen. Das restliche\NBitcoin, das jetzt hier nicht ausgegeben wird, Dialogue: 0,0:40:45.86,0:40:50.81,Default,,0000,0000,0000,,das ist quasi impliziert die Transaction\NFee, welche der Miner erhält, der diese Dialogue: 0,0:40:50.81,0:40:56.40,Default,,0000,0000,0000,,Transaktion mint. So eine Transaction Fee\Nist implementiert. Jetzt haben wir gesehen, Dialogue: 0,0:40:56.40,0:40:59.64,Default,,0000,0000,0000,,Alice hat durch das Erstellen dieser\NTransaktion neue Transaction Outputs Dialogue: 0,0:40:59.64,0:41:05.76,Default,,0000,0000,0000,,erstellt. Nämlich einen, der jetzt Bob\Ngehört, und einen der Alice gehört. Dialogue: 0,0:41:05.76,0:41:08.98,Default,,0000,0000,0000,,Und jetzt können wir auch nachvollziehen,\Ndiese Transaction Outputs, welche Alice Dialogue: 0,0:41:08.98,0:41:13.85,Default,,0000,0000,0000,,ausgegeben hat, die gehören alle irgendwie\Nzu anderen Transaktionen, welche es vorhin Dialogue: 0,0:41:13.85,0:41:19.80,Default,,0000,0000,0000,,gegeben hat. Nun, ein Transaction Output\Nkann einen von zwei Zuständen haben. Dialogue: 0,0:41:19.80,0:41:24.93,Default,,0000,0000,0000,,Er kann ausgegeben sein, oder nicht.\NUnd natürlich kann man nur die ausgeben, Dialogue: 0,0:41:24.93,0:41:29.32,Default,,0000,0000,0000,,die noch nicht ausgegeben sind. Und das\Nheißt, wenn ich wissen will, wieviel Geld Dialogue: 0,0:41:29.32,0:41:33.35,Default,,0000,0000,0000,,Alice gehört, dann suche ich mir alle\NTransaction Outputs zusammen, Dialogue: 0,0:41:33.35,0:41:38.36,Default,,0000,0000,0000,,die Alice gehören, und addiere die Summe,\Nund dann weiß ich, Alice gehört „soviel“ Geld. Dialogue: 0,0:41:38.36,0:41:41.20,Default,,0000,0000,0000,,Das kann ich für jeden Teilnehmer\Ndes Systems machen, dann weiß ich Dialogue: 0,0:41:41.20,0:41:46.90,Default,,0000,0000,0000,,für jeden Teilnehmer, wieviel Geld denn\Nder Person gehört. Wenn ich jetzt also Dialogue: 0,0:41:46.90,0:41:50.98,Default,,0000,0000,0000,,alle Transaction Outputs nehme, die\Nnicht ausgegeben sind, dann habe ich Dialogue: 0,0:41:50.98,0:41:56.53,Default,,0000,0000,0000,,den aktuellen Zustand des Netzwerks. Dann\Nweiß ich für jeden Teilnehmer, wieviel Geld Dialogue: 0,0:41:56.53,0:42:04.96,Default,,0000,0000,0000,,diese Person hat. Und genau diesen\NMechanismus macht sich ein Pruning Client Dialogue: 0,0:42:04.96,0:42:09.47,Default,,0000,0000,0000,,zunutze. Der sagt nämlich, eigentlich\Nbrauche ich nicht die ganze Blockchain Dialogue: 0,0:42:09.47,0:42:12.93,Default,,0000,0000,0000,,zu speichern, das ist ja blöd, denn wenn\Neine neue Transaktion reinkommt, und Dialogue: 0,0:42:12.93,0:42:17.26,Default,,0000,0000,0000,,ich wissen will ob die tatsächlich valide\Nist, dann muss ich nur prüfen, ob die Dialogue: 0,0:42:17.26,0:42:22.06,Default,,0000,0000,0000,,einen Output ausgibt, der noch unspent\Nist, denn wenn die Transaktion einen Dialogue: 0,0:42:22.06,0:42:25.52,Default,,0000,0000,0000,,Transaction Output ausgibt, der schon\Nausgegeben ist, dann ist die natürlich Dialogue: 0,0:42:25.52,0:42:29.43,Default,,0000,0000,0000,,nicht valide, man kann ja nicht dasselbe\NGeld zweimal ausgeben. Oder wenn Dialogue: 0,0:42:29.43,0:42:32.79,Default,,0000,0000,0000,,die Transaktion versucht, einen\NTransaction Output auszugeben, Dialogue: 0,0:42:32.79,0:42:36.22,Default,,0000,0000,0000,,den es gar nicht gibt, dann ist\Ndie natürlich auch nicht valide. Dialogue: 0,0:42:36.22,0:42:42.29,Default,,0000,0000,0000,,Was jetzt also ein Pruning Client tut –\Nund das tut übrigens auch ein Full Node: Dialogue: 0,0:42:42.29,0:42:46.27,Default,,0000,0000,0000,,wenn eine neue Transaktion reinkommt,\Nund da steht in der Transaktion „ich gebe Dialogue: 0,0:42:46.27,0:42:51.77,Default,,0000,0000,0000,,diesen Transaction Output aus“, dann\Ngeht der Full Node nicht und versucht, Dialogue: 0,0:42:51.77,0:42:55.93,Default,,0000,0000,0000,,die 100 GB große Blockchain zu durchsuchen\Nnach diesem Transaction Output, das wäre Dialogue: 0,0:42:55.93,0:43:00.16,Default,,0000,0000,0000,,ja blödsinnig, sondern der legt sich halt\Neine kleine Datenbank an, und dort Dialogue: 0,0:43:00.16,0:43:05.52,Default,,0000,0000,0000,,stehen alle Transaction Outputs drin.\NUnd dann sagt er sich, für jeden… Dialogue: 0,0:43:05.52,0:43:08.58,Default,,0000,0000,0000,,also alle Unspent Transaction Outputs\Nstehen dort drin, und dann sagt sich Dialogue: 0,0:43:08.58,0:43:12.09,Default,,0000,0000,0000,,der Client, für jede Transaktion,\Ndie reinkommt und die valide ist, Dialogue: 0,0:43:12.09,0:43:17.54,Default,,0000,0000,0000,,entferne ich alle Transaction Outputs die\Ndie Transaktion ausgibt aus der Datenbank, Dialogue: 0,0:43:17.54,0:43:22.87,Default,,0000,0000,0000,,und alle neuen Transaction Outputs füge\Nich dort ein. Und so behält der Client Dialogue: 0,0:43:22.87,0:43:28.53,Default,,0000,0000,0000,,den Zustand. Und der Pruning Client sagt\Nsich dann halt: „Naja, die Blöcke, die Dialogue: 0,0:43:28.53,0:43:31.55,Default,,0000,0000,0000,,brauche ich jetzt ja nicht mehr, weil ich\Nhabe den Zustand in der Datenbank, Dialogue: 0,0:43:31.55,0:43:35.38,Default,,0000,0000,0000,,der ist auch viel kleiner als all die\Nblöden Blöcke, die Blöcke werfe ich fort.“ Dialogue: 0,0:43:35.38,0:43:39.26,Default,,0000,0000,0000,,Der muss dann noch etwas vorsichtig sein,\Ndenn wenn jetzt plötzlich von weiter hinten Dialogue: 0,0:43:39.26,0:43:42.77,Default,,0000,0000,0000,,eine längere Kette kommt, dann muss er\Ndas ja wieder nachvollziehen können, Dialogue: 0,0:43:42.77,0:43:47.52,Default,,0000,0000,0000,,also wird er sich noch einige Blöcke\Nzusätzlich speichern, als nur den neuesten. Dialogue: 0,0:43:47.52,0:43:54.72,Default,,0000,0000,0000,,Aber er kann so sehr viel Speicherplatz\Nsparen. Er muss aber… trotzdem Dialogue: 0,0:43:54.72,0:44:00.42,Default,,0000,0000,0000,,muss ein Pruning Client eigentlich jede\NTransaktion, die es jemals gegeben hat, Dialogue: 0,0:44:00.42,0:44:04.49,Default,,0000,0000,0000,,herunterladen, und muss dann halt auch\Ndie alle verifizieren. Das braucht auch Dialogue: 0,0:44:04.49,0:44:08.28,Default,,0000,0000,0000,,immer noch sehr viel Rechenkraft, und\Nsehr viel Bandbreite. Und deshalb sind Dialogue: 0,0:44:08.28,0:44:13.30,Default,,0000,0000,0000,,solche Clients nicht geeignet\Nfür Mobilgeräte. Dialogue: 0,0:44:13.30,0:44:15.87,Default,,0000,0000,0000,,Und was man hier vielleicht noch sagen\Nkann, ich habe jetzt eigentlich irgendwie Dialogue: 0,0:44:15.87,0:44:25.30,Default,,0000,0000,0000,,gesagt, … Dialogue: 0,0:44:25.30,0:44:31.51,Default,,0000,0000,0000,,…ich habe jetzt gesagt, Alice gibt einen\NTransaction Output aus. Das ist… Dialogue: 0,0:44:31.51,0:44:34.57,Default,,0000,0000,0000,,In Wirklichkeit ist es in Bitcoin\Nrecht kompliziert implementiert. Dialogue: 0,0:44:34.57,0:44:38.79,Default,,0000,0000,0000,,Das funktioniert nämlich so, dass der\NTransaction Output hat ein Stück Code Dialogue: 0,0:44:38.79,0:44:44.94,Default,,0000,0000,0000,,drin. Dafür gibt es in Bitcoin eine eigene\NAssemblersprache, die das betreibt. Dialogue: 0,0:44:44.94,0:44:50.96,Default,,0000,0000,0000,,Und der Input muss jetzt ebenfalls ein\NStück Code enthalten. Und wenn die dann Dialogue: 0,0:44:50.96,0:44:55.67,Default,,0000,0000,0000,,nacheinander ausgeführt werden, muss das\Nam Schluss den Wert 'two' ergeben, Dialogue: 0,0:44:55.67,0:44:59.74,Default,,0000,0000,0000,,und nur in dem Fall wurde der Output\Nrichtig ausgegeben. Und das ist Dialogue: 0,0:44:59.74,0:45:03.82,Default,,0000,0000,0000,,ein ziemlich kompliziertes System, wie das\Nwirklich funktioniert. Das ist dann halt Dialogue: 0,0:45:03.82,0:45:07.44,Default,,0000,0000,0000,,eine eigene Programmiersprache, die ist\Nzwar nicht Turing-vollständig, aber damit Dialogue: 0,0:45:07.44,0:45:11.94,Default,,0000,0000,0000,,lassen sich dann alle möglichen lustigen\NRegeln implementieren. Die häufigste Regel Dialogue: 0,0:45:11.94,0:45:23.41,Default,,0000,0000,0000,,die man findet, in über 80%\Nder Fälle, sind sogenannte… Dialogue: 0,0:45:23.41,0:45:28.25,Default,,0000,0000,0000,,…die Regel sagt dann irgendsowas wie:\N„Um diesen Output ausgeben zu können, Dialogue: 0,0:45:28.25,0:45:32.38,Default,,0000,0000,0000,,musst du beweisen, dass du den geheimen\NSchlüssel besitzt zu dem öffentlichen Dialogue: 0,0:45:32.38,0:45:37.40,Default,,0000,0000,0000,,Schlüssel, dessen Hash ich jetzt hier\Nreinpacke.“ Und in dem Input steht dann Dialogue: 0,0:45:37.40,0:45:43.31,Default,,0000,0000,0000,,halt: „Ja, ich besitze diesen geheimen\NSchlüssel, und ich beweise dir das, Dialogue: 0,0:45:43.31,0:45:47.68,Default,,0000,0000,0000,,indem ich hier den öffentlichen Schlüssel\Nreinpacke und die Transaktion mit dem Dialogue: 0,0:45:47.68,0:45:52.84,Default,,0000,0000,0000,,geheimen Schlüssel signiere.“ Und dann\Nkann jemand, der das verifizieren will, Dialogue: 0,0:45:52.84,0:45:56.93,Default,,0000,0000,0000,,kann einfach den öffentlichen Schlüssel\Nnehmen, schauen ob das dem Hash entspricht, Dialogue: 0,0:45:56.93,0:46:04.63,Default,,0000,0000,0000,,und dann mit dem öffentlichen Schlüssel\Ndie Signatur der Transaktion verifizieren. Dialogue: 0,0:46:04.63,0:46:09.94,Default,,0000,0000,0000,,Das ist die mit Abstand häufigste Art,\Nwie diese Transaktionen in Wirklichkeit Dialogue: 0,0:46:09.94,0:46:14.24,Default,,0000,0000,0000,,funktionieren. Aber das ist halt dann sehr\Nkompliziert, und damit könnte man leicht Dialogue: 0,0:46:14.24,0:46:22.25,Default,,0000,0000,0000,,einen eigenen Vortrag füllen.\NDeshalb werde ich jetzt hier aufhören. Dialogue: 0,0:46:22.25,0:46:28.90,Default,,0000,0000,0000,,Habe ich da diese tolle Seite gebastelt. Dialogue: 0,0:46:28.90,0:46:32.92,Default,,0000,0000,0000,,– Ups, das ist eigentlich zu weit – Dialogue: 0,0:46:32.92,0:46:42.75,Default,,0000,0000,0000,,Finde ich es, oder nicht? Dialogue: 0,0:46:42.75,0:46:45.76,Default,,0000,0000,0000,,Ja, ha, gefunden! Unglaublich.\N{\i1}Lachen{\i0} Dialogue: 0,0:46:45.76,0:46:48.86,Default,,0000,0000,0000,,Also wir haben jetzt noch Zeit für Fragen,\Nwenn ihr noch was wissen wollt. Dialogue: 0,0:46:48.86,0:46:54.94,Default,,0000,0000,0000,,Oder ihr könnt mich auch erreichen,\Nam einfachsten hier über das DECT-Telefon Dialogue: 0,0:46:54.94,0:47:01.89,Default,,0000,0000,0000,,in dem Kongress, wenn ihr Fragen habt.\NIhr findet einen Handout der Slides Dialogue: 0,0:47:01.89,0:47:06.00,Default,,0000,0000,0000,,auch im Fahrplan. Und ich werde auch\Ndie Folien selbst noch hochladen, Dialogue: 0,0:47:06.00,0:47:09.52,Default,,0000,0000,0000,,und den entsprechenden Source Code\Nzum Erzeugen der Folien werde ich auch Dialogue: 0,0:47:09.52,0:47:11.46,Default,,0000,0000,0000,,verlinken. Dialogue: 0,0:47:11.46,0:47:12.96,Default,,0000,0000,0000,,{\i1}Beifall{\i0} Dialogue: 0,0:47:12.96,0:47:14.55,Default,,0000,0000,0000,,Herald: vimja!! Dialogue: 0,0:47:14.55,0:47:24.79,Default,,0000,0000,0000,,{\i1}andauernder Beifall{\i0} Dialogue: 0,0:47:24.79,0:47:31.54,Default,,0000,0000,0000,,Es ist noch einiges an Zeit für Fragen;\Nalso wenn ihr Fragen habt, Dialogue: 0,0:47:31.54,0:47:35.44,Default,,0000,0000,0000,,dann reiht euch an den Mikrofonen auf.\NEine Sache möchte ich sagen: Dialogue: 0,0:47:35.44,0:47:40.28,Default,,0000,0000,0000,,wenn ihr jetzt rausgehen wollt, verlasst\Nbitte leise den Saal, damit das Dialogue: 0,0:47:40.28,0:47:44.36,Default,,0000,0000,0000,,mit den Fragen einigermaßen klappt.\NLiebe Tür-Engel, wir lassen im Moment Dialogue: 0,0:47:44.36,0:47:50.43,Default,,0000,0000,0000,,noch niemanden rein. Erstmal können Leute\Nnur rausgehen. Und bitte tut das leise. Dialogue: 0,0:47:50.43,0:47:55.52,Default,,0000,0000,0000,,Wir fangen mit dem Signal-Engel an. Dialogue: 0,0:47:55.52,0:47:58.73,Default,,0000,0000,0000,,Signal Angel: Eine Frage aus dem Internet\Nbezüglich dem Man-in-the-middle Dialogue: 0,0:47:58.73,0:48:02.29,Default,,0000,0000,0000,,double-spending-Angriff. Könnte Mallory\Nnicht diesen Angriff gleichzeitig Dialogue: 0,0:48:02.29,0:48:07.21,Default,,0000,0000,0000,,mit derselben Fake-Blockchain gegen zehn\Nverschiedene Autohändler machen, und Dialogue: 0,0:48:07.21,0:48:12.89,Default,,0000,0000,0000,,mit dem gleichen Aufwand zehn Autos klauen?\NDamit würde es sich doch wieder lohnen, Dialogue: 0,0:48:12.89,0:48:20.05,Default,,0000,0000,0000,,auch wenn man mit dem Gegenwert eines\NAutos an Rechenzeit investieren müsste. Dialogue: 0,0:48:20.05,0:48:25.59,Default,,0000,0000,0000,,vimja: Das ist eine gute Überlegung die\Nich mir so noch auch gar nie gemacht habe. Dialogue: 0,0:48:25.59,0:48:30.03,Default,,0000,0000,0000,,Ich müsste darüber mal nachdenken. Ich\Nnehme aber grundsätzlich an, dass es Dialogue: 0,0:48:30.03,0:48:35.67,Default,,0000,0000,0000,,vermutlich funktionieren würde. Der\NAufwand wird dann aber halt sehr viel Dialogue: 0,0:48:35.67,0:48:40.97,Default,,0000,0000,0000,,größer, irgendwie um die Netzwerk-Nodes\Nzu kontrollieren. Grundsätzlich denke ich Dialogue: 0,0:48:40.97,0:48:44.95,Default,,0000,0000,0000,,aber, dass es kein… damit das System\Nwirklich sicher ist, sollte das Dialogue: 0,0:48:44.95,0:48:50.73,Default,,0000,0000,0000,,kein Argument sein dürfen. Also ich hätte\Njetzt auf Anhieb gesagt, dass es vermutlich Dialogue: 0,0:48:50.73,0:48:54.79,Default,,0000,0000,0000,,klappen würde. Dialogue: 0,0:48:54.79,0:48:58.25,Default,,0000,0000,0000,,Herald: Okay, dann machen wir weiter\Nmit Mikrofon 2, hier vorne, bitte! Dialogue: 0,0:48:58.25,0:49:03.22,Default,,0000,0000,0000,,Frage: Ja, hallo. Du hast gesagt, mit\Neiner 50%-Attack kann man im Prinzip Dialogue: 0,0:49:03.22,0:49:07.14,Default,,0000,0000,0000,,die Blockchains hijacken. Wenn man\Nsich jetzt mal eine hypothetische Dialogue: 0,0:49:07.14,0:49:11.48,Default,,0000,0000,0000,,Regierungsorganisation mit sehr, sehr,\Nsehr viel Rechenpower überlegt, Dialogue: 0,0:49:11.48,0:49:16.22,Default,,0000,0000,0000,,mal so ganz in den Raum geraten, gibt’s\NÜberlegungen, wie wahrscheinlich das ist? Dialogue: 0,0:49:16.22,0:49:19.54,Default,,0000,0000,0000,,vimja: Nun, es ist so, mit einfach\Nherkömmlicher Rechenpower wird das Dialogue: 0,0:49:19.54,0:49:22.75,Default,,0000,0000,0000,,kaum möglich sein, also irgendwie\Nfür diese spezielle Aufgabe, Dialogue: 0,0:49:22.75,0:49:28.40,Default,,0000,0000,0000,,den Double-SHA256-Hash, hat das Bitcoin-\NNetzwerk ein Vielfaches der Rechenkraft, Dialogue: 0,0:49:28.40,0:49:32.51,Default,,0000,0000,0000,,die selbst die 500 schnellsten Supercomputer\Naufbringen könnten. Es gibt aber eine Dialogue: 0,0:49:32.51,0:49:36.58,Default,,0000,0000,0000,,viel einfachere Möglichkeit, unser guter\NFreund China, denn die meisten… Dialogue: 0,0:49:36.58,0:49:40.07,Default,,0000,0000,0000,,denn heute ist es halt so: eigentlich\Nmöchte man gerne, dass die Miner Dialogue: 0,0:49:40.07,0:49:43.74,Default,,0000,0000,0000,,verteilt sind, und jeder ein wenig zuhause\Nminet. In Praxis ist es aber so, dass Dialogue: 0,0:49:43.74,0:49:47.77,Default,,0000,0000,0000,,das heute das große Geschäft ist. Und das\Nwird dann halt heute in Rechenzentren Dialogue: 0,0:49:47.77,0:49:54.28,Default,,0000,0000,0000,,in China betrieben. Und China hat heute\Nmehr als 50% der Rechenkraft von Bitcoin, Dialogue: 0,0:49:54.28,0:49:57.43,Default,,0000,0000,0000,,also, toll, unsere unabhängige Währung\Ngehört jetzt den Chinesen. Dialogue: 0,0:49:57.43,0:50:01.03,Default,,0000,0000,0000,,Und selbst wenn das nicht stimmen sollte,\Nund das nicht funktionieren sollte, Dialogue: 0,0:50:01.03,0:50:04.63,Default,,0000,0000,0000,,ist es so, dass all die spezielle\NHardware, die heute zum Mining Dialogue: 0,0:50:04.63,0:50:08.94,Default,,0000,0000,0000,,notwendig ist, in China hergestellt wird.\NUnd China könnte einfach all diese Fabriken, Dialogue: 0,0:50:08.94,0:50:12.71,Default,,0000,0000,0000,,in denen die hergestellt werden,\Nbeschlagnahmen, und nach einigen Monaten Dialogue: 0,0:50:12.71,0:50:15.12,Default,,0000,0000,0000,,hätten sie trotzdem wieder mehr\NRechenleistung als jeder andere, Dialogue: 0,0:50:15.12,0:50:21.25,Default,,0000,0000,0000,,und könnte die Währung so kontrollieren.\NAlso, das ist durchaus wahrscheinlich. Dialogue: 0,0:50:21.25,0:50:24.68,Default,,0000,0000,0000,,Herald: Dann machen wir weiter\Nmit Mikrofon 1, hier vorne, bitte. Dialogue: 0,0:50:24.68,0:50:28.97,Default,,0000,0000,0000,,Frage: Ja, mir geht’s auch gerade um die\NRechenpower. Also gibt es da irgendwie Dialogue: 0,0:50:28.97,0:50:34.20,Default,,0000,0000,0000,,Ansätze in anderen elektronischen\NWährungen, wie das verhindert werden kann, Dialogue: 0,0:50:34.20,0:50:40.38,Default,,0000,0000,0000,,dass immer quasi zum Stand der aktuellen\NTechnik die maximale Rechenpower nötig ist, Dialogue: 0,0:50:40.38,0:50:44.04,Default,,0000,0000,0000,,um so ein System laufen zu lassen? Dialogue: 0,0:50:44.04,0:50:47.40,Default,,0000,0000,0000,,vimja: Es hat zur Zeit, im Verlauf der\NZeit verschiedene Möglichkeiten, Dialogue: 0,0:50:47.40,0:50:51.70,Default,,0000,0000,0000,,also verschiedene Ansätze gegeben. Dialogue: 0,0:50:51.70,0:50:55.15,Default,,0000,0000,0000,,Das eine was man immer wieder versucht\Nhat, ist halt, dass man das nicht nur auf Dialogue: 0,0:50:55.15,0:50:59.72,Default,,0000,0000,0000,,Rechenkraft beschränkt, sondern dass man\Nsagt, der Angriff der braucht nicht nur Dialogue: 0,0:50:59.72,0:51:03.95,Default,,0000,0000,0000,,Rechenpower sondern auch viel RAM,\Noder viel Memory. Und dadurch ist es Dialogue: 0,0:51:03.95,0:51:08.25,Default,,0000,0000,0000,,sehr viel schwieriger, Hardware zu bauen.\NOder sehr viel teurer, Hardware zu bauen, Dialogue: 0,0:51:08.25,0:51:12.24,Default,,0000,0000,0000,,die darauf spezialisiert ist, und man\Nerhofft sich davon Erfolge, aber Dialogue: 0,0:51:12.24,0:51:16.01,Default,,0000,0000,0000,,schlussendlich hat man dort wieder\Ndasselbe Problem. Ich weiß aber, Dialogue: 0,0:51:16.01,0:51:21.50,Default,,0000,0000,0000,,dass Ethereum arbeitet an einem Konzept,\Ndas nennen sie Proof-of-Stake. Dialogue: 0,0:51:21.50,0:51:24.73,Default,,0000,0000,0000,,Und wie genau das funktioniert, kann ich\Ndir nicht sagen. Aber da hängt dann Dialogue: 0,0:51:24.73,0:51:29.16,Default,,0000,0000,0000,,die Wahrscheinlichkeit, dass du einen\NBlock erstellst, davon ab wieviel Geld Dialogue: 0,0:51:29.16,0:51:32.90,Default,,0000,0000,0000,,du besitzt in dem Netzwerk, oder sowas.\NUnd die brauchen dann eigentlich Dialogue: 0,0:51:32.90,0:51:35.84,Default,,0000,0000,0000,,kein Mining mehr. Und die haben dann halt\Nauch das Problem nicht mehr dass man Dialogue: 0,0:51:35.84,0:51:40.70,Default,,0000,0000,0000,,unglaublich viel Strom braucht, um das\NDing zu minen. Und ich dachte, die wollten Dialogue: 0,0:51:40.70,0:51:44.66,Default,,0000,0000,0000,,diesen Sommer umstellen. Ich habe dann\Naber das Ganze ein wenig aus den Augen Dialogue: 0,0:51:44.66,0:51:47.56,Default,,0000,0000,0000,,verloren, und kann dir jetzt nicht\Nsagen wie weit die damit sind. Dialogue: 0,0:51:47.56,0:51:48.26,Default,,0000,0000,0000,,Also grundsätzlich… Dialogue: 0,0:51:48.26,0:51:50.10,Default,,0000,0000,0000,,Frage: Wie heißt das nochmal? Dialogue: 0,0:51:50.10,0:51:53.57,Default,,0000,0000,0000,,vimja: ‚Proof-of-Stake‘. Und das wird in\NEthereum implementiert. Aber wie weit Dialogue: 0,0:51:53.57,0:51:57.49,Default,,0000,0000,0000,,die sind, kann ich dir nicht sagen. Das\Nmüsstest du selbst nachschauen gehen. Dialogue: 0,0:51:57.49,0:51:58.77,Default,,0000,0000,0000,,Frage: Danke. Dialogue: 0,0:51:58.77,0:52:02.44,Default,,0000,0000,0000,,Herald: Dann machen wir weiter mit\NMikrofon 4, dort drüben, bitte! Dialogue: 0,0:52:02.44,0:52:06.55,Default,,0000,0000,0000,,Frage: Ich stelle mal zwei Fragen. Das\Neine ist: öffentliche Grundbuchämter Dialogue: 0,0:52:06.55,0:52:11.47,Default,,0000,0000,0000,,könnte man doch sehr gut in der Blockchain\Numlegen [anlegen], und dadurch könnte Dialogue: 0,0:52:11.47,0:52:14.59,Default,,0000,0000,0000,,doch die Verwaltung sehr viel Geld\Neinsparen, und z.B. Handelsregister Dialogue: 0,0:52:14.59,0:52:16.73,Default,,0000,0000,0000,,sind ja auch öffentlich, die könnte man\Ndoch auch in die Blockchain verschieben. Dialogue: 0,0:52:16.73,0:52:20.45,Default,,0000,0000,0000,,Oder mache ich da irgendeinen Denkfehler,\Ndass es am Schluss für die Verwaltung Dialogue: 0,0:52:20.45,0:52:22.98,Default,,0000,0000,0000,,teurer kommt? Und was mich auch\Nnoch wundert, was deine Meinung Dialogue: 0,0:52:22.98,0:52:26.25,Default,,0000,0000,0000,,zu Smart Contracts ist. Dialogue: 0,0:52:26.25,0:52:30.30,Default,,0000,0000,0000,,vimja: Also, zu der ersten Frage, das ist\Nso, daran wird tatsächlich gearbeitet. Dialogue: 0,0:52:30.30,0:52:35.03,Default,,0000,0000,0000,,Insbesondere die britische Regierung hat\Nauch Forschungsgruppen, die erforschen Dialogue: 0,0:52:35.03,0:52:41.89,Default,,0000,0000,0000,,sollen, wie Blockchains der Verwaltung\Nhelfen können. Gerade beim Grundbuchamt, Dialogue: 0,0:52:41.89,0:52:46.00,Default,,0000,0000,0000,,also solche Systeme brauchen starke\NAnpassungen, gerade wenn wir uns Dialogue: 0,0:52:46.00,0:52:52.46,Default,,0000,0000,0000,,vorstellen, ein Grundbuchamt, wenn es dann\Njemandem gelingen würde, irgendwie Dialogue: 0,0:52:52.46,0:52:55.69,Default,,0000,0000,0000,,jetzt trotzdem ein Grundstück quasi\Nzu stehlen, und das würde einfach Dialogue: 0,0:52:55.69,0:53:01.96,Default,,0000,0000,0000,,in dieser Blockchain drin feststehen, wie\Nwürde man das wieder rückgängig machen? Dialogue: 0,0:53:01.96,0:53:06.12,Default,,0000,0000,0000,,Also wenn wir heute ein Grundbuchamt\Nhaben, dann können die alles überschreiben. Dialogue: 0,0:53:06.12,0:53:10.23,Default,,0000,0000,0000,,Und irgendwie möchten wir ja dann trotzdem\Nnicht einfach nur dieser Blockchain vertrauen. Dialogue: 0,0:53:10.23,0:53:14.81,Default,,0000,0000,0000,,Wir möchten trotzdem die Möglichkeit\Nhaben, dass gewisse Stellen, gerade eben Dialogue: 0,0:53:14.81,0:53:18.02,Default,,0000,0000,0000,,unser Staat, das überschreiben können.\NDa müssen dann in diese Blockchains Dialogue: 0,0:53:18.02,0:53:22.46,Default,,0000,0000,0000,,zusätzliche Mechanismen eingebaut werden,\Ndass das trotzdem geht, und das ist dann Dialogue: 0,0:53:22.46,0:53:26.85,Default,,0000,0000,0000,,halt bedenklich, weil jetzt trotzdem da\Njemand das Zeugs kaputtmachen kann. Dialogue: 0,0:53:26.85,0:53:30.75,Default,,0000,0000,0000,,Also das ist nicht ganz einfach, diese\NDinge zu tun. Aber ich denke schon, Dialogue: 0,0:53:30.75,0:53:38.36,Default,,0000,0000,0000,,dass gerade Grundbuchämter eine gute\NChance sind, und das ist vermutlich auch Dialogue: 0,0:53:38.36,0:53:43.76,Default,,0000,0000,0000,,etwas vom Ersten, was wir implementiert\Nsehen werden. Soviel für öffentliche Ämter. Dialogue: 0,0:53:43.76,0:53:48.00,Default,,0000,0000,0000,,Aber ich denke auch, dass es einen\NHybridbetrieb geben wird. Also Dialogue: 0,0:53:48.00,0:53:51.58,Default,,0000,0000,0000,,dass man quasi sagt, das ist zwar\Nöffentlich in einer Blockchain, aber Dialogue: 0,0:53:51.58,0:53:56.36,Default,,0000,0000,0000,,schlussendlich, was wirklich gilt ist\Nimmer noch das, was im Grundbuchamt steht, Dialogue: 0,0:53:56.36,0:53:59.48,Default,,0000,0000,0000,,und das wird dann halt solange so\Nweiterbetrieben, bis sich das wirklich Dialogue: 0,0:53:59.48,0:54:03.22,Default,,0000,0000,0000,,bewährt hat, und man den Übergang macht.\NUnd die zweite Frage, sorry, habe ich Dialogue: 0,0:54:03.22,0:54:07.19,Default,,0000,0000,0000,,wieder vergessen. Dialogue: 0,0:54:07.19,0:54:10.50,Default,,0000,0000,0000,,Herald: Okay, wenn das die Frage\Nbeantwortet und er nicht wieder aufsteht, Dialogue: 0,0:54:10.50,0:54:14.76,Default,,0000,0000,0000,,dann würde ich jetzt mit Mikrofon 7\Nweitermachen, dort oben, bitte. Dialogue: 0,0:54:14.76,0:54:20.14,Default,,0000,0000,0000,,Frage: Ja, vielen Dank für den spannenden\NVortrag. Mich würde noch interessieren, Dialogue: 0,0:54:20.14,0:54:24.97,Default,,0000,0000,0000,,vielleicht noch was zu dem Thema ‚Ende\Nder Bitcoins‘, die sind ja anscheinend Dialogue: 0,0:54:24.97,0:54:29.22,Default,,0000,0000,0000,,begrenzt, soweit ich das verstanden habe.\NUnd wie wird das Erstellen von neuen Dialogue: 0,0:54:29.22,0:54:33.88,Default,,0000,0000,0000,,Blöcken letztendlich in ferner Zukunft\Ndann belohnt, werden die einfach immer so Dialogue: 0,0:54:33.88,0:54:36.69,Default,,0000,0000,0000,,weiter unterteilt, und man bekommt dann\Nnur noch Bruchteile von Bitcoins Dialogue: 0,0:54:36.69,0:54:38.28,Default,,0000,0000,0000,,als Belohnung, oder wie funktioniert das? Dialogue: 0,0:54:38.28,0:54:41.52,Default,,0000,0000,0000,,vimja: Das ist eine sehr gute Frage,\Ndie sich natürlich auch diesen Sommer Dialogue: 0,0:54:41.52,0:54:45.47,Default,,0000,0000,0000,,gestellt hat, weil sich ja der\NBlock Reward halbiert hat. Dialogue: 0,0:54:45.47,0:54:49.15,Default,,0000,0000,0000,,Und erstaunlicherweise ist es dann aber\Neigentlich ohne Weiteres weitergegangen. Dialogue: 0,0:54:49.15,0:54:53.21,Default,,0000,0000,0000,,Nun ist es so, der Mechanismus,\Nder eigentlich greifen sollte, ist Dialogue: 0,0:54:53.21,0:54:57.88,Default,,0000,0000,0000,,die Transaction Fees. Dass es durch\Ndie Transaction Fees getragen wird, Dialogue: 0,0:54:57.88,0:55:02.55,Default,,0000,0000,0000,,diese Gebühr. Nur ist es heute so, dass\Ndie Transaction Fees so niedrig sind, Dialogue: 0,0:55:02.55,0:55:07.41,Default,,0000,0000,0000,,dass das Minen sich nicht rentieren würde,\Nalso der Stromverbrauch ist viel zu hoch, Dialogue: 0,0:55:07.41,0:55:13.72,Default,,0000,0000,0000,,als dass es sich lohnen würde, nur\Nfür die Transaction Fees zu minen. Dialogue: 0,0:55:13.72,0:55:17.23,Default,,0000,0000,0000,,Andererseits ist es aber so, dass die\NTransaction Fees heute schon sehr hoch Dialogue: 0,0:55:17.23,0:55:21.09,Default,,0000,0000,0000,,sind, also die kommen heute irgendwo\Nzwischendurch schon in die Bereiche Dialogue: 0,0:55:21.09,0:55:24.74,Default,,0000,0000,0000,,der Transaction Fees, die man auch\Nzahlt bei Kreditkartenüberweisungen. Dialogue: 0,0:55:24.74,0:55:28.58,Default,,0000,0000,0000,,Und das ist natürlich absolut lächerlich\Nhoch. Und dann ist es aber auch so, Dialogue: 0,0:55:28.58,0:55:32.97,Default,,0000,0000,0000,,dass die Blöcke voll sind, d.h. wenn das\NBlock Limit – das ist ein künstliches Dialogue: 0,0:55:32.97,0:55:37.26,Default,,0000,0000,0000,,Limit, wie groß die Blöcke sein dürfen,\Nund die Community führt da großen Krieg Dialogue: 0,0:55:37.26,0:55:41.69,Default,,0000,0000,0000,,darüber ob man das jetzt ändern soll oder\Nnicht – aber wenn dieses Limit halt nicht Dialogue: 0,0:55:41.69,0:55:44.77,Default,,0000,0000,0000,,erhöht wird, dann passen nicht mehr\NTransaktionen rein, und dann ist Dialogue: 0,0:55:44.77,0:55:48.77,Default,,0000,0000,0000,,der einzige Weg höhere Transaction…\Nalso mehr Transaction Fees zu haben Dialogue: 0,0:55:48.77,0:55:51.62,Default,,0000,0000,0000,,für den Miner, ist diese Transaction Fees\Nzu erhöhen. Und wenn man die weiter Dialogue: 0,0:55:51.62,0:55:55.92,Default,,0000,0000,0000,,erhöht, dann lohnt es sich einfach\Nnicht mehr, Bitcoin zu verwenden. Dialogue: 0,0:55:55.92,0:55:58.53,Default,,0000,0000,0000,,Im Moment ist es noch nicht so ein\NProblem, für die nächsten vier Jahre Dialogue: 0,0:55:58.53,0:56:02.64,Default,,0000,0000,0000,,sind es ja noch 12,5 Bitcoin die\Nman kriegt. Aber wie es danach Dialogue: 0,0:56:02.64,0:56:07.20,Default,,0000,0000,0000,,weitergehen wird, das muss man abwarten,\Nund dann schauen, was da genau passiert. Dialogue: 0,0:56:07.20,0:56:10.75,Default,,0000,0000,0000,,Und ich denke dass das ist auch noch ein\Ndynamisches System, das sich schnell Dialogue: 0,0:56:10.75,0:56:14.96,Default,,0000,0000,0000,,wandelt, und da werden auch noch\Nviele Leute viele gute Ideen haben. Dialogue: 0,0:56:14.96,0:56:17.77,Default,,0000,0000,0000,,Frage: Darf ich noch mal kurz was\Nnachfragen? D.h. der Proof-of-Work Dialogue: 0,0:56:17.77,0:56:22.98,Default,,0000,0000,0000,,ist nicht der direkte Bitcoin, den ich\Nbekomme, also nicht die 12,5 Bitcoins, Dialogue: 0,0:56:22.98,0:56:28.23,Default,,0000,0000,0000,,die ich bekomme, um einen Block zu\Nerstellen, ist nicht der Proof-of-Work? Dialogue: 0,0:56:28.23,0:56:31.93,Default,,0000,0000,0000,,vimja: Nein nein, das ist… die 12,5 Bitcoin\Ndie du kriegst, also die 12,5 Bitcoin Dialogue: 0,0:56:31.93,0:56:34.94,Default,,0000,0000,0000,,plus das klein weniger, was von den\NTransaction Fees kommt, das ist Dialogue: 0,0:56:34.94,0:56:39.43,Default,,0000,0000,0000,,der Block Reward. Nennt sich das. Und der\NProof-of-Work ist einfach der Beweis dafür, Dialogue: 0,0:56:39.43,0:56:44.79,Default,,0000,0000,0000,,dass du die Arbeit auf dich genommen\Nhast, einen Block zu erstellen. Dialogue: 0,0:56:44.79,0:56:49.50,Default,,0000,0000,0000,,Herald: Gut, dann machen wir oben\Nauf dem Balkon weiter mit der 8. Bitte. Dialogue: 0,0:56:49.50,0:56:52.60,Default,,0000,0000,0000,,Frage: Ja, das ganze Erstellen von\Nden Blöcken basiert ja darauf, dass Dialogue: 0,0:56:52.60,0:56:56.68,Default,,0000,0000,0000,,Transaktionen in des System reinkommen.\NDie Frage wäre jetzt, was passiert, wenn Dialogue: 0,0:56:56.68,0:57:01.88,Default,,0000,0000,0000,,keine Transaktionen zur Verfügung stehen.\NWerden dann Dummy-Transaktionen erzeugt, Dialogue: 0,0:57:01.88,0:57:03.88,Default,,0000,0000,0000,,oder leere Blöcke, oder was passiert dann? Dialogue: 0,0:57:03.88,0:57:08.22,Default,,0000,0000,0000,,vimja: Nein, das kannst du sehen, wenn du\Nganz zurückgehst, die ersten Blöcke, die Dialogue: 0,0:57:08.22,0:57:11.69,Default,,0000,0000,0000,,überhaupt erstellt wurden, dort gab es ja\Nnoch keine Transaktionen. Was hätte auch Dialogue: 0,0:57:11.69,0:57:16.55,Default,,0000,0000,0000,,überwiesen werden sollen wenn niemand Geld\Nhat. Und da war es dann halt so, dass Dialogue: 0,0:57:16.55,0:57:21.18,Default,,0000,0000,0000,,der Block enthält dann nur die Coin-based-\NTransaktion. Der Miner wird ja immer Dialogue: 0,0:57:21.18,0:57:25.00,Default,,0000,0000,0000,,eine Coin-based-Transaktion machen.\NEinfach, weil es für ihn interessant ist. Dialogue: 0,0:57:25.00,0:57:33.15,Default,,0000,0000,0000,,Und dann erstellt er halt einen Block, der\Nnur diese Coin-based-Transaktion enthält. Dialogue: 0,0:57:33.15,0:57:35.94,Default,,0000,0000,0000,,Herald: Dann machen wir weiter\Nhier vorne mit der 2. Bitte. Dialogue: 0,0:57:35.94,0:57:38.30,Default,,0000,0000,0000,,{\i1}Mikro 2 will Mikro 4 Vorrang geben{\i0}\NBitte? Dialogue: 0,0:57:38.30,0:57:41.72,Default,,0000,0000,0000,,Wenn du nicht möchtest, dann machen\Nwir mit der 4 weiter! Sehr fair von dir! Dialogue: 0,0:57:41.72,0:57:48.83,Default,,0000,0000,0000,,Frage: Och, dankeschön. Ich habe das Thema\N‚Blockchain‘ in verschiedenen Kontexten Dialogue: 0,0:57:48.83,0:57:51.48,Default,,0000,0000,0000,,jetzt im letzten Jahr sehr viel gesehen.\NEs ist fast ein Buzzword in sehr sehr Dialogue: 0,0:57:51.48,0:57:55.90,Default,,0000,0000,0000,,vielen Branchen, von FinTech bis zu\NIoT oder wo auch immer. Konntest du Dialogue: 0,0:57:55.90,0:57:59.92,Default,,0000,0000,0000,,im Kontext deiner Arbeit ein bisschen\Nso einen Trend raussehen, wo sich da Dialogue: 0,0:57:59.92,0:58:04.10,Default,,0000,0000,0000,,erste Anwendungen\Nwirklich bewähren können? Dialogue: 0,0:58:04.10,0:58:08.42,Default,,0000,0000,0000,,vimja: Erste Anwendungen gibt es ja bereits.\NDu kannst mit Bitcoin Dinge bezahlen. Dialogue: 0,0:58:08.42,0:58:13.93,Default,,0000,0000,0000,,Aber das ist so ein wenig eine Sache.\NEines, was ich gesehen habe, wo ich mich Dialogue: 0,0:58:13.93,0:58:17.80,Default,,0000,0000,0000,,aber schlicht weigere mich zu beteiligen,\Nist halt dass Banken das zu verwenden Dialogue: 0,0:58:17.80,0:58:22.89,Default,,0000,0000,0000,,versuchen, um die Transaktionen zwischen\Nden Banken zu regeln. Da wird es ja, Dialogue: 0,0:58:22.89,0:58:26.41,Default,,0000,0000,0000,,glaube ich, im Anschluss im Saal G\Neinen Talk geben dazu, wie das heute Dialogue: 0,0:58:26.41,0:58:30.98,Default,,0000,0000,0000,,gemacht wird, wie Banken zwischeneinander\NGeld austauschen. Und das möchte man Dialogue: 0,0:58:30.98,0:58:34.22,Default,,0000,0000,0000,,in Zukunft mit Bitcoin [{\i1}eher: Blockchain{\i0}]\Nmachen. Und da sind die Banken auch dran, Dialogue: 0,0:58:34.22,0:58:38.94,Default,,0000,0000,0000,,sehr viel Geld und sehr viel Zeit rein zu\Ninvestieren. Das ist halt sehr schade, Dialogue: 0,0:58:38.94,0:58:43.21,Default,,0000,0000,0000,,dass diese eigentlich coole Technologie\Njetzt für sowas verwendet werden soll. Dialogue: 0,0:58:43.21,0:58:48.94,Default,,0000,0000,0000,,Aber ich denke das ist eine Anwendung die\Nkommt. Dann eben einfache Kryptowährungen, Dialogue: 0,0:58:48.94,0:58:53.54,Default,,0000,0000,0000,,wie etwa Bitcoin, um Dinge\Nzu bezahlen. Und auch… Dialogue: 0,0:58:53.54,0:58:57.59,Default,,0000,0000,0000,,ich denke auch mit Ethereum, eben gerade\Ndiese Smart Contracts werden kommen, Dialogue: 0,0:58:57.59,0:59:01.34,Default,,0000,0000,0000,,dass man halt eben irgendwelche Dinge,\Nirgendwelche Third Parties, die man Dialogue: 0,0:59:01.34,0:59:05.97,Default,,0000,0000,0000,,verwendet für Dinge zu regeln, ersetzen\Nwir jetzt aber. Was jetzt als Erstes Dialogue: 0,0:59:05.97,0:59:09.56,Default,,0000,0000,0000,,quasi den Durchbruch schaffen wird und\Nals Großes eingesetzt werden wird, Dialogue: 0,0:59:09.56,0:59:11.77,Default,,0000,0000,0000,,kann ich dir nicht sagen. Dialogue: 0,0:59:11.77,0:59:15.63,Default,,0000,0000,0000,,Herald: Gut, dann, wir sind so ganz knapp\Nan der Zeit, aber du darfst deine Frage Dialogue: 0,0:59:15.63,0:59:17.05,Default,,0000,0000,0000,,auf jeden Fall stellen, bitte! Dialogue: 0,0:59:17.05,0:59:20.52,Default,,0000,0000,0000,,Frage: Ist auch nur eine ganz kurze,\Nschnelle Frage. Gibt es einen Schutz Dialogue: 0,0:59:20.52,0:59:24.46,Default,,0000,0000,0000,,gegen DDoS, dass ich irgendwie das\NNetzwerk mit falschen Transaktionen Dialogue: 0,0:59:24.46,0:59:27.89,Default,,0000,0000,0000,,bombardiere, und dann bricht alles\Nzusammen, gibt es da irgendwie Dialogue: 0,0:59:27.89,0:59:29.12,Default,,0000,0000,0000,,einen Schutz dagegen? Dialogue: 0,0:59:29.12,0:59:31.93,Default,,0000,0000,0000,,vimja: Ja, das war ja ganz interessant.\NDas hat es glaube ich vor über einem Jahr Dialogue: 0,0:59:31.93,0:59:35.05,Default,,0000,0000,0000,,gegeben, bei Bitcoin, dass das passiert\Nist, und die waren sich dann Dialogue: 0,0:59:35.05,0:59:38.63,Default,,0000,0000,0000,,nicht so ganz einig in der Community,\Nweil die mögen sich sowieso nicht mehr, Dialogue: 0,0:59:38.63,0:59:42.27,Default,,0000,0000,0000,,und ‚kriegen‘ nur miteinander, die waren\Nsich da nicht so ganz einig, ob das jetzt Dialogue: 0,0:59:42.27,0:59:46.39,Default,,0000,0000,0000,,ein Test war, oder ob das ein DDoS war.\NUnd das Interessante daran ist ja, Dialogue: 0,0:59:46.39,0:59:51.63,Default,,0000,0000,0000,,dass es ja tatsächlich Geld kostet, eine\NTransaktion zu machen. Also du zahlst Dialogue: 0,0:59:51.63,0:59:55.79,Default,,0000,0000,0000,,zuerst eine Transaction-Gebühr, und der\NSchutz sollte eigentlich, hoffentlich, Dialogue: 0,0:59:55.79,0:59:59.52,Default,,0000,0000,0000,,sein, dass das da zu teuer ist.\NAber offenbar gibt es immer noch Dialogue: 0,0:59:59.52,1:00:04.34,Default,,0000,0000,0000,,so viele Bitcoin-Millionäre, die einfach\NBitcoins haben zum Davonschmeißen, Dialogue: 0,1:00:04.34,1:00:08.20,Default,,0000,0000,0000,,und die dann sowas tun können. Es\Nwird auf jeden Fall an irgendwelchen Dialogue: 0,1:00:08.20,1:00:11.77,Default,,0000,0000,0000,,Schutzmechanismen gearbeitet, aber\Nwas das ist… {\i1}zuckt mit den Schultern{\i0} Dialogue: 0,1:00:11.77,1:00:15.53,Default,,0000,0000,0000,,Also was es gibt, in Bitcoin,\Nist dieses Replace-by-Fee, Dialogue: 0,1:00:15.53,1:00:22.89,Default,,0000,0000,0000,,damit die Transaction-Gebühr nach\Nder Veröffentlichung der Transaktion Dialogue: 0,1:00:22.89,1:00:25.92,Default,,0000,0000,0000,,anschließend noch erhöht werden\Nkann. Und damit kannst du halt… Dialogue: 0,1:00:25.92,1:00:29.03,Default,,0000,0000,0000,,wenn du jetzt siehst, es kommen sehr viele\NDDoS-Transaktionen rein, kannst du halt Dialogue: 0,1:00:29.03,1:00:33.64,Default,,0000,0000,0000,,im Nachhinein die Transaction-Gebühr\Nerhöhen, und das dadurch den Minern Dialogue: 0,1:00:33.64,1:00:38.48,Default,,0000,0000,0000,,quasi schmackhaft machen, deine\Nvalide Transaktion zu includen. Dialogue: 0,1:00:38.48,1:00:43.60,Default,,0000,0000,0000,,Dieses Replace-by-Fee, dieses RBF,\Nist aber sehr stark umstritten, und Dialogue: 0,1:00:43.60,1:00:49.58,Default,,0000,0000,0000,,wird auch standardmäßig nicht\Naktiviert von der Client-Software. Dialogue: 0,1:00:49.58,1:00:56.29,Default,,0000,0000,0000,,Herald: Gut, dann danke vimja, für diese\Ngroßartige Einführung in die Blockchain! Dialogue: 0,1:00:56.29,1:01:01.03,Default,,0000,0000,0000,,{\i1}Beifall{\i0} Dialogue: 0,1:01:01.03,1:01:05.07,Default,,0000,0000,0000,,{\i1}Abspannmusik{\i0} Dialogue: 0,1:01:05.07,1:01:24.90,Default,,0000,0000,0000,,{\i1}Untertitel erstellt von c3subtitles.de\Nim Jahr 2017. Mach mit und hilf uns!{\i0}