Transcript

Disclaimer

Intro und Begrüßung

00:00:34 Hallo und herzlich willkommen zu Folge 12 von Neu im Blog.

00:00:41 Heute klinge ich möglicherweise ein bisschen anders als sonst, weil ich nämlich nicht in meinem Podcaststudio sitze, sondern an meinem Küchentisch. Das hat damit zu tun, dass ich mal wieder, wie ich euch eigentlich immer erzähle, wahnsinnig viel zu tun hatte und gesagt habe, ich erledige meine Arbeit, meine Lohnarbeit sozusagen oder meine bezahlte Arbeit lieber im Büro und setze mich dann zu Hause an den Küchentisch. Und nehme hier nochmal den Podcast auf, denn es gab schon ewig keine neue Folge und ich habe die schon vor langem geplant und musste jetzt tatsächlich nochmal mich wieder komplett neu reinfinden bei den Notizen.

Thema: Smart Contracts

00:01:16 Es geht heute um Ethereum wieder. Wir machen damit weiter. Und zwar geht es im Speziellen um die Smart Contracts. Ich habe das hin und wieder schon ein bisschen angesprochen.
Ich muss zugeben, ich vergesse immer ein bisschen auch, was ich in den letzten Folgen so erzählt habe. Nehmt mir das bitte nicht übel, aber wenn man einfach nur elf Folgen in einem Jahr macht, dann streckt sich das natürlich ganz schön hin und das ist voll verständlich, denke ich mal.

00:01:43 Daher werde ich mich sicherlich ein bisschen wiederholen. Smart Contracts, das ist das Besondere an Ethereum, beziehungsweise inzwischen nicht mehr nur an Ethereum. Es gibt auch andere Kryptowährungen, die auch Smart Contracts benutzen, unterstützen.

00:02:00 Aber Ethereum war die erste Plattform, die das getan hat.
Darüber habe ich schon ein bisschen erzählt, wie die Entstehungsgeschichte von Ethereum ist.

00:02:12 Ich glaube, das war die vorletzte Folge, müsste es gewesen sein. Da haben wir ja so einen kleinen Start hingelegt und heute wollen wir uns mal ein bisschen genauer angucken, worum es geht, nachdem beim letzten Mal es ja um die Validatoren ging. Ihr seht also, ich lasse das Ganze gerade ein bisschen Revue passieren, was ich eigentlich schon so erzählt habe. Ja, ein bisschen wiederholig, wie gesagt, für die, die jetzt gerade erst einschalten und die vorherigen Folgen nicht gehört haben. Ethereum ist eine dezentrale Plattform und nicht nur eine Kryptowährung. Das habe ich auch schon mal so erklärt. Das heißt, es ist nicht nur einfach eine Alternative zu Bitcoin, also Bitcoin in einer anderen Geschmacksrichtung oder in grün, in einer anderen Farbe oder wie auch immer, sondern es ist eine Plattform, die auch eine native Kryptowährung, nämlich ETH oder Ether beinhaltet. Was sind Smart Contracts?
Ich kriege immer bei dem Namen irgendwie echt einen Vogel, weil das klingt einfach immer so, als würde es da irgendwie um Verträge gehen.
Das ist ein total schlecht gewählter Name, finde ich. Ich glaube, es ist deswegen so genannt worden, weil halt sich Verträge damit abbilden lassen. In dem Sinne, dass man sagt, wenn etwas passiert, passiert etwas anderes. Also es gibt Leute, die denken, man könnte jetzt einfach einen Vertrag aufschreiben in seiner Word-Datei und das in die Blockchain laden. Und das wäre ein Smart Contract, aber das wäre vielleicht ein Contract, aber das wäre nicht sehr smart.
Erstens, weil man da nichts hat, was irgendwie automatisch passiert und zweitens wäre es auch nicht smart, weil so eine Word-Datei relativ groß ist und Blockchain-Speicherplatz ist ziemlich teuer und das würde also ziemlich teuer werden, das zu machen, zumal wenn man das häufiger machen will.
Smart Contracts sind selbst ausführende Programme auf der Blockchain. Und darüber möchte ich heute ein bisschen erzählen. Und zwar möglichst so, dass es einfach verständlich ist, auch für nicht totale Techies. Hier schon mal der Hinweis, wie immer, gebt mir gerne Rückmeldung. Wenn ich irgendwas zu kompliziert erkläre, dann erkläre ich es einfach nochmal in einer der nächsten Folgen. Oder ich versuche zumindest auch dann in den nächsten Folgen das Ganze noch einfacher zu halten. Ja, die automatische Ausführung ist an bestimmte Bedingungen gebunden bei den Smart Contracts und unabhängig von zentralen Instanzen. Okay, das müssen wir uns beides mal nochmal genau anschauen. Worum geht es hier? Also automatische Ausführung heißt, wenn bestimmte Bedingungen erfüllt sind, wird das Programm ausgeführt.
Das könnt ihr euch so ein bisschen vorstellen wie bei Automationen auf dem Computer. Wenn ihr eine E-Mail kriegt von irgendeinem Absender, dann soll sie in den und den Ordner sortiert werden. Oder auch, was natürlich letzten Endes auch eine Automation ist, ihr drückt eine bestimmte Taste auf eurem Computer, um ein Programm auszuführen. Auch das ist ja eine Art Bedingung. Und bei Smart Contracts ist es so, dass es Programme sind, die eben warten auf die Ausführung. Also sie warten nicht in dem Sinne, dass sie die ganze Zeit laufen, sondern wenn eben bestimmte Sachen passieren, dann werden sie ausgeführt und gestartet.
Naja, es klingt auch noch ein bisschen falsch in meinen Ohren.

