Transcript

Disclaimer

Intro und Begrüßung

00:00:35 Hallo und herzlich willkommen zu Folge 11 von neuem Blog NIB 11. Ja, nachdem wir letztes Mal wieder im Bitcoin-Universum unterwegs gewesen sind,

Thema: ETH-Validatoren

00:00:47 geht es jetzt zurück wieder ins Ethereum-Universum.
Wir widmen uns heute einem etwas nerdigen Thema, sehr technisch.
Ich hoffe, ich kriege es wieder einigermaßen verständlich rüber zu euch, aber ich denke, jeder kann auf jeden Fall was mitnehmen und ist hinterher schlauer als vorher.

00:01:05 Wir kümmern uns um die Validatoren. Das klingt irgendwie total crazy, finde ich.
Was hat es damit auf sich? Ja, bei Bitcoin ist es ja so, dass wir, um das Netzwerk voranzutreiben, den sogenannten Proof-of-Work-Algorithmus haben. Das heißt, die Bitcoin-Miner arbeiten, verbrauchen Strom, verbrauchen Rechenleistung, um am Netzwerk teilnehmen zu dürfen. Wir haben bei Ethereum seit einiger Zeit, da hatten wir früher auch Proof-of-Work, jetzt inzwischen haben wir den Proof-of-Stake-Mechanismus oder Algorithmus. Wir haben darüber in der vorletzten Folge schon ein bisschen gesprochen, als es um Ethereum ging zum ersten Mal, aber heute tauchen wir ein bisschen tiefer ab. Einiges wird sich sicherlich auch wiederholen, vollkommen klar, aber ich versuche eigentlich ein bisschen jede Folge so zu machen, dass man auch einsteigen kann, ohne alle Folgen vorher gehört zu haben.
Wenn euch was nicht interessiert, spult einfach vor. Ja, wir haben bei Ethereum Proof of Stake. Das heißt, Stake ist ja eine Art Teilhabe sozusagen.
Das heißt, ich kann sagen, ich möchte jetzt als Validator, als jemand, der einen Block validiert, am Netzwerk teilnehmen.
Dazu muss ich erstmal was geben, um ein Stake zu kriegen sozusagen. Und zwar sind das 32 ETH. ETH, wir erinnern uns, ETH ist die Währung von Ethereum, Ethereum ist das Netzwerk, ETH ist eigentlich die Kryptowährung dazu und ich muss 32 ETH mindestens haben, um als Validator teilnehmen zu dürfen. Wenn ich das tue, dann ist es so, dass es einen Zufallsmechanismus gibt, der auswählt, wer von den vielen Validatoren den nächsten Block verifizieren darf, validieren darf. Und derjenige bekommt dann auch eine Block-Reward, eine Belohnung dafür, dass er am Netzwerk teilgenommen hat und dafür, dass er seine Ethereum gestaked hat. Ein Block, das ist eigentlich sehr ähnlich wie auch bei Bitcoin. Ein Block enthält zusammengefasst eine bestimmte Anzahl von Transaktionen, die eben im Ethereum-Netzwerk stattfinden und da zusammengefasst werden. Wir lassen es erstmal dabei, zu sagen, das sind meinetwegen...
Eine Transaktion, dass jemand jemand anders ETH schickt, das kann aber auch ein Smart Contract sein, auch selbst bei der Validierung werden Daten in die Blockchain geschrieben, also das alles zusammengefasst. Näher gucken wir uns erstmal den Block nicht an, das machen wir vielleicht in einer der nächsten Folgen.
Aber um diesen Block meinen zu dürfen, beziehungsweise anbieten zu dürfen, eine Idee oder einen Vorschlag, sagt man da auch, welches der nächste Block in der Blockchain sein kann, muss ich mich bewerben. Ich tue dies, beziehungsweise meine Software tut das natürlich, meine Validation-Software, mein Validation-Node, indem er eine Nachricht ins Netzwerk gibt und sagt, ich will mitbieten. Ich biete, dass ich hier einen tollen Block zum Netzwerk beisteuern kann. Jetzt habe ich mich gefragt und ich habe es gerade noch mal nachgelesen, wie es genau funktioniert.
Wie kann ich mit einem System von vielen Computern, die teilnehmen an einem Netzwerk, überhaupt einen Zufall erzeugen?
Das funktioniert folgendermaßen. Also um meine Teilnahme zu symbolisieren oder anzumelden, schicke ich einen Hash.
Ein Hash, darüber habe ich eine eigene Folge. Ich gucke mal nach, welche das war. Ich weiß es nämlich nicht auswendig. Na ja, so lange ist das nicht her. Das war NIB008. Da wird also genau erklärt, was ein Hash ist. Wir können jetzt einfach für alle, die es nicht gehört haben, sagen, das ist eine Art Quersumme, sage ich immer gerne, von einer Zahl. Also ich überlege mir als Validation-Node eine Zufallszahl, wo auch immer die herkommt. Also es gibt Zufallsfunktionen in Programmiersprachen, die sagen, ist jetzt einfach da und davon bilde ich einen Hash. Das Interessante an einem Hash ist, dass es eine Zahl dabei hinten rauskommt, ähnlich wie bei einer Quersumme, die ich nicht zurückrechnen kann. Eine Quersumme kann ja auch entweder aus 3 und 2 bestehen, zum Beispiel die Quersumme ist 5, dann kann die Ausgangslage oder die Ausgangsnummern können eben 3 und 2 gewesen sein, aber auch 1 und 4.

