Coupling Smart Contracts: A Comparative Case Study

When software systems become more complex, it can be advantageous to partition their code into multiple, separate components. In this work, we examine how multiple smart contracts can be coupled to work together. When coupling smart contracts, different design approaches are possible with their own advantages and disadvantages. As an example, we couple two smart contract applications on the Ethereum blockchain: Palinodia and DecentID. Palinodia can be used to ensure the integrity of downloaded executable binaries by checking their hashes against the hashes stored in the blockchain. To make sure that not everyone can modify the data stored on the blockchain, an identity management system is required. This task is fulfilled by DecentID, which provides decentralized identities stored as smart contracts on the blockchain. We evaluate approaches of coupling these two applications and discuss their benefits and drawbacks for this use case.

[1]  Uwe Zdun,et al.  Design Patterns for Smart Contracts in the Ethereum Ecosystem , 2018, 2018 IEEE International Conference on Internet of Things (iThings) and IEEE Green Computing and Communications (GreenCom) and IEEE Cyber, Physical and Social Computing (CPSCom) and IEEE Smart Data (SmartData).

[2]  Martina Zitterbart,et al.  DecentID: Decentralized and Privacy-Preserving Identity Storage System Using Smart Contracts , 2018, 2018 17th IEEE International Conference On Trust, Security And Privacy In Computing And Communications/ 12th IEEE International Conference On Big Data Science And Engineering (TrustCom/BigDataSE).

[3]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[4]  Hannes Hartenstein,et al.  Access Control for Binary Integrity Protection using Ethereum , 2019, SACMAT.

[5]  Liming Zhu,et al.  Applying Design Patterns in Smart Contracts - A Case Study on a Blockchain-Based Traceability Application , 2018, ICBC.

[6]  Cesare Pautasso,et al.  A Pattern Collection for Blockchain-based Applications , 2018, EuroPLoP.