PRAVDA - Parametrisierte Verifikation Fehlertoleranter Verteilter Algorithmen
PRAVDA - Parametrized Verification of Fault-tolerant Distributed Algorithms
Wissenschaftsdisziplinen
Informatik (100%)
Keywords
-
Model Checking,
Fault Tolerant,
Distrubuted Algorithms,
Parametrized Model Checking,
Automated Verification,
Byzantine faults
Da unsere Gesellschaft in vielen Bereichen vom Funktionieren von Computersystemen abhängig ist, müssen wir Computersystemen auf eine Art und Weise entwickeln, die Fehler systematisch ausschließt. Wir stehen vor zwei Herausvorderungen: Erstens müssen wir Systeme so entwerfen, dass sie Fehler tolerieren die nicht unter der Kontrolle der Entwickler stehen, z.B. teilweiser Stromausfall. Zweitens müssen wir frühzeitig Fehler in der Systemimplementierung (Bugs) finden und eliminieren. Die erste Herausforderung kann mit fehlertoleranten verteilten Algorithmen, die zweite mit formaler Verifikation, z.B. durch Model Checking, angegangen werden. Traditionellerweise werden diese beiden Herangehensweisen allerdings getrennt betrachtet. Diese Projekt zielt auf deren Kombination, d.h. die formale Verifikation fehlertoleranter verteilter Algorithmen. Üblicherweise benutzt man mathematische Beweise um die Korrektheit fehlertoleranter verteilter Algorithmen zu zeigen. Da verteilte Systeme aber inherent kompliziert sind, und die Argumentationen von denen der klassischen Informatik abweichen, ist dieser Zugang fehleranfällig. Wenn wir also kein Vertrauen in die Korrektheit fehlertoleranter verteilter Algorithmen haben können, ist es fragwürdig ob diese ihr Ziel der Steigerung der Verlässlichkeit tatsächlich erreichen. Wir brauchen daher zusätzliche Mittel um das Vertrauen in die Algorithmen zu erhöhen. In diesem Projekt studieren wir dazu Model Checking, da es einen hohen Automatisierungsgrad verspricht und bereits sehr erfolgreich in der Verifikation von Hardware und Software eingesetzt wird. Speziel untersucht dieses Projekt das Problem der Parametrisierung fehlertoleranter verteilter Algorithmen. Fehlertolerante verteilte Algorithmen sind üblicherweise durch die Anzahl der Prozesse n sowie durch die angenommene Maximalzahl an Fehlern t parametrisiert. Zusätzlich gibt es Bedingungen, die die Parameter in Beziehung setzen, z.B. die Bedingung, dass eine Mehrheit der Prozesse Fehlerfrei ist, d.h. n > 2t. Daraus folgt das Verifikationsproblem das eine unendliche Familie von endlichen Systeminstanzen mit fixierten n und t verifiziert werden müssen, die n > 2t erfüllen. Ähnliche Probleme wurden unter dem Begriff parametrisiertes Model Checking untersucht. Parametrisiertes Model Checking ist für viele Systemtypen immer noch ein herausforderndes Problem, und im speziellen fehlertolerante verteilte Algorithmen weisen Charakteristiken auf die in der Literatur noch nicht untersucht wurden. Im Zuge des PRAVDA Projektes werden wir neue Methoden für parametrisiertes Model Checking entwickeln, die uns erlauben werden die Korrektheit fehlertoleranter verteilter Algorithmen automatisch zu zeigen.
Bei der Entwicklung zuverlässiger Computersysteme steht man vor zwei Herausforderungen: Einerseits muss man Protokolle entwerfen, die Teilausfälle, die außerhalb der Kontrolle der Systementwicklerinnen liegen (z. B. teilweise Stromausfälle) tolerieren können. Andererseits muss man Designfehler (Bugs) finden, um sie zu beheben. Das Erstere wird mittels Replikation und fehlertoleranter verteilter Algorithmen (FTDAs) erzielt, und letzteres durch rigorose System- und Software-Engineering-Methoden, wie Model Checking. Während in der Vergangenheit diese FTDAs nur in sicherheitskritischen Systemen Anwendung fanden, gibt es jetzt Implementierung von FTDAs für immer mehr Anwendungsbereiche. Der klassische Ansatz zur Überprüfung der Korrektheit von FTDAs sind mathematische Beweise. Das Verfassen solcher Beweise ist fehleranfällig weil die Argumentation oft von der in der Mainstream-Informatik abweicht. Infolgedessen enthalten sogar veröffentlichte verteilte Algorithmen Fehler. Es ist daher fraglich ob FTDAs, die die Zuverlässigkeit des Systems erhöhen sollen dieses Ziel tatsächlich erreichen. Daher benötigen wir zusätzliche Maßnahmen um das Vertrauen in die Korrektheit von FTDAs zu erhöhen. Das PRAVDA Projekt hat zu diesem Zweck neue automatisierte Verifikationstechniken entwickelt, z.B. neue parameterisierte Model-Checking- oder deduktive Verifikationsmethoden. Diese Methoden versprechen einen höheren Grad an Automatisierung und sind daher weniger fehleranfällig als der klassische Ansatz. Wir haben erhebliche Fortschritte auf dem Gebiet der automatischen Verifikation Verteilter Systeme erzielt. Während sich klassische automatisierte Verifikationstechniken auf Sicherheitseigenschaften ("nie passiert etwas schlechtes") konzentrieren, motivierten uns fehlertolerante verteilte Algorithmen, uns gezielt auch mit Lebendigkeitseigenschaften ("irgendwann wird etwas gutes passieren") zu befassen. Ein weiterer Schwerpunkt lag darauf, die Beziehung zwischen asynchroner Semantik (die erfasst, wie sich ein reales System verhält) und synchroner Semantik (die abstrakter ist und einfacheres Argumentieren erlaubt) zu erforschen. Die Anpassung klassischer Reduktionsmethoden an die Besonderheiten der FTDAs haben uns mehrere Durchbrüche für ihre Verifikation ermöglicht. Unabhängig vom (und außerhalb der Forschungsfragen des) PRAVDA Projektes haben Blockchainprojekte wie Tendermint oder Facebooks Libra, byzantinisch fehlertolerante verteilte Algorithmen für hunderte von beteiligten Computern implementiert. Prinzipiell stellen parametrisierte Verifikationsmethoden eine solide Grundlage dar, um die Korrekheit solcher Systeme überprüfen zu können. Angesichts der Vermögenswerte, die in solchen Blockchainsystemen verwaltet werden, findet sich die automatisierte Verifikation der Fehlertoleranz verteilter Systeme plötzlich im Mainstream der Informatik. Obwohl die Lücke zwischen der Verifikation von Protokollen und deren Implementierungen immer noch beträchtlich is (und mehr Forschung auf diesem Gebiet verlangt) bildet die Forschung von PRAVDA eine solide Grundlage dafür.
- Technische Universität Wien - 100%
- Bernadette Charron-Bost, Ecole Normale Superieure Paris - Frankreich
- Stephan Merz, INRIA Nancy - Frankreich
Research Output
- 365 Zitationen
- 18 Publikationen
- 3 Software
-
2021
Titel Verifying safety of synchronous fault-tolerant algorithms by bounded model checking DOI 10.1007/s10009-021-00637-9 Typ Journal Article Autor Stoilkovska I Journal International Journal on Software Tools for Technology Transfer Seiten 33-48 -
2018
Titel ByMC: Byzantine Model Checker DOI 10.1007/978-3-030-03424-5_22 Typ Book Chapter Autor Konnov I Verlag Springer Nature Seiten 327-342 -
2017
Titel On the completeness of bounded model checking for threshold-based distributed algorithms: Reachability DOI 10.1016/j.ic.2016.03.006 Typ Journal Article Autor Konnov I Journal Information and Computation Seiten 95-109 Link Publikation -
2019
Titel Verification of Randomized Consensus Algorithms Under Round-Rigid Adversaries DOI 10.4230/lipics.concur.2019.33 Typ Conference Proceeding Abstract Autor Bertrand N Konferenz LIPIcs, Volume 140, CONCUR 2019 Seiten 33:1 - 33:15 Link Publikation -
2019
Titel Communication-Closed Asynchronous Protocols DOI 10.1007/978-3-030-25543-5_20 Typ Book Chapter Autor Damian A Verlag Springer Nature Seiten 344-363 -
2019
Titel TLA+ model checking made symbolic DOI 10.1145/3360549 Typ Journal Article Autor Konnov I Journal Proceedings of the ACM on Programming Languages Seiten 1-30 Link Publikation -
2018
Titel Synthesis of Distributed Algorithms with Parameterized Threshold Guards DOI 10.4230/lipics.opodis.2017.32 Typ Conference Proceeding Abstract Autor Konnov I Konferenz LIPIcs, Volume 95, OPODIS 2017 Seiten 32:1 - 32:20 Link Publikation -
2018
Titel Reachability in Parameterized Systems: All Flavors of Threshold Automata DOI 10.4230/lipics.concur.2018.19 Typ Conference Proceeding Abstract Autor Konnov I Konferenz LIPIcs, Volume 118, CONCUR 2018 Seiten 19:1 - 19:17 Link Publikation -
2016
Titel What You Always Wanted to Know About Model Checking of Fault-Tolerant Distributed Algorithms DOI 10.1007/978-3-319-41579-6_2 Typ Book Chapter Autor Konnov I Verlag Springer Nature Seiten 6-21 -
2016
Titel Decidability in Parameterized Verification DOI 10.1145/2951860.2951873 Typ Journal Article Autor Bloem R Journal ACM SIGACT News Seiten 53-64 Link Publikation -
2015
Titel SMT and POR Beat Counter Abstraction: Parameterized Model Checking of Threshold-Based Distributed Algorithms DOI 10.1007/978-3-319-21690-4_6 Typ Book Chapter Autor Konnov I Verlag Springer Nature Seiten 85-102 -
2017
Titel A short counterexample property for safety and liveness verification of fault-tolerant distributed algorithms DOI 10.1145/3009837.3009860 Typ Conference Proceeding Abstract Autor Konnov I Seiten 719-734 Link Publikation -
2015
Titel Decidability of Parameterized Verification DOI 10.2200/s00658ed1v01y201508dct013 Typ Journal Article Autor Bloem R Journal Synthesis Lectures on Distributed Computing Theory Seiten 1-170 Link Publikation -
2017
Titel A short counterexample property for safety and liveness verification of fault-tolerant distributed algorithms DOI 10.1145/3093333.3009860 Typ Journal Article Autor Konnov I Journal ACM SIGPLAN Notices Seiten 719-734 Link Publikation -
2017
Titel Parameterized Model Checking of Synchronous Distributed Algorithms by Abstraction DOI 10.1007/978-3-319-73721-8_1 Typ Book Chapter Autor Aminof B Verlag Springer Nature Seiten 1-24 -
2017
Titel Para2: parameterized path reduction, acceleration, and SMT for reachability in threshold-guarded distributed algorithms DOI 10.1007/s10703-017-0297-4 Typ Journal Article Autor Konnov I Journal Formal Methods in System Design Seiten 270-307 Link Publikation -
2017
Titel Accuracy of Message Counting Abstraction in Fault-Tolerant Distributed Algorithms DOI 10.1007/978-3-319-52234-0_19 Typ Book Chapter Autor Konnov I Verlag Springer Nature Seiten 347-366 -
2019
Titel Verifying Safety of Synchronous Fault-Tolerant Algorithms by Bounded Model Checking DOI 10.1007/978-3-030-17465-1_20 Typ Book Chapter Autor Stoilkovska I Verlag Springer Nature Seiten 357-374
-
2019
Link
Titel Artifact and instructions to generate experimental results for TACAS 2019 paper: Verifying Safety of Synchronous Fault-Tolerant Algorithms by Bounded Model Checking DOI 10.6084/m9.figshare.7824929 Link Link -
2019
Link
Titel Artifact and instructions to generate experimental results for TACAS 2019 paper: Verifying Safety of Synchronous Fault-Tolerant Algorithms by Bounded Model Checking DOI 10.6084/m9.figshare.7824929.v1 Link Link -
2017
Link
Titel ByMC: Byzantine Model Checker Link Link