00:05:27 Ich vereinfache immer so ein bisschen. Deswegen, wer es jetzt schon genau weiß, der wird sich jetzt ein bisschen schütteln bei der Ausführung und wer ein bisschen tiefer in Computern drin steckt.
Unabhängig von zentralen Instanzen, das heißt, wenn ihr ein Computerprogramm bei euch auf dem Computer ausführt, dann wird es auf dem Computer ausgeführt, das heißt dort, wo ihr seid. Selbst wenn ihr eine Webseite aufruft, das ist ja auch meistens eine Art kleines Programm, dann wird dieses Programm auf dem Server ausgeführt, beziehungsweise heutzutage auch auf eurem Rechner und dann ein Teil auf dem Server, beides zusammen, also normalerweise die Oberfläche auf eurem Computer und dann die Daten werden vom Server geladen. Das ist aber trotzdem noch zentralisiert. Es gibt einen Client, das seid ihr, und einen Server und auch der Server liefert natürlich die Webseite aus. Das heißt, eigentlich kommt doch alles vom Server. Auf dem Handy natürlich genau das Gleiche. Ihr habt Programme, die interagieren mit dem Internet, die habt ihr irgendwo anders vielleicht mal runtergeladen. Also es ist dann nicht der gleiche Server, der die Daten bereitstellt und der die App bereitstellt normalerweise, aber es ist eben trotzdem zentral. Und,
Bei Smart Contracts ist es nun so, und das gilt für alle, nicht nur für die auf Ethereum, dass sie eben an mehreren Stellen ausgeführt werden.
Eigentlich sogar überall. Und zwar in der sogenannten Ethereum Virtual Machine. Maschinen.
Vielleicht habt ihr schon mal gehört von virtuellen Maschinen. Das gibt es auch im Bereich Java zum Beispiel. Wer mit Java-Programmierung schon mal Erfahrung hatte, da ist es die Java-Virtual-Maschinen, in der Dinge ausgeführt werden, Programme ausgeführt werden. Und es gibt natürlich auch virtuelle Maschinen, die ganze Computer simulieren. Also gerade im Bereich Server-Technologie hat man das heute normalerweise, dass man einen Computer hat, auf dem läuft dann meistens, nicht immer, aber meistens sage ich mal ein Linux und dort laufen wieder mehrere virtuelle Maschinen drauf, also virtuelle Computer. Ein bisschen so kann man sich das auch bei der EVM, bei der Ethereum Virtual Machine vorstellen.
Die EVM lebt allerdings auf der Blockchain. Die EVM unterstützt verschiedene Programmiersprachen. Also es ist so wie häufig in der Programmierung. Man schreibt in einer Programmiersprache und der Code wird dann in Computer-Code übersetzt, den der Computer versteht.
Relevant ist im Augenblick allerdings ehrlich gesagt bei Ethereum nur Solidity so richtig relevant. Das ist eine Programmiersprache, die wurde von der Ethereum Foundation entwickelt, ist sehr ähnlich zu JavaScript, beziehungsweise eigentlich eher zu TypeScript, wenn man es genauer nehmen will. Den Unterschied erkläre ich jetzt nicht, das wird einfach zu verwirrend.
Und ja, jetzt habe ich mich ein bisschen fassbildet. Achso, wird also kompiliert, das heißt im Computercode übersetzt, den die EVM, die Ethereum Virtual Machine, versteht. Das ist Bytecode, also letzten Endes Eins und Nullen. Und die EVM ist eine Art Sandbox, also eine Art Umgebung, die sicher ist, kann man so sagen, so wie ein Sandkasten für Kinder sicher sein sollte. Da können sie drinnen spielen, machen, was sie wollen.
Alles außenrum interessiert nicht. Untertitelung des ZDF, 2020 Bei einer Sandbox im Computing ist es auch so, dass von außen nichts kommen kann. Natürlich kann das Nachbarkind in den Sandkasten kommen, wenn ich einen echten Sandkasten habe. Aber das Ganze soll eben bedeuten, es ist etwas abgeschlossenes, etwas sicheres. Das heißt, auch wieder nicht ganz, weil das mit dem fremden Kind, was in den Sandkasten kommen kann, stimmt gewisserweise. Denn ich kann von außen mit der Ethereum Virtual Machine bzw. Mit den Smart Contracts tatsächlich interagieren.
Das heißt, sie haben eine Art Schnittstelle. Das ist die sogenannte Web3-Schnittstelle. Kann man sich merken, kommen wir bestimmt irgendwann nochmal drauf zurück. Und da kann man eben die Smart Contracts ansprechen. Sie verarbeiten Daten, die man reingegeben hat und geben sie dann wieder raus. Das heißt, es gibt schon die Möglichkeit, mit diesem Sandkasten zu kommunizieren. Ich kann aber eben nicht so einfach irgendwelchen Code reinbringen. Das muss ich eben machen. Da muss ich schon Solidity programmieren und muss dann auch den Code auf die Blockchain bringen. Das kostet wiederum die native Kryptowährung Ether. Das heißt, das ist nicht sicher, aber ein bisschen komplizierter und kostet eben auch was. Die Transaktionen und Zustandsänderungen.
Also, ich kann mit einem Smart Contract interagieren, dazu muss ich meine Wallet, wir haben schon mal über Wallets geredet, über Ethereum Wallets glaube ich noch nicht so viel, aber das werden wir bestimmt nochmal tun in einer Folge. Ich muss meine Wallet dann mit dem Smart Contract verbinden. Das klingt erstmal schwierig, aber ich mache bestimmt noch eine Folge mal zu MetaMask. Das ist nämlich eine der bekanntesten Wallets im Ethereum-Netzwerk.

