Warum ist ein Smart Contract sicher? (Teil 4)

Warum ist ein Smart Contract sicher? (Teil 4)

Seit Vitalik Buterin Ethereum entwickelt hat, sind Smart Contracts aus dem Blockchain-Ökosystem nicht mehr wegzudenken. Doch was steckt hinter den „schlauen Verträgen“? In fünf Teilen erkundet Ingo Rammer für uns die Implikationen der Technologie. Heute: Warum ist ein Smart Contract sicher?

Teil 1: Smart Contracts: Heilsbringer oder bessere Datenbank?

Teil 2: Mehr als nur Kryptowährungen: Transaktionen und Smart Contracts

Teil 3: Solidity: Wie programmiert man Smart Contracts?

Warum genau ist das Ganze sicher?

So weit, so gut. Doch wie steht es um die Sicherheit bei dieser Vorgehensweise? Was würde passieren, wenn einer der Teilnehmer den Smart Contract auf dem von ihm kontrollierten Blockchain-Node einfach austauscht und eine Variante verwendet, die für ihn vorteilhaft ist? (Je nach Blockchain müsste der Angreifer dazu übrigens relativ weit in die Interna der Implementierung der Blockchain-Plattform eintauchen – aber es ist dennoch ein valider Angriffsvektor, den man zumindest auf theoretischer Ebene betrachten muss.)

Was müsste ein Angreifer tun?

In unserem Beispiel könnte ein Angreifer versuchen, die Kontrolle über alle Telefonnummern zu übernehmen, indem er die Prüfbedingungen in seiner Version des Smart Contract ändert. Das würde aber dazu führen, dass der World State lediglich auf dem Node des Angreifers geändert wird: Nur für ihn sieht es so aus, als wenn er alle Telefonnummern kontrolliert.

Alle anderen Teilnehmer würden weiterhin die korrekte Version des Contracts ausführen. Kommt es aufgrund des gewählten Konsensmechanismus zwischen den Teilnehmern dazu, dass der Angreifer vom Netzwerk selbst selektiert wird, um neue Blöcke zu generieren, würden diese sofort von den anderen Teilnehmern abgelehnt werden.

Der Angreifer würde den Status des Blockerzeugers wieder verlieren, da je nach Konfiguration der Blockchain die Hälfte oder zwei Drittel aller Teilnehmer mit dem Ergebnis einer Transaktion einverstanden sein müssen, bevor sie netzwerkweit als korrekt angesehen wird. Ein Angriffsversuch schadet daher nur dem Angreifer selbst.

Man kann daher diesen Angriff in etwa damit vergleichen, dass ein Bankkunde den Stand auf seinem ausgedruckten Kontoauszug durchstreicht und ein erhöhtes Guthaben darüberschreibt. Aus seiner Sicht hat er jetzt viel mehr Geld als vorher. Sobald er aber versucht, auf dieses Geld zuzugreifen, wird er sehr schnell auf den Boden der Tatsachen zurückgeholt: Die eigene Sicht bleibt ein Wunsch und wird von seinem Gegenüber im besten Fall mit einem Lächeln quittiert werden.

Wie wird ein Smart Contract aufgerufen?

Nachdem wir bisher gesehen haben, wie ein Smart Contract technisch definiert ist, und wissen, dass er Ereignisse auslösen kann, die externe (Nicht-Blockchain-)Systeme verarbeiten können, fehlt nun noch ein letztes Puzzlestück: Wie wird der Smart Contract eigentlich aufgerufen?

Dafür gibt es für die meisten Blockchain-Plattformen entsprechende SDKs in JavaScript, .NET und/oder Java. Diese SDKs erlauben die Erstellung, Signierung und Übermittlung von Transaktionen an eigene oder fremdbetriebene Nodes des Blockchain-Netzwerks.

Bei Ethereum-Derivaten wird ein Smart Contract wie folgt aufgerufen: Zuerst werden der Methodenname und die Methodenargumente in ein definiertes Binärformat konvertiert. Dazu werden Hilfsmethoden von dem SDK bereitgestellt, die die Schnittstellenbeschreibung (ABI – Application Binary Interface) des Smart Contract verarbeiten und die entsprechenden Binärdaten generieren können. Danach wird eine Transaktion erstellt, die als Zieladresse jene Adresse verwendet, die bei der weiter oben beschriebenen Instanzierung des Smart Contracts angelegt wurde.

