Blunting an Adversary Against Randomized Concurrent Programs with Linearizable Implementations
Hagit Attiya, Constantin Enea, Jennifer L. Welch

TL;DR
This paper introduces a method to modify linearizable concurrent object implementations to better preserve probabilistic guarantees in randomized programs, mitigating adversarial amplification even when strong linearizability isn't achievable.
Contribution
It proposes a novel transformation technique that repeats method prefixes and randomly selects among them to approximate atomic object guarantees in linearizable implementations.
Findings
Reduces the probability of bad outcomes with more repetitions.
Applies to well-known implementations like ABD register and Afek snapshot.
Approaches the probabilistic guarantees of atomic objects.
Abstract
Atomic shared objects, whose operations take place instantaneously, are a powerful abstraction for designing complex concurrent programs. Since they are not always available, they are typically substituted with software implementations. A prominent condition relating these implementations to their atomic specifications is linearizability, which preserves safety properties of the programs using them. However linearizability does not preserve hyper-properties, which include probabilistic guarantees of randomized programs: an adversary can greatly amplify the probability of a bad outcome. This unwelcome behavior prevents modular reasoning, which is the key benefit provided by the use of linearizable object implementations. A more restrictive property, strong linearizability, does preserve hyper-properties but it is impossible to achieve in many situations. This paper suggests a novel…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed systems and fault tolerance · Logic, programming, and type systems · Formal Methods in Verification