00:10:15 MetaMask ist eine kleine Browser-Erweiterung. Ihr kennt das vielleicht von Werbeblockern oder sowas. Das sind auch häufig Browser-Erweiterungen oder vielleicht auch Passwort-Managern. Dann MetaMask ist eine Browser-Erweiterung, die dafür sorgt, dass eure Wallet, nein, stimmt nicht, MetaMask ist die Wallet, also MetaMask ist die Wallet, das heißt, die verwaltet euer Krypto, euer Ether, euer ETH und über diese Wallet kann eine Webseite mit der Wallet kommunizieren. Über eine Wallet kann die, das klingt jetzt irgendwie blöd. Also letzten Endes, ihr habt oben Metamask irgendwo in der Browserleiste als Browser-Plugin installiert und ich gehe jetzt einfach mal durch. Ihr kommt auf eine Webseite, die ein Smart Contract nutzen will, dann könnt ihr dort normalerweise klicken, dass ihr die Wallet mit der Webseite verbinden wollt.
Das müsst ihr dann aber nicht nur auf der Webseite klicken, sondern auch in der Wallet, also in MetaMask bestätigen. Das ist also schon mal ein Sicherheitsmechanismus, dass nicht einfach jede Webseite auf eure Wallet zugreifen kann. Ihr seht dann auch in MetaMask, dass die Webseite verbunden ist. Ihr habt eine Liste mit allen verbundenen Webseiten und könnt die auch wieder trennen. Fällt mir gerade ein, vielleicht nutzen einige das von euch mit Twitter oder Facebook oder haben es genutzt früher mal. Da kann man ja auch Webseiten mit verbinden. So ein bisschen, so kann man sich das vorstellen, dass man dann eben auch eine Liste hat, wo die Seiten sind, die mit Facebook verbunden sind und die kann man auch wieder rausschmeißen. So, das ist also jetzt die Verbindung, die hergestellt ist.
Und dann ist es so, dass die Webseite, auf der ich bin, beinhaltet nicht den Smart Contract, sondern die kommuniziert wiederum mit dem Smart Contract. Also, so wie ich das vorhin gesagt habe, dass Webseiten heutzutage meistens oder sehr häufig eben ein Frontend sind, also eine Oberfläche, auf die ihr rumklicken könnt und im Hintergrund kommunizieren sie mit einem Server, wo die Daten liegen und verarbeitet werden. So ist hier der Server ausgetauscht durch die Blockchain bzw.
Durch den Smart Contract, mit dem ich interagieren will. Ich bin also immer noch auf meiner Webseite, habe mich verbunden und habe jetzt zum Beispiel ein Formular, in das ich Daten eingeben kann. Ganz normales Formular, wie man das im Internet kennt. Gebe da Daten ein und klicke dann auf Absenden oder was auch immer auf dem Button steht. Und dann werden diese Daten an den Smart Contract gesendet.
Und jetzt sind wir auch dabei, wann wird der Smart Contract ausgeführt? Der Smart Contract...
Dann ausgeführt, wenn der nächste Block gemeint wird und wenn ich eben von außen einen Wert reingetan habe, kommt das an der Zustandsänderung gleich und er wird ausgeführt und gibt ein Ergebnis und das wird in die Blockchain geschrieben. Ganz kurzer Umweg einmal, ganz kurzer Denkhaken.
Ich kann natürlich auch Smart Contracts an die Blockzeit binden, das heißt also an die Zeit, aber die Ethereum Virtual Machine kennt keine Zeit, sondern nur Blockzeit, also wie viele Blöcke sind gemeint worden und dann wäre es halt so, dass so ein Smart Contract komplett automatisch ausführt, ohne dass ich damit mit einer Wallet interagiere. Das Interessante ist, dass natürlich, wie immer beim Computer, ich brauche den Benutzern gar nicht. Ich muss gar nicht über eine Wallet unbedingt mit dem Smart Contract interagieren, sondern auch Smart Contracts können mit Smart Contracts interagieren oder andere Programme, Computer, können mit Smart Contracts interagieren. Ich mache jetzt mal ein Beispiel. Vielleicht ist das ein bisschen blödsinnig oder zu einfach, Aber stellen wir uns mal vor, ich will mein Elektroauto tanken, dann könnte ich, wenn es so ein System gäbe, vielleicht gibt es das auch, ich weiß es nicht,
könnte ich mir vorstellen, es gibt einen Smart Contract, den jemand geschrieben hat und in den kann ich erstmal Kryptowährungen reinladen. Also wir nehmen einfach mal Ether.

