September 25, 2020
Abstract
Sharding is a popular way to improve the scalability of blockchain consensus protocols, increasing their throughput by partitioning the set of transaction validators into a number of smaller committees, splitting the workload. Existing approaches for blockchain sharding, however, do not scale well in the case when concurrent transactions alter the same replicated state component—a common scenario in Ethereum-style smart contracts.
We propose a novel approach for efficiently sharding such transactions. It is based on a known folklore idea: state-manipulating atomic operations that commute can be processed in parallel, with their cumulative result defined deterministically. We present CoSplit—a static program analysis tool that soundly infers commutativity summaries for arbitrary user-defined smart contracts written in the Scilla language and translates those summaries to sharding signatures that are used by the blockchain protocol to allocate shards to transactions in a way that maximises parallelism. We have integrated CoSplit into a state-of-the-art sharded blockchain consensus protocol. Our evaluation shows that using CoSplit introduces negligible overhead to the transaction validation cost, while the inferred sharding signatures allow the system to achieve a significant increase in transaction processing throughput for real-world smart contracts.
About Ilya Sergey
Ilya Sergey is a tenure-track Associate Professor at Yale-NUS College and NUS School of Computing (Singapore). Prior to joining Yale-NUS, he was a faculty at University College London. Before then, he was a postdoctoral researcher at IMDEA Software Institute (Madrid, Spain). Ilya defended his PhD in 2012 in the DistriNet research group at the Department of Computer Sciences of KU Leuven (Belgium). Ilya was awarded the AITO Dahl-Nygaard Junior Prize in 2019. His research interests dwell in the area of the design and implementation of programming languages, including but not limited to program semantics, certified programming, concurrency and abstract interpretation. He is particularly interested in developing verification techniques and static analyses for higher-order and concurrent programs.