00:05:12 Und das heißt also, ich habe etwas, wo ich sagen kann, ich kann nachher beweisen, wenn ich sage, was ich reingesteckt habe, kann ich sagen, dieser Hash gehört zu mir. Dieser Hash meiner Zufallszahl wird in die Blockchain bereits geschrieben. Das heißt, ich muss wirklich eine Transaktion machen, die in einem Block landet. Ich nehme noch gar nicht in dem Augenblick am nächsten Block teil. Dann gibt es eine bestimmte Zeit, in der danach geguckt wird, wer seine Zufallszahl enthüllt sozusagen. Das heißt, ich schreibe ein paar Blöcke später, es gibt eine bestimmte Zeit, eine Deadline, bis zu der das gelaufen sein muss, schreibe ich nicht nur meinen Hash, sondern auch die veröffentlichte Zufallszahl. Das heißt, es kann nachvollzogen werden, okay, ich bin derjenige, der da in den Blog das reingeschrieben hat und bin der, dem auch die Zufallszahl dazu gehört.

00:06:01 Auch das wird wieder in die Blockchain direkt reingeschrieben in einer Transaktion. Ich habe gerade gesagt, das Ganze ist an bestimmte Zeiten gekoppelt. Das heißt, es gibt eine Deadline, wo halt alle immer jeweils diese Zahlen veröffentlicht haben, müssen ihre Nash und ihre Zufallszahl, die Enthüllte. Und dann kann jeder Teilnehmer an dem Netzwerk durch einen gleichen Algorithmus bestimmen über diese Zufallszahlen, wer der nächste Teilnehmer ist, der einen Block validieren darf. Das wiederum fand ich erstmal wirklich nicht gut vorstellbar.
Aber ich glaube, ich habe jetzt eine gute Möglichkeit gefunden, das zu erklären. Es läuft nicht genauso, wie ich euch das jetzt erzähle, aber man kann sich das eben so vorstellen. Es ist einfach nur ein vereinfachtes Modell. Die Zufallszahlen werden zum Beispiel addiert. Dann bekomme ich ja eine ganz große Zahl und die wird wiederum durch die Teilnehmer am Netzwerk dividiert. Ich versuche jetzt mal ein Beispiel zu machen.
Stellen wir uns mal vor, wir haben drei Teilnehmer und die haben die Zufallszahlen, ich nehme jetzt ganze Zahlen, damit ich es besser rechnen kann, 2, 4 und 6.
Wenn ich das jetzt addiere, lande ich bei 12. Dann wird 12 durch 3 geteilt. Ist in meinem Beispiel blöd, es geht nämlich auf, es ist 4.

00:07:19 Also, ich mache ein anderes Beispiel. Stellen wir uns vor, wir haben drei Teilnehmer im Netzwerk und die haben jeder eine Zufallszahl gewürfelt. Ich nehme erstmal Ganzzahlen, damit es einfacher ist.
Die Zahlen lauten 1, 2 und 5. Das ist zusammen 8.
Wenn ich diese Summe habe aus den Zufallszahlen, teile ich die durch die Teilnehmer des Netzwerks.
Das heißt, ich teile 8 durch 3.
Aber ich mache keine normale Geteiltaufgabe, weil das wären ja 2, irgendwas. 2,66 müssten das sein. Ich hoffe, das stimmt. Das ist so live on air. Hier was zu berechnen, ist immer ein bisschen blöd.

00:08:00 Ich habe es nachgerechnet. Das stimmt. Das wäre peinlich gewesen.

