Simplicity ermöglicht Smart Contracts mit Bitcoin
Bitcoin ermöglicht es zunächst einmal, Zahlungen innerhalb eines Netzwerks durchzuführen. Diese Transaktionen finden zwischen „Adressen“ statt. Für das Ausführen von Verträgen hingegen wurden andere Kryptowährungen wie Ethereum benötigt. Doch die neue Programmiersprache von Simplicity erlaubt das Einsetzen von Smart Contracts auch mit Bitcoin.
Bisherige Grenzen von Bitcoin
Die Währung Bitcoin ist eine schnelle und relativ einfache Möglichkeit, den „Wert“ innerhalb des Blockchain-Netzwerks von A nach B zu übertragen. Die Entwickler der Bitcoin haben in den letzten Jahren sehr hart gearbeitet, um die Bitcoin zu einer soliden Zahlungseinheit zu machen. Auch die Sicherheit der Transaktionen wurde deutlich verbessert. Aber was ist, wenn Nutzer nicht nur den Wert von einer Adresse auf eine andere übertragen wollen, sondern eine Transaktion initiieren wollen, die z.B. von einem Vertrag begleitet wird?
Solche Smart Contracts sind ein „Wertstrom„, in den Regeln und Vorschriften integriert sind. Die Technologie steht erst am Anfang ihrer Entwicklung, aber die Kombination von Kryptowährungen, Smart Contracts und sogar künstlicher Intelligenz wird bereits exploriert. Entwickler dieser Art von Verträgen stehen vor enormen Herausforderungen, denn das Bitcoin-Protokoll war dafür bisher dafür noch nicht ausreichend entwickelt.
Smart Contracts mit Bitcoin
Die Skriptsprache von Bitcoin ist auf bestimmte Kombinationen von Signaturprüfungen, Hashblocks und Timelocks beschränkt. Aber Second-Layer-Lösungen können das Etablieren von Verträgen erleichtern – wie Simplicity. Simplicity könnte in der Lage sein, eine Vielzahl von Berechnungen zu ermöglichen und die Sicherheit sowie Kosten intelligenter Verträge zu prüfen. Die Programmiersprache soll es sogar erlauben, die Aussagekraft und Zuverlässigkeit miteinander zu vereinen. Bisher konnten Entwickler die Smart Contracts entweder einfach halten, dafür waren diese aber unzuverlässig, oder sie schufen zuverlässige Varianten, die aber sehr komplex wurden.
Was ist Simplicity?
Simplicity ist eine typografische, kombinatorische, funktionale Sprache ohne Schleifen und Rekursivität, die für die monetäre Kryptographie und Blockchain-Anwendungen (Was ist Blockchain?) entwickelt wurde. Ziel ist es, bestehende Kryptosprachen wie das Bitcoin Script zu verbessern und gleichzeitig einige der Probleme zu vermeiden. Die Programmiersprache wird von einer formalen Denotationssemantik begleitet, die in Coq, einer bewährten Allzweck-Software, definiert ist. Zu Simplicity gehört auch die Betriebssemantik, die mit einer abstrakten Maschine definiert wird, die als Bit Machine bezeichnet wird. Diese kann Werkzeug verwendet werden, um den Rechenraum und die Zeitressourcen zu messen, die zur Auswertung von Simplicity-Programmen benötigt werden.
Simplicity ist:
- eine ausdrucksstarke Sprache, die den Benutzern die Werkzeuge zur Verfügung stellt, die sie benötigen, um neuartige Programme und intelligente Verträge zu erstellen
- eine Möglichkeit zur statischen Analyse, die nützliche Obergrenzen für die erforderliche Menge an Berechnungen bietet
- eine Chance, die Bandbreite und den Speicherbedarf zu erhöhen
- eine Verbesserung der die Privatsphäre, weil unbenutzter Code zum Zeitpunkt der Einlösung entfernt werden kann
Simplicity setzt verschiedene Verträge um
Es gibt grundsätzlich zwei Arten von Kategorien von Smart Contracts, die sich auf die Kryptowährung beziehen. Die deterministischen Smart Contracts und die nicht-deterministischen Varianten. Der große Unterschied zwischen diesen Verträgen besteht darin, wie bestimmte notwendige Informationen beschafft werden. Die Frage ist, ob das Netzwerk selbst über ausreichende Informationen verfügt, um das Ergebnis zu bestimmen, oder ob externe Informationen notwendig sind – Informationen, die mit Hilfe der sogenannten Orakel gewonnen werden können. In beiden Fällen geht es darum, einen zentralen Dienst zu dezentralisieren, um die Transparenz zu erhöhen, den Bedarf an Vertrauen zu verringern und wirtschaftliche Effizienz zu erreichen – das setzt Simplicity um.
Tipp: Sie können diese Implementierung von Simplicity in Ihrem Browser ausprobieren und den vollständigen Code auf rept.it einsehen.
Verweis: PDF „Simplicity: A New Language of Blockchains“.