00:13:57 Ich tue zum Beispiel 200 Euro in Ether in dieses Smart Contract. Dann gehe ich auf die Webseite, die dazugehört zu diesem Smart Contract und verbinde meine Wallet.
Dann kann ich da wahrscheinlich in eine Formular eintragen, wie viel Geld in Euro oder wie viel Ether ich eintragen will, eingeben will. Weil meistens ist es dann so, dass ich das umschalten kann, will ich es als Euro oder als Ether angezeigt bekommen und dann kann ich sagen ausführen und dann wird von meiner Wallet die Kryptowährung in den Smart Contract geladen.
Dann habe ich als Mensch mit meiner Wallet zusammen mit dem Smart Contract interagiert. Jetzt kann ich mir vorstellen, dass vielleicht mein Auto so schlau ist, dass es auch mit der Blockchain interagieren kann. Dann könnte ich mir vorstellen, dass ich mit meinem Elektroauto in eine Ladesäule fahre von dem Anbieter, der den Smart Contract geschrieben hat und einfach nur noch den Stecker rausnehmen aus meinem Auto, einstecke in die Steckdose oder in die Säule einstecke und das Auto dann noch mit der Ladesäule sicherlich kommunizieren muss. Also sagen muss irgendwie, ich bin der und der und ich ziehe jetzt Strom.
Das könnte man natürlich auch über ein Datenkabel machen, was man dann einfach einsteckt oder man könnte zum Beispiel eine Nummer eingeben auf dem Display, eine Kundennummer oder sowas, die man vom Smart Contract erhalten hat und dann wird Strom getankt, der Akku aufgeladen und entsprechend meines Verbrauchs wird automatisch aus dem Smart Contract wie von einem Konto abgezogen in Euro der Wert, was ich vertankt habe.
Das ist jetzt ein bisschen blödsinnig, in dem Fall das mit Ether zu machen, weil natürlich der Ether-Kurs gegenüber dem Euro immer schwankt, das heißt, ich würde dann mal sehr teuer und mal sehr günstig tanken, aber wir haben bei diesem Beispiel einfach diese zwei Situationen. Ich interagiere mit meinem Smart Contract als Mensch über meine Wallet auf meinem Computer oder meinem Handy.

00:15:49 Oder mein Auto im zweiten Schritt agiert eben als Hardware, auf der eine Software läuft, also als Programm, sage ich mal. Denn das Programm würde dann ja auf dem Bordcomputer laufen von meinem Auto, beziehungsweise eben auch ein Teil auf der Ladesäule, würde dann mit dem Smart Contract interagieren.
So, das war ein ganz schöner Exkurs, den ich gar nicht in meinen Notizen stehen habe. Aber manchmal kommt man ja vom Hölzchen aufs Stöckchen.
Ich gucke mal, was habe ich denn als nächstes hier stehen?

00:16:16 Genau. Wie ich eben schon gesagt habe, der Zustand der Daten wird in der Blockchain gespeichert. Aber wie muss ich mir das vorstellen?

00:16:55 Jetzt ist es aber so, dass die Smart Contracts genauso wirksam eine Wallet auch eine Adresse haben. Und bei der Transaktion, die ich ausführe mit meiner Wallet, wird eben einerseits Krypto übertragen, Kryptowährung, aber eben auch Daten, also Informationen, die ich in die Blockchain schreibe.
Kurze Bemerkung, diese Daten kann natürlich jeder sehen.
Zumindest die Daten, die in der Blockchain gespeichert werden. Wenn ich jetzt mit meiner Wallet also eine Transaktion gemacht habe, dann landet die erstmal wieder im sogenannten Mempool, das heißt dort, wo alle Transaktionen auf Ausführungen warten und wartet darauf, dass ein Miner, beziehungsweise bei Ethereum inzwischen, ein Validator, wie sie ja heißen, das haben wir in der letzten Folge gesprochen, dass jemand diese Transaktion nimmt und bearbeitet, in die Blockchain schreibt.
Beim Smart Contract ist es aber so, dass eben auch das Programm,
was den Smart Contract beinhaltet, oder das Programm, was vom Smart Contract beinhaltet wird, so rum eigentlich,
dass das ausgeführt wird und natürlich ein Ergebnis hat. Also Daten gehen rein, Daten gehen raus. Und das...
Wird zusammen mit allen anderen Ergebnissen aus diesem Block wieder gehashed.
Ich hoffe, ich erzähle jetzt keinen Blödsinn. Ich habe erst das nicht noch nachgeguckt, ob das wirklich ein Hash ist. Aber es müsste auch ein Hash sein. Das heißt, alle Ergebnisse werden zusammengeschmissen, sozusagen durchgerührt und ein Hash draus gebildet. Wir haben eine eigene Folge bei Hashing, das weiß ich genau. Ich gucke gerade mal welche.

00:18:23 Hashing, NIB008, ist schon ein bisschen her. 21.1. Genau, es wird ein Hash gebildet und das ist die sogenannte State Root.

00:18:33 Bei Computerprogrammen spricht man häufig von State. State ist also der Status der Daten, die gerade ein Computerprogramm hat.

00:18:43 Ich stelle mir mal vor, ja, also es kommt sicherlich auch daher. Es ist ein bisschen vergleichbar mit dem RAM-Speicher, den ein Computer hat. Also wenn ihr ein Programm öffnet und Daten bearbeitet, sagen wir mal eine Word-Datei, dann findet das ja nicht die ganze Zeit auf der Festplatte statt, sondern dann werden die Daten, die ihr gespeichert habt, in den RAM-Speicher geladen und werden dort immer verändert, weil der RAM-Speicher halt sehr viel schneller beschreibbar ist als die Festplatte.
Dafür ist der RAM-Speicher halt nicht dauerhaft, sondern der RAM-Speicher beinhaltet die Daten und wenn ich in Word auf Speichern klicke, dann werden diese Daten wieder auf die Festplatte geschrieben.
Der State ist also eigentlich der Status des Programms.
Welche Farbe hat meine Schrift? Was habe ich überhaupt geschrieben? Welche Schriftgröße?

