Solidity vs ink! um Smart Contracts zu schreiben
Veröffentlicht am 20.03.2021 von Cameron Nazarko.
Es werden die Unterschiede und Vorteile von beiden beim Schreiben von Smart Contracts sowie eine ausführliche Erläuterung zu ink! und seinen Vorteilen behandelt.
Was ist ein Smart Contract?
Smart Contracts sind selbstausführende, automatisierte Anwendungen, die in einem dezentralen Netzwerk wie der Blockchain laufen. Ein Smart Contract ist eine Vereinbarung zwischen zwei Personen in Form von Computercode. Sie laufen auf der Blockchain, d. h. sie werden in einer öffentlichen Datenbank gespeichert und können nicht geändert werden. Eines der besten Dinge an der Blockchain ist, dass es sich um ein dezentrales System handelt, das zwischen allen zugelassenen Parteien besteht, so dass keine Vermittler (Middlemen) bezahlt werden müssen und man Zeit und Konflikte spart. Blockchains haben ihre Probleme, aber sie sind unbestreitbar schneller, billiger und sicherer als traditionelle Systeme, weshalb sich Banken und Regierungen ihnen zuwenden.
Zum besseren Verständnis möchte ich ein Beispiel anführen. Stellen wir uns vor, dass Sarah das Haus von Kyle kaufen möchte. Diese Vereinbarung würde auf der Blockchain mit Hilfe eines Smart Contracts getroffen werden. Dieser Smart Contract enthält eine Vereinbarung zwischen Sarah und Kyle.
In den einfachsten Worten sieht die Vereinbarung wie folgt aus: "WENN Sarah 150 Ether an Kyle zahlt, DANN erhält Sarah das Eigentum an dem Haus".
Ohne den Einsatz eines Smart Contracts in diesem Szenario müssten Sarah und Kyle eine Menge Gebühren an Drittunternehmen zahlen. Dazu gehören die Bank, ein Anwalt und ein Immobilienmakler. Solche Szenarien finden sich überall in der Gesellschaft, und fast jede einzelne Transaktion könnte mit einem Smart Contract durchgeführt werden. Diese Smart Contracts werden mit Programmiersprachen wie Solidity und ink! geschrieben, und in diesem Artikel werden wir lesen, wie sie im Vergleich dazu aussehen.
Solidity
Solidity ist der Code hinter Ethereum - einer der größten Blockchain-Plattformen der Welt. Der Informatiker Dr. Gavin Wood entwickelte das Konzept der Solidity-Sprache im August 2014. Später wurde die Sprache vom Solidity-Team des Ethereum-Projekts unter der Leitung von Christian Reitwiessner weiterentwickelt. Solidity ist eine objektorientierte Hochsprache zur Implementierung von Smart Contracts. Solidity wurde von C++, Python und JavaScript beeinflusst und ist auf die Ethereum Virtual Machine (EVM) ausgerichtet. Es handelt sich um eine statisch typisierte Skriptsprache, die den Prozess der Verifizierung und Durchsetzung der Einschränkungen zur Kompilierungszeit und nicht zur Laufzeit durchführt.
Vorteile von Solidity
- Solidity bietet Vererbungseigenschaften in Smart Contracts, einschließlich Vererbungseigenschaften auf mehreren Ebenen.
- Im Vergleich zu einer eDSL (eingebetteten domänenspezifischen Sprache) wie ink! ist Solidity aufgrund seiner Ähnlichkeit zu anderen, häufiger verwendeten Hochsprachen wohl einfacher zu erlernen.
- Mehrere typsichere Funktionen werden in Solidity auch durch die Erleichterung von ABI (Application Binary Interface) unterstützt.
- Weit verbreitet als die Smart-Contract-Programmiersprache der Wahl bei der Arbeit innerhalb der Ethereum-Blockchain, da sie speziell für die Arbeit mit der Ethereum-Blockchain entwickelt wurde. Dies bedeutet viel mehr Unterstützung von einer viel größeren Gemeinschaft, die Zeit hatte, Fehler zu beheben und eine benutzerfreundlichere / entwicklungsfreundliche Umgebung zu schaffen.
ink!
ink! ist eine auf Rust basierende eingebettete domänenspezifische Sprache (eDSL) zum Schreiben von WebAssembly-Smart Contracts speziell für die FRAME Contracts-Palette von Parity Technologies. Parity wurde ebenfalls von Dr. Gavin Wood gegründet und hat Substrate, ein Framework für den Aufbau von Blockchains, sowie Polkadot, die Plattform der nächsten Generation zur Verbindung unabhängiger Blockchains, entwickelt. Die Polkadot-Relay-Chain wird Smart Contracts nicht von Haus aus unterstützen. Die Parachains auf Polkadot werden jedoch Smart Contracts unterstützen. Die Smart-Contracts-Plattform Edgeware, eine selbstverwaltete Blockchain, die auf Substrat aufbaut und eine Verbindung mit dem Polkadot-Netzwerk plant, verwendet ink! Dies liegt daran, dass es die innovativste Lösung für das Schreiben von Smart Contracts mit der Programmiersprache Rust bietet.
ink! bietet die größte Flexibilität für neue und erfahrene Entwickler, da es sich dafür entschieden hat, keine neue Programmiersprache zu erfinden, sondern eine Teilmenge von Rust zu adaptieren, indem es einfach einige Attribut-Tags in Form von #[ink(...)] hinzufügt, um die Magie zu vollbringen, die erforderlich ist, damit alles zusammenpasst. Rust ist eine fantastische Sprache, die sehr gut auf Blockchain-Anwendungsfälle zugeschnitten ist. Viele der Einschränkungen, die man auf der Blockchain hat, sind identisch mit denen, die man in hochzuverlässigen eingebetteten Systemen findet - kleine Codegröße, ausgezeichnete Sicherheit, hohe Zuverlässigkeit und minimaler Ressourcenverbrauch.
Warum WebAssembly für Smart Contracts?
- Wasm ist hochleistungsfähig - es wurde so entwickelt, dass es dem nativen Maschinencode so nahe wie möglich kommt und dennoch plattformunabhängig ist.
- Es erleichtert den Versand kleiner Binärdateien über das Internet an Geräte mit potenziell langsamer Internetverbindung. Dies ist eine großartige Lösung für die platzbeschränkte Blockchain-Welt.
- Es wurde so entwickelt, dass der Code in jedem Browser mit demselben Ergebnis bereitgestellt werden kann. Im Gegensatz zum EVM wurde er nicht für einen ganz bestimmten Anwendungsfall entwickelt, was den Vorteil hat, dass viele Werkzeuge zur Verfügung stehen und große Unternehmen viele Ressourcen in die Weiterentwicklung von WASM stecken.
- Effiziente JIT-Ausführung: Unterstützung von 64- und 32-Bit-Integer-Operationen, die eins-zu-eins auf CPU-Befehle abgebildet werden.
- WASM erweitert die Familie der Sprachen, die Entwicklern von Smart Contracts zur Verfügung stehen, um Rust, C/C++, C#, Typescript, Haxe und Kotlin. Das bedeutet, dass Sie Smart Contracts in jeder Sprache schreiben können, mit der Sie vertraut sind, obwohl wir Rust aufgrund des fehlenden Laufzeit-Overheads und der inhärenten Sicherheitseigenschaften bevorzugen.
Warum Rust für Smart Contracts?
- Rust-Ökosystem: Sie profitieren von der gesamten Unterstützung, die dem Rust-Ökosystem kostenlos zur Verfügung steht. Während sich die Sprache weiterentwickelt, erhält ink! automatisch Zugang zu neuen Features und Funktionen, die das Schreiben von Smart Contracts in Zukunft verbessern.
- Rust ist eine ideale Smart-Contract-Sprache: Sie ist typsicher, speichersicher und frei von undefinierten Verhaltensweisen. Sie erzeugt kleine Binärdateien, weil sie keinen zusätzlichen Ballast wie einen Garbage Collector enthält, und fortschrittliche Optimierungen und Tree Shaking entfernen toten Code. Durch Compiler-Flags kann Rust automatisch vor Integer-Überläufen schützen.
- Kein Overhead: minimale Laufzeit.
- 1. Klasse Wasm: Rust bietet eine erstklassige Unterstützung für die WebAssembly.
- Werkzeuge: Da ink! den Rust-Standards folgt, funktionieren Tools wie rustfmt, clippy und rust-analyzer bereits out of the box. Dasselbe gilt für Codeformatierung und Syntaxhervorhebung in den meisten modernen Texteditoren. Außerdem verfügt Rust über einen integrierten Test- und Benchmark-Runner.
- Geringe Größe: In der platzbeschränkten Blockchain-Welt ist die Größe wichtig. Der Rust-Compiler ist dabei eine große Hilfe, denn er ordnet Strukturfelder neu an, um jeden Typ so klein wie möglich zu machen. Daher sind die Datenstrukturen in Rust sehr kompakt, in vielen Fällen sogar kompakter als in C.
Snapshot Comparison
Zusammenfassung
Smart Contracts haben das Potenzial, Lösungen für viele verschiedene Bereiche auf vielen Märkten der heutigen Gesellschaft zu bieten. Die Beziehung zwischen einem Unternehmen und seinen Kunden basiert auf Vertrauen. Wenn das Vertrauen gebrochen ist, greifen die Menschen auf Verträge zurück. Unter bestimmten Umständen kann es vorkommen, dass einer der Beteiligten seinen Teil der Vereinbarung nicht einhält. Smart Contracts bieten eine Lösung für diese unzuverlässigen Umstände und schaffen ein angenehmeres und effizienteres Serviceerlebnis. Dies trägt dazu bei, dass wir alle einer dezentralisierten und autonomen Gesellschaft näher kommen, in der wir uns nicht auf Vermittler verlassen müssen. Die kontinuierliche Ausweitung und Innovation von Smart-Contract-Technologien wie ink! wird die Entwicklung weiter vorantreiben und die Akzeptanz der Blockchain-Technologie im Mainstream fördern, sobald ihr Nutzen erkannt wird. Letztendlich sollten Sie herausfinden, auf welcher Plattform Sie aufbauen möchten, und die verschiedenen Tools verstehen, die Ihnen zur Verfügung stehen und zu denen Sie am meisten beitragen möchten. Das wird Ihnen helfen, eine fundierte Entscheidung darüber zu treffen, welche Programmiersprache für Sie ideal ist.
Für mehr Informationen über Polkadot oder Edgeware:
Polkadot Website / Edgeware Website / Substrate
Beteilige dich an der Diskussion!
Polkadot Twitter / Edgeware Twitter / Edgeware Telegram / Polkadot Telegram / Polkadot Github
@mannim_mond 3p17JJF1notmfv2GaBJWMz12LSQEwnzoThCf6XQDL4ERhc5H
Das ist der offizielle WagMedia Space Germany! Hier werden interessante und lesenswerte DotSama-Artikel durch die Wag-Media community übersetzt und öffentlich zur Verfügung gestellt. Mitmachen? Trete unserem Discord bei und werde Teil der größten News Community im DotSama Universum.
0 comments