License: Creative Commons Attribution 3.0 Unported license (CC BY 3.0)
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.OPODIS.2016.24
URN: urn:nbn:de:0030-drops-70935
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2017/7093/
Cachin, Christian ;
Schubert, Simon ;
Vukolic, Marko
Non-Determinism in Byzantine Fault-Tolerant Replication
Abstract
Service replication distributes an application over many processes for tolerating faults, attacks, and misbehavior among a subset of the processes. With the recent interest in blockchain technologies, distributed execution of one logical application has become a prominent topic. The established state-machine replication paradigm inherently requires the application to be deterministic. This paper distinguishes three models for dealing with non-determinism in replicated services, where some processes are subject to faults and arbitrary behavior (so-called Byzantine faults): first, the modular case that does not require any changes to the potentially non-deterministic application (and neither access to its internal data); second, master-slave solutions, where ties are broken by a leader and the other processes validate the choices of the leader; and finally, applications that use cryptography and secret keys. Cryptographic operations and secrets must be treated specially because they require strong randomness to satisfy their goals.
The paper also introduces two new protocols. First, Protocol Sieve uses the modular approach and filters out non-deterministic operations in an application. It ensures that all correct processes produce the same outputs and that their internal states do not diverge. A second protocol, called Mastercrypt, implements cryptographically secure randomness generation with a verifiable random function and is appropriate for most situations in which cryptographic secrets are involved. All protocols are described in a generic way and do not assume a particular implementation of the underlying consensus primitive.
BibTeX - Entry
@InProceedings{cachin_et_al:LIPIcs:2017:7093,
author = {Christian Cachin and Simon Schubert and Marko Vukolic},
title = {{Non-Determinism in Byzantine Fault-Tolerant Replication}},
booktitle = {20th International Conference on Principles of Distributed Systems (OPODIS 2016)},
pages = {24:1--24:16},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
ISBN = {978-3-95977-031-6},
ISSN = {1868-8969},
year = {2017},
volume = {70},
editor = {Panagiota Fatourou and Ernesto Jim{\'e}nez and Fernando Pedone},
publisher = {Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
address = {Dagstuhl, Germany},
URL = {http://drops.dagstuhl.de/opus/volltexte/2017/7093},
URN = {urn:nbn:de:0030-drops-70935},
doi = {10.4230/LIPIcs.OPODIS.2016.24},
annote = {Keywords: Blockchain, atomic broadcast, consensus, distributed cryptography, verifiable random functions}
}
Keywords: |
|
Blockchain, atomic broadcast, consensus, distributed cryptography, verifiable random functions |
Collection: |
|
20th International Conference on Principles of Distributed Systems (OPODIS 2016) |
Issue Date: |
|
2017 |
Date of publication: |
|
06.04.2017 |