Sind intelligente Verträge einzigartig für Ethereum?

Wird Ethereum deshalb viel Potenzial zugesprochen?

Mit anderen Worten, was bietet Ethereum, das andere Blockchain-Technologien nicht replizieren können?

Ihre Frage scheint die Annahme zu beinhalten, dass Smart Contracts nur für Blockchain-Systeme gelten, aber das sind sie nicht.

Antworten (3)

Bitcoin unterstützt auch eine Skriptsprache , die es im Wesentlichen ermöglicht, bei jeder Transaktion eine Liste von Anweisungen (Smart Contracts) aufzuzeichnen, die beschreibt, wie die nächste Person, die die übertragenen Bitcoins ausgeben möchte, Zugriff darauf erhalten kann .

Die Zustandsspeicherung in der Bitcoin-Blockchain ist jedoch auf Transaktionswerte und Metadaten beschränkt, die auf 80 Bytes begrenzt sind, und ihr Inhalt wird in der Blockchain nicht verifiziert.

Dies ist die Schlüssellücke, die Ethereum mit seiner Blockchain adressiert – dh Sie können beliebige mit dem Vertrag verbundene Zustände speichern, und seine Übergänge werden auch in der Blockchain verifiziert, wie durch die im Vertrag festgelegten Regeln definiert.

PS Wie von 5chdn erwähnt, ist Turing-Vollständigkeit eine andere Unterscheidung, diese Unterscheidung ist jedoch nur dann wirklich praktisch relevant, wenn Ihr Vertrag viele Schleifen enthält.

Zunächst einmal ist das Whitepaper wirklich lesenswert und auch für Nicht-Techniker leicht verständlich.

Die wichtigste Einzigartigkeit von Ethereum ist die Turning-Vollständigkeit .

Ein Computer ist Turing-vollständig , wenn er jedes Problem lösen kann, das eine Turing-Maschine mit einem geeigneten Algorithmus und der erforderlichen Zeit und dem erforderlichen Speicher lösen kann.

Der englische Mathematiker Alan Turing stellte sich 1936 eine Maschine vor, die jedes (mathematische) Problem lösen konnte.

Jetzt hat Ethereum seine eigenen Programmiersprachen, die auf der Blockchain innerhalb der Ethereum Virtual Machine (EVM) ausgeführt werden können. Das bedeutet, dass Sie von nun an jedes Problem auf der Blockchain lösen können. Dies könnte die Funktionsweise des Internets in Zukunft verändern. Es könnte sogar die Funktionsweise von Computern in der Zukunft verändern.

Es gibt kein ähnliches Projekt, das einen solchen Ansatz zuvor versucht hat.

Blockchain oder nicht, praktisch alle Technologien können repliziert werden. (Wenn Sie das menschliche Gehirn und das Universum als Technologien betrachten, dann sind sie die Art, die nicht repliziert wurden.) Was mit Technologien und Blockchains nicht einfach replizierbar ist, sind ihre Benutzerbasis und Netzwerkeffekte . (Aus rechtlicher Sicht können Patente eine Replikation für eine gewisse Zeit verhindern.)

Durch das Hinzufügen und Synthetisieren von @Zanzu- und @5chdn-Antworten erregte die Turing-vollständige Programmiersprache von Ethereum Aufmerksamkeit. Der Schlüssel zu Smart Contracts ist jedoch Statefulness , wie Vitalik Buterin erklärte:

... einige Bitcoin-Leute betonen weiterhin die "Turing-Vollständigkeit", obwohl ich mehrfach gesagt habe, dass es auf die Statefulness ankommt. Sobald Sie das philosophische Modell von Ethereum haben (und imo ist unser Ansatz, Skripte als „Dinge zu tun“ und nicht als „Prädikate“ zu betrachten, massiv überlegen und für Entwickler weitaus einfacher zu verstehen), dann wird es tatsächlich schwieriger, Turing-Vollständigkeit nicht zu haben als zu haben haben - es ist tatsächlich schwierig herauszufinden, welche Einschränkungen für rekursive Vertragsaufrufe gelten, um das Potenzial für Schleifen zu eliminieren, und ein gewisses Maß an Gas ist in jedem Fall aus dem gleichen Grund erforderlich, aus dem eine Blockgrößenbegrenzung in Bitcoin erforderlich ist.

Akademische Forschung zu Zero-Collateral-Lotterien in Bitcoin und Ethereum erklärt:

Ethereum bietet eine Programmiersprache, die einem akteursbasierten Prozesskalkül ähnelt – jeder „Smart Contract“-Prozess ist als ein Verhalten definiert, das auf jede Eingabe reagiert und möglicherweise einen lokalen Zustand ändert oder Nachrichten an andere Prozesse sendet. Obwohl diese Sprache ziemlich allgemein gehalten ist, ist die Umgebung als fehleranfällig bekannt [30, 15]. Im Prinzip ist die Sprache Turing vollständig, jedoch werden die Ausführungszeiten durch Transaktionsgebühren, genannt „Gas“, begrenzt, die von der Anweisung erhoben werden. Im Gegensatz dazu konzentriert sich die Bitcoin-Skriptsprache hauptsächlich auf die Signaturüberprüfung und kann eine Richtlinie zum Akzeptieren oder Ablehnen einer Transaktion ausdrücken, aber die Wirkung dieser Transaktion nicht ändern, wenn sie akzeptiert wird ... Ein Ziel unserer Arbeit ist es, besser zu verstehen, wie die Design jeder Sprache wirkt sich auf ihre Nützlichkeit aus, indem sie sich auf eine bestimmte Aufgabe konzentriert,

Das Papier schließt mit Vor- und Nachteilen von Ethereum- und Bitcoin-Programmierschnittstellen:

Zusammensetzung von Ethereum vs. Bitcoin.Bitcoin und Ethereum bieten beide Programmierschnittstellen für intelligente Verträge. Die Philosophie zwischen den beiden unterscheidet sich jedoch deutlich. Ethereum favorisiert Allgemeingültigkeit und Aussagekraft, während Bitcoin eine kleine Angriffsfläche bieten soll. Während Bitcoin die Ausdruckskraft [5, 40, 17] seiner Sprache schrittweise erweitert hat, beginnt Ethereum mit einer „Turing Complete“-Sprache, die für allgemeine Zwecke gedacht ist. Viele wünschenswerte Funktionalitäten, wie Mikrozahlungen, Gemeinschaftskonten, Versicherungsverträge im Kickstarter-Stil, können in beiden Sprachen implementiert werden [20, 13]. Ein Vorteil des Ethereum-Sprachdesigns besteht darin, dass Verträge eine gut zusammensetzbare Abstraktion bieten, die unser Ethereum-Protokoll nutzt. In der Tat, Das prozessbasierte Modell von Ethereum (jeder Vertrag ist praktisch ein unabhängiger Prozess im Betriebssystem) stimmt sehr gut mit dem Pseudocode überein, der in der Kryptografie verwendet wird. [24, 29] Basierend auf dieser Erfahrung sprechen wir eine allgemeine Empfehlung aus, dass man bei der Entwicklung einer neuen Kryptowährungsanwendung zunächst mit einem einfachen Modell im generischen Pseudocode des Ethereum-Modells beginnt und es dann auf Wunsch an eine Bitcoin-spezifische Implementierung anpasst.