 Gut, dann machen wir weiter mit dem nächsten Vortrag. Der ist von Vimja, der ist Informatikstudent aus Bern in der Schweiz. Und er arbeitet beziehungsweise er beschäftigte sich mit Bitcoin und Ethereum und schrieb seine Bachelorarbeit über die Suche nach Informationen in der Bitcoin Blockchain. Und da macht es total Sinn, dass der uns jetzt eine Einführung zu Blockchains präsentieren wird. Ein großer Applaus für Vimja! Das ist deine Bühne. Toll, das ist jetzt gerade kaputt gegangen. So ist besser. Genau, also das geht es natürlich auch nicht. Mache das halt von Hand. Es ist vermutlich, weil ihr alle das wie viel braucht, geht es 2,4 Gigahertz, spand nicht mehr. Ja, das hat euch ja alles schon gesagt, der Herr Alt. In dieser Zeit, in der ich mich mit Blockchains befasst habe, durfte ich natürlich sehr viele sehr interessante Dinge lernen. Und ich möchte jetzt heute Abend ein Teil dieses Wissens an euch weitergeben. Das Ganze ist natürlich ein sehr komplexes Thema, das viele komplizierte Dinge enthält. Und deshalb fangen wir jetzt mit etwas sehr einfacher, was wir alles kennen. Und zwar herkommliche Besitzsysteme, also Systeme, die ausdrücken, wem das etwas gehört. Und eigentlich mit der Erkenntnis, dass man all diese Besitzsysteme als Zustandsübergangssysteme darstellen kann. Das gilt sowohl für Finanzsysteme, die wir haben, um mehr Geld zu verwalten, als auch etwa für Grundstücke, also Systeme, in denen wir verwalten, wem das ein Grundstück gehört. Das Mapping funktioniert ja nicht so, dass wir sagen, der Zustand ist die Sammlung der Informationen, wem das etwas gehört. Und jedes Übertragen eines Besitzes ist eine Transition, die zu einem neuen Zustand führt. Also am Beispiel eines finanziellen Systems sagen wir, der Zustand ist die Sammlung aller Konten, die es gibt. Das drückt für jede Person aus, wie viel Geld das hier gehört. Um ein Übergang ist, wenn jemand eine Transaktion macht, also Geld überweist von einem Konto zu einem anderen, dann führt es zu einem neuen Zustand. So, das sehen wir hier abgebildet mit Grundstücken. Ich sehe hier der Zustand, der enthält diese Information, wem das die Grundstücke gehören. Und dann jetzt verkauft er Bob sein Grundstück Nummer 42 an Alice. Und das führt zu einem neuen Zustand. Ich habe da den Unterschied markiert, damit er eindeutig sichtbar ist. Nun, in all diesen Systemen ist es sehr wichtig, dass sich alle Teilnehmer des Systems auf einen Zustand einigen können, dass sie sich einig sind, wem das was gehört. Denn wenn sie das nicht können, sind Angriffe auf das System möglich, insbesondere der sogenannte Double Spend Angriff, der in der Blockchainwelt bekannt und gefürchtet ist. Und was bedeutet das? Es ist ganz einfach, wenn jemand etwas zweimal ausgibt. Bei Geld ist es ein wenig abstrakt. Da gibt man zweimal dasselbe Geld aus. Aber bei Grundstücken ist es ganz einfach. Stellen wir uns vor, jemand verkauft dasselbe Grundstück zweimal. Das ist natürlich kriminell und darf nicht vorkommen. Schauen wir uns mal, wie man das funktioniert. Stellen wir uns vor, Mallroy hat ein schönes Grundstück, das Grundstück Nummer 5. Und sowohl Alice als auch Bob möchten gerne das Grundstück kaufen. Und Mallroy wird jetzt versuchen, das an beide zu verkaufen. Also trifft er sich mit Alice. Das ist der aktuelle Zustand. Wir haben, wir sehen, das Grundstück Nummer 5 gehört hier in Mallroy. Er trifft sich mit Alice. Und der verkauft das an Alice. Er überweist hier das Grundstück. Wir sehen diese Transition überweist das Grundstück von Mallroy an Alice. Und im neuen Zustand gehört es jetzt der Alice. So, der Bob, der hat davon nichts mitgekriegt. Irgendwie Bob und Alice wissen immer noch nichts recht, wie man sicher mit den anderen kommuniziert. Und deshalb weiß der Bob jetzt nichts davon, dass Alice das Grundstück gekauft hat. Der denkt, das Grundstück gehört immer noch Mallroy. Also trifft er sich mit Mallroy. Und auch er einigt sich mit Mallroy auf einen Preis. Und Mallroy tut jetzt so aus, wo er den Besitz des Grundstücks an Bob übertragen. Und für Bob sieht Welts jetzt so aus. Bob ist überzeugt, dass es der korrekte Zustand des Systems ist. Das ist dann natürlich ein Problem, weil Bob und Alice sind sich jetzt gar nicht einig darüber, dass das Grundstück gehört. Und das System ist kaputt, weil Bob und Alice nicht mehr mit den anderen handeln und auch, wenn jetzt jemand anderes das Grundstück kaufen möchte. Bei wem kauft er das denn jetzt? Was ist denn echtmäßig? Nun, in der Welt der Grundstücke gibt es dafür eine ganz einfache Lösung, nämlich das Grundbuchamt. Und das Grundbuchamt fungiert eigentlich als zentrale Referenzstelle, bei die den Zustand verwaltet und alle Änderungen verwaltet. Wenn jemand ein Grundstück verkauft, muss das über das Grundbuchamt ledigt werden. Das Grundbuchamt überprüft, dass das überhaupt zulässig ist, ob das Grundstück wirklich der Person gehört und führt das dann nach. Und so kann das Grundbuchamt diese einfachen Angriffe verhindern. So, diese Lösung funktioniert auch für Finanzsysteme. Wenn wir an Banken denken, weil ich ein Konto habe, dann halt die Bank die Zentralautorität, welche den Zustand verwaltet. Für jedes Mal, wenn ich eine Transaktion mache, also Geldüberweise überprüfe die Bank vorher, ob ich wirklich das nötige Geld dazu habe und dann wird mein Konto-Stand nachgeführt und die verwaltet so für alle Teilnehmer den Zustand. Und das funktioniert eigentlich erstaunlich gut. Nun, weil wir ein System mit den Bezahlungen übers Internet abwickeln können und wir hätten gerne, dass das zentral ist, weil wenn das nicht zentral ist, dann kann natürlich eine zentrale Autorität das System zensieren und manipulieren und eine zentrale Stelle kann angegriffen werden. Ich denke, wir haben das alle in den letzten Jahren beobachten müssen, wie PayPal sehr einfach willkürlich konnten, sperrt und das System zensiert. Deshalb brauchen wir ein besseres System, eine bessere Lösung für das Internetseitalter. Und diese bessere Lösung ist natürlich die Blockchain. Die Blockchain bringt einige ganz unglaubliche Eigenschaften mit sich. Die Blockchain braucht keine zentrale Stelle und im Zustand zu verwalten. Die Teilnehmer des Systems müssen sich gegenseitig nicht vertrauen. Sie müssen sich gegenseitig nicht kennen. Sie müssen nicht einmal wissen, wie viele Leute das denn eigentlich da teilnehmen und trotzdem können die sich alle immer auf einen Zustand des Systems einigen. Ich werde das jetzt demonstrieren, die Regeln, die wir brauchen, um das zu ermöglichen. Anhand eines sehr einfachen Blockchain, die in diesem ersten Kapitel auch noch kein Proof-of-or-Cut hat, also diese erste Blockchain wird noch angreifbar sein. Und ich werde auch zeigen, wie es geht. In der nächsten Kapitel werde ich erklären, welche Maßnahmen wir ergreifen müssen, um Angriffe zu verhindern. Das Ganze fängt dann mit dem Netzwerk, welches wir nutzen. Also wir sagen quasi, wir sind all dies Leute und wir würden gerne miteinander Transaktion machen können. Und zuerst genügt wir uns alle auf einen Ursprungszustand. Damit fangen wir an. Wir sagen zum Beispiel, am Anfang gehört allen nichts. Also es ist ein leerer Zustand. Dann brauchen wir ein Pier-to-Pier-Netzwerk. Und jedes Mal, wenn jemand Geld überweisen, jemand anderes, dann veröffentlichte die Transaktion in diesem Netzwerk und das Netzwerk leitet die Transaktion so lange, alle Teilnehmer, beide bis alle Teilnehmer diese Transaktion gesehen haben. Das bringt natürlich viele Probleme mit sich. Das Netzwerk sind wir nicht synchronisiert. Nicht alle Leute sehen die gleichen Transaktionen. Die dreienfolge Transaktion ist unklar. Leute werden versuchen das anzugreifen. Das wird dazu führen, dass es Transaktionen gibt, die nicht miteinander kompatibel sind. Und irgendwie Transaktionen, die abhängen von nicht kompatibelem Transaktion, dann auch wieder nicht kompatibel sind. Also das ist ein riesengroßes Durcheinander da. Und deshalb brauchen wir uns eine Möglichkeit, wie wir uns alle auf einen Zustand, auf einen Konsens einigen können. Und wie gesagt, das ist jetzt die Blockchain. Und wir definieren einige Regeln, die wir anwenden, um uns einigen. Wir sagen, wir gruppieren die Transaktion, die vorher so los auf dem Netzwerk fahren zu blocken. Die Blöcke hängen alle voneinander ab. Wir sagen dann auch, der aktuelle Zustand des Netzwerks ist das Ende, der längsten Kette zusammenhängen der Blöcke. Und die Blöcke müssen einige Kriterien erfüllen. Also das ist jetzt quasi der leere Zustand, mit dem wir beginnen. Und da kommen da Transaktionen über das Netzwerk. Und irgendwann macht jemand einen Block, der diese Transaktion zusammenfasst. Und jetzt sehen wir am Ende, dieses Block ist der Zustand, weil ich diesen Zustand nachvollziehen will. Dann nehme ich den leeren Urpunktzustand und dann jede Transaktion aus dem ersten Block. Und dann wende ich diese Transaktion eine nach dem anderen aus dem Zustand an. Und dann erhalte ich den Endzustand. Mit der Zeit kommen neue Transaktionen über das Netzwerk. Und diese Transaktionen werden nicht Teil des Zustands. Wir haben gesagt, der Zustand ist das Ende der längsten Kette von blocken. Und die sind kein Block. Erstens, wenn jemand einen Block daraus macht, werden die Teil des Zustands. Wir sehen auch, die Blöcke hängen jeweils voneinander ab. Die haben so einen Teil, der sich miteinander verbindet. Also jeder Block zeigt oft einen vorhergenden Block und bildet so eben diese Kette von blocken. Jetzt versucht trotzdem jemand da, eine bösartige Transaktion zu machen, die mit dem anderen nicht kompatibel ist. Dann macht jemand einen Block daraus. Und jetzt sagen wir aber einfach, Blöcke, die Transaktionen enthalten, welche sich widersprechen, sind nicht valide. Der Block, der das Kantor jemand erstellt, aber wir sagen dann, das ist kein valider Block. Der wird vom Netzwerk nicht akzeptiert. Und der wird auch nicht Teil des Zustands. Also wenn jemand einen Block bauen will und eine diese Transaktion enthalten, der diese Transaktion enthält, dann muss sich derjenige, der den Block erstellt, entscheiden welche der Transaktion, das den jetzt enthalten sein soll in den Block. Und die andere lässt er außen vor. Wie er für welcher sich entscheidet, das ist den Typen ganz allein überlassen. Der kann das selber entscheiden, was er da reinpacken will. Dann kommen wir zurzeit eine neue Transaktion rein. Und es kann das sein, dass jemand einen Block Nummer 4 macht, der so aussieht. Wir haben das Problem, wir haben gesagt, der Zustand ist die längste Kette von Blocken. Hier ist jetzt der Zustand nicht mehr eindeutig definiert. Und dann muss jetzt halt jeder Teilnehmer, das Netzwerk selbst entscheiden, wer damit umgeht, was wir jetzt das Zustand anerkennen. Wir haben das Problem, dass der Block Nummer 3 macht, der so aussieht. Wir haben gesagt, der Zustand ist die längste Kette von Blocken. Hier ist jetzt der Zustand nicht mehr eindeutig definiert. Was wir jetzt das Zustand anerkennen. Dann kommen neue Transaktionen wieder rein. Und irgendwann baut jemand einen Block Nummer 4, der diese Transaktion enthält. Und dadurch, dass der Block Nummer 4 auf den vorhergen Block Nummer 3 verweist, ist jetzt klar, von welchem Block der abhängt. Damit ist die Kette auch wieder klar und die längste Kette wird wieder zum Zustand. So, wie gesagt, diese Blockchain, die ich besieben habe, hat keinen Proof vor. Das ist ein sehr langgreifbar Friend-Double-Spend. Sagen wir, Melroy würde gerne einen Fahrrad klauen. Er geht also in den Fahrradladen von Alice und möchte auch gerne ein Fahrrad kaufen. Das kostet jetzt 1.000 Euro in dem Beispiel. Ich werde jetzt hier, habe ich die Darstellung etwas geändert, diese 4 Ecken mit Teilen dran, das sind einfach Blöcke. Ich werde nicht mehr jede Transaktion einzeln zeichnen. Wir sind in den Zustand, die Alis und Melroy aufgeführt und der anderen, diejenigen von Alice und Melroy. So, Melroy geht also in den Laden, sucht sich das Telefon aus, geht zum Dresen und macht dort die Transaktion an Alice. Und diese Transaktion wird übers Netzwerk zu Alice weitergeleitet. Sie sieht die Transaktion, aber dass sie noch nicht Teil eines Blockes ist, ist sie auch noch nicht Teil des Zustands. Wir sehen im Zustand des Systems, dass Alice das Geld erhalten hat. Sie gibt das Fahrrad an Melroy und der fährt davon, neue Blöcke kommen dazu. Und jetzt startet Melroy den Angriff. Und das Melroy macht, er stellt eine alternative Transaktion, die dasselbe Geld überweist, diesmal aber nicht an Alice, sondern an sich selbst, genauer an ein zweites Konto, das ebenfalls ingehört. Und er stellt einen alternativen Block, der diese Transaktion enthält. Und dann erstellt er ganz viele neue Blöcke, die davon abhängen, solange bis seine Kette von Blöcken länger ist, als die Kette, die zurzeit auf dem Netzwerk ist. Und dann veröffentlicht er die gesamte Kette auf dem Netzwerk. Und jetzt ist seine Kette die längste Kette, die wir vom Netzwerk als Zustand anerkannt. Und in diesem Zustand hat er das Geld erhalten, Alice hat das Geld nicht erhalten und Melroy hat das Fahrrad erfolgreich gestohlen. So, das hat also funktioniert. Wir müssen das verhindern. Das Problem, weshalb Melroy diesen Angriff machen konnte, ist natürlich, dass er in einer sehr kurzen Folge viele Blöcke erstellen konnte. Also das Problem ist eigentlich, es ist einfach, neue Blöcke zu erstellen, also machen wir es halt schwieriger, neue Blöcke zu erstellen. Und dazu sagen wir, für jeden Block, der erstellt wird, muss eine Aufgabe gelöst werden, und um diese Challenge zu erstellen, muss man halt Zeit und Rechenzeit aufwenden. Die Lösung für diese Aufgabe nennt wir den Proof of Work. Und der Prozess, um den Proof of Work zu erstellen, nennt wir das Mining. Und dann sagen wir, zusammen mit jedem neuen Block muss der passende Proof of Work veröffentlicht werden. Und nur Blöcke, welche passenden Proof of Work haben werden vom Netzwerk als Teil des Zustands erkannt. Jetzt funktioniert es, erstellen neue Blöcke etwas anderes. Und zwar ist es so, dass ein Block nicht mehr einfach entsteht, sondern ein Miner muss daran arbeiten. Jeder meiner Arbeit natürlich für sich selbst daran, einen neuen Block zu erstellen. Wir sind hier, den Block und dem der Miner Arbeit ist hier so gestrichelt, markiert. Und dann, wenn ein Miner, also während der daran arbeitet, kommt neue Transaktion rein. Und irgendwann gelingt es dem Miner, den Block fertigzustellen. Und im Moment veröffentlicht der den Block zusammen mit dem Proof of Work im Netzwerk. Der wird vom Netzwerk anerkannt. Und der Miner beginnt sofort, einen neuen Block, an einem neuen Block zu arbeiten. Und das geht dann halt so weiter. Nun, die Funktion, die wir brauchen, um das erstellen, der Block schwierig zu machen, muss einige Bedingungen erfüllen. Sie muss natürlich schwierig sein, zu lösen. Obwohl das es lange gehen muss, die zu erstellen, muss es sehr einfach sein, das Ergebnis zu prüfen. Also, wenn ich einen Block erhalte und den passenden Proof of Work muss ich zack sofort sagen kann, der Proof of Work ist gültig oder nicht. Weil ich will ja entscheiden, ob das Teil meines Zustandes sein soll oder nicht. Und dann ist es wichtig, dass die Funktion abhängt von genau dem Block, für die sie erstellt wird. Also, der Proof of Work soll nur genau für den einen Block gültig sein. Das ist sehr wichtig, denn ansonsten kann man eine Woche hinweg einfach Proof of Work erstellen und dann einfach einen Block ranflanschen und so in kurzer Zeit trotzdem wieder eine lange Kette erstellen. Wenn aber der Proof of Work direkt abhängig ist vom Block, für den er erstellt wird, dann muss Madro mit dem Herstellen das Proof of Work so lange warten, bis der vorherrige Ende Block bekannt ist und damit auch ihm bekannt ist, was er jetzt in den neuen Block packt. Und dann soll es auch noch möglich sein, dass wir das System noch mehr konzentrieren, denn damit das System als stabiles Finanzsystem funktioniert, möchte ich gerne wissen, wie lange es geht von dem Moment, wo ich eine Transaktion veröffentliche, bis sie Teil des Zustandes wird und wenn das halt das Netzwerk sehr viel mehr Rechenkraft hat, dann geht es plötzlich schneller, neue Blöcke zu erstellen und dann will ich diese Schwierigkeit anpassen können, damit es wieder länger geht. Nun jetzt, wo das Mining nicht mehr einfach ist, muss es auch tun, also irgendein Anstoß. So, und wir sagen halt, der Meiner, dem es gelingt, ein Block zu erstellen, dafür kommt eine Belohnung, den sogenannten Blockreward und wir implementieren das, indem wir sagen, der Meiner darf für sich selbst eine zusätzliche Transaktion in den Block reinpacken und mit dieser Transaktion überweist er sich selbst Geld aus dem Licht heraus. Weil das Geld herkommt, das spielt eigentlich zwei Möglichkeiten, wie das sind die Überweisungsgebühren der anderen Transaktionen in den Block oder dann sagen wir halt, das ist Geld, welches neu geschaffen wird. Wir haben ja vorhin gesehen, wir haben einen leeren Zustand, das ist ein Ursprungszustand definiert und wie wir das so tun, muss das Geld, welches die Leute ausgeben, irgendwo herkommen und das ist halt eine Möglichkeit, Geld in das System zu bringen, die nicht an einer zentralen Stelle kontrolliert wird und das Schalter ist, dass diese zusätzliche Transaktion macht den Block natürlich individuell, denn jeder Meiner wird das Geld und sich selbst zu überweisen versuchen und also diese eine Transaktion wird für jeden Meiner anders sein und das stellt sicher, dass die alle an einem ein wenig anderen Problem arbeiten, wenn ja die alle versuchen würden, das genau selbe Problem zu lösen auf die genau selbe Art, dann würde es immer demjenigen als erstes gelingen, der Rechenkraft hat und das wollen wir nicht, denn dann würde eine Person alle Blöcke erzeugen und wir wollen ja, dass viele Personen Blöcke erzeugen, damit das niemand sensieren kann und dadurch, dass das Problem, an welchen sie arbeiten, für jeden Meiner etwas anders ist, gelingt es halt zwischendurch auch einem jemanden mit weniger Rechenkraft als erstes eine Lösung zu finden und in der Praxis geht es dann ganz gut, dass wir sagen können, wer 20% der Rechenkraft hat, das gelingt als erstes ein Block zu finden. Genau, dann muss der Meiner halt noch entscheiden, an welchem Block er arbeiten will, aber der Meiner will ja also, an welchem Ende der Kette, wir haben vorhin gesehen, es kann sein, dass diese Ketten mehrere Enden haben, aber das ist ganz einfach, denn der Meiner will ja den Reward kriegen, der Reward ist eine Transaktion, welche nur dann Teileszustandes wird, wenn es Teil in einem Block ist, weil es Teil der längsten Kette ist und der Block ist nur Teil der längsten Kette, das wird also arbeiten, alle Meiner am Ende der längsten Kette. So, jetzt habe ich versprochen, dass wir so den Double Spend verhindern können vorhin, wollen wir mal gucken, ob das geht. Das Szenario ist wieder dasselbe, Malroy will das Fahrrad klauen im Laden von Alice. Der Unterschied ist, dass das Netzwerk arbeiten muss, um die Blocker zu erstellen und dann geht es wieder so, von starten, Malroy erstellt das zwei Transaktionen, ein, um das Geld in Alice zu überweisen, diese Transaktion macht er öffentlich im Netzwerk, damit die von allen gesehen werden kann und eine Transaktion um das Geld in sich selbst zu überweisen, die behält der vorläufige Heim, dann wird der vorhergehende Block fertiggestellt und sofort fängt das Netzwerk an, den nächsten Block zu erstellen. Das Netzwerk enthält in dem Block natürlich die Transaktion von Malroy an Alice, denn das ist ja die einzige Transaktion, die dem Netzwerk bekannt ist und Malroy arbeitet jetzt ganz alleine daran, den alternativen Block zu erstellen, in dem die andere Transaktion enthalten ist. Jetzt aber so ist das Netzwerk, hat natürlich mehr Rechenkraft als Malroy allein, der hat halt nicht so viele Computer und deshalb wird das Netzwerk immer schneller sein, darin neue Blöcke zu erstellen, als Malroy. Malroy wird nie die längste Kette, wird nie Teil des Zustands und der Angriff wurde erfolgreich abgewert. Die einzigen Art und Weise, wie Malroy gewinnen konnte, also wie Malroy den Angriff trotzdem durchführen konnte, wäre, wenn er schneller Block erstellen konnte als das Netzwerk und das würde ihm aber nur dann gelingen, wenn er mehr als 50% der Rechenkraft im Netzwerk hätte, dann wäre die Wahrscheinlichkeit, dass er einen Block findet, höher als bei allen anderen Meiner gemeinsam und dann kann der das tun und deshalb spricht man bei Bitcoin und anderen Kryptowährungen mit 40% Attacken. So, jetzt gibt es noch eine andere Art, ein Double Spend auszuführen, das ist ein etwas schwieriger Angriff und der hat jetzt damit zu tun, wie das P2P Netzwerk funktioniert, dass sie brauchen, um die Transaktion und Blöcke zu verteilen. Jetzt ist der Angriff ein wenig schwieriger, also muss Malroy das wertvollere Stellen, er geht zu Bob, er verkauft Auto, wir versuchen ein Auto zu stellen und um das zu tun, wir versuchen die Verbindung von Bob mit dem P2P Netzwerk zu kontrollieren. Wir sehen hier, Bob ist mit dem Netzwerk verbunden, mit diesen 3 Peers und Malroy hat seine Möglichkeiten, er kontrolliert die Internetverbindung von Bob oder dann kontrolliert er halt die 3 Outes, mit denen Bob verbunden ist. Viralistisch das ist, das will ich nicht diskutieren, grundsätzlich ist es ja aber schon vorstellbar und jetzt hat Malroy einige interessante Möglichkeiten, er kann jetzt nämlich kontrollieren, welche Blöcke und Transaktion dass der Bob sieht, also die Transaktion und Blöcke, weil ich auf der Netzwerke scheine, kann Malroy quasi vor Bob geheimhalten und er kann Bob auch Transaktion und Blöcke präsentieren, die er dem nächsten Netzwerk nicht präsentiert. So, das ist der Angriff, wir sehen was das Netzwerk sieht, links und rechts, was Bob sieht. Am Anfang ist das natürlich beiden Orten gleich, jetzt geht der Malroy zu dem Bob und das Auto kaufen, er macht eine Transaktion, er macht eine zweite Transaktion, eine um das Geld an Bob zu überweisen, diese schickt er nur an Bob und versteckt sie vor dem Netzwerk um eine zweite Transaktion, mit der das Geld wieder an sich selbst überweist, diese Transaktion veröffentlicht er im Netzwerk. Jetzt wird das Netzwerk der Anarbeiten ein Block zerstellen mit der Transaktion von Malroy zu Malroy, weil das Netzwerk kennt keine andere Transaktion und Malroy allein arbeitet daran ein Block zu erstellen, mit dem er das Geld an Bob überweist. Natürlich wiederum das Netzwerk hat viel mehr Rechenkraft, das ist viel schneller den neuen Blöcke zu erstellen und schlussendlich gelingt es dann aber Bob trotzdem einen Block zu erstellen und alle diese Blöcke, die auf dem Netzwerk erstellt wurden, das muss man vielleicht noch sagen, hat der Malroy vor Bob geheim also alle diese neuen Blöcke, die hat Bob nie gesehen und deshalb wird Bob diesen Einblock von Malroy als die längste Kette vom Blöcken akzeptieren und jetzt ist die Transaktion von Malroy Teil von Bob's Zustand er gibt Malroy das Auto der Malroy fährt davon er beendet die Attacke und jetzt verwindet sich Bob wieder ganz normal mit dem Netzwerk die beiden Ketten werden synchronisiert und wir sehen in der schlussendlich resultierten Kette hat Bob das Geld nicht erhalten Malroy hat also das Auto erfolgreich stellen können das ist gar nicht gut es hatte dieser Angriff funktioniert oder hatte er das denn wirklich denn diesmal war der Angriff erfolgreich aber Malroy musste jetzt dafür arbeiten er musste diesen Einblock erstellen die Zeit gekostet natürlich kostet die sein auch Rechenkraft und den Strom den er braucht um seinen Computer zu betreiben das wollen wir jetzt aber gar nicht mit einbeziehen der Malroy hatte ein Computer den er braucht um die Blöcke zu erstellen und dieser Computer kann immer nur eines aufs Mal tun entweder er stellt er jetzt diesen Fake-Block für Bob oder er stellt richtige Blöcke auf den richtigen Chain um das aufs Mal tun so und das macht es sehr teuer diesen Angriff durchzuführen stellen wir uns vor das sind jetzt einfach hier welche Annahmenwerte für unser Netzwerk die sind halt in jeder Kryptowährung etwas anders definiert sagen wir unser Netzwerk erzeugt ein Block alle 10 min der Blockreward welche der Meiner kriegt ist 1000€ und Malroy hat jetzt 20% der Rechenkraft des Netzwerks wenn ich sagen 100% der Rechenkraft erzeugt alle 10 min einen Block dann erzeugt Malroy auf sich alleine gestellt nur alle 50 min einen Block das heißt der Angriff auf Bob dauert 50 min nun wenn aber Malroy 50 min meinen würde anstatt Bob anzugreifen dann würde er in dieser Zeit durchschnittlich 1000€ verdienen er kann sich jetzt also entscheiden entweder greift er Bob an und stillt das 23000€ oder er verdient mit Fair Mining 1000€ und natürlich wird dieses Auto immer noch stellen wollen der Mechanismus um das zu verhindern ist aber ganz einfach wir sagen jetzt Bob gibt Malroy das Auto nicht sobald Bob das Geld erhalten hat sondern erwartet dann noch einige Blöcke es sieht ja nicht so aus ich habe jetzt nicht genügend Blöcke gemalt weil die da nicht Platz hatten sagen wir halt auf der rechten Seite wo das die Transaktion Teil des Zustandes wird und in diesem Moment gibt es halt der Bob das Auto noch nicht an Malroy, sondern erst einige Blöcke später und für jeden zusätzlichen Block den Malroy erstellen muss um Bob davon zu überzeugen dass das jetzt wirklich die richtige Kette ist muss Malroy weitere 50 min aufwenden und das kostet ihn jedes mal 1000€ wenn also Bob sagt ich warte 24 Blöcke bevor ich den Malroy das Auto gebe dann ist der Angriff für Malroy plötzlich teurer als das Auto einen Wert hat und dadurch kann Bob den Angriff verhindern Malroy kann den zwar immer noch durchführen aber es ist schlicht einfach nicht interessant für Malroy das zu tun weil er mehr Geld macht wenn er in derselben Zeit meint jetzt haben wir viel gesprochen über die generische Konzepte von Blockchains jetzt will ich noch etwas dazu sagen wie das in Bitcoin implementiert wird zumindest einige der Dinge schauen wir uns zuerst die Blöcke an und wir wissen ja in der Informatik merken wir es Bodies und Header zu definieren das tun wir überall irgendwie in unseren Netzwerkprotokollen in Nachrichten und Dateivermaten sagen wir der Body enthält den Inhalt, die eigentlichen Daten und der Header enthält die Metadaten und genau dasselbe tun wir auch unseren Blockchains und Bitcoin ist das so der Body eines Blockchains enthält alle Transaktionen die sind dort geordnet aufgeführt der meint er muss einige Regeln einhalten wenn er das macht z.B. wenn Transaktion A Transaktion B abhängt die beide im selten Block sind müssen die in der richtigen Reihenfolge drin sein aber sonst kann er die irgendwie dort einpacken aber das Walder das mal gemacht hat ist dann diese Reihenfolge ist anschließend wichtig die Transaktion im Block ist die Coinbase Transaktion mit der sich den Blockrivat überweist um diesen Body zu verbinden mit dem Header nutzt Bitcoin einen Murkeltree das ist ein Binnerebaum bei dem quasi jeweils der Node ist der hash der konkatenierten Werte der der Children des Nodes und Bitcoin verwendet fast überall die Bitcoin-Hashes macht wenn sie ein die hash nennen sie das das ist ein Double Shots 256 hash also einfach der hash eines Hashes eines Werte den sie nehmen sieht dann so aus wir haben diese unter dem Body des Blocks dann erstellen wir für jede Transaktion den Double Hash und dann beginnen wir damit den Tree zu erstellen also für jeden Node konkatenieren wir quasi die beiden bis wir schlussendlich beim Murkeltree angelangen und der wird dann Teil des Blockheaders und der Blockheader enthält diese Dinge, die Version das sind wie eine Arbitrariennummer die von den Entwicklern von Zeit zu Zeit geändert wird und das sind dann wie sie finden das wäre jetzt Zeit dafür dann den previous Block-Hash wir haben gesehen die Blocker verweisen jeweils auf den vorhergehenden Block das ist in Bitcoin so gelos von den vorhergehenden Blocks enthält also auch hier wieder den Double Hash im Murkeltree haben wir bereits gesehen dann enthält der Blockheader noch ein Timestamp das sind ziemlich komplizierte Regeln mal nach dieser Timestamp gebildet wird aber egal das ist nicht so wichtig die Difficulty ist ein Ausdruck dafür wie schwierig es war den Proof of Org für diesen bestimmten Block zu definieren um die Nanz des Werte gebraucht zu meinen der Proof of Org in Bitcoin ist nichts anderes als der Hash des Blocks und der muss dann eine Bedingung erfüllen und zwar muss dieser Hash mit einer gewissen Anzahl Nullen beginnen also ich nehme den Block den Header des Blocks und spiele den Double Hash davon und dann müssen die ersten paar Bits von diesem Hash müssen 0 sein und wie viele Bits das sind das ist dann eben die Variable Schwierigkeit also wenn ich mehr Nullen haben muss um zu beginnen dann ist es schwieriger den Proof of Org zu erstellen und bei weniger natürlich einfacher die Mining funktioniert dann so dass der Miner nimmt einfach mal diesen Header und bildet den Double Hash davon dann prüft er ob der jetzt diese Bedingung erfüllt das wird er vermutlich nicht tun und dann incrementiert er halt den Anz dadurch hat sich der Header verändert er bildet wieder den Hash davon und prüft das dann so dieser Anz ist niedrig sein 30 Bit lang und der Hash mit 256 Bit ist wesentlich größer, das kann so gut sein das einfach durch das Inkrementieren dass der Anz kein passender Proof of Org gefunden wird und in dem Fall wird der Miner die Coinbase Transaktion verändern und zwar hat diese Coinbase Transaktion den Transaction Input der wird bei einer normalen Transaktion dafür gebraucht zu verschreiben und der Geld kommt in dieser Transaktion das hat die Coinbase nicht denn die macht quasi Geld aus dem Nichts hieraus und den Wert in diesem Fall kann dann den Miner frei beeinflussen dadurch ändert sich der Hash dieser Transaktion und das setzt sich dann durch den Merkle-Trie und durch Fort-Bisses quasi auch den Merkle-Root verändert und dadurch ist der ganze Block Header wieder verändert und der Miner kann weiterarbeiten und das lässt sich dann auch sehr einfach prüfen ob das jetzt ein korrechter Proof of Org ist ich nehme einfach diesen Block Header und bilde den Hash und schau, ob das so stimmt genau das Bitcoin-Netzwerk versucht alle 10 Minuten, einen neuen Block zu erstellen und dann um diese Zeit stabil zu halten wird die Schwierigkeit im Netzwerk alle 14 Tage, also alle 2016 Block Heer angepasst mit einem Algorithmus vor allem jeder meiner feststellen kann wie weit muss ich jetzt die Schwierigkeit verändern in die Coinbase Transaktion mit der sich der Miner Geld überweist und da halten Bitcoin 2 Dinge einerseits die Transaktion fees also die Transaktionsgebühren der Transaktion in den Block und andererseits auch noch neue Bitcoin die neuen System kommen das waren ursprünglich 50 Bitcoin pro Block heute sind es noch 12,5 der Wert halbiert sich alle 4 Jahre das letzte Mal in diesem Sommer hat sich der Wert halbiert seit dann gibt es nur noch 12,5 Bitcoin für einen neuen Block das habe ich schon gesagt jetzt wollen wir noch uns anschauen wie wir Leitkleins bauen können Bitcoin kennt eigentlich mehr oder weniger 3 Arten von Clients ein Full-Node ist ein Client welcher die gesamte Blockchain speichert und der überprüft jede Transaktion der Block überprüft dieser Client ob der auch wirklich Valide ist und er tut noch etwas anderes nämlich er siedelt diese Blocken die er hat an das Netzwerk also wenn jemand kommt und sagt ich hätte gerne ein Block dann gibt der Full-Node diesen Block raus dann gibt es Pruning Clients der macht eigentlich das genau selbe wie der Full-Node der überprüft auch alle Transaktionen und alle Blocken aber er speichert jetzt halt man lustet den um das spartem Client speichert Platz der braucht aber immer noch sehr viel Rechenkraft und sehr viel Bandbreite deutlich zu viel also sich das auf meinem Smartphone laufen lassen möchte und deshalb gibt es noch die Leitkleins oder SPV-Kleins die dann auch geeignet sind um auf ein mobilen Gerät laufen zu lassen und wie die funktionieren will ich jetzt noch besprechen ein Leitklein ein SPV-Klein das er tut zuerst ist er lädt die Header aller Blöcke herunter wir haben ja gesehen der Proof of Work ist der Hasch des Block Headers das heißt um den Proof of Work zu kontrollieren brauche ich nicht den gesamten Block der Block Header genügt und dasselbe gilt auch für die Verknüpfung der Blöcke untereinander welches das der vorherrgende Block ist das steht ja auch im Header das heißt auch für diese Funktion brauche ich nicht die ganzen Blöcke herunterzuladen und so kann ich korrekt die längste Kette erstellen innerhalb des Netzwerks in dem ich nur die Header unterlade und der Gewinn dabei ist enorm zurzeit gibt es etwa 450.000 Blöcke die brauchen mehr als 95 Gigabyte Speicherplatz wenn man da noch TX-Index aktiviert sind es glaube ich um die 110 Gigabyte Speicherplatz die es braucht also ein bisschen blödsinnig viel auf einem Smartphone aber nur die Block Headers alle Block Header von diesen 450.000 Blöcken die passen in deutlich weniger als 100 Megabyte reinen das ist dann durchaus ein miraristischer Wert dass ich das auf meinem Smartphone habe das zweite Konzept ist der Merkle-Branche und das ist dann eigentlich noch fast die interessantere Funktion die unsere Merkle-Tie bildet und damit kann wir beweisen dass eine Transaktion tatsächlich Teil des Zustands ist nun die eine Möglichkeit wie wir den Merkle-Branche nachbauen können ist natürlich in dem wir den Blockbody runterladen und dann den ganzen Merkle-Tie bauen wenn ich jetzt aber nur beweisen will dass es eine Transaktion Teil des Blockes ist gibt es eine effizientere Möglichkeit angenommen ich will es beweisen dass die Transaktion 3 tatsächlich Teil des Blockes ist dann brauche ich nicht alle Transaktionen runterzuladen um diese Transaktion 3 herunterzuladen ui, das war falsch und dann die restlichen Hashes, also von der Ebene des Baumes lade ich einen Hashes runter und damit kann ich jetzt den Merkle-Route-Node wieder nachbilden und so feststellen dass diese Transaktion tatsächlich Teil des Blockes ist genau das was der das hat jetzt natürlich auch einige Vorteile eben ich brauche jetzt weniger Elemente herunterzuladen und ich kann ein Hashes runterladen also anstatt Transaktion vorhin den Beispiel hat es nicht so viel gebracht aber wenn wir einen Block nehmen mit 1600 Transaktion das ist diese Tage durchaus ein üblicher Block dann brauche ich jetzt zum Validieren nicht mehr 1600 Transaktion runterzuladen sondern es genügt eine Transaktion runterzuladen und dann elf Hashes und damit kann ich den Merkle-Tie den Merkle-Branche nachbauen so und so funktioniert dann ein SPV klein SPV steht für Simple Payment Verification und das hat eigentlich das wurde schon im White Paper zu Bitcoin beschrieben wie das funktioniert alles was der tun muss um zu beweisen, dass eine Transaktion reingekommen ist ist er letztwärts alle Blockheader herunter wie vorhin besprochen er bildet den längsten Branche draus dann lädt er eine Transaktion herunter wenn ich jetzt wissen will dass ich das Geld erhalte und ich will zeigen dass ich das Geld erhalte dann lade ich diese Transaktion herunter und dann lade ich den passenden Merkle-Branche herunter und jetzt kann ich quasi zeigen dass dieser Merkle-Branche tatsächlich mit der längsten Kette der vom Block verbunden ist und so habe ich jetzt den Beweis dafür dass ich das Geld tatsächlich erhalten habe so, das ist diese Funktionsweis jetzt haben wir auch etwas mehr Zeit als ich gehofft hätte um das zu erklären das hängt dann damit zusammen wie das eigentlich Bitcoin-Transaktionen funktionieren und wir sind es uns ja gewohnt dass wir irgendwie auf der Bank ein Konto haben und das Konto hat einen Besitzer hoffentlich mich und es hat ein Geldbetrag und erst mal wenn ich eine Transaktion durchführe verändert sich der Geldbetrag also ich weise jemandem Geld und dann verändert sich halt der Betrag auf meinem Konto nun in Bitcoin funktioniert der Betrag besitze ich nicht ein Konto sondern ich besitze so genannte Anspend-Transaktion-Outputs und wir sehen es hier, sagen wir Alice hat diese 5 Anspend-Transaktion-Outputs die haben auch jetzt einen Besitzer, nämlich Alice und jeweils ein Betrag der dort verfügbar ist um der Betrag kann nicht geändert werden das ist fest und dann wir es an Alice würde gerne eine Transaktion machen, wo? die würde ihm gerne 42 Bitcoin überweisen, dann erstellt sie eine Transaktion und sagt das Geld, diese Transaktion 42 Bitcoins sollen an Bob gehen und jetzt muss sie das Geld irgendwo her haben und dann sagt sie halt ich gebe diese 3 Transaktion-Outputs aus so und das interessante Transaktion-Outputs, wie gesagt den Betrag kann man nicht verändern, sondern Alice muss sie alle komplett ausgeben jetzt sind aber diese Transaktion-Outputs zusammengenommen sind 44 Bitcoins und nicht 42 Bitcoins diese Transaktion gibt es zu viel Geld aus also sie gibt mehr Geld sie gibt quasi mehr Transaktion-Outputs aus als sie dann schlussendlich Geld und Bob überweist und was kann jetzt Alice tun, was sie tut ist sie macht einen zweiten Output in ihrer Transaktion und hier überweist sie jetzt Geld und Alice so, das heißt eine Transaktion in Bitcoin kann beliebig viele Inputs und beliebig viele Outputs haben was sie noch zu sagen gibt, das haben wir immer noch einen Unterschied, es haben wir 44 Bitcoins die in die Transaktion reinkommen und nur 41 die rausgehen das restliche Bitcoin das jetzt hier nicht ausgeben wird, das ist quasi impliziert die Transaktion-Fee welche der Meinung erhält der diese Transaktion meint für Transaktion-Fees implementiert wie gesagt, Alice hat durch das erstellen diese Transaktion neue Transaktion-Outputs erstellt nämlich einen der jetzt Bob gehört und das kann wir auch nachvollziehen diese Transaktion-Outputs welche Alice ausgegeben hat dass die gehören alle eben zu anderen Transaktionen welche es vorhin gegeben hat nun ein Transaktion-Output kann einen von zwei Zuständen haben er kann ausgegeben sein oder nicht und natürlich kann man nur die ausgeben die noch nicht ausgegeben sind das heißt wenn ich wissen will wie viel Geld das Alice gehört dann suche ich mir alle Transaktion-Outputs die haben die Alice gehören und addiere die Summe und dann weiß ich Alice gehört so viel Geld das kann ich für jeden Teilnehmer des Systems machen dann weiß ich für jeden Teilnehmer wie viel Geld das denn der Person gehört wenn ich jetzt also alle Transaktion-Outputs nehme die nicht ausgegeben sind dann habe ich den aktuellen Zustand des Netzwerks dann weiß ich für jeden Teilnehmer wie viel Geld das diese Person hat und genau mit diesem Mechanismus macht sich ein Brunnenklein zu Nutze der sagt nämlich eigentlich brauche ich nicht die ganze Blockchain zu speichern das ist ja blöd denn wenn eine neue Transaktion reinkommt und ich wissen will ob die tatsächlich valide ist dann muss ich nur prüfen ob die ein Output ausgibt der noch anspent ist denn wenn die Transaktion ein Transaktion-Output ausgibt denn schon ausgegeben ist dann ist die natürlich nicht valide oder wenn die Transaktion versucht einen Transaktion-Output auszugeben den es gar nicht gibt dann ist die natürlich auch nicht valide was jetzt also ein Brunnenklein tut und das tut übrigens auch ein Full-Node also ein Full-Node wenn eine neue Transaktion reinkommt und da steht die Transaktion ich gebe diesen Transaktion-Output aus dann geht der Full-Node nicht um versucht die 100GB große Blockchain zu durchsuchen nach diesem Transaktion-Output sondern er legt sich halt eine kleine Datenbank an und dort stehen alle Transaktion-Outputs drin und dann sagt er sich für jeden also alle anspenten Transaktion-Outputs stehen dort drin und dann sagt sich der Kleinen für jede Transaktion die reinkommt und die valide ist entferne ich alle Transaktion-Outputs die die Transaktion ausgibt aus der Datenbank und alle neuen Transaktion-Outputs füge ich dort ein und so behält der Kleinen den Zustand und der Pruning-Klein sagt sich dann halt naja die Blöcke die braucht jetzt ja nicht mehr weil ich hab den Zustand in der Datenbank der ist auch viel kleiner als all die Blöcke die Blöcke werfe ich fort dann muss da noch etwas vorsichtig sein denn wenn es jetzt plötzlich von weiter hinten eine längere Kette kommt dann muss er das wieder nachvollziehen können also wird es sich noch einige Blöcke zusätzlich speichern als nur der neuesten aber er kann so sehr viel Speicher also eigentlich sehr viel Speicherplatz sparen aber trotzdem muss ein Pruning-Klein eigentlich jede Transaktion die es gegeben hat die es jemals gegeben hat herunterladen und muss dann halt auch die alle verifizieren das braucht halt immer noch sehr viel Rechenkraft und sehr viel Bandbreite und deshalb sind solche Kleins nicht geeignet für die Mobilgeräte dass man hier vielleicht noch sagen kann ich habe jetzt einmal irgendwie gesagt da quasi das kennt mich nicht okay naja ich habe jetzt gesagt Alice gibt ein Transaktion-Output aus das ist in Wirklichkeit das ist in Bitcoin recht kompliziert implementiert das funktioniert nämlich so dass der Transaktion-Output hat ein Stück Code drin dafür gibt es in Bitcoin eine eigene Assender-Splache die das beschreibt um der Input muss jetzt ebenfalls ein Stück Code enthalten und die dann nacheinander ausgeführt werden muss das am Schluss den Wert-Tour geben und nur in dem Fall wurde der Output richtig ausgegeben und das ist ein ziemlich komplizierter System wie das wirklich funktioniert mit diesen weil das ist dann halt eine eigene Programmiersprache das ist zwar nicht Turing vollständig aber damit lassen sich dann alle möglichen lustigen Regeln implementieren die häufigste Regel die man findet den über 80% der Fälle sind so genannte ähm das ist jetzt das Ding wie da hat sich die Regel sagt an Irgendwas wie um diesen Output ausgeben zu können musst du beweisen dass du den geheimen Schlüssel besitzt zum dem öffentlichen Schlüssel dessen herrsch ich jetzt hier reinpacken und in den Input steht dann halt ja das besitze diesen geheimen Schlüssel und ich beweise dir das indem ich hier den öffentlichen Schlüssel reinpacke und die Transaktion mit dem geheimen Schlüssel signiere und dann kann jemand der das verifizieren will kann einfach den öffentlichen Schlüssel nehmen schauen ob das dem Herrscher spricht und dann mit dem öffentlichen Schlüssel die Signatur der Transaktion verifizieren und so also das ist ja mit Abstand häufigste Art wie diese Transaktion in Wirklichkeit funktionieren aber das ist halt dann sehr kompliziert und damit kann man einen eigenen Vortrag füllen und so ein Fall werde ich jetzt hier aufhören dann habe ich dann auf diese tolle Seite gebastelt das ist deutlich zu weit finde ich es oder nicht ja, ha, gefunden und glaube ich also wir haben jetzt noch Zeit für Fragen wenn ihr noch was wissen wollt oder ich könnte mich auch erreichen am einfachsten hier über das Projekttelefon in dem Kongress wenn ihr Fragen habt ihr findet diese die Hand-Out-of-Lites auch im Fahrplan und ich werde auch die Folien selbst noch hochladen und den entsprechenden Sucht-Gott zum Erzeugen der Folien werde ich auch verlinken es sind es ist noch einiges an Zeit für Fragen also wenn ihr Fragen habt dann reit euch an den Mikrofon auf eine Sache möchte ich sagen wenn ihr jetzt rausgehen wollt verlasst bitte leise den Saal damit das mit den Fragen einigermaßen klappt liebe Türengel wir lassen im Moment noch niemanden rein erstmal können Leute nur rausgehen bitte tut das leise wir fangen mit dem Signal-Engel an eine Frage aus dem Internet bezüglich dem the middle double-spending-Angriff könnte Mallory nicht diesen Angriff gleichzeitig und mit derselben Fake-Blockchain gegen 10 verschiedene Auto-Händler machen und mit dem gleichen also mit dem gleichen Aufwand 10 Autos klauen damit würde sich doch wieder lohnen auch wenn man mit dem Gegenwehr eines Autos an Rechenzeit investieren müsste das ist eine gute Belegung die ich mir schon gar nicht gemacht habe ähm ich müsste darüber mal nachdenken ich nehme aber grundsätzlich an dass es vermutlich funktionieren würde der Aufwand wird dann aber halt sehr viel grösser um die Netzwerknaut äh zu kontrollieren grundsätzlich denke ich aber damit das System wirklich sicher ist sollte das kein Argument sein dürfen also ich hätte es zwar auf Anhieb hätte ich gesagt, dass das vermutlich klappen würde ja ok dann machen wir weiter mit Mikrofon 2 hier vorne bitte ja hallo du hast gesagt mit einer 50%-Attack kann man im Prinzip die Blockchains hijacken ähm wenn man sich jetzt mal eine hypothetische Regierungsorganisation mit sehr sehr sehr viel Rechenpower überlegt mal so ganz in den Raum geraten gibt es Überlegungen wie wahrscheinlich das ist? nun es ist so die mit einfach herkömmlichen Rechenpower wird das kaum möglich sein also irgendwie für diese spezielle Aufgabe den Double Shot 26H hat das Bitcoin-Netzwerk ein vielfaches der Rechenkraft die selbst die 500 schnellsten Supercomputer aufbringen könnten es gibt aber eine viel einfache Möglichkeit unser guter Freund China denn die meisten, denn heute ist es halt so eigentlich möchte man gerne, dass die Meindler verteilt sind und jeder ein wenig zu Hause meint in der Praxis ist es aber so dass heute das große Geschäft ist und das wird dann halt heute in Rechenzentren in China betrieben und China hat heute mehr als 50% der Rechenkraft von Bitcoin also toll unsere unabhängige Währung gehört es den Chinesen und selbst wenn das nicht stimmen sollte und das nicht funktionieren sollte ist es so, dass alle die spezielle Hardware die heute zum mining notwendig ist in China hergestellt wird und China kann einfach all diese Fabriken in denen die hergestellt werden, beschlagnahmen und nach einigen Monaten hätten sie trotzdem wieder mehr Rechenleistung als jeder andere und konnte die Währung so kontrollieren also das ist durchaus wahrscheinlich dann machen wir weiter mit Mikrofon 1 hier vorne bitte mir geht es auch gerade um die Rechenpower also gibt es da in die Ansätze in anderen elektronischen Währungen wie das verhindert werden kann dass immer quasi zum Stand der aktuellen Technik die maximale Rechenpower nötig ist um so einen System laufen zu lassen also in dem Verlauf der Zeit verschiedene Möglichkeiten also verschiedene Ansätze gegeben das eine was man immer wieder versucht hat ist halt, dass man das nicht nur auf Rechenkraft beschränkt man sagt, der Angriff der braucht nicht nur Rechenpower sondern auch viel RAM oder viel Memory und dadurch ist es sehr viel schwieriger Hardware zu bauen oder sehr viel teuer Hardware zu bauen die darauf spezialisiert ist und man erhofft sich davon Erfolge, aber schlossendlich hat man dort wieder dasselbe Problem ich weiß aber, dass sie Ethereum arbeitet an einem Konzept, das nennen sie Proof of Steak und wie genau das funktioniert dass du einen Block erstellst davon ab, wie viel Geld du besitzt in dem Netzwerk und die brauchen dann eigentlich keine Mining mehr und die haben dann halt auch das Problem nicht mehr dass man unglaublich viel Strom braucht um das Ding zu meinen und ich dachte, die wollten diesen Sommer umstellen ich hab dann aber das Ganze ein wenig aus den Augen verloren und kann dir jetzt nicht sagen wie weit das sie damit sind also grundsätzlich aber wie weit das die sind, kann ich dir nicht sagen das müsstest du selbst nachschauen gehen Danke dann machen wir weiter mit Mikrofon 4 dort rüben bitte ich stelle mal zwei Fragen, das eine ist öffentliche Grundbuchamt da könnte man doch sehr gut in ein Blockchain umlegen und dadurch könnte doch die Verwaltung sehr viel Geld einsparen und zum Beispiel Handelsregister sind ja auch öffentlich die könnte man doch auch in die Blockchain verschieben oder mache da einen Denkfehler und was mir auch noch wundernimmt was deine Meinung zu Smart Contracts sind also zur ersten Frage das ist so daran, wird tatsächlich gearbeitet insbesondere die britische Regierung hat auch Forschungsgruppen die ihr forschen sollen wie Blockchain der Verwaltung helfen können gerade beim Grundbuchamt also solches System braucht eine starke Anpassung gerade wenn wir uns vorstellen ein Grundbuchamt wenn es dann jemandem gelingen würde irgendwie jetzt trotzdem ein Grundstück quasi zu stellen und das wird einfach in dieser Blockchain feststehen wie würde man das wieder rückgängig machen also wenn wir heute ein Grundbuchamt haben dann kann die alles überschreiben und irgendwie möchten wir ja dann trotzdem nicht einfach nur dieser Blockchain vertrauen wir möchten trotzdem die Möglichkeit haben das gewisse Stellen gerade eben unser Staat das überschreiben kann dann in diese Blockchain zusätzliche Mechanismen eingebaut werden dass das trotzdem geht und das ist dann halt bedenklich weil es ist trotzdem da jemand das zu euch kaputt machen kann also es ist nicht ganz einfach diese Dinge zu tun aber ich denke schon dass Blockchain, also dass gerade Grundbuchämter eine gute Chance sind und es ist vermutlich auch etwas vom Ersten was wir implementiert sehen werden so für öffentliche Ämter aber ich denke auch ein Hybridbetrieb geben wird also dass man quasi sagt es ist zwar öffentlich in einer Blockchain aber schlussendlich was wirklich gilt ist immer noch das was im Grundbuchamt steht und das wird noch so lange weiterbetrieben bis sich das wirklich bewährt hat und man den Übergang macht und die zweite Frage, sorry, habe ich wieder vergessen Okay, wenn das die Frage beantwortet und er nicht wieder aufsteht dann würde ich jetzt mit Mikrofon 7 weiter machen, dort oben bitte Ja, vielen Dank für den spannenden Vortrag mich würde noch interessieren vielleicht noch was zu dem Thema Ende der Bitcoins die sind ja anscheinend begrenzt soweit ich das verstanden habe und wie wird das erstellen von neuen Blöcken letztendlich in ferner Zukunft dann belohnt werden die einfach immer so weiter unterteilt und bekommt dann noch Bruchteile von Bitcoins als Belohnung oder wie funktioniert das Das ist eine sehr gute Frage die es in Sommer gestellt hat weil sich ja der Blockreward halbiert hat und erstaunlicherweise ist es dann aber eigentlich ohne weiteres weitergegangen nun ist es so, der Mechanismus der eigentlich greifen sollte ist, dass die Transaction fees dass es durch die Transaction fees getragen wird diese Gebühr nur ist es heute so, dass die Transaction fees so niedrig sind dass es meinen Schlicht nicht rentieren würde also der Stromverbrauch ist viel zu hoch also dass es sich nur für die Transaction fees zu meinen andererseits ist es aber so dass die Transaction fees heute schon sehr hoch sind also die kommen heute irgendwo zwischendurch in die Bereiche der Transaction fees die man auch zahlt bei Kreditkartenüberweisungen und das ist natürlich absolut lächerlich hoch und dann ist es aber auch so dass die Blöcke voll sind d.h. wenn das Block Limit das ist ein künstliches Limit wie gross die Blöcke sein dürfen dann kriegt darüber, ob man das jetzt ändern soll oder nicht aber wenn dieses Limit halt nicht erhöht wird dann passen nicht mehr Transaktionen rein und dann ist der einzige Weg mehr Transaction fees zu haben für den Meiner ist diese Transaction fees zu erhöhen und wenn man die weiter erhöht dann lohnt es sich einfach nicht für Bitcoin zu verwenden im Moment ist es noch nicht so ein Problem für die nächsten vier Jahre sind es 12,5 Bitcoin die man kriegt aber wie es dann auch weitergehen wird und schauen was da genau passiert und ich denke das ist auch noch ein dynamisches System das sich schnell wandelt und da werden auch noch viele Leute viele gute Ideen haben darf ich noch mal kurz nachfangen d.h. der Proof of Work ist nicht der direkte Bitcoin den ich bekomme also nicht die 12,5 Bitcoins die ich bekomme um ein Block zu erstellen ist nicht der Proof of Work nein, das ist die 12,5 Bitcoin die du kriegst das ist 12,5 Bitcoin plus was von den Transaction fees kommt das ist der Blockreward der Proof of Work ist einfach der Beweis dafür, dass du die Arbeit auf dich genommen hast einen Block zu erstellen gut, dann machen wir oben auf dem Balkon weiter mit der 8 bitte ja, das ganze erstellen von den Blöcken basiert darauf dass Transaktionen in das System reinkommen die Frage wäre jetzt was passiert wenn einfach keine Transaktionen zur Verfügung stehen werden dass der Block enthält dann nur die Coinbase Transaktion der meiner wird ja immer eine Coinbase Transaktion machen einfach halt, weil das für ihn interessant ist und dann stellt er halt ein Block der nur diese Coinbase Transaktion enthält dann machen wir weiter in vorne mit der 8 bitte ja, das ist das dann machen wir weiter hier vorne mit der 2 bitte wenn du nicht möchtest dann machen wir mit der 4 weiter sehr fair von dir ich hab das Thema Blockchain in verschiedenen Kontexten jetzt in den letzten Jahr sehr viel gesehen also fast ein Buzzword in sehr sehr vielen Branchen von Fintech bis IoT oder wo auch immer konntest du in Kontext deiner Arbeit ein bisschen so einen Trendraus sehen können also eigentlich erste Anwendung gibt es ja bereits du kannst mit Bitcoin Dinge bezahlen aber das ist so ein wenig eine Sache eines was ich gesehen habe wo ich mich aber schlicht weigere mich zu beteiligen ist halt das Banken das zu verwenden versuchen um die Transaktion zwischen den Banken zu regeln da wird es glaube ich im Anschluss im Saal G einen Tog geben dazu wie das heute gemacht wird um das zu austauschen und das möchte man in Zukunft mit Bitcoin machen und das sind die Banken auch daran sehr viel Geld und sehr viel Zeit rein zu investieren das ist halt sehr schade dass diese eigentlich coole Technologie jetzt für sowas verwendet werden soll aber ich denke das ist eine Anwendung die kommt dann eben einfache Kryptowährungen wie etwa Bitcoin um Dinge zu bezahlen um da auch ich denke auch mit Ethereum eben gerade dieses Smart Contracts dass man halt eben irgendwelche Dinge irgendwelche Service Parties die man verwendet für Dinge zu regeln setzen wird aber was das ist als erstes das quasi den Durchbruch schaffen wird und als großes eingesetzt werden wird kann ich dir nichts sagen gut dann wir sind so ganz knapp an der Zeit aber du darfst deine Frage auf jeden Fall stellen bitte auch nur in der ganz kurze Schnellfrage gibt es einen Schutz gegen DDoS dass ich das irgendwie das Netzwerk mit falschen Transaktionen bombardiere und dann bricht alles zusammen gibt es irgendwie einen Schutz dagegen? Ja das war ja ganz interessant das hat das glaube ich vor über einem Jahr gegeben bei Bitcoin dass das passiert ist und die waren sich dann nicht so ganz einig in der Community weil die bergen sich sowieso nicht mehr und kriegen nur miteinander die waren sich dann nicht so ganz einig ob das jetzt ein Test war oder ob das ein DDoS war und das Interessante daran ist es ja dass es ja tatsächlich Geld kostet eine Transaktion zu machen und der Schutz sollte eigentlich hoffentlich sein dass das da zu teuer ist aber offenbar gibt es immer noch so viele Bitcoin-Millionäre die einfach Bitcoins haben zum davon schmeißen und die dann sowas tun kann es wird auf jeden Fall an irgendwelchen Schutzmechanismen gearbeitet aber was das ist also was es gibt in Bitcoin ist dieses Replace by fee damit lässt sich die Transaktion gebühren im Nacht, wenn du eine Transaktion veröffentlicht dann lässt sich die Transaktion gebühren anschließend noch erhöhen und damit kannst du halt nur jetzt siehst es kommen sehr viele DDoS die Transaktion rein kannst du halt im Nachhinein die Transaktion gebühren erhöhen und es dadurch den Meinung quasi schmackhafter machen deine valide Transaktion zu inkluden dieses Replace by fee dieses RPF ist aber sehr stark umstritten und wird auch standardmäßig nicht aktiviert von den kleinen Software Dankeschön Gut, dann Danke Wimja für diese großartige Einführung in die Blockchain