136 research outputs found
Reconfigurable Lattice Agreement and Applications
Reconfiguration is one of the central mechanisms in distributed systems. Due to failures and connectivity disruptions, the very set of service replicas (or servers) and their roles in the computation may have to be reconfigured over time. To provide the desired level of consistency and availability to applications running on top of these servers, the clients of the service should be able to reach some form of agreement on the system configuration. We observe that this agreement is naturally captured via a lattice partial order on the system states. We propose an asynchronous implementation of reconfigurable lattice agreement that implies elegant reconfigurable versions of a large class of lattice abstract data types, such as max-registers and conflict detectors, as well as popular distributed programming abstractions, such as atomic snapshot and commit-adopt
A Comparative Gas Cost Analysis of Proxy and Diamond Patterns in EVM Blockchains for Trusted Smart Contract Engineering
Blockchain applications are witnessing rapid evolution, necessitating the
integration of upgradeable smart contracts. Software patterns have been
proposed to summarize upgradeable smart contract best practices. However,
research is missing on the comparison of these upgradeable smart contract
patterns, especially regarding gas costs related to deployment and execution.
This study aims to provide an in-depth analysis of gas costs associated with
two prevalent upgradeable smart contract patterns: the Proxy and diamond
patterns. The Proxy pattern utilizes a Proxy pointing to a logic contract,
while the diamond pattern enables a Proxy to point to multiple logic contracts.
We conduct a comparative analysis of gas costs for both patterns in contrast to
a traditional non-upgradeable smart contract. We derive from this analysis a
theoretical contribution in the form of two consolidated blockchain patterns
and a corresponding decision model. By so doing we hope to contribute to the
broader understanding of upgradeable smart contract patterns
A Mixed Integer Linear Programming formulations for optimizing timing performance during the deployment phase in real-time systems design
Following the standard development methodologies for the real-time systems, the designer has to deploy functions exchanging signals information onto an execution platform. The deployment consists of the three stages i.e. (i) the placement of functions and signals on a distributed network of nodes, (ii) the partitioning of these functions and signals in fixed-priority tasks and messages, respectively, and (iii) the tasks and messages scheduling (i.e. tasks and messages priority assignment). As the design choices at each stage highly influence the timing performance of the system, in the present report, we are interested in supporting designers in their choices during the three stages. To achieve that, we use the Mixed Integer Linear Programming (MILP) technique. Therefore, we first give a MILP formulation which deals with the three stages at the same time; it is called one-step MILP formulation. Then, we face the high complexity of the one-step MILP formulation by decomposing it into two less complex MILP formulations; we call that two-step MILP formulation. The first MILP formulation treats the placement of functions and exchanged signals to nodes and buses, respectively. The second MILP formulation determines the partitioning of functions (resp. signals) in tasks (resp. messages) and assigns priorities to each partition
Byzantine Attacks Exploiting Penalties in Ethereum PoS
In May 2023, the Ethereum blockchain experienced its first inactivity leak, a
mechanism designed to reinstate chain finalization amid persistent network
disruptions. This mechanism aims to reduce the voting power of validators who
are unreachable within the network, reallocating this power to active
validators. This paper investigates the implications of the inactivity leak on
safety within the Ethereum blockchain. Our theoretical analysis reveals
scenarios where actions by Byzantine validators expedite the finalization of
two conflicting branches, and instances where Byzantine validators reach a
voting power exceeding the critical safety threshold of one-third.
Additionally, we revisit the probabilistic bouncing attack, illustrating how
the inactivity leak can result in a probabilistic breach of safety, potentially
allowing Byzantine validators to exceed the one-third safety threshold. Our
findings uncover how penalizing inactive nodes can compromise blockchain
properties, particularly in the presence of Byzantine validators capable of
coordinating actions
Adversary-Augmented Simulation to evaluate fairness on HyperLedger Fabric
This paper presents a novel adversary model specifically tailored to
distributed systems, aiming to assess the security of blockchain networks.
Building upon concepts such as adversarial assumptions, goals, and
capabilities, our proposed adversary model classifies and constrains the use of
adversarial actions based on classical distributed system models, defined by
both failure and communication models. The objective is to study the effects of
these allowed actions on the properties of distributed protocols under various
system models. A significant aspect of our research involves integrating this
adversary model into the Multi-Agent eXperimenter (MAX) framework. This
integration enables fine-grained simulations of adversarial attacks on
blockchain networks. In this paper, we particularly study four distinct
fairness properties on Hyperledger Fabric with the Byzantine Fault Tolerant
Tendermint consensus algorithm being selected for its ordering service. We
define novel attacks that combine adversarial actions on both protocols, with
the aim of violating a specific client-fairness property. Simulations confirm
our ability to violate this property and allow us to evaluate the impact of
these attacks on several order-fairness properties that relate orders of
transaction reception and delivery.Comment: 10 pages, 8 figure
On Finality in Blockchains
This paper focuses on blockchain finality, which refers to the time when it becomes impossible to remove a block that has previously been appended to the blockchain. Blockchain finality can be deterministic or probabilistic, immediate or eventual. To favor availability against consistency in the face of partitions, most blockchains only offer probabilistic eventual finality: blocks may be revoked after being appended to the blockchain, yet with decreasing probability as they sink deeper into the chain. Other blockchains favor consistency by leveraging the immediate finality of Consensus - a block appended is never revoked - at the cost of additional synchronization.
The quest for "good" deterministic finality properties for blockchains is still in its infancy, though. Our motivation is to provide a thorough study of several possible deterministic finality properties and explore their solvability. This is achieved by introducing the notion of bounded revocation, which informally says that the number of blocks that can be revoked from the current blockchain is bounded. Based on the requirements we impose on this revocation number, we provide reductions between different forms of eventual finality, Consensus and Eventual Consensus. From these reductions, we show some related impossibility results in presence of Byzantine processes, and provide non-trivial results. In particular, we provide an algorithm that solves a weak form of eventual finality in an asynchronous system in presence of an unbounded number of Byzantine processes. We also provide an algorithm that solves eventual finality with a bounded revocation number in an eventually synchronous environment in presence of less than half of Byzantine processes. The simplicity of the arguments should better guide blockchain designs and link them to clear formal properties of finality
Accountability and Reconfiguration: Self-Healing Lattice Agreement
An accountable distributed system provides means to detect deviations of system components from their expected behavior. It is natural to complement fault detection with a reconfiguration mechanism, so that the system could heal itself, by replacing malfunctioning parts with new ones. In this paper, we describe a framework that can be used to implement a large class of accountable and reconfigurable replicated services. We build atop the fundamental lattice agreement abstraction lying at the core of storage systems and cryptocurrencies.
Our asynchronous implementation of accountable lattice agreement ensures that every violation of consistency is followed by an undeniable evidence of misbehavior of a faulty replica. The system can then be seamlessly reconfigured by evicting faulty replicas, adding new ones and merging inconsistent states. We believe that this paper opens a direction towards asynchronous "self-healing" systems that combine accountability and reconfiguration
RandSolomon: Optimally Resilient Random Number Generator with Deterministic Termination
Multi-party random number generation is a key building-block in many practical protocols. While straightforward to solve when all parties are trusted to behave correctly, the problem becomes much more difficult in the presence of faults. This paper presents RandSolomon, a partially synchronous protocol that allows a system of N processes to produce an unpredictable common random number shared by correct participants. The protocol is optimally resilient, as it allows up to f = ?(N-1)/3? of the processes to behave arbitrarily, ensures deterministic termination and, contrary to prior solutions, does not, at any point, expect faulty processes to be responsive
- …