ÐArcher: Detecting On-Chain-Off-Chain Synchronization Bugs in Decentralized Applications
Since the emergence of Ethereum, blockchain-based decentralized applications (DApps) have become increasingly popular and important. To balance the security, performance, and costs, a DApp typically consists of two layers: an on-chain layer to execute transactions and store crucial data on the blockchain and an off-chain layer to interact with users. A DApp needs to synchronize its off-chain layer with the on-chain layer proactively. Otherwise, the inconsistent data in the off-chain layer could mislead users and cause undesirable consequences, e.g., loss of transaction fees. However, transactions sent to the blockchain are not guaranteed to be executed and could even be reversed after execution due to chain reorganization. Such non-determinism in the transaction execution is unique to blockchain. DApp developers may fail to perform the on-chain-off-chain synchronization accurately due to their lack of familiarity with the complex transaction lifecycle. In this work, we investigate the challenges of synchronizing on-chain and off-chain data in Ethereum-based DApps. We present two types of bugs that could result in inconsistencies between the on-chain and off-chain layers. To help detect such on-chain-off-chain synchronization bugs, we introduce a state transition model to guide the testing of DApps and propose two effective oracles to facilitate the automatic identification of bugs. We build the first testing framework, ÐArcher, to detect on-chain-off-chain synchronization bugs in DApps. We have evaluated ÐArcher on 11 popular real-world DApps. ÐArcher achieves high precision (99.3%), recall (87.6%), and accuracy (89.4%) in bug detection and significantly outperforms the baseline methods. It has found 15 real bugs in the 11 DApps. So far, six of the 15 bugs have been confirmed by the developers, and three have been fixed. These promising results demonstrate the usefulness of ÐArcher.
Tue 15 NovDisplayed time zone: Beijing, Chongqing, Hong Kong, Urumqi change
14:00 - 15:30 | ESEC/FSE 21 - DependabilityESEC/FSE 2021 at SRC LT 53 Chair(s): Domenico Bianculli University of Luxembourg | ||
14:00 15mTalk | ÐArcher: Detecting On-Chain-Off-Chain Synchronization Bugs in Decentralized Applications ESEC/FSE 2021 Wuqi Zhang The Hong Kong University of Science and Technology, Lili Wei McGill University, Shuqing Li The Chinese University of Hong Kong, Yepang Liu Southern University of Science and Technology, Shing-Chi Cheung Hong Kong University of Science and Technology Link to publication DOI Pre-print | ||
14:15 15mTalk | Hazard Analysis for Human-on-the-Loop Interactions in sUAS Systems ESEC/FSE 2021 Michael Vierhauser Johannes Kepler University Linz, Md Nafee Al Islam , Ankit Agrawal University of Notre Dame, Jane Cleland-Huang University of Notre Dame, James Mason Northrop Grumman | ||
14:30 15mTalk | Code Integrity Attestation for PLCs using Black Box Neural Network Predictions ESEC/FSE 2021 Yuqi Chen Singapore Management University, Chris Poskitt Singapore Management University, Jun Sun Singapore Management University DOI Pre-print | ||
14:45 15mTalk | Lightweight and Modular Resource Leak Verification ESEC/FSE 2021 Martin Kellogg University of Washington, Narges Shadab University of California at Riverside, Manu Sridharan University of California at Riverside, Michael D. Ernst University of Washington | ||
15:00 15mTalk | A Longitudinal Analysis of Bloated Java Dependencies ESEC/FSE 2021 Link to publication DOI Pre-print Media Attached |