695 research outputs found
The Bedrock of Byzantine Fault Tolerance: A Unified Platform for BFT Protocol Design and Implementation
Byzantine Fault-Tolerant (BFT) protocols have recently been extensively used
by decentralized data management systems with non-trustworthy infrastructures,
e.g., permissioned blockchains. BFT protocols cover a broad spectrum of design
dimensions from infrastructure settings such as the communication topology, to
more technical features such as commitment strategy and even fundamental social
choice properties like order-fairness. The proliferation of different BFT
protocols has rendered it difficult to navigate the BFT landscape, let alone
determine the protocol that best meets application needs. This paper presents
Bedrock, a unified platform for BFT protocols design, analysis, implementation,
and experiments. Bedrock proposes a design space consisting of a set of design
choices capturing the trade-offs between different design space dimensions and
providing fundamentally new insights into the strengths and weaknesses of BFT
protocols. Bedrock enables users to analyze and experiment with BFT protocols
within the space of plausible choices, evolve current protocols to design new
ones, and even uncover previously unknown protocols. Our experimental results
demonstrate the capability of Bedrock to uniformly evaluate BFT protocols in
new ways that were not possible before due to the diverse assumptions made by
these protocols. The results validate Bedrock's ability to analyze and derive
BFT protocols
Byzantine Fault Tolerance for Nondeterministic Applications
The growing reliance on online services accessible on the Internet demands highly reliable system that would not be interrupted when encountering faults. A number of Byzantine fault tolerance (BFT) algorithms have been developed to mask the most complicated type of faults - Byzantine faults such as software bugs,operator mistakes, and malicious attacks, which are usually the major cause of service interruptions. However, it is often difficult to apply these algorithms to practical applications because such applications often exhibit sophisticated non-deterministic behaviors that the existing BFT algorithms could not cope with. In this thesis, we propose a classification of common types of replica nondeterminism with respect to the requirement of achieving Byzantine fault tolerance, and describe the design and implementation of the core mechanisms necessary to handle such replica nondeterminism within a Byzantine fault tolerance framework. In addition, we evaluated the performance of our BFT library, referred to as ND-BFT using both a micro-benchmark application and a more realistic online porker game application. The performance results show that the replicated online poker game performs approximately 13 slower than its nonreplicated counterpart in the presence of small number of player
A Survey on Consortium Blockchain Consensus Mechanisms
Blockchain is a distributed ledger that is decentralized, immutable, and
transparent, which maintains a continuously growing list of transaction records
ordered into blocks. As the core of blockchain, the consensus algorithm is an
agreement to validate the correctness of blockchain transactions. For example,
Bitcoin is a public blockchain where each node in Bitcoin uses the Proof of
Work (PoW) algorithm to reach a consensus by competing to solve a puzzle.
Unlike a public blockchain, a consortium blockchain is an enterprise-level
blockchain that does not contend with the issues of creating a resource-saving
global consensus protocol. This paper highilights several state-of-the art
solutions in consensus algorithms for enterprise blockchain. For example, the
HyperLedger by Linux Foundation includes implementing Practical Byzantine Fault
Tolerance (PBFT) as the consensus algorithm. PBFT can tolerate a range of
malicious nodes and reach consensus with quadratic complexity. Another
consensus algorithm, HotStuff, implemented by Facebook Libra project, has
achieved linear complexity of the authenticator. This paper presents the
operational mechanisms of these and other consensus protocols, and analyzes and
compares their advantages and drawbacks.Comment: under submissio
Healing replicas in a software component replication system
Dissertação para obtenção do Grau de Mestre em
Engenharia InformáticaReplication is a key technique for improving performance, availability and faulttolerance
of systems. Replicated systems exist in different settings – from large georeplicated
cloud systems, to replicated databases running in multi-core machines. One
feature that it is often important is a mechanism to verify that replica contents continue in-sync, despite any problem that may occur – e.g. silent bugs that corrupt service state.
Traditional techniques for summarizing service state require that the internal service state is exactly the same after executing the same set of operation. However, for many applications this does not occur, especially if operations are allowed to execute in different orders or if different implementations are used in different replicas.
In this work we propose a new approach for summarizing and recovering the state of
a replicated service. Our approach is based on a novel data structure, Scalable Counting
Bloom Filter. This data structure combines the ideas in Counting Bloom Filters and Scalable Bloom Filters to create a Bloom Filter variant that allow both delete operation and the size of the structure to grow, thus adapting to size of any service state.
We propose an approach to use this data structure to summarize the state of a replicated service, while allowing concurrent operations to execute. We further propose a strategy to recover replicas in a replicated system and describe how to implement our proposed solution in two in-memory databases: H2 and HSQL. The results of evaluation show that our approach can compute the same summary when executing the same set of operation in both databases, thus allowing our solution to be used in diverse replication scenarios. Results also show that additional work on performance optimization is necessary to make our solution practical
Design, Implementation and Experiments for Moving Target Defense Framework
The traditional defensive security strategy for distributed systems employs well-established defensive techniques such as; redundancy/replications, firewalls, and encryption to prevent attackers from taking control of the system. However, given sufficient time and resources, all these methods can be defeated, especially when dealing with sophisticated attacks from advanced adversaries that leverage zero-day exploits
- …