00:08:04 Also, 2,66 nehme ich aber nicht, sondern ich nehme eine Modulo-Operation. Modulo-Operation ist das, was wir in der Grundschule hatten mit Rest, als wir noch keine Kommazahlen konnten und trotzdem Zahlen durcheinander geteilt haben, wo das nicht aufging.
8 Modulo 3 ergibt 2.
Also ist in dem Fall mein Teilnehmer, der den nächsten Block anbieten darf, der mit der ID 2. Also nicht Nummer 1, nicht Nummer 3, sondern Nummer 2.
Diese Modulo-Operation sorgt dafür, dass mein Rest ja maximal quasi 3 sein kann, beziehungsweise dann wäre es ja wieder 0.
Wie das genau geregelt wird, kann ich jetzt nicht sagen. Ich vermute mal, das ist ja in der Programmierung relativ häufig, dass man nicht mit der 1 anfängt, sondern mit der 0. Das heißt, der erste Miner in dem Fall, beziehungsweise Validator, hätte die ID 0, der zweite hätte die 1 und der dritte hätte die 2. 2.

00:08:59 Das macht Sinn, denn wenn ich Modulo so habe oder wenn das so aufgeht, dass ich keinen Rest habe, dann wäre halt der erste dran.
Wenn Modulo 1 ist, wäre der zweite dran und bei Modulo 2, also wenn 2 übrig bleibt, nicht Modulo 2, sondern wenn 2 der Rest ist, dann wäre der dritte dran. Das würde ja aufgehen. Also wunderbar, jetzt war ich selber wieder verwirrt.
Das würde also klappen. Diese Berechnung ist jetzt für alle gleich, also dieser Algorithmus muss für alle gleich sein, die im Netzwerk teilnehmen, damit dann ganz klar ist, wer den nächsten Block meinen darf. Es gibt jetzt bei dem ganzen Validierungsprozess eine Art, ja, Zeit. Also es muss ja irgendwie Zeit vergehen, man muss ja irgendwie Zeit unterteilen können. Das wird nicht in Minuten und Sekunden und Stunden gemacht in dem Fall und auch nicht wie sonst so häufig in Blockzeit. Sondern die Validierung oder die Zeit, die während der Validierung verstreicht, wird in Epochen und Slots aufgeteilt. Wenn ich das richtig sehe, und da könnt ihr mir natürlich gerne Rückmeldung geben, wenn ihr es besser wisst, ist es so, dass die Anzahl der Sekunden, die in einem Slot vergehen, kann variieren. Und es kann auch variieren dadurch natürlich, wie lange eine Epoche dauert. Jede Epoche besteht aber aus 32 Slots. Wir haben wieder hier die 32, die haben wir häufig in der Programmierung als Vielfaches von 8 und jeder Slot ist ungefähr 12 Sekunden lang. Also es kann variieren, aber ungefähr 12 Sekunden. Die Rewards, die Verteilung und auch die Bestrafung finden immer am Ende einer Epoche statt. Das heißt, wenn ich irgendwie Mist gebaut habe, versucht habe zu betrügen im Ethereum-Netzwerk, dann werde ich geslashed. Dann bekomme ich Ethereum von meinen 32 gestakten Ethereum abgezogen. Das heißt, ich habe, man kann also wirklich sagen, sozusagen Skin in the Game, wäre so ein englischer Ausdruck dafür, der ganz gut passt. Ich bin also wirklich, ich habe was zu verlieren. Ich darf keinen Mist machen. Und es ist auch so, wenn ich längere Zeit nicht aktiv war, dann verliere ich auch Geld. ETH, also dann wird mir auch was abgezogen, ich habe am Ende weniger, was ich im Pot habe. Ich muss mindestens 32 ETH staken, oder nicht Ethereum, sondern ETH oder Ether, das ist einfach, habe ich in der letzten Folge, nee, in der vorletzten schon gehabt, das geht durcheinander teilweise bei mir, also ich muss mindestens 32 ETH staken, um teilnehmen zu dürfen, ich kann aber auch mehr staken. Es bringt mir allerdings erst wirklich wieder was, wenn ich mindestens 64 ETH stake. Also ich muss immer ein Vielfaches von 32 staken, damit sich bei dieser Lotterie am Anfang, wo gesagt wird, wir verteilen jetzt oder wir machen jetzt diesen Zufallsalgorithmus, wer der nächste Validator ist, der seinen Block anbieten darf. Da kann ich mir mit 64 ETH zwei Tickets kaufen und habe dadurch eine doppelt so hohe Chance, ausgewählt zu werden. Außerdem ist es so, dass am Ende auch, also es ist nicht so, dass wenn ich mehr Ethereum stake, ich mehr Reward bekomme. Die Reward ist immer die gleiche pro 32 ETH. Also ich kann mir einfach in der Lotterie mehr Tickets kaufen und habe eine höhere Wahrscheinlichkeit, dass ich häufiger meine Block Reward bekomme. So, ich muss jetzt mal in meine Liste gucken, was ich hier noch stehen habe.

