Ich widerspreche dir trotzdem wehgement dass Smart Contracts, zumindest wie sie in anderen Chains realisiert sind nicht genauso in Bitcojn realisierbar sind!
Denn eines darfst du nicht vergessen: Nur weil der Smart Contract in anderen Chains innerhalb der Blockchain funktioniert, muss sein Kontext immer auf Echtwelteingaben reagieren und das ist der Punkt von @HODLer : Wo liegt der unterschied ob ein Algorithmus also extern ausgeführt wird und mit der Blockchain interagiert, also je nach Eingaben unterschiedliche Bitcointransaktionen auslöst oder ob der Smart Contract innerhalb der Blockchain lebt und innerhalb der Blockchain ausgeführt wird aber trotzdem von den Inputs der Ausßenwelt abhängt?
Mit der Bitcoinblockchain kann jeder beliebig interagieren und beliebige Algorithmen schreiben die automatisiert Transaktionen ausführt. Das kann und konnte Jeder Mensch jederzeit seit es die Bitcoin Blockchain gibt! (Um mal kleinlich zu sein, jede Wallet ist so eine Interaktion, einfachstes Beispiel: Überweise jeden Monat einen Bitcoin an meinen Vermieter als Miete.) Und diese Algorithmen kannst du sogar in der Blockchain verankern und mittels Hashes beweisen dass sie ausgeführt worden sind und diese Algorithmen kannst du auch beliebig komplex machen und jeden möglichen Sachverhalt der Menschen abbilden. Du bist nichteinmal an eine eigene Programierspreche gebunden dabei. Aber diese Programme werden eben nur nicht innerhalb der Blockchain berechnet und das hat gleich mehrere Vorteile: Die Miner können sich auf ihre eigentliche Arbeit fokussieren ohne von irgendwelchen globalen Berechnungen unterbrochen werden. Nicht jede teilnehmende Node muss den Quellcode ausführen, ihnen reicht die Bestätigung dass irgendein Rechner die Berechnung ausgeführt hat und das mittels Hash in der Blockchain beweist. Außerdem nimmt das Komplexität vom eigentlich wichtigen Teil der Blockchain, die Transaktionen und die Historie, damit wird die Entwicklung weniger fehleranfällig. Und es gibt wahrscheinlich noch weitere Punkte.
Dein Beispielprogramm kannst du auch problemlos so umschreiben, dass du Beweisen kannst, dass es privat ausgeführt wurde, die gezeigten Transaktinoen ausgelöst wurden und dass der Quellcode nicht verändert wurde. Du musst den Quellcode nur einmal hashen und diesen Hash in die Blockchain schreiben. Eventuell müsstest du noch einen Beweishash bei jeder Ausführung in die Blockchain schreiben. Damit kannst du bei jeder Ausführung beweisen dass es korrekt ausgeführt wurde, so wie der Quellcode es vorgibt. Und dabei ist es egal ob es dein Heimrechner oder tausende nodes ausführen. Und bei Bedarf kannst du den Quellcode auch ohne Blockchain veröffentlichen. Alle anderen Nutzer interessieren sich sowiso nur dafür, ob die Transaktinoen, die dein Rechner ausführt valide sind oder eben nicht.
Ich Persönlich würde Hodler sogar widersprechen: Die Menschheit hat einen Bedarf an Verträgen und Verträge sind zwischenmenschlich sogar sinvoll weil sie vertrauen zwischen einander schaffen. Und Smart-Contracts sind dabei nur die nächste digitale Stufe. Sie haben definitiv ihre Daseinsberechtigung und Anwendungsfälle. Wo ich @hodler aber uneingeschränkt zustimmen muss ist, dass diese Verträge nichts innerhalb der Blockchain zu suchen haben weil wie schon geschrieben die Verträge innerhalb einer Blockchain ein Vertrauen genießen dass sie nicht erfüllen können (Orakelproblem). Sie können aber problemlos neben der Blockchain bestehen und mit ihnen Interagieren.
Es klingt vielleicht schön und lässt sich gut verkaufen, aber „Blockchain Generation 4“ bietet aktuell keinerlei Innovation gegenüber „Blockchain generation 1“. Eigentlich ehr im Gegenteil: Es suggeriert eine Sicherheit die diese Blockchains einfach nicht bieten. Erstens weil die Quellcodeausführung in einer Datenbank (Blockchain) nichts zu suchen hat und zweitens weil viele dem Irrglauben unterliegen die Blockchain lügt nie, was aber stark davon abhängt was für Infos man hineinschreibt.
Zumindest konntest du keinerlei Vorteile nennen, die nicht auch mit Bitcoin realisierbar sind weil alle anderen Lösungen genauso am Orakelproblem hängen bleiben wie bei Bitcoin. Zugegebenermaßen vielleicht sind andere Projekte deutlich einfacher und billiger für Smart Contracts aber dafür ist Bitcoin deutlich sicherer. Nicht jede Anwendung muss immer in den first Layer, auch Smart Contracts kannst du problemlos in den Second Layer auslagern, gerade wegen dem Orakel-Problem.
Und auch bei dem Pruning muss ich dir wehgement widersprechen. Es macht einen Unterschied ob man die komplette Historie verliert oder nur alle Transaktionen des Second Layers. Deswegen sind die Second Layer Lösungen auch nie so sicher wie das Hauptnetzwerk, für die meisten Anwendungen wie Kaffe kaufen oder Smart Contracts aber sicher genug. Sobald aber die komplette Historie verloren geht ist nicht mehr sichergestellt, dass ein Angreifer einfach Coins aus dem nichts erstellt hat.
Mal als Analogie: Wenn du in einem Dorf mit speziellen Münzen handelst (nur diese Münzen sind Geld), dann hast du auch nur den Ist-Zustand aber nie die Historie. Denn du könntest jederzeit die Münzen der Leute zählen und weißt wer was hat. Aber du könntest nie verifizieren ob nicht ein Dorfbewohner betrübt und heimlich selber neue Münzen herstellt und somit eine Inflation erstellt. Durch das Abzählen der Münzen kannst du lediglich feststellen dass es eine Inflation gab, aber nicht woher diese kommt. Das ist der unterschied zwischen Historischer Buchführung und lediglich der Buchführung des Ist-Zustandes.