00:19:29 Und die ganzen anderen Einstellungen, die ich in Word habe, das ist halt in dem Fall der State. Oder ich kann es mir so vorstellen, dass das der State ist. Wenn ich Speichern drücke, wird es auf die Festplatte geschrieben.
Wir haben in der Ethereum Virtual Machine eben auch diesen State. Und zwar immer den State zu einer bestimmten Blockzeit. So wie wir auch beim Computerprogramm natürlich den State zu einer bestimmten Zeit haben. Wenn ich dann weiterarbeite im Programm, dann ändert sich der State.
Und ein Abbild dieses States ist eben der Hash, der in der Blockchain gespeichert wird. Und wenn jetzt ein Block validiert wurde, dann rechnen alle anderen Validatoren im gesamten Ethereum-Netzwerk.

00:20:07 Die Transaktion oder die Ausführung des Smart Contracts nach und alle anderen Transaktionen und Smart Contracts, die stattgefunden haben in diesem Block und bilden daraus wieder die State Route, also wieder den Hash aus den ganzen Ergebnissen und das muss überall übereinstimmen. Das heißt, wenn ein Validator irgendwelchen Blödsinn gemacht hat, also wenn ein Validator einen Hash raus hat, den die anderen nicht nachvollziehen können, dann wird gesagt, du hast Unrecht und das haben wir in der letzten Folge Ja, genau, Nib011, also Nummer 11, gelernt.
Dann gibt es die, ach, wie hieß das denn gleich? Die Bestrafung, die, ich komme jetzt gerade nicht drauf.
Ist ja auch egal. Dann gibt es die Bestrafung, dann verliert eben eventuell der Validator, der Mist gemacht hat und irgendwas Falsches ausgerechnet hat, ein Teil seiner Einlagen, ein Teil seines Ethers, was er gestaked hat.
Gerne nachhören oder nachlesen bei NBB Nummer 11.

00:21:09 Ihr wisst ja, es gibt auf der Webseite auch ein Transkript, wo man dann auch direkt sogar raufklicken kann und zu der Stelle im Podcast dann springen. Also wenn man schnell was suchen will, kann man das machen. Aber ich mache es jetzt nicht, weil ich will euch nicht langweilen, während ich hier aufnehme und will auch nicht so viel schneiden.

00:21:24 Gut, das war die State Route. Dann ist natürlich noch die Frage, wo werden denn die Daten gespeichert, die der Ausgabe entsprechen, weil die müssen ja irgendwie wieder lesbar sein. Wenn ich also, sagen wir mal, ich will einfach meinen Namen auf der Blockchain speichern in einem Smart Contract, dann kann der Smart Contract Speicher bereitstellen, wie so eine Art Datenbank oder eine Variable ist es eigentlich, die dann meinen Namen beinhaltet. Also da steht dann Bernhard drin.

00:21:56 Und das muss ja wieder auslesbar sein. Wenn ich jetzt nur die State Route speichern würde, dann wäre das ja ein Hash. Und ein Hash, das haben wir gelernt, in der vorletzten Folge kann man nicht zurückrechnen. Das heißt, diese Variable wird auch auf der Blockchain gespeichert im entsprechenden Block.

00:22:14 Das heißt, der Status, der State wird gar nicht nur, habe ich jetzt vielleicht blöd erklärt, wird gar nicht nur in der State-Route gespeichert, sondern auch direkt schon im Block. Also das Ganze ist kompliziert.
Ich muss jetzt nochmal ein bisschen nachdenken bzw. Nochmal meine Notizen schauen. Ich habe gerade zugegebenermaßen auf Pause gedrückt einmal. Also, wenn ich meinen Namen in der Blockchain speichern möchte, dann tue ich das über ein Smart Contract und dann wird eine Transaktion der Blockchain gegeben, wo drin steht, hier, dieser Smart Contract ändert seinen Wert an der und der Stelle. Dann wird die Funktion aufgerufen, die das in der Blockchain speichert, an der Stelle, die für mein Smart Contract reserviert ist. Also es gibt einen Speicher, der zu meinem Smart Contract gehört.

00:23:04 Und das Interessante ist, dass jetzt mein Name nicht in jedem Block steht, der gemeint wird, sondern wenn ich ihn auslesen möchte, dann wird halt zurückgegangen, wann gab es die letzte Änderung bzw.

00:23:17 Wann gab es die Änderung dieser Variable und da wird ausgelesen, wie der Wert der Variable, also mein Name, ist. Das heißt, eigentlich muss man sehen, dass diese ganze Datenspeicherung über den Verlauf der gesamten Blockchain stattfindet. Es ist aber eben auch jederzeit rekonstruierbar.
Der StageRoute, der aktuell ist, also der Status von allen Smart Contracts, da sind aber auch alle Transaktionen und alles sonst drin, was im Block steht. Also so ein bisschen wie der BlockHash bei Bitcoin.

00:23:49 Das lässt sich jederzeit rekonstruieren und nachrechnen.
Es gibt dann noch unterschiedliche Variablen. Also eigentlich gibt es drei Arten unterschiedlicher Variablen, aber wir vereinfachen das jetzt mal auf zwei, weil zwei davon sehr ähnlich sind. Es gibt einmal den, wir fangen mal mit dem Einfachen an, sozusagen den Memory.
Den Memory oder die Memory-Variablen, die kosten nichts bei der Ausführung des Smart Contracts, sondern das ist das, was ich mir zwischendurch merke. Also wenn ich mir jetzt vorstelle, ich rechne was, 4 plus 4 ist 8 und dann rechne ich nochmal plus 2 ist 10 und ich möchte dann also das Ergebnis speichern, dann wird die 10 auf der Blockchain gespeichert, aber die 8, die ich zwischendurch hatte nach dem 4 plus 4, das ist eine Memory-Variable, die merke ich mir nur in meinem Kopf, die schreibe ich nur aus wohin. Also gut, kann mir das, wenn ich das jetzt das Beispiel nehmen will, kann ich sagen, ich will was aufschreiben und ich schreibe halt sozusagen die Zwischenschritte nicht hin, sondern mache sie nur in meinem Kopf und spare dadurch Papier, wenn ich es nicht aufschreibe. Und genauso ist es im Smart Contract.
Die Variablen, die ich nur zu bestimmten Zeiten brauche und nicht speichern möchte, die werden eben im temporären Speicher, im Memory gespeichert.
Dann gibt es noch Storage- und Stack-Variablen.

