Free2shard: Adversary-resistant distributed resource allocation for blockchains

R Rana, S Kannan, D Tse, P Viswanath - Proceedings of the ACM on …, 2022 - dl.acm.org
Proceedings of the ACM on Measurement and Analysis of Computing Systems, 2022dl.acm.org
In this paper, we study a canonical distributed resource allocation problem arising in
blockchains. While distributed resource allocation is a well-studied problem in networking,
the blockchain setting additionally requires the solution to be resilient to adversarial
behavior from a fraction of nodes. Scaling blockchain performance is a basic research topic;
a plethora of solutions (under the umbrella of sharding) have been proposed in recent years.
Although the various sharding solutions share a common thread (they cryptographically …
In this paper, we study a canonical distributed resource allocation problem arising in blockchains. While distributed resource allocation is a well-studied problem in networking, the blockchain setting additionally requires the solution to be resilient to adversarial behavior from a fraction of nodes. Scaling blockchain performance is a basic research topic; a plethora of solutions (under the umbrella of sharding ) have been proposed in recent years. Although the various sharding solutions share a common thread (they cryptographically stitch together multiple parallel chains), architectural differences lead to differing resource allocation problems. In this paper we make three main contributions: (a) we categorize the different sharding proposals under a common architectural framework, allowing for the emergence of a new, uniformly improved, uni-consensus sharding architecture. (b) We formulate and exactly solve a core resource allocation problem in the uni-consensus sharding architecture -- our solution, Free2shard, is adversary-resistant and achieves optimal throughput. The key technical contribution is a mathematical connection to the classical work of Blackwell approachability in dynamic game theory. (c) We implement the sharding architecture atop a full-stack blockchain in 3000 lines of code in Rust -- we achieve a throughput of more than 250,000 transactions per second with 6 shards, a vast improvement over state-of-the-art.
ACM Digital Library