Evolutionary Approach for Concurrency Testing of Ripple Blockchain Consensus Algorithm

Research output: Chapter in Book/Conference proceedings/Edited volumeConference contributionScientificpeer-review

6 Downloads (Pure)

Abstract

Blockchain systems are prone to concurrency bugs due to the nondeterminism in the delivery order of messages between the distributed nodes. These bugs are hard to detect since they can only be triggered by a specific order or timing of concurrent events in the execution.
Systematic concurrency testing techniques, which explore all possible delivery orderings of messages to uncover concurrency bugs, are not scalable to large distributed systems such as blockchains.
Random concurrency testing methods search for bugs in a randomly generated set of executions and offer a practical testing method.
In this paper, we investigate the effectiveness of random concurrency testing on blockchain systems using a case study on the XRP Ledger of the Ripple blockchain, which maintains one of the most popular cryptocurrencies in the market today. We test the Ripple consensus algorithm of the XRP Ledger by exploring different delivery orderings of consensus protocol messages.
Moreover, we design an evolutionary algorithm to guide the random test case generation toward certain system behaviors to discover concurrency bugs more efficiently.
Our case study shows that random concurrency testing is effective at detecting concurrency bugs in blockchains, and the evolutionary approach for test generation improves test efficiency.
Our experiments could successfully detect the bugs we seeded in the Ripple source code. Moreover, we discovered a previously unknown concurrency bug in the production implementation of Ripple.
Original languageEnglish
Title of host publication45rd International Conference on Software Engineering
Subtitle of host publicationSEIP - Software Engineering in Practice
Publication statusAccepted/In press - 13 May 2023

Keywords

  • Blockchains
  • Distributed systems
  • Concurrency
  • Evolutionary algorithms
  • Software Testing
  • Ripple

Fingerprint

Dive into the research topics of 'Evolutionary Approach for Concurrency Testing of Ripple Blockchain Consensus Algorithm'. Together they form a unique fingerprint.

Cite this