title: Cross-blockchain smart contracts : invoking smart contracts across blockchains
Creators: name: Nissl, Markus
Publisher: name: TU Wien
Year: 2019
Subjects: subject: Blockchain
subject: Smart Contracts
subject: Interoperability

description: Seit 2017 haben Kryptowährungen große Beachtung gefunden. Pro Monat werden ungefähr 50 neue Kryptowährungen auf Vergleichsseiten gelistet. Diese Währungen werden dabei mittels Transaktionen in verteilten Bestandsbüchern, sogenannten Blockchains, verwaltet. Die Blockchains werden allerdings nicht nur für „digitales Geld“ verwendet, sondern bieten unter anderem durch codebasierte Verträge, sogenannte Smart Contracts, die Möglichkeit nahezu beliebige Dienste dezentral auszuführen. Mögliche Anwendungen umfassen die Bereiche Gesundheitswesen, Vermögensund Supply Chain Management. Da sich die Blockchains in der Funktionalität voneinander unterscheiden, z. B. durch die Unterstützung von Smart Contracts oder durch Privatsphäre-Funktionen, eignen sich bestimme Blockchains für manche Anwendungsgebiete besser. Vor allem im Bereich der Industrie, z. B. im Supply Chain Management, kann daher der Fall eintreten, dass Unternehmen unterschiedliche Blockchains im Einsatz haben. Eine Kommunikation zwischen den Smart Contracts ist jedoch nicht oder nur über Umwege möglich, da Smart Contracts den Anwendungsbereich der jeweiligen Blockchain nicht verlassen können ohne die manipulationssichere Eigenschaft von Blockchains zu verlieren, da die Transaktionen in einer unsicheren Umgebung, z. B. per Hand, übertragen werden müssen. Daher wird im Zuge dieser Diplomarbeit ein Framework entwickelt, das die Interoperabilität zwischen unterschiedlichen Blockchains erhöht. Es werden dabei sogenannte Cross-Blockchain-Calls eingeführt, die einen Aufruf eines Smart Contracts auf einer anderen Blockchain ermöglichen. Das Framework nimmt dabei Rücksicht auf die Nebenläufigkeit der Blockchains, die „eventual consistency“ von Transaktionen, die Bezahlung von Transaktionsgebühren sowie die korrekte Ausführung der Cross-Blockchain-Calls. Weiters werden die Fortführung einer Transaktion nach Erhalt des Ergebnisses eines Cross-Blockchain-Calls und der rekursive Aufruf über mehrere Blockchains ermöglicht. Der implementierte Prototyp unterstützt dabei alle Blockchains, die auf der Ethereum Virtual Machine basieren sowie den Solidity Compiler verwenden (z. B. Ethereum, Ethereum Classic oder Tron) und kann um weitere Blockchains erweitert werden. Die Evaluierung hat gezeigt, dass der Prototyp die Transaktionskosten um das 40-fache erhöht und je nach Konfiguration 5-7-mal länger benötigt als das manuelle Importieren eines Transaktionsresultates. Allerdings wird durch die Verwendung des Frameworks der manuelle Aufwand des Aufrufers verringert und der Importwert von unabhängigen Stellen überprüft.
description: At least since 2017, cryptocurrencies got significant attention. About 50 new cryptocurrencies are listed on comparison pages per month. These currencies are managed by transactions in distributed ledgers, so-called blockchains. However, the blockchains are not only used for “digital money”, but also offer the possibility of code-based contracts, so-called smart contracts, that execute services decentralized. Possible applications include health care, asset management and supply chain management. Since the functionalities of blockchains differ, for example by supporting smart contracts or privacy functions, certain blockchains are better suited for some application areas. Especially in industry, for example in supply chain management, it can happen that companies use different blockchains. As a result, communication between the smart contracts is not or only indirectly possible because smart contracts cannot leave the scope of the respective blockchain without losing the tamper-proof property of blockchains, since the transactions are transferred in an insecure environment, e.g. manually. As part of this thesis, a framework is developed that increases the interoperability between different blockchains. Therefore, so-called cross-blockchain calls are introduced, which allow to call a smart contract on another blockchain. The framework takes into account the concurrency of the blockchains, the eventual consistency of transactions, the payment of transaction fees and the correct execution of the cross-blockchain calls. In addition, it is possible to continue the transaction after receiving the result of a cross-blockchain call and to recursively call smart contracts across blockchains. The implemented prototype supports all blockchains that are based on the Ethereum Virtual Machine and use the Solidity compiler (e.g., Ethereum, Ethereum Classic and Tron), but can be extended with additional blockchains. The evaluation has shown that the prototype increases the transaction cost by a factor of 40 and, depending on the configuration, takes a factor of 5-7 longer than importing the transaction result manually. However, the manual effort of the caller is reduced and the import is verified by independent parties.