Cargando…
The consensus number of a cryptocurrency
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 co...
Autores principales: | , , , , |
---|---|
Formato: | Online Artículo Texto |
Lenguaje: | English |
Publicado: |
Springer Berlin Heidelberg
2021
|
Materias: | |
Acceso en línea: | https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8882574/ https://www.ncbi.nlm.nih.gov/pubmed/35250132 http://dx.doi.org/10.1007/s00446-021-00399-2 |
_version_ | 1784659721709420544 |
---|---|
author | Guerraoui, Rachid Kuznetsov, Petr Monti, Matteo Pavlovic, Matej Seredinschi, Dragos-Adrian |
author_facet | Guerraoui, Rachid Kuznetsov, Petr Monti, Matteo Pavlovic, Matej Seredinschi, Dragos-Adrian |
author_sort | Guerraoui, Rachid |
collection | PubMed |
description | 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. |
format | Online Article Text |
id | pubmed-8882574 |
institution | National Center for Biotechnology Information |
language | English |
publishDate | 2021 |
publisher | Springer Berlin Heidelberg |
record_format | MEDLINE/PubMed |
spelling | pubmed-88825742022-03-02 The consensus number of a cryptocurrency Guerraoui, Rachid Kuznetsov, Petr Monti, Matteo Pavlovic, Matej Seredinschi, Dragos-Adrian Distrib Comput Article 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. Springer Berlin Heidelberg 2021-10-23 2022 /pmc/articles/PMC8882574/ /pubmed/35250132 http://dx.doi.org/10.1007/s00446-021-00399-2 Text en © The Author(s) 2021, corrected publication 2022 https://creativecommons.org/licenses/by/4.0/Open AccessThis article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article’s Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article’s Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/ (https://creativecommons.org/licenses/by/4.0/) . |
spellingShingle | Article Guerraoui, Rachid Kuznetsov, Petr Monti, Matteo Pavlovic, Matej Seredinschi, Dragos-Adrian The consensus number of a cryptocurrency |
title | The consensus number of a cryptocurrency |
title_full | The consensus number of a cryptocurrency |
title_fullStr | The consensus number of a cryptocurrency |
title_full_unstemmed | The consensus number of a cryptocurrency |
title_short | The consensus number of a cryptocurrency |
title_sort | consensus number of a cryptocurrency |
topic | Article |
url | https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8882574/ https://www.ncbi.nlm.nih.gov/pubmed/35250132 http://dx.doi.org/10.1007/s00446-021-00399-2 |
work_keys_str_mv | AT guerraouirachid theconsensusnumberofacryptocurrency AT kuznetsovpetr theconsensusnumberofacryptocurrency AT montimatteo theconsensusnumberofacryptocurrency AT pavlovicmatej theconsensusnumberofacryptocurrency AT seredinschidragosadrian theconsensusnumberofacryptocurrency AT guerraouirachid consensusnumberofacryptocurrency AT kuznetsovpetr consensusnumberofacryptocurrency AT montimatteo consensusnumberofacryptocurrency AT pavlovicmatej consensusnumberofacryptocurrency AT seredinschidragosadrian consensusnumberofacryptocurrency |