一句话:提出 LVR,首个可大部分自动验证分布式协议活性性质的框架,将活性归约为秩函数与无死锁的安全性验证。
分布式协议常以安全性和活性性质刻画。安全性性质的自动验证近年进展显著,但活性验证仍是难题。本文提出 LVR,首个可大部分自动验证分布式协议活性性质的框架。核心洞见是借助秩函数将多数活性性质归约为一组安全性性质。作者证明,只需验证秩函数在任意状态迁移下严格递减且非负,并且协议无死锁,即可推出活性。LVR 构造协议整数变量的参数化秩函数,静态分析变量上下界及迁移中的变化量,再交给 SMT 求解器确定系数;随后用现成验证工具寻找归纳不变式,验证秩函数安全条件与无死锁性。实验表明,LVR 能在有限用户引导下大部分自动验证多种分布式协议(含多个 Paxos 版本)的活性性质。
Distributed protocols have long been formulated in terms of their safety and liveness properties. Much recent work has focused on automatically verifying the safety properties of distributed protocols, but doing so for liveness properties has remained a challenging, unsolved problem. We present LVR, the first framework that can mostly automatically verify liveness properties for distributed protocols. Our key insight is that most liveness properties for distributed protocols can be reduced to a set of safety properties with the help of ranking functions. Such ranking functions for practical distributed protocols have certain properties that make them straightforward to synthesize, contrary to conventional wisdom. We prove that verifying a liveness property can then be reduced to a simpler problem of verifying a set of safety properties, namely that the ranking function is strictly decreasing and nonnegative for any protocol state transition, and there is no deadlock. LVR automatically synthesizes ranking functions by formulating a parameterized function of integer protocol variables, statically analyzing the lower and upper bounds of the variables as well as how much they can change on each state transition, then feeding the constraints to an SMT solver to determine the coefficients of the ranking function. It then uses an off-the-shelf verification tool to find inductive invariants to verify safety properties for both ranking functions and deadlock freedom. We show that LVR can mostly automatically verify the liveness properties of several distributed protocols, including various versions of Paxos, with limited user guidance.
@article{paperbot2637,
title = {Mostly Automated Verification of Liveness Properties for Distributed Protocols with Ranking Functions},
author = {Jianan Yao and Runzhou Tao and Ronghui Gu and Jason Nieh},
journal = {Proceedings of the ACM on Programming Languages},
volume = {8},
number = {POPL},
year = {2024},
doi = {10.1145/3632877}
}