Diese gesamte Operation kann vom Clientcode entweder explizit in einzelnen Schritten durchgeführt werden, oder – wie in Listing 5 gezeigt – durch automatisch generierte Methoden auch wie ein normaler Funktionsaufruf aussehen. Im Listing sehen wir den relevanten Teil des Aufrufs der oben vorgestellten Contract-Methode requestTransfer, der web3.js [4], das JavaScript-SDK für Ethereum, verwendet.

Listing 5

// Contract-objekt wird auf Basis des ABI und einer beispielhaften Zieladresse erzeugt

let abi = JSON.parse(fs.readFileSync(“demoContract.abi”));

let address = “0xFe363D7030Db8E93517bB6315165B68AC4387DE8”;

let demoContract = new web3.eth.Contract(abi, address);

 

// Im Hintergrund wird der Methodenaufruf in eine Ethereum-Transaktion übersetzt, diese mit einer konfigurierten (und im Vorfeld explizit freigegebenen) Default-Identität signiert und an das Netzwerk gesendet.

let numberToTransfer = “491511234567”;

demoContract.methods.requestTransfer(numberToTransfer)

.send({/* Optionen */})

.then(function (receipt) {

// … weitere Verarbeitung

});

Smart Contracts und Kryptowährungen

Wir haben gesehen, dass Smart Contracts einfach eine Möglichkeit sind, um Programmcode verteilt in einem Netzwerk auszuführen. Damit erreicht man die von der jeweiligen Blockchain-Plattform garantierte Datenintegrität. Doch wie passt das mit dem Hype im IoT-Bereich (z. B. der in der Einleitung angeführten automatischen Kühlkettenüberwachung mit Strafzahlungen) zusammen? In solchen Fällen übernehmen die Smart Contracts durchwegs die Verwaltung monetärer Verrechnungseinheiten (Kryptowährungen).

Beispielsweise könnte für einen Kühlcontainer, den man von Singapur nach Amsterdam transportieren will, einen Smart Contract aufsetzen. Dieser implementiert die Überwachung der maximal erlaubten Temperaturschwankungsbreite (die der Logistikunternehmer garantiert) und gleichzeitig eine automatische Strafzahlung bei Abweichung.

Der Contract könnte so gestaltet sein, dass ein IoT-Sensor während des gesamten Transports stündlich die Temperatur an den Smart Contract meldet und eine Abweichung vom vereinbarten Temperaturbereich sofort eine weitere Blockchain-Transaktion zur Übertragung einer Verrechnungswährung als Strafzahlung vorsieht.

Auch bei Blockchain-Netzwerken, die die automatische Abwicklung von dezentralen Stromlieferungen übernehmen, handelt es sich um ähnliche Kombinationen von IoT-Sensoren mit Smart Contracts im Hintergrund. (Im Grunde basiert der Begriff „Smart Contract“ auf solchen konkreten Vorabvereinbarungen, die ohne manuelle oder gar gerichtliche Nachverfolgung auskommen und rein technisch automatisiert umgesetzt werden.)

Das wirklich Interessante und Neue an Blockchains ist, dass sie die Erstellung von komplett dezentralen Strukturen erlauben. Netzwerkbeteiligte müssen sich nicht mehr auf eine zentrale, vertrauenswürdige Stelle einigen, sondern nur noch auf den Inhalt der Smart Contracts. Diese laufen dann dezentral im Blockchain-Netzwerk. Nicht nur für den Logistiksektor, sondern für alle Marktbereiche besteht dadurch die Hoffnung, dass die Marktteilnehmer Digitalisierungsprozesse umsetzen können, ohne ihre Autonomie durch die Wahl eines zentralen Verarbeitungsorgans (aus ggf. einem Pool von Wettbewerbern der gleichen Branche) einzuschränken.

Und das finde ich persönlich wirklich extrem spannend.

