| Literature DB >> 33897937 |
Shafaq Naheed Khan1, Faiza Loukil2, Chirine Ghedira-Guegan3, Elhadj Benkhelifa4, Anoud Bani-Hani1.
Abstract
In recent years, the rapid development of blockchain technology and cryptocurrencies has influenced the financial industry by creating a new crypto-economy. Then, next-generation decentralized applications without involving a trusted third-party have emerged thanks to the appearance of smart contracts, which are computer protocols designed to facilitate, verify, and enforce automatically the negotiation and agreement among multiple untrustworthy parties. Despite the bright side of smart contracts, several concerns continue to undermine their adoption, such as security threats, vulnerabilities, and legal issues. In this paper, we present a comprehensive survey of blockchain-enabled smart contracts from both technical and usage points of view. To do so, we present a taxonomy of existing blockchain-enabled smart contract solutions, categorize the included research papers, and discuss the existing smart contract-based studies. Based on the findings from the survey, we identify a set of challenges and open issues that need to be addressed in future studies. Finally, we identify future trends.Entities:
Keywords: Blockchain technology; Peer-to-peer network; Smart contract; Survey; Systematic review
Year: 2021 PMID: 33897937 PMCID: PMC8053233 DOI: 10.1007/s12083-021-01127-0
Source DB: PubMed Journal: Peer Peer Netw Appl ISSN: 1936-6442 Impact factor: 3.307
Existing smart contract Reviews/Surveys: A comparative summary
| Survey | Solution taxonomy? | Blockchain platforms? | Application domains? | Coverage of tools? | Research gap identification? | Scope of literature review |
|---|---|---|---|---|---|---|
| Our survey | ✓ | ✓ | ✓ | ✓ | ✓ | Until 09/2020 |
| Atzei et al. [ | ✓ | ✓ | ✓ | Until 2017 | ||
| DHarz and Knottenbelt [ | ✓ | ✓ | Until 09/2018 | |||
| Angelo and Salzer [ | ✓ | ✓ | Until 10/2018 | |||
| Liu and Liu [ | ✓ | ✓ | ✓ | 2015-2018 | ||
| Feng et al. [ | ✓ | ✓ | Until 05/2019 | |||
| Murray and Anisi [ | ✓ | ✓ | Until 2019 | |||
| Zou et al. [ | ✓ | Until 2019 | ||||
| Gupta et al. [ | ✓ | ✓ | 2015-01/2020 | |||
| Praitheeshan et al. [ | ✓ | ✓ | ✓ | ✓ | Until 2019 | |
| Mohanta et al. [ | ✓ | ✓ | Until 2018 | |||
| Rouhani and Deters [ | ✓ | ✓ | Until 04/2019 | |||
| Bartoletti and Pompianu [ | ✓ | ✓ | ✓ | 2013-2016 | ||
| Meng et al. [ | ✓ | Until 2018 | ||||
| Hu et al. [ | ✓ | ✓ | 2015-2019 | |||
| Maesa et al. [ | ✓ | Until 2018 | ||||
| Cuccuru [ | ✓ | ✓ | Until 05/2016 | |||
| Alharby et al. [ | ✓ | ✓ | Until 05/2017 | |||
| Udokwu et al. [ | ✓ | 2013-2018 | ||||
| Wang et al. [ | ✓ | ✓ | ✓ | Until 2018 | ||
| Zheng et al. [ | ✓ | ✓ | ✓ | Until 2019 |
Fig. 1Publication trend
Inclusion and exclusion criteria for relevant works
| Inclusion criteria | Exclusion criteria |
|---|---|
| Be published online before September 2020 | White papers, editorial comments, and book reviews |
| Studies are in the field of smart contracts | Studies that present surveys and review papers |
| Studies that are available in online archives | Studies that are not published in English |
Fig. 2Included articles per year
Fig. 3Taxonomy of blockchain-enabled smart contract based studies
Some examples of programming-centric solutions
| Paper | Contribution | Description |
|---|---|---|
| Regnath and Steinhorst [ | SmaCoNat | SmaCoNat is a domain-specific language that is tailored for a subset of the transaction logic found in smart contracts. |
| Schrans et al. [ | Flint | Flint is a type-safe, capabilities-secure, contractoriented programming language specifically designed for writing robust smart contracts. |
| Sergey et al. [ | Scilla | Scilla is a novel intermediate-level functional smart contract programming language, suitable to serve as a compilation target and also as an independent programming framework. Scilla aims at achieving both sufficient expressivity and tractability, while enabling formal contract verification. |
Some examples of formal verification-centric solutions
| Publication | Contribution | Description |
|---|---|---|
| Amani et al. [ | Bytecode verifying method | It aims at verifying smart contracts at the level of EVM bytecode using the Isabelle/HOL. This formal method is generic to all Ethereum smart contracts. |
| Bai et al. [ | Model checking method | It is introduced based on formal methods to model smart contracts and verify their properties. Formal methods combined with smart contracts aim at reducing the potential errors and costs during the development process of smart contracts. |
| Osterland and Rose [ | Tool chain | Tool chain aims at translating chain code modeled in Solidity via its operational semantics into a formal representation that can be formally analyzed for correct implementation via model checking. |
| Yang and Lei [ | FEther | FEther is an extensible hybrid verification proof engine for Ethereum smart contract verification. Based on Lolisa, which is a large subset of solidity mechanized in Coq, FEther guarantees the consistency between smart contracts and its formal model. |
Some examples of performance optimization-centric solutions
| Publication | Contribution | Description |
|---|---|---|
| Dickerson et al. [ | Parallel execution method | It is a novel way to permit miners to execute smart contracts in parallel, based on techniques adapted from software transactional memory. This method performed well on smart contract benchmarks, greatly speeding up contract execution efficiency. |
| Gao et al. [ | Parallel execution scheme | It can run multiple smart contracts in parallel to improve the throughput of the system. |
| Chen et al. [ | GasReducer tool | GasReducer is a tool to automatically detect multiple anti-patterns from the bytecode of smart contracts and replace them with efficient code through bytecode-to-bytecode optimization in order to save gas cost. |
Some examples of security optimization-centric solutions
| Publication | Contribution | Description |
|---|---|---|
| Vulnerability detection | ||
| Luu et al. [ | Oyente | Oyente is a symbolic execution tool that aims at finding potential security bugs. It extracted the control map from the EVM Bytecode of the contract and found potential vulnerabilities in the contract by executing a control map. |
| Bragagnolo et al. [ | SmartInspect | SmartInspect is a solidity smart contract inspector that aims at analyzing contract states using decompilation techniques driven by the contract structure definition. It also allows contract developers to better visualize and understand the contract stored state without needing to redeploy, nor develop any ad-hoc code. |
| Jiang et al. [ | ContractFuzzer | ContractFuzzer is a novel fuzzer to test Ethereum smart contracts for security vulnerabilities. ContractFuzzer generates fuzzing inputs based on the ABI specifications of smart contracts, defines test oracles to detect security vulnerabilities, instruments the EVM to log smart contract run-time behaviors, and analyzes these logs to report security vulnerabilities. |
| Liu et al. [ | ReGuard | ReGuard is a fuzzing-based analyzer to automatically detect re-entrancy bugs in Ethereum smart contracts. Specifically, ReGuard performs fuzz testing on smart contracts by iteratively generating random but diverse transactions. |
| Kolluri et al. [ | EthRacer | EthRacer is an automatic analysis tool that runs directly on Ethereum bytecode and requires no hints from users in order to detect event-ordering bugs in blockchain smart contracts. |
| Transactional privacy | ||
| Kosba et al. [ | Hawk | Hawk is a blockchain model of cryptography and privacy-preserving smart contracts. It does not make financial transactions available publicly on the blockchain to maintain transactional privacy. |
| Watanabe et al. [ | Verifying contract protocol | It aims at deploying an encrypted smart contract on the blockchain. Only participants having a decryption key can access the contract’s content. |
| Trustworthy data feeding | ||
| Zhang et al. [ | Town Crier | Town Crier acts as a bridge between smart contracts and existing web sites, which are already commonly trusted for non-blockchain applications. |
| Liu et al. [ | Data carrier architecture | Data carrier architecture is cost-effective and elastic for blockchain-enabled IoT environment that enables smart contracts to fetch off-chain data. The evaluation results show that the proposal is more efficient and elastic compared with Oraclize Oracle data carrier service. |
Some examples of data management-centric solutions
| Publication | Contribution | Description |
|---|---|---|
| Data provenance | ||
| Angrish et al. [ | FabRec | It is a decentralized approach to handle manufacturing information generated by various organizations using the blockchain. It decentralizes critical information about the manufacturer and makes it available on a peer-to-peer network composed of fiduciary nodes to ensure transparency and data provenance. |
| Javaid et al. [ | BlockPro | BlockPro is a solution based on Physical unclonable functions (PUFs) and the blockchain for a safe and secure IoT environment to ensure data provenance and enforce data integrity by providing an immutable storage platform. |
| Data access | ||
| Ouaddah et al. [ | FairAccess | FairAccess is a decentralized pseudonymous and privacy-preserving authorization management framework. It relies on smart contracts to express access control policies and blockchain to manage access control enforcement. |
| Guo et al. [ | Multi-authority scheme | Multi-authority attribute-based access control (ABAC) scheme uses smart contract to issue a secret key to the data user to access the requested object. |
| Maesa et al. [ | Access control system | It aims at codifying attribute-based access control policies as smart contracts and deploying them on a blockchain, hence transforming the policy evaluation process into a completely distributed smart contract execution. |
| Zhang et al. [ | Access control framework | It is based on multiple access control contracts, one judge contract, and one register contract in order to achieve distributed and trustworthy access control for IoT systems. |
| Shi et al .[ | AAA scheme | It is a blockchain-empowered Authentication/Authorization/Auditing (AAA) scheme to protect the data in the large-scale HetNet where the access control permission of data is stored on the blockchain. |
| Yu et al. [ | AC scheme in IIoT | It is a blockchain-enhanced security access control scheme that supports traceability and revocability has been proposed in IIoT for smart factories. |
| Data sharing | ||
| Dagher et al. [ | Ancile | Ancile is a blockchain-based framework for secure, interoperable, and efficient access to medical records by patients, providers, and third parties while preserving the privacy of patients. |
| Omar et al. [ | MediBchain | It is a patient-centric healthcare data management system using blockchain technology as storage which helps to attain privacy. Cryptographic functions are used to encrypt patient’s data and to ensure pseudonymity. |
| Nizamuddin et al. [ | Document sharing framework | Document sharing framework is a blockchain-based solution for document sharing and version control to facilitate multi-user collaboration and track changes. Smart contracts are used to govern and regulate the document version control functions among the creators of the document and its validators. |
| Eltayieb et al. [ | BABSC | BABSC is a blockchain-based attribute-based signcryption scheme to provide secure data sharing in the cloud environment. It also provides secure data confidentiality and unforgeability. |
| Yu et al. [ | Research support platform | It is a blockchain-based platform for data sharing against COVID-19. Smart contracts and pseudonym mechanism are used to preserve the privacy of patients. |
Some examples of device management-centric solutions
| Publication | Contribution | Description |
|---|---|---|
| Ellul and Pace [ | AlkylVM | AlkylVM is a split-virtual machine that allows for resource-constrained IoT devices to interact with blockchain systems. |
| Javaid et al. [ | IoT-Blockchain model | IoT-Blockchain model is an IoT device and server communication framework on Ethereum using a customized smart contract which enables a better defense mechanism against DDoS and rogue device attacks. |
| Loukil et al. [ | PrivBlockchain | PrivBlockchain is an end-to-end privacy-preserving framework for the IoT data using blockchain technology. The proposed smart contracts are used to improve the data ownership, transparency, and auditability for users. |
| Singla et al. [ | LMS | Leave Management System (LMS) is a secure reliable leave management system through blockchain smart contract handled via mobile or IoT devices. |
| Wang et al. [ | PoRX | Proof-of-Reputation-X (PoRX) is a reputation incentive scheme for blockchain consensus of Industrial Internet of Things. |
| Wright et al. [ | SmartEdge | SmartEdge is an Ethereum-based smart contract for edge computing. It is a low-cost, low-overhead tool for compute-resource management. |
| Zhao et al. [ | Software update protocol | It is a blockchain based privacy-preserving protocol, which delivers secure and reliable updates for the IoT devices with an incentive mechanism while protects the privacy of involved users. |
Some examples of cloud-related solutions
| Publication | Contribution | Description |
|---|---|---|
| Hwang et al. [ | Automatic indemnification mechanism | It is based on smart contracts for refunding cloud storage service clients when the service provider violates the service level agreement by raising objections to a smart contract. |
| Scoca et al. [ | Smart contract negotiation | It is an autonomous negotiation of smart contracts in cloud computing, which analyses the cost and the necessary changes for reaching an agreement. It is based on a formal language that specifies interactions between offers and requests. |
| Wang et al. [ | QoS-Aware service composition | It is a smart-contract based algorithm for constructing cloud service-based systems through the composition of existing services. |
| Zhou et al. [ | Cloud SLA enforcement | It is a witness model to credibly enforce the cloud service level agreement (SLA) using the witness role based on blockchain and smart contracts to solve the trust issues about who can detect the service violation and how the violation is confirmed. |
Some examples of profit-centric solutions: Tracking-based
| Publication | Contribution | Description |
|---|---|---|
| Baralla et al. [ | Supply chain system | It is a generic agri-food supply chain traceability system based on blockchain technology implementing the “from-farm-to-fork” (F2F) model currently used in the European Union, which can integrate current traceability rules and processes. |
| Casado-Vara et al. [ | Supply chain model | It is based on blockchain that aims at coordinating the tracking of food in the agriculture supply chain using smart contracts and a multi-agent system. |
| Dasaklis et al. [ | Granularity level framework | It is a generic framework for defining granularity levels based on the product’s unique characteristics, supply chain processes, and stakeholders’ engagement by using smart contracts within a blockchain-enabled supply chain traceability architecture. |
| Hasan et al. [ | Supply chain management | It is a blockchain-based solution for efficient supply chain management involving items shipped via smart containers. Smart contracts are used to manage shipment conditions, automate payments, legitimize receivers, and also issue a refund in case of violations to pre-defined conditions. |
| Islam and Kundu [ | IC Traceability method | It is a method of integrated circuit (IC) supply chain traceability based on blockchain. Smart contracts allow supply chain participants to authenticate, track, trace, analyze, and provision chips throughout their entire life cycle. |
| Leng et al. [ | Makerchain | Makerchain is a decentralized blockchain-driven model to handle the cyber-credit of social manufacturing among various makers. Smart contracts are used to automate the verification of the product life-cycle through a trail of historic events. |
| Lin et al. [ | Food Traceability system | It is a trusted, self-organized, open, and ecological food traceability system based on blockchain and Internet of Things technologies. |
| Westerkamp et al. [ | Tracing manufacturing processes | It is a system that allows for traceability of manufactured goods, including their components using tokens. |
| Xie et al. [ | QuarkChain | QuarkChain is a blockchain-enabled interoperability framework and it has the reputation based Proof-of-Authority as a preliminary smart contract design for addressing challenges in biopharmaceutical supply chain management. |
| Xu et al. [ | originChain | It is a blockchain-based traceability system that provides transparent tamper-proof traceability data with high availability and enables automated regulatory-compliance checking and adaptation in imported product traceability scenarios. |
Some examples of profit-centric solutions: Digital asset-based
| Publication | Contribution | Description |
|---|---|---|
| Asgaonkar and Krishnamachari [ | Escrow trade protocol | It is a dual-deposit escrow trade protocol that uses double-sided payment deposits in conjunction with simple cryptographic primitives for provably cheat-proof delivery and payment for a digital good without a trusted mediator based on blockchain-enabled smart contracts. |
| Bader et al. [ | CAIPY | CAIPY is a smart contract-based ecosystem for simple and transparent car insurance in which smart contracts do not replace but support current processes to enable significant cost savings for insurance claims. |
| Bogner et al. [ | DAPP | DAPP is a Decentralised App for the sharing of everyday objects based on a smart contract that enables users to register and rent devices without involvement of a Trusted Third Party (TTP), disclosure of any personal information, or prior sign up to the service. |
| Dziembowski et al. [ | FairSwap | It is a protocol for a fair exchange of digital goods using smart contracts that take the role of an external judge that completes the exchange in case of disagreement. |
| Liu et al. [ | EV power trading model | Electric vehicles power trading model is based on smart contracts and aims at realizing the information equivalence and transparent openness of power trading. |
| Missier et al. [ | IoT data trading marketplace | It is a decentralized, trusted, transparent, and open architecture for IoT traffic metering and contract compliance. |
| Wang et al. [ | Energy demand management | It is a hierarchical framework for the energy demand-side management through peer-to-peer exchange of information and energy in the real-time market using smart contracts. |
| Xiong and Xiong [ | Data trading mode | It is a solution to the data trading mode based on the smart contract using blockchain and machine learning. Smart contracts are used to authenticate and authorize the data owner before authorizing the data purchaser to download the purchased data. |
| Xu et al. [ | BLESS | BLESS is a BLockchain-Enabled Social credits System that rewards the residents who commit to socially beneficial activities. Smart contract enabled authentication and authorization strategy prevents any unauthorized entity from accessing the credit system. |
| Yeh et al. [ | Mobile payment scheme | It is a robust mobile payment scheme based on sturdy certificate-less signatures with bilinear pairing while making it suitable for computation-constrained mobile devices. |
Some examples of profit-centric solutions: Crowdsourcing-related
| Publication | Contribution | Description |
|---|---|---|
| Han et al. [ | Fluid | Fluid is a blockchain based framework which supports foundations of general crowdsourcing platforms using smart contracts. |
| Shi et al. [ | MPCSToken | MPCSToken is a smart contract enabled fault-tolerant incentivisation for mobile P2P crowd services to facilitate service auction, task execution and payment settlement process. |
| Wang et al. [ | LoC | LoC is a financial loan management system based on smart contracts over permissioned blockchain Hyperledger Fabric. |
| Zichichi et al. [ | LikeStarter | It is a smart-contract based social decentralized autonomous organization that combines social interactions with crowdfunding mechanisms, allowing any user to raise funds while becoming popular in the social network. |
Some examples of non-profit-centric solutions
| Publication | Contribution | Description |
|---|---|---|
| Cheng et al. [ | VOLTimebank | Volunteer time bank (VOLTimebank) is a system for a mutual pension based on blockchain and smart contracts. |
| Farooq et al. [ | Charity management platform | It is a blockchain-based charity management platform that aims at providing a transparent, secure, auditable, and efficient system. Smart contracts are used to buy, sell, and transfer CharityCoin to organizations and individuals, and call for donations. |
| Panja et al. [ | Borda count voting | It is a self-tallying decentralized e-voting protocol for a ranked-choice voting system based on Borda count. |
| Saleh et al. [ | Tracking donation platform | It offers transparent accounting of operations donors, charitable foundations, and recipients based on blockchain technology. |
| Shariar et al. [ | Computational system | It is a decentralized model of a computational system built on blockchain for educational institutions by introducing a cryptocurrency within the network of the institute. |
| Sirisha et al. [ | Charity-Chain | It is a decentralized network for tracking donations and helping donors (philanthropic organizations, impact investors, small donors) to monitor their transactions and hence restore their trust in giving to such social organizations. |
| Trotter et al. [ | Smart donations | It is a blockchain-powered mobile platform and application that facilitates a novel model for real-time, condition-based donations using smart contracts. |
| Zhao and O’Mahony [ | BMCProtector | BMCProtector is a blockchain and smart contract-based application to protect music copyright and ensure holders’ income rights. |
Fig. 4Challenges and open issues