Distributed protocols are generally parametric and can be executed on a system with any number of nodes, and hence proving their correctness becomes an infinite state verification problem. The most popular approach for verifying distributed protocols is to find an inductive invariant which is strong enough to prove the required safety property. However, finding inductive invariants is known to be notoriously hard, and is especially harder in the context of distributed protocols which are quite complex due to their asynchronous nature. In this work, we investigate an orthogonal cut-off based approach to verifying distributed protocols which sidesteps the problem of finding an inductive invariant, and instead reduces checking correctness to a finite state verification problem. The main idea is to find a finite, fixed protocol instance called the cutoff instance, such that if the cutoff instance is safe, then any protocol instance would also be safe. Previous cutoff based approaches have only been applied to a restricted class of protocols and specifications. We formalize the cutoff approach in the context of a general protocol modeling language (RML), and identify sufficient conditions which can be efficiently encoded in SMT to check whether a given protocol instance is a cutoff instance. Further, we propose a simple static analysis-based algorithm to automatically synthesize a cut-off instance. We have applied our approach successfully on a number of complex distributed protocols, providing the first known cut-off results for many of them.
翻译:一般而言,分布式协议是偏差的,可以在一个有多个节点的系统中执行,从而证明其正确性成为无限的国家核查问题。核查分布式协议的最流行方法是找到一种适中且足以证明所需安全财产的诱导性变异性,然而,发现诱导变异性协议已知是臭名昭著的硬性,在分布式协议中尤其困难,因为协议性质不连贯,以往的切换方法只适用于限制性的协议和规格。在这项工作中,我们调查一种基于正统的切换方法,以核查分布式协议,从而避免找到一种不易受约束的变异性,而减少对限定性国家核查问题的检查。主要的想法是找到一种被称为断切的限定性固定协议实例,这样,如果切换性协议是安全的,那么任何协议实例也会更加安全。先前的切换方法只适用于限制性的协议类别和规格。我们在一般协议模式语言(RML)中正式确定基于断切方法,并找出能够有效地将正确性检查到限定性国家核查问题的问题的问题的问题的正确性。主要想法是找到一个限定性的固定式协议的固定式协议实例,我们是否自动地检查某项协议的加密协议的解算结果。