Ingo Rammer ist Speaker bei der Blockchain Technology Conference vom 19-21. November in Berlin. Dort kann man praktische Erfahrungen mit internationalen Experten sammeln. Außerdem gibt es Live-Demos und Fallstudien von echten Implementierungen, individuelle Interaktion mit Experten und Networking-Möglichkeiten mit Menschen aus den verschiedensten Branchen. Es erwartet euch außerdem eine Vielzahl von Sessions, Workshops und Kurzvorträgen von internationalen Referenten.

Exklusiver Rabatt-Code für unsere Leser: Einfach blockchain-btc-15 eingeben und 15 Prozent Rabatt sichern. Tickets gibt es hier.

BTC-ECHO

Du bist ein Blockchain- oder Krypto-Investor? Der digitale Kryptokompass ist der erste Börsenbrief für digitale Währungen und liefert dir monatlich exklusive Einschätzungen und umfassende Analysen zur aktuellen Lage an den Blockchain- & Krypto-Märkten. Jetzt kostenlos testen

Ähnliche Artikel

Geldwäsche: Regulierung von Kryptowährungen schreitet voran
Geldwäsche: Regulierung von Kryptowährungen schreitet voran
Blockchain

Chainalysis erweitert seine Mechanismen, um die Transparenz im Umfeld von Kryptowährungen zu erhöhen.

VeChain feat. BMW: Ein Reisepass für Autos
VeChain feat. BMW: Ein Reisepass für Autos
Blockchain

Die Nützlichkeit der Blockchain-Technologie wird inzwischen von keiner ernstzunehmenden Stimme mehr in Frage gestellt.

Newsletter

Die besten News kostenlos per E-Mail

Finde einen Job mit Zukunft

    Aktuell

    Jetzt wird es ernst: Wie Facebook, Nike und Samsung die zweite Welle der Blockchain-Adaption einleiten
    Jetzt wird es ernst: Wie Facebook, Nike und Samsung die zweite Welle der Blockchain-Adaption einleiten
    Kommentar

    Bislang ähnelten sich die meisten Meldungen von Konzernen zur Blockchain-Adaption.

    Schock bei Tether (USDT) und Bitcoin-Börse Bitfinex: Das steckt hinter der 850 Millionen-US-Dollar-Klage
    Schock bei Tether (USDT) und Bitcoin-Börse Bitfinex: Das steckt hinter der 850 Millionen-US-Dollar-Klage
    Märkte

    Der Krypto-Markt und insbesondere der Stable Coin Tether wurden heute Morgen böse überrascht.

    XRP im Wert von 170 Millionen US-Dollar verkauft – Ripples Umsatz wächst um 31 Prozent in Q1
    XRP im Wert von 170 Millionen US-Dollar verkauft – Ripples Umsatz wächst um 31 Prozent in Q1
    Märkte

    Die Nachfrage nach Ripples XRP hat seit Anfang des Jahres signifikant zugenommen.

    Samsung investiert 2,6 Millionen Euro in den französischen Wallet-Hersteller Ledger
    Samsung investiert 2,6 Millionen Euro in den französischen Wallet-Hersteller Ledger
    Sicherheit

    Der südkoreanische Technik-Gigant Samsung beteiligt sich an Ledger. Samsung investierte 2,6 Millionen Euro in den Wallet-Hersteller.

    Angesagt

    Desinformation à la Ayre: Bitcoin SV sponsert schottischen Zweitligisten
    Kommentar

    Unter der Federführung von Calvin Ayre vermeldet Bitcoin Satoshi Vision (BSV) das Sponsoring eines schottischen Fußball-Zweitligisten.

    Binance DEX erlässt Guidelines für Token Listings
    Unternehmen

    Die offene Börse für Kryptowährungen Binance hat neue Community-Richtlinien erlassen, in denen sie genau erklärt, wie neue Token eingereicht und gelistet werden können.

    Tether-Konkurrent TrustToken kündigt vier neue Stable Coins an
    Altcoins

    TrustToken wird vier neue Stable Coins einführen. Sie werden im Verlauf des Jahres auf dem Markt verfügbar sein.

    Bitcoin Mining – Wie die Anreizstruktur im Netzwerk den Kurs bestimmt
    Bitcoin

    Der Zusammenhang von Bitcoin Mining und -Kurs wird gemeinhin unterschätzt.