We propose TRAC, a tool for the specification and verification of coordinated multiparty distributed systems. Relying on finite-state machines (FSMs) where transition labels look like Hoare triples, \thetool can specify the coordination of the participants of a distributed protocol for instance an execution model akin blockchain smart contracts (SCs). In fact, the transitions of our FSMs yield guards, and assignments over data variables, and with participants binders. The latter allow us to model scenarios with an unbounded number of participants which can vary at run-time. We introduce a notion of well-formedness to rule out meaningless or problematic specifications. This notion is verified with TRAC and demonstrated on several case studies borrowed from the smart contracts domain. Then, we evaluate the performance of TRAC using a set of randomised examples, studying the correlations between the features supported and the time taken to decide well-formedness.
翻译:我们提出TRAC,一种用于规范与验证协调式多方分布式系统的工具。该工具基于有限状态机(FSM),其转移标签采用类似Hoare三元组的形式,可规范分布式协议参与者的协调行为——例如类似区块链智能合约的执行模型。具体而言,FSM的转移生成守卫条件、数据变量赋值以及参与者绑定器,后者允许对运行时数量可变的无限参与者场景进行建模。我们引入良构性概念以排除无意义或有问题的规范,该概念通过TRAC验证,并在多个源自智能合约领域的案例研究中得到证明。最后,我们使用随机样本集评估TRAC的性能,研究所支持特性与良构性判定耗时之间的关联。