HoRSt
Making EtherTrust great again (03.09.2019)
Förderjahr 2017 / Project Call #12 / ProjektID: 2158 / Projekt: EtherTrust

Um aus EtherTrust das verlässliche Tool zu machen, dass wir es wünschen, haben wir es komplett neu strukturiert - und das mithilfe der Spezifikationssprache HoRSt. Doch wie genau sieht EtherTrust jetzt aus?

Hallo zusammen,

In unserem letzten Beitrag haben wir euch bereits davon berichtet, welchen Zweck unsere neue Spezifikationssprache HoRSt erfüllt. Heute wollen wir euch ein bisschen mehr dazu erzählen, wie genau unser neues Design in der Praxis aussieht (vor allem im Vergleich zu früher).

Vielleicht erinnert ihr euch noch an das Design unseres Prototyps, das wir euch in einem unserer älteren Blogposts gezeigt haben:

Struktur des Prototypen (Erläuterung im alten Blogbeitrag)

Im Gegensatz dazu hat sich unser Design nun wie folgt geändert:

Überblick über das neue Design von EtherTrust. Beschreibung folgt im Text.

Die generelle Idee ist, dass wir nun anstatt direkt aus einem Vertrag seine abstrakte Semantik zu generieren, einen Vertrag und eine HoRSt-Spezifikation der abstrakten Semantik von Smart Contracts im Allgemeinen als Input nehmen und daraus die Abstrakte Vertragssemantik eines konkreten Vertrages in einer Zwischenrepräsentation generieren.

Auf dieser Zwischenrepräsentation können dann zahlreiche Optimierungen durchgeführt werden (um die Semantik zu vereinfachen, falls dies möglich ist). Anschließend wird - wie zuvor - ein Output im smt-lib-Format generiert, mit dem nun der SMT-Solver aufgerufen werden kann. Ein bedeutender Unterschied zum vorherigen Design besteht darin, dass ein Großteil der skizzierten Infrastruktur nicht spezifisch für Ethereum Smart Contracts ist, sondern eine generalisierte Funktionalität bereitstellt. Alle grünen Teile des Schaubildes sind nicht Ethereum-spezifisch: HoRSt-Spezifikationen können für beliebige Horn lause-basierte Semantiken geschrieben werden, und sobald der Vertrag gemäß der HoRSt-Spezifikation in die Zwischenrepräsentation überführt wurde, sind alle Optimierungen und der Übersetzungsschritt in das smt-lib-Format ebenfalls generisch und wiederverwendbar. Lediglich die Verarbeitungsschritte, die die Smart Contract einlesen und eine Verbindung zur HoRSt-Spezifikation herstellen sind speziell auf Ethereum Smart Contracts zu geschnitten.

Dies hat den Vorteil, dass nun leicht Änderungen in der abstrakten Semantik vorgenommen werden können, ohne das die wesentliche Funktionalität des Tools (die Art und Weise, wie die Spezifikation für den SMT-Solver aufbereitet wird) angerührt werden muss. Dies vereinfacht es sehr viele unterschiedliche Versionen der abstrakten Semantik zu testen und ermöglicht es auch anderen Wissenschaftlern und Interessierten das Tool leicht zu modifizieren oder zu erweitern. Außerdem kann die Infrastruktur so leicht genutzt werden, um auch ganz andere Arten von Programmen zu analysieren ohne ein ganzes Tool von Grund auf neu zu schreiben. Lediglich die Sprach-spezifischen Teile (in blau) müssen neu programmiert werden - alle anderen Teile können wiederverwendet werden.

Hoffentlich seid ihr jetzt genauso begeistert von HoRSt wie wir!

Euer EtherTrust Team

CAPTCHA
Diese Frage dient der Überprüfung, ob Sie ein menschlicher Besucher sind und um automatisierten SPAM zu verhindern.

    Weitere Blogbeiträge

    Datenschutzinformation
    Der datenschutzrechtliche Verantwortliche (Internet Privatstiftung Austria - Internet Foundation Austria, Österreich) würde gerne mit folgenden Diensten Ihre personenbezogenen Daten verarbeiten. Zur Personalisierung können Technologien wie Cookies, LocalStorage usw. verwendet werden. Dies ist für die Nutzung der Website nicht notwendig, ermöglicht aber eine noch engere Interaktion mit Ihnen. Falls gewünscht, können Sie Ihre Einwilligung jederzeit via unserer Datenschutzerklärung anpassen oder widerrufen.