00:12:14 Also gucken, ja, das mit dem Slashen, also bestrafen heißt Slashen bei Ethereum sozusagen.
Ja, also eigentlich ist es das schon. Ihr könnt allerdings, wenn ihr weniger als 32 Ethereum habt, trotzdem am Staking teilnehmen. Und zwar gibt es natürlich Anbieter, die eure Ether nehmen und dann staken. Das heißt, da könnt ihr einzahlen und die haben sozusagen dann eine größere Wahrscheinlichkeit, Tickets zu bekommen, dass sie dann der Validator sein dürfen in der nächsten Runde oder in der übernächsten oder in der überübernächsten. Und ihr kriegt dann von der Belohnung am Ende was ab, beziehungsweise ihr kriegt den großen Teil der Belohnung und die kriegen ein bisschen was, also der Service kriegt ein bisschen was ab, so dass sich das für den Service halt lohnt.
Durch diese Services ist es auch wesentlich einfacher, natürlich seine Ether wiederzubekommen, also das sogenannte Unstaking zu machen, also wieder was aus dem Pod rauszunehmen, weil die natürlich einfach das besser verwalten können. Wenn ihr euren Node habt, den ihr selber betreibt und den stilllegt und die Ether wieder rausbekommen möchtet, dann ist es natürlich technisch aufwendiger und wie gesagt, der Node wird bestraft, wenn er weniger online ist. Es kann eben auch sein, dass dadurch es zu Slashing durchaus kommt. Sowieso ist es natürlich so, wenn man selber einen Validierungsnode betreibt im Ethereum-Netzwerk, wenn man nicht ganz genau technische Ahnung hat, was man da macht, dann hat man einfach das Problem, dass man eventuell seine Ether verliert, weil man geslashed wird.

Hinweise, Verfügbarkeit, Unterstützung

00:13:45 Wenn ihr mehr wissen wollt über das Staking von Ethereum, über das Teilnehmen am Netzwerk oder irgendwas ganz anderes aus dem Krypto-Bereich, dann können Sie mir das sehr gerne schreiben. Ich habe heute leider keine Frage tatsächlich, also keine Frage, die ich beantworte.
Ich hoffe, dass es nächstes Mal wieder anders ist. Es hat einfach jetzt nichts reingepasst. Ich habe auch nur sehr wenig bekommen, aber auch das, was ich bekommen habe, das würde komplett andere Themen betreffen wieder.
Insofern schreibt mir gerne eine E-Mail an fragen-at-neu-im-blog.de oder nutzt das Kontaktformular, was direkt auf neu-im-blog.de auf der Startseite ist. Da findet ihr auch einen Link zu den bereits gefragten Fragen, die ich dann auch beantwortet habe. Und ich verlinke das dann immer gleich mit der Antwort im Podcast. Also man kann direkt in der Frage klicken oder auf die Frage klicken, kommt dann zu der Podcast-Episode und kann da direkt auf Play drücken und kriegt diese Frage beantwortet.
Ansonsten hoffe ich natürlich, dass das Hören Spaß gemacht hat, dass ihr was gelernt habt. Und ja, wie immer sage ich noch, ihr könnt den Podcast natürlich hier hören, auf der Webseite direkt oder wo ihr das auch gerade hört. Natürlich bei Apple Podcasts, bei Spotify, bei Deezer, bei YouTube auch. Die Links dazu bzw. die Möglichkeit zum Abonnieren gibt es auf neuemblog.de oder ihr sucht einfach natürlich da, wo ihr auch sonst Podcasts sucht. Da findet ihr den Stream eigentlich auch. Ihr könnt mich unterstützen, ihr erfahrt dazu alles auf neuimblog.de.

00:15:11 Beziehungsweise oben in der Navigation habe ich gleich einen Punkt unterstützen. Und eine sehr, sehr große Hilfe ist es einfach schon, wenn ihr den Podcast positiv bewertet, auf einer der typischen Plattformen dafür oder noch besser eine kurze Rezension schreibt, warum euch der Podcast gefallen hat oder dass er euch gefallen hat. Es reichen ja auch schon ein, zwei Sätze, aber das macht meinen Podcast mehr sichtbar. Und ganz ehrlich, ich freue mich einfach, wenn ich mehr Hörer habe, weil dafür mache ich das Ganze. Ich, ja, es ist ein Hobby von mir.
Ich freue mich auf jeden Fall über Feedback, natürlich am besten Positives und freue mich außerdem auf die nächste Folge von Neuem Blog, Folge 12. Ich weiß noch nicht wann und ich weiß noch nicht, worum es geht, aber sie wird kommen. Vielen Dank. Tschüss.

Datenschutzhinweis

Diese Webseite nutzt externe Komponenten, wie z.B. Adobe Fonts, und Matomo welche dazu genutzt werden können, Daten über Ihr Verhalten zu sammeln. Datenschutzinformationen

Notwendige Cookies werden immer geladen