00:25:19 Storage-Variablen sind die, die für einen dauerhaften Speicher, für eine dauerhafte Speicherung vorgesehen sind.
Und bei Stack ist es letzten Endes genauso, bloß dass sie ein bisschen anders gespeichert werden und schneller gespeichert werden können.
Ich glaube, ich weiß nicht genau, was von beiden teurer ist. Was heißt jetzt eigentlich teurer? Und wer bezahlt das Ganze? Wenn ich Daten in den Smart Contract reingebe, dann führe ich dort eine Funktion, also ein kleines Unterprogramm des Smart Contracts normalerweise aus und muss bei der Transaktion auch Gebühren bezahlen, sogenanntes Gas.

00:26:00 Gas, darüber haben wir schon ein paar Mal gesprochen in der Einführungsfolge zu Ethereum und ich glaube in der letzten bei den Validatoren auch.

00:26:09 Gas ist also quasi so wie Benzin in meinem Auto, habe ich glaube ich damals auch so erklärt, wie Benzin in meinem Auto und das Benzin in meinem Auto kann ja unterschiedliche Preise haben. Das heißt, ich kann mir vorstellen, die Ausführung von meinem Smart Contract kostet so und so viel Gas. Das ist also so, wie wenn ich sagen würde, 100 Kilometer fahren kostet in meinem Auto, ich bin kein Autofahrer, habe ich damals auch, glaube ich, schon gesagt, 5 Liter, keine Ahnung, also 5 Liter Gas. Gas, ist wahrscheinlich dann SUV oder auch nicht, ich habe keine Ahnung. Also 100 Kilometer kosten 5 Liter, aber die 5 Liter kosten dann ja in Euro, je nachdem wo ich sie tanke und wann unterschiedlich viel. Das heißt, das Gas, was mein Smart Contract bei der Ausführung verbraucht und bei der Speicherung, das ist immer gleich, solange sich die Funktion nicht ändert.
Sie kann sich letzten Endes nicht ändern, aber irgendwie doch, weil wir sind ja auf der Blockchain, eigentlich kann sie es nicht ändern, weil es steht ja drin, aber das Da können wir später nochmal einen Exkurs machen oder ein andermal drüber reden. Aber der Preis, den ich für Ethereum zu dem Zeitpunkt bezahle, also den Preis, den ich für das Gas bezahle, der ändert sich. Ich bezahle eben das Gas in Ethereum und es ist halt so, dass dadurch, dass dieser Gaspreis unterschiedlich sein kann, eben die Ausführung von Smart Contracts durchaus mal mehr und mal weniger kosten kann.

00:27:31 Das Ganze ist aber Absicht und zwar soll es dafür sorgen, dass die Blockchain nicht zugespampt wird, denn sonst könnte ja jeder irgendwas reinspeichern und reinschreiben und das ist also nicht gewollt.
Wir sind, soweit ich weiß, im Augenblick dabei, dass die gesamte Ethereum-Blockchain, also alles, was da gespeichert ist in der Blockchain, ungefähr ein Terabyte ist. Ein Terabyte hat man durchaus schon in seinem Laptop.
Das ist also schon ordentlich viel, aber es ist auch nicht so viel, dass man dafür riesige Server braucht. Es ist aber so, wenn man wirklich ein Validator ist, also am Netzwerk teilnimmt, nicht nur als Benutzer über Smart Contracts und seine Wallet, sondern wirklich direkt Teil des Netzwerks ist, dann kann man auch einen sogenannten Light Client haben und der hat nur einige Gigabyte Speicher. Das heißt, der guckt sich die ganzen alten Transaktionen gar nicht an, der sagt, die sind validiert und nimmt halt erst Blöcke aus einer bestimmten Zeit zurück und schmeißt dann auch immer, wenn ein Block gemeint wurde, wieder Blöcke weg. Dann gibt es aber noch einen sogenannten Archiv-Node und der speichert alles, was ein Full-Node speichert, also die ganze Blockchain sowie alle historischen Zustände der Blockchain.
Das heißt also nicht nur die aktuelle Version des Zustands, sondern auch jeden einzelnen Zustand nach jeder Transaktion, der existiert hat.
Das wird dann richtig groß, das sind 10 Terabyte, also sagen wir mal 10 Laptops mit relativ viel Speicher. Die Transaktionen, die ausgeführt werden auf der Blockchain, sind aber relativ einfach. Also das kann ich mit jedem heute gängigen Mikrocomputer, so einem Raspberry Pi oder jedem Computer, den ich auf dem Tisch stehen habe und wahrscheinlich auch jedem Computer, der schon 10 Jahre alt ist, kann ich diese Rechenoperationen in sich durchführen. Es ist also nicht so, dass ich irgendwelche komplizierten Sachen, irgendwelche Simulationen, 3D-Objekte, Spiele direkt auf der Blockchain speichern würde. Es gibt Blockchain-Spiele, aber die speichern dann immer nur bestimmte Daten, Spielstände oder Kontostände oder wem zum Beispiel welches Ausrüstungsmaterial im Spiel gehört. Das wird dann auf der Blockchain gespeichert.
So, ich bin jetzt eigentlich ziemlich durch. Nicht nur mit dem Thema, sondern auch geistig, weil das einfach wirklich kompliziert ist und auch kompliziert zu erklären ist natürlich.
Ich überlege gerade, ob ich vielleicht noch ein paar Beispiele für Smart Contracts bringe.
Ja, also ein typischer Smart Contract sind sogenannte Altcoins. Da machen wir eine in den nächsten Folgen drüber. Das heißt, viele von den anderen Kryptowährungen, die es gibt, laufen wiederum auf Ethereum oder inzwischen eben auch auf anderen Blockchains, die so eine virtuelle Maschine haben und Smart Contracts ermöglichen, wie Ethereum das auch tut. Das ist ein großer Anwendungsfall dafür. Dann ist zum Beispiel NFTs, habt ihr bestimmt auch schon mal gehört, also kleine Dateien, Bildchen, die man kaufen kann, verkaufen kann oder eben also eigentlich jede Art von Datei quasi.
Das wird auch bei Smart Contracts geregelt, wobei, das kann ich schon mal vorwegnehmen, bevor wir zu der Folge kommen mit den NFTs, die Daten selbst werden normalerweise nicht auf der Blockchain gespeichert, weil das eben zu viel kosten würde. Und die Blockchain sehr groß machen würde.

