Blockchain-Technologien für Smart Contracts Wie aus Python Vyper wurde

Anbieter zum Thema

Vyper ist eine Python-basierte Programmiersprache, die darauf abzielt, Smart Contracts für die Ethereum Virtual Machine (EVM) zu erstellen. Die minimalistische Sprache fokussiert damit vor allem die Dimensionen Sicherheit und Überprüfbarkeit.

Vyper ist kein vollständiger Ersatz für Python oder Solidity, wird jedoch verwendet, wenn ein Höchstmaß an Sicherheit erforderlich ist.
Vyper ist kein vollständiger Ersatz für Python oder Solidity, wird jedoch verwendet, wenn ein Höchstmaß an Sicherheit erforderlich ist.

Die Programmierung von Smart Contracts hat sich zu einer der wichtigsten Notwendigkeiten in modernen Technologie-Ökosystemen entwickelt. Wobei es sich bei einem Smart Contract um ein Programm handelt, das auf der Blockchain gespeichert ist und eine Vereinbarung ausführt, wenn bestimmte Bedingungen erfüllt sind.

Ein Smart Contact kann beispielsweise mit einer Sprache wie Vyper erstellt werden, die auf der Ethereum Virtual Machine (EVM) ausgeführt wird. Die EVM ist ein simulierter Rechner, der parallel zur Ethereum-Blockchain läuft, und ein wichtiges Instrument zur Erleichterung der Entwicklung hochkomplexer Transaktionen darstellt.

Funktionen und Prinzipien von Vyper

Die Prinzipien von Vyper heben sich von anderen vergleichbaren Programmiersprachen für Smart Contracts deutlich ab. Hier ist ein Überblick über die drei wichtigsten Prinzipien und ihre Bedeutung in der Vyper-Landschaft:

Einfachheit

Sowohl die Programmiersprache als auch die Compiler-Implementierung fokussieren das Prinzip der Einfachheit.

Sicherheit

Vyper betont die Sicherheit von Smart Contracts. Das Sicherheitsprinzip in Vyper ist definitiv das auffälligste Highlight.

Überprüfbarkeit

Vyper konzentriert sich auf die Minimierung von Funktionen, um eine bessere Überprüfbarkeit zu ermöglichen. Gemäß dem Prüfbarkeitsprinzip zielt Vyper darauf ab, dass der Code für Menschen lesbar ist.

Ausgeschlossene Funktionen von Vyper

Die vorgegebene begrenzte Anzahl von Funktionen gewährleistet eine optimierte Sicherheit und Überprüfbarkeit der erstellten Programme für Smart Contracts. Entwickler werden unter anderem die folgenden Funktionen bei Vyper nicht finden:

Modifikatoren

Beispielsweise können andere Sprachen wie Solidity Modifikatoren verwenden, um Überprüfungen einzubeziehen, die vor der Ausführung oder nach der Ausführung eingefügt werden. Vyper enthält keine Modifikatoren, da diese das Schreiben von bösartigem Code unterstützen könnten. Daher ist es praktisch unmöglich, beliebige Zustandsänderungen, Vor- oder Nachbedingungen in den Code einzufügen.

Inline-Montage

Der Ausschluss der Inline-Montage ist eines der wichtigen Highlights von Vyper. Bei einer Inline-Assembly wäre es schwierig, nach einem bestimmten Variablennamen zu suchen, um alle Lese- und Änderungsvorgänge in der Variablen zu finden.

Klassenvererbung

Die Klassenvererbung ist ein weiteres fehlendes Feature der Vyper-Programmiersprache für die Sicherstellung der Überprüfbarkeit. Das Ziel der Klassenvererbung macht es erforderlich, zwischen mehreren Dateien zu wechseln, um die Funktionsweise eines Programms zu verstehen. Es verlangt zudem, dass die Menschen die Vorrangregeln bei Konflikten verstehen müssen. Vyper vermeidet die Klassenvererbung, um die Komplikationen im Code zu reduzieren, und trägt so zu einer besseren Überprüfbarkeit bei.

Rekursives Aufrufen

Die offizielle Dokumentation von Vyper deutet darauf hin, dass rekursives Aufrufen zu Schwierigkeiten beim Festlegen einer Obergrenze für den Gasverbrauch führen kann. Infolgedessen kann rekursives Aufrufen viele Gaslimit-Angriffe hervorrufen.

Funktionsüberlastung

Das Fehlen einer Funktionsüberlastung in Vyper gewährleistet die Sicherheit vor irreführendem Code und Komplikationen beim Durchsuchen des Codes.

Loops mit unendlicher Länge

Loops können Schwierigkeiten beim Festlegen einer Obergrenze für den Gasverbrauch verursachen. Die Konsequenz: Gaslimit-Angriffe. Ohne solche Endlos-Loops kann Vyper vielversprechende Sicherheitsverbesserungen erzeugen.

Abgrenzung zu Solidity

Das Design von Vyper folgt vergleichsweise einer praktischeren und vor allem minimalistischeren Perspektive auf das Lesen und Schreiben von Smart Contracts. Dies lässt den Schluss zu, dass sich Vyper erheblich von Solidity unterscheidet, insbesondere in Bezug auf die vorgegebenen Funktionen. Vyper stellt damit den erweiterten Satz von Funktionen in Solidity und seine Flexibilität auf Grund der daraus resultierenden Schwachstellen infrage.

So ist es beispielsweise durchaus möglich, dass die Fehler und böswilligen Entwurfsmuster der Smart Contracts bei Solidity zu großen Problemen führen können. Dagegen verfügt die Vyper-Blockchain-Programmiersprache über ein einzigartiges Design zur Vermeidung böswilliger Designmuster. Es garantiert zwar keine vollständige Immunität von verdächtigen Entwurfsmustern, aber Vyper kann zumindest sicherstellen, dass sie durch die Verifizierung nicht möglich sind.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Wird Vyper Solidity ablösen?

Es ist nicht beabsichtigt, dass Vyper Solidity in irgendeiner Weise ersetzen soll oder kann. Da Vyper den gleichen Bytecode wie Solidity hat, kann es neben Solidity verwendet werden. Vyper ist ähnlich wie Python, aber die Sprache ist niemals ein vollständiger Ersatz für Python oder Solidity. Es ist eine Sprache, die zum Einsatz kommt, wenn ein Höchstmaß an Sicherheit erforderlich ist.

Einsatz in der Praxis

Zu den erfolgreichen Projekten, die auf Vyper basieren, gehört beispielsweise Yearn. Yearn.finance ist eines der großen boomenden DeFi-Projekte (Decentralized Finance), das die Ertragserzielung aus Stablecoins automatisiert und traditionelle Banken im Grunde überflüssig macht. Dabei handelt es sich um eine Reihe von DeFi-Produkten, die dazu in der Lage sind, Funktionen wie Kreditaggregation und Ertragsgenerierung in die Blockchain einzubringen.

Mit anderen Worten, es sind führende DeFi-Produkte, die als Gate zu mehreren Protokollen dienen und es Usern ermöglichen, die besten Strategien zum Erwerb von Krypto-Assets durch Kreditvergabe und andere Handelsmethoden zu nutzen. Insgesamt zielt Yearn.finance darauf ab, den boomenden DeFi-Raum zum einfachen Nutzer zu bringen. Die Plattform wird von mehreren unabhängigen Entwicklern der YFI-Inhaber überwacht und kontrolliert.

(ID:48596747)