Shipwright: Proving liveness of distributed systems with Byzantine participants

Fuente: arXiv
Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Leung, Derek, Zeldovich, Nickolai, Kaashoek, Frans
Format: Preprint
Veröffentlicht: 2025
Schlagworte:
Online-Zugang:
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
_version_ 1866915398170968064
author Leung, Derek
Zeldovich, Nickolai
Kaashoek, Frans
author_facet Leung, Derek
Zeldovich, Nickolai
Kaashoek, Frans
contents Ensuring liveness in a decentralized system, such as PBFT, is critical, because there may not be any single administrator that can restart the system if it encounters a liveness bug. At the same time, liveness is challenging to achieve because any single participant could be malicious, and yet the overall system must make forward progress. While verification is a promising approach for ensuring the absence of bugs, no prior work has been able to verify liveness for an executable implementation of PBFT. Shipwright is a verification framework for proving correctness and liveness of distributed systems where some participants might be malicious. Shipwright introduces three techniques that enable formal reasoning about decentralized settings with malicious participants, allow developers to decompose their system and proof in a modular fashion into sub-protocols and sub-proofs, and support sound reasoning about cryptographic signatures that may be embedded in messages. We used Shipwright to implement and verify an initial prototype of agreement on a single log entry in PBFT (with a few limitations) and translate it to an executable implementation in Go. We experimentally demonstrate its operation and liveness both in the common case and in several failure scenarios.
format Preprint
id arxiv_https___arxiv_org_abs_2507_14080
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle Shipwright: Proving liveness of distributed systems with Byzantine participants
Leung, Derek
Zeldovich, Nickolai
Kaashoek, Frans
Distributed, Parallel, and Cluster Computing
D.2.4; C.2.4
Ensuring liveness in a decentralized system, such as PBFT, is critical, because there may not be any single administrator that can restart the system if it encounters a liveness bug. At the same time, liveness is challenging to achieve because any single participant could be malicious, and yet the overall system must make forward progress. While verification is a promising approach for ensuring the absence of bugs, no prior work has been able to verify liveness for an executable implementation of PBFT. Shipwright is a verification framework for proving correctness and liveness of distributed systems where some participants might be malicious. Shipwright introduces three techniques that enable formal reasoning about decentralized settings with malicious participants, allow developers to decompose their system and proof in a modular fashion into sub-protocols and sub-proofs, and support sound reasoning about cryptographic signatures that may be embedded in messages. We used Shipwright to implement and verify an initial prototype of agreement on a single log entry in PBFT (with a few limitations) and translate it to an executable implementation in Go. We experimentally demonstrate its operation and liveness both in the common case and in several failure scenarios.
title Shipwright: Proving liveness of distributed systems with Byzantine participants
topic Distributed, Parallel, and Cluster Computing
D.2.4; C.2.4
url https://arxiv.org/abs/2507.14080