The Consensus Number of a Cryptocurrency (Extended Version)

06/13/2019
by   Rachid Guerraoui, et al.
0

Many blockchain-based algorithms, such as Bitcoin, implement a decentralized asset transfer system, often referred to as a cryptocurrency. As stated in the original paper by Nakamoto, at the heart of these systems lies the problem of preventing double-spending; this is usually solved by achieving consensus on the order of transfers among the participants. In this paper, we treat the asset transfer problem as a concurrent object and determine its consensus number, showing that consensus is, in fact, not necessary to prevent double-spending. We first consider the problem as defined by Nakamoto, where only a single process---the account owner---can withdraw from each account. Safety and liveness need to be ensured for correct account owners, whereas misbehaving account owners might be unable to perform transfers. We show that the consensus number of an asset transfer object is 1. We then consider a more general k-shared asset transfer object where up to k processes can atomically withdraw from the same account, and show that this object has consensus number k. We establish our results in the context of shared memory with benign faults, allowing us to properly understand the level of difficulty of the asset transfer problem. We also translate these results in the message passing setting with Byzantine players, a model that is more relevant in practice. In this model, we describe an asynchronous Byzantine fault-tolerant asset transfer implementation that is both simpler and more efficient than state-of-the-art consensus-based solutions. Our results are applicable to both the permissioned (private) and permissionless (public) setting, as normally their differentiation is hidden by the abstractions on top of which our algorithms are based.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
12/27/2018

AT2: Asynchronous Trustworthy Transfers

Many blockchain-based protocols, such as Bitcoin, implement a decentrali...
research
12/09/2022

CryptoConcurrency: (Almost) Consensusless Asset Transfer with Shared Accounts

A typical blockchain protocol uses consensus to make sure that mutually ...
research
04/27/2020

Online Payments by Merely Broadcasting Messages (Extended Version)

We address the problem of online payments, where users can transfer fund...
research
07/30/2019

Blockguard: Adaptive Blockchain Security

We consider the problem of varying the security of blockchain transactio...
research
04/07/2022

Reaching Consensus in the Byzantine Empire: A Comprehensive Review of BFT Consensus Algorithms

Byzantine fault-tolerant (BFT) consensus algorithms are at the core of p...
research
02/14/2022

On Payment Channels in Asynchronous Money Transfer Systems

Money transfer is an abstraction that realizes the core of cryptocurrenc...
research
05/27/2022

How to Tame Multiple Spending in Decentralized Cryptocurrencies

The last decade has seen a variety of Asset-Transfer systems designed fo...

Please sign up or login with your details

Forgot password? Click here to reset