Fokus Forschung: Welche Programmiersprachen eignen sich am besten für Smart Contracts auf der Ethereum-Blockchain?

Montag 19. November 2018, 16:00

Absolventin der Hochschule Mittweida vergleicht in Ihrer Bachelorarbeit verschiedene Programmiersprachen anhand Ihrer Eignung zur Entwicklung sicherer und kostengünstiger Blockchainanwendungen

Die Bachelorarbeit von Frau Laura Moritz beschäftigt sich mit den Vor- und Nachteilen verschiedener Programmiersprachen für die Smart Contract - Entwicklung auf der Ethereum Blockchain. Anhand der Programmierung eines ERC20 Contracts werden Kriterien wie Lese- und Programmierfreundlichkeit, Fehleranfälligkeit, Funktionsumfang, Bytecodegrößen und Deploymentkosten verglichen und bewertet. Zusätzlich werden ihre Sicherheit im Hinblick auf häufige Gefahren der Contract - Entwicklung untersucht und sprachspezifische Unsicherheiten gesammelt. Ziel der Untersuchung war es herauszufinden, welche Sprachen unter bestimmten Voraussetzungen eine sinnvolle Alternative zu Solidity, der Standart-Programmiersprache für Ethereum darstellen. Die Arbeit entstand in Zusammenarbeit mit der Slock.it GmbH und dem Blockchain Competence Center Mittweida (BCCM) der Hochschule Mittweida.

Ethereum ist ein dezentrales System, welches wie Bitcoin über eine eigene Kryptowährung verfügt und auf einer Blockchain basiert. Ethereum verfügt jedoch neben einer Währung über die Möglichkeit mithilfe sogenannter „Smart Contracts“ digitale Verträge und Anwendungen auf der Blockchain abzubilden, was in diesem Netzwerk eine zentrale Rolle spielt. Zur Programmierung dieser Smart Contracts können unterschiedliche Programmiersprachen eingesetzt werden. Neben Solidity wurden die spezifischen Eigenschaften von Vyper, LLL und Bamboo untersucht.

Die vergleichende Betrachtung hat gezeigt, dass es bezüglich der Bytecodegrößen und Deploymentkosten unter den Sprachen einige gibt, die in bestimmten Punkten besser abschneiden als Solidity. So ist LLL mit Abstand die günstigste und speichersparendste Sprache, Vyper nimmt dabei den zweiten Platz ein und Bamboo schneidet hier, zumindest noch aktuell, am schlechtesten ab. Dafür weist diese Sprache bessere Sicherheitsmechanismen und einige schützende Restriktionen auf, die Solidity nicht bietet. In Bezug auf die Sicherheit schneidet auch Vyper gut ab, außerdem kann diese Sprache geringfügig besser als Bamboo eingeschätzt werden, da sie weiter entwickelt und mit Sichtbarkeiten sowie payable-Markierung im Vorteil ist. LLL kann als gefahrenträchtigste Sprache eingeordnet werden, denn sie erfordert speziellere Kenntnisse durch die Syntax. Die vielen manuell umzusetzenden Mechanismen sind fehleranfällig.

Betrachtet man die Sicherheit und Kosten zusammen, liegt Solidity mit durchschnittlicher Wertung im Mittelfeld. LLL weist zwar deutlich geringere Kosten auf, bietet aber auch weniger Sicherheit und schneidet daher insgesamt schlechter ab. Bamboo kann mit guter Sicherheit punkten, jedoch sind die sehr hohen Kosten von Nachteil. Demzufolge ist sie nur geringfügig besser als LLL einzuordnen. Langfristig kann sich dies jedoch durch die weitere Entwicklung noch verbessern. Zudem ist es durchaus denkbar, dass bei bestimmten Anwendungen eine gute Sicherheit auch höhere Kosten rechtfertigt. Schließlich ist Vyper mit guter Sicherheit und durchschnittlichen Kosten gegenüber Solidity etwas besser einzuordnen. So waren die Kosten und die Bytecodegröße etwas geringer und die Verständlichkeit gut. Insgesamt stellt sie daher die beste Alternative der betrachteten Sprachen zu Solidity dar. Aufgrund der umfangreichem Unterstützung ist wohl aber Solidity am besten für Einsteiger geeignet. Wer jedoch mit der Kommandozeile umgehen kann, wird auch mit Vyper einen leichten Einstieg finden. Bamboo und LLL sind dagegen für Anfänger nicht unbedingt zu empfehlen.

Natürlich kann nicht allgemein von der sichersten und günstigsten Sprache gesprochen werden, da andere in einzelnen Kategorien durchaus besser abschneiden. So hat jede Programmiersprache ihre Stärken und Schwächen und die Wahl hängt auch vom konkreten Anwendungsfall ab. Und natürlich sind die betrachteten Sprachen nicht die einzigen, die für die Entwicklung von Smart Contracts existieren. Jedoch sind es die aktuell bekanntesten. Es wird sich zeigen, ob sich langfristig andere Programmiersprachen gegenüber Solidity durchsetzen können und vielleicht noch neue entstehen, die durch bessere Sicherheit und Kostengünstigkeit bestehende Sprachen überflügeln.

Über Blockchain Competence Center Mittweida (BCCM)
Das BCCM ist ein In-Institut der Fakultät CB an der Hochschule Mittweida. Es ist Ansprech- und Entwicklungspartner für Institutionen und Unternehmen der Finanz- und Realwirtschaft sowie der Politik und des Staatswesens. Neben der bedarfsgerechten Entwicklung neuer Studiengänge für die Ausbildung notwendigen Fachkräftenachwuchses gehören Forschungs- und Transferprojekte zu anwendungsbezogenen Themenkomplexen sowie die Initiierung von Start-ups zu den Hauptaufgaben des Zentrums.
Weitere Informationen und Kontakt

Über Slock.it
Slock.it ist der führende Anbieter bei der Erstellung von Blockchain Infrastruktur. Ihre Lösungen verbinden die physische Welt mit der Blockchain. Das ermöglicht jeglichen „smarten“ Objekten wie Schlössern, Ladesäulen, oder Steckdosen eine eigene Identität zu besitzen, Zahlungen zu empfangen und komplexe Verträge eingehen zu können. Ihr Ziel ist, Sicherheit, Identität, Koordination und Privatsphäre von Milliarden von Geräten herzustellen und es jedem Objekt zu erlauben, gemietet, verkauft oder sicher geteilt zu werden - ohne Zwischenhändler.
Weitere Informationen und Kontakt

Text: Georg Sesterhenn
Grafiken: Laura Moritz