140 research outputs found
Verification of GossipSub in ACL2s
GossipSub is a popular new peer-to-peer network protocol designed to
disseminate messages quickly and efficiently by allowing peers to forward the
full content of messages only to a dynamically selected subset of their
neighboring peers (mesh neighbors) while gossiping about messages they have
seen with the rest. Peers decide which of their neighbors to graft or prune
from their mesh locally and periodically using a score for each neighbor.
Scores are calculated using a score function that depends on mesh-specific
parameters, weights and counters relating to a peer's performance in the
network. Since a GossipSub network's performance ultimately depends on the
performance of its peers, an important question arises: Is the score
calculation mechanism effective in weeding out non-performing or even
intentionally misbehaving peers from meshes? We answered this question in the
negative in our companion paper by reasoning about GossipSub using our formal,
official and executable ACL2s model. Based on our findings, we synthesized and
simulated attacks against GossipSub which were confirmed by the developers of
GossipSub, FileCoin, and Eth2.0, and publicly disclosed in MITRE
CVE-2022-47547. In this paper, we present a detailed description of our model.
We discuss design decisions, security properties of GossipSub, reasoning about
the security properties in context of our model, attack generation and lessons
we learnt when writing it.Comment: In Proceedings ACL2-2023, arXiv:2311.0837
Formal Model-Driven Analysis of Resilience of GossipSub to Attacks from Misbehaving Peers
GossipSub is a new peer-to-peer communication protocol designed to counter
attacks from misbehaving peers by carefully controlling what information is
disseminated and to whom, via a score function computed by each peer that
captures positive and negative behaviors of its neighbors. The score function
depends on several parameters (weights, caps, thresholds, etc.) that can be
configured by applications using GossipSub. The specification for GossipSub is
written in English and its resilience to attacks from misbehaving peers is
supported empirically by emulation testing using an implementation in Golang.
In this work we take a foundational approach to understanding the resilience
of GossipSub to attacks from misbehaving peers. We build the first formal model
of GossipSub, using the ACL2s theorem prover. Our model is officially endorsed
by GossipSub developers. It can simulate GossipSub networks of arbitrary size
and topology, with arbitrarily configured peers, and can be used to prove and
disprove theorems about the protocol. We formalize fundamental security
properties stating that the score function is fair, penalizes bad behavior and
rewards good behavior. We prove that the score function is always fair, but can
be configured in ways that either penalize good behavior or ignore bad
behavior. Using our model, we run GossipSub with the specific configurations
for two popular real-world applications: the FileCoin and Eth2.0 blockchains.
We show that all properties hold for FileCoin. However, given any Eth2.0
network (of any topology and size) with any number of potentially misbehaving
peers, we can synthesize attacks where these peers are able to continuously
misbehave by never forwarding topic messages, while maintaining positive scores
so that they are never pruned from the network by GossipSub.Comment: In revie
- …