00:30:56 Was haben wir noch? Exchanges, dezentrale Exchanges.
Haben wir auch schon mal angeschnitten, das Thema, glaube ich. Auch in der Ethereum-Einführungsfolge vermutlich.
Wo ich also eine Kryptowährung in eine andere tauschen kann. Auch das sind Smart Contracts. Und dann gibt es Contracts, die sogenannte Oracles benutzen. Also Orakel, die Daten von außen kriegen. Ich kann also auch, wenn ich möchte, eine Art Versicherungskontrakt bauen. Der Geld kriegt von Teilnehmern einer Versicherung oder auch einer Wette, weil eigentlich ist eine Versicherung nicht viel anderes als eine Wette. Und wenn jetzt das Oracle von außen sagt, der und der Zustand soll eintreten, also meinetwegen, die Menschen sind auf dem Mond gelandet, kommen von außen rein übers Oracle und es war eine Wette, können wir bis zum Jahr 2030 auf dem Mond landen,
dann kann automatisch was ausgeführt werden. Also dann können alle die, die gesagt haben, ja, schaffen wir, werden ausbezahlt aus dem Pot von dem, was vorher eingezahlt wurde und die anderen kriegen dann halt nichts. Das heißt, ja, das wäre ein Beispiel für ein Oracle, wobei das ein blödes Oracle ist, weil es müsste ja irgendjemanden geben, der sagt, ja, hat stattgefunden oder hat nicht stattgefunden mit der Mondlandung und der kann ja auch irgendwas dann klicken und reinbringen.
Normalerweise ist es so, dass solche Oracles ein bisschen komplizierter gebaut sind und häufig werden die auch tatsächlich benutzt, um Kurse von anderen Kryptowährungen abzufragen und reinzugeben.
Noch ein Beispiel, was eine Zeit lang ziemlich gehypt wurde, sind so Lieferkettenverfolgungssachen. Also ich stelle mir vor, irgendwas wird angebaut, zum Beispiel Bananen und da fängt dann schon der Bauer an, dass er in einem Smart Contract zertifiziert mit seiner Wallet, zu der nur er Zugang hat, dass er das Ganze fair und biologisch verträglich gemacht hat und dann beim Weitertransport wird das Ganze zum Beispiel wieder bestätigt. Und letzten Endes kann ich dann auf die Banane einen Aufkleber machen mit einem Code drauf, wo ich exakt gucken kann, wer hat auf dem ganzen Weg vom Produzenten bis zu mir nach Hause bestätigt, dass das eine Banane, eine Bio-Öko-Banane ist.
Ich halte das teilweise für relativ blödsinnig, weil eigentlich kann da ja auch wieder jeder eintragen, was er will. Ich muss dann auch natürlich wieder jeder Stelle, die dort einen Eintrag macht, was passiert mit der Banane, muss ich vertrauen.
Und es kann halt im Nachhinein nicht gefälscht werden, das ist klar. Ich kann mir also jetzt nicht irgendwie einen Container Bananen kaufen und kann dann im Nachhinein behaupten,
dass dieser Container biologisch angebaut worden ist, wenn ich es nicht beweisen, also gut, ich kann es ja nicht beweisen, weil es kann ja jeder was eintragen, also ich finde das grenzwertig.
Man kann auch wieder Smart Contracts schreiben, die bestimmte Dinge in der echten Welt steuern, also ich könnte natürlich irgendwie ein Schloss von einem Schrank oder von einer Wohnung steuern, Wenn ich mit dem Smart Contract interagiert habe und Geld überwiesen habe, beziehungsweise Kryptogeld überwiesen habe, dann geht die Tür auf. Da brauche ich aber auch nicht unbedingt ein Smart Contract zu, denn da könnte ich auch einfach eine Wallet angeben, die dann von außen überwacht wird von einem Skript und wenn dort Geld eingeht, dann wird halt für die und die Zeit die Tür aufgemacht. Mit einem Smart Contract wäre es dann wieder sinnvoll, wenn ich sagen würde, jemand oder mehrere Personen bekommen Zugang und ich kann mich dann mit meiner Wallet autorisieren zu dem Zeitpunkt, wenn ich wirklich vor der Tür stehe und kann sagen, ich habe einmal bezahlt und dann habe ich halt wiederkehrend die Möglichkeit. Also könnte doch ein Smart Contract in so einem Fall sinnvoll sein.
Ja, und noch ein großes Ding ist natürlich, dass man Dinge aus der echten Welt tokenisiert.
Das heißt, ich kann dann wieder, das passiert auch bei Smart Contracts so ähnlich wie mit Kryptowährungen, wenn ich die erstelle auf der Blockchain.
Ich kann also zum Beispiel Aktien, soweit man sehen möchte, dass es was echtes und aus der echten Welt ist, aber wir sagen mal, ich kann eine Immobilie aufteilen, kann sagen, mein Haus zerlege ich über ein Smart Contract in 1000 Token und jeder, der einen Token hat, besitzt ein Tausendstel dieses Hauses. Dann muss ich natürlich einen entsprechenden echten notariellen Vertrag auch irgendwie machen, aber wenn ich das gemacht habe, wenn ich also das niedergeschrieben habe und beglaubigt habe, dass halt derjenige, der einen von diesen tausend Token hat, hält, dass dem ein tausendstel des Hauses gehört, dann kann ich natürlich diese Token weiterverkaufen. Das heißt, ich habe dann einen Markt, auf dem diese Token frei florieren können. Man kann mehr kaufen, man kann weniger kaufen und hat dann die entsprechenden Anteile. Also durchaus vergleichbar mit Aktien. Oder ich kann zum Beispiel, und das gibt es auch, ich könnte mir Aktien kaufen, ganz viele Apple-Aktien zum Beispiel, und könnte dann pro Aktie, die ich habe, und das müsste ich dann natürlich nachweisen können, kann ich dann eben auch wieder Tokens ausgeben und kann so also Aktien auf die Blockchain bringen. Das ist die sogenannte Tokenisierung. Gut, jetzt habe ich noch ein paar Beispiele gebracht, wofür Smart Contracts gut sind.
Wir würden zum Fragenteil kommen, aber hey, ihr wart faul, ihr habt mir keine Fragen geschickt.
Insofern haben wir keine Fragen. Wir kommen also direkt zum Ende.

Hinweise, Verfügbarkeit, Unterstützung

00:35:57 Wenn ihr Fragen habt und das würde mich extrem freuen, dann schreibt sie mir doch einfach an fragen-at-neu-im-blog.de oder nutzt das Kontaktformular, was ich direkt auf der Startseite habe.
Da findet ihr auch einen Link zu den bereits gestellten Fragen, die es gibt. Jetzt hat mir meine Apple Watch gerade gesagt, ich soll ins Bett gehen.
Habt ihr vielleicht gehört im Hintergrund. Also da gibt es auch die bestehenden Fragen schon, die ich beantwortet habe, immer mit Verlinkung direkt in die Folge rein.
Auf der Webseite könnt ihr dann direkt die Antwort hören.

00:36:32 Wenn ihr gerade hier zufällig vorbeigeschneit seid auf der Webseite oder auch in einem Podcast-Diensteanbieter wie Spotify, ihr könnt diesen Podcast natürlich abonnieren, das ist ganz klar. Ihr könnt ihn über die Webseite hören, ihr könnt den Feed abonnieren, ihr findet den in allen gängigen Verzeichnissen oder auch natürlich den RSS-Feed auf der Webseite. Und könnt also bei Spotify, im Apple Podcast Player oder bei Castro oder Instacast oder was ihr auch benutzen könnt, könnt ihr diesen Podcast hören. Am besten ist es tatsächlich, wenn ihr das in einem Podcast-Client tut, denn dann kriegt ihr auch zum Beispiel Transkripte angezeigt bei Apple inzwischen. Ich weiß gar nicht, ob das mit meinem Podcast schon geht. Muss ich mal gucken. Das ist relativ neu noch. Ich hatte noch keine Zeit, mich darum zu kümmern, das zu testen.
Ihr habt Kapitelmarken und wie das eben ist bei Podcasts, ihr kriegt die neue Folge immer aktuell runtergeladen und seht dann, dass es was Neues gibt.
Ihr könnt Neuem Blog auch bei YouTube hören. Zu sehen gibt es da nichts. Ich plane tatsächlich mal ein paar Videos zu machen, wo ich auch was zeige, so Screencast-mäßig. Dann muss ich mal schauen, ob ich das schaffe.
Und ich mache es kurz, ich will nicht betteln. Wenn ihr mich unterstützen wollt, findet ihr das auch auf der Webseite unter neuemblog.de, oben rechts in der Navigation.
So, ich hoffe, es hat euch gefallen. Und ich hoffe, wie immer, dass ich bald schon schaffe, eine neue Folge aufzunehmen.
Und ja, fragt mich doch bitte gerne was. Ich freue mich über Feedback.
Auch natürlich am besten über positives. Ach so, ja, bewerten habe ich vergessen. Bewertet gerne auch neu im Blog bei den möglichen Podcast-Plattformen. Apple, Spotify, was weiß ich. Das würde mich auch sehr freuen und empfehle mich natürlich weiter. So, jetzt aber höre ich auf zu labern. Ich labere mal gerne und viel.

Bonus-Track: Bitcoin-Bernie

00:38:15 Tschüss und bis zum nächsten Mal.

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