Parameterized Model Checking of Fault-tolerant Distributed - - PowerPoint PPT Presentation

parameterized model checking of fault tolerant
SMART_READER_LITE
LIVE PREVIEW

Parameterized Model Checking of Fault-tolerant Distributed - - PowerPoint PPT Presentation

Parameterized Model Checking of Fault-tolerant Distributed Algorithms by Abstraction Annu John Igor Konnov Ulrich Schmid Helmut Veith Josef Widder FMCAD13 Portland, OR, USA, Oct 20-23, 2013 Igor Konnov (www.forsyte.at) Parameterized


slide-1
SLIDE 1

Parameterized Model Checking of Fault-tolerant Distributed Algorithms by Abstraction

Annu John Igor Konnov Ulrich Schmid Helmut Veith Josef Widder

FMCAD’13 Portland, OR, USA, Oct 20-23, 2013

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 1 / 30

slide-2
SLIDE 2

Why fault-tolerant (FT) distributed algorithms

faults not in the control of system designer bit-flips in memory power outage disconnection from the network intruders take control over some computers

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 2 / 30

slide-3
SLIDE 3

Why fault-tolerant (FT) distributed algorithms

faults not in the control of system designer bit-flips in memory power outage disconnection from the network intruders take control over some computers distributed algorithms intended to make systems more reliable even in the presence of faults replicate processes exchange messages do coordinated computation goal: keep replicated processes in “good state”

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 2 / 30

slide-4
SLIDE 4

Fault-tolerant distributed algorithms

n

n processes communicate by messages

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 3 / 30

slide-5
SLIDE 5

Fault-tolerant distributed algorithms

n ? ? ? t

n processes communicate by messages all processes know that at most t of them might be faulty

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 3 / 30

slide-6
SLIDE 6

Fault-tolerant distributed algorithms

n ? ? ? t f

n processes communicate by messages all processes know that at most t of them might be faulty f are actually faulty resilience conditions, e.g., n > 3t ∧ t ≥ f ≥ 0 no masquerading: the processes know the origin of incoming messages

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 3 / 30

slide-7
SLIDE 7

Fault models from benign to Byzantine

clean crashes:

faulty processes prematurely halt after/before “send to all”

crash faults:

faulty processes prematurely halt (also) in the middle of “send to all”

  • mission faults:

faulty processes follow the algorithm, but some messages sent by them might be lost

symmetric faults:

faulty processes send arbitrarily to all or nobody

Byzantine faults:

faulty processes can do anything

hybrid models:

combinations of the above

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 4 / 30

slide-8
SLIDE 8

Automated Verification?

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 5 / 30

slide-9
SLIDE 9

Fault-tolerant DAs: Model Checking Challenges

unbounded data types

counting how many messages have been received

parameterization in multiple parameters

among n processes f ≤ t are faulty with n > 3t

contrast to concurrent programs

fault tolerance against adverse environments

degrees of concurrency

many degrees of partial synchrony

continuous time

fault-tolerant clock synchronization

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 6 / 30

slide-10
SLIDE 10

Importance of liveness in distributed algorithms

Interplay of safety and liveness is a central challenge in DAs interplay of safety and liveness is non-trivial asynchrony and faults lead to impossibility results

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 7 / 30

slide-11
SLIDE 11

Importance of liveness in distributed algorithms

Interplay of safety and liveness is a central challenge in DAs interplay of safety and liveness is non-trivial asynchrony and faults lead to impossibility results Rich literature to verify safety (e.g. in concurrent systems) Distributed algorithms perspective: “doing nothing is always safe” “tools verify algorithms that actually might do nothing”

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 7 / 30

slide-12
SLIDE 12

Model checking problem for fault-tolerant DA algorithms

Parameterized model checking problem: given a distributed algorithm and spec. ϕ show for all n, t, and f satisfying n > 3t ∧ t ≥ f ≥ 0 M(n, t, f ) | = ϕ every M(n, t, f ) is a system of n − f correct processes

n ? ? ? t n ? ? ? t f

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 8 / 30

slide-13
SLIDE 13

Model checking problem for fault-tolerant DA algorithms

Parameterized model checking problem: given a distributed algorithm and spec. ϕ show for all n, t, and f satisfying resilience condition M(n, t, f ) | = ϕ every M(n, t, f ) is a system of N(n, f ) correct processes

n ? ? ? t n ? ? ? t f

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 8 / 30

slide-14
SLIDE 14

Properties in Linear Temporal Logic

Unforgeability (U). If vi = 0 for all correct processes i, then for all correct processes j, acceptj remains 0 forever.

G n−f

  • i=1

vi = 0

  • → G

n−f

  • j=1

acceptj = 0

  • Completeness (C). If vi = 1 for all correct processes i, then there is a correct

process j that eventually sets acceptj to 1. G n−f

  • i=1

vi = 1

  • → F

n−f

  • j=1

acceptj = 1

  • Relay (R). If a correct process i sets accepti to 1, then eventually all correct

processes j set acceptj to 1. G n−f

  • i=1

accepti = 1

  • → F

n−f

  • j=1

acceptj = 1

  • Igor Konnov (www.forsyte.at)

Parameterized Model Checking of FTDAs... FMCAD’13 9 / 30

slide-15
SLIDE 15

Properties in Linear Temporal Logic

Unforgeability (U). If vi = 0 for all correct processes i, then for all correct processes j, acceptj remains 0 forever.

G n−f

  • i=1

vi = 0

  • → G

n−f

  • j=1

acceptj = 0

  • Safety

Completeness (C). If vi = 1 for all correct processes i, then there is a correct process j that eventually sets acceptj to 1. G n−f

  • i=1

vi = 1

  • → F

n−f

  • j=1

acceptj = 1

  • Liveness

Relay (R). If a correct process i sets accepti to 1, then eventually all correct processes j set acceptj to 1. G n−f

  • i=1

accepti = 1

  • → F

n−f

  • j=1

acceptj = 1

  • Liveness

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 9 / 30

slide-16
SLIDE 16

Threshold-guarded fault-tolerant distributed algorithms

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 10 / 30

slide-17
SLIDE 17

Threshold-guarded FTDAs

Fault-free construct: quantified guards (t=f=0) Existential Guard if received m from some process then ... Universal Guard if received m from all processes then ... These guards allow one to treat the processes in a parameterized way

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 11 / 30

slide-18
SLIDE 18

Threshold-guarded FTDAs

Fault-free construct: quantified guards (t=f=0) Existential Guard if received m from some process then ... Universal Guard if received m from all processes then ... These guards allow one to treat the processes in a parameterized way what if faults might occur?

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 11 / 30

slide-19
SLIDE 19

Threshold-guarded FTDAs

Fault-free construct: quantified guards (t=f=0) Existential Guard if received m from some process then ... Universal Guard if received m from all processes then ... These guards allow one to treat the processes in a parameterized way what if faults might occur? Fault-Tolerant Algorithms: n processes, at most t are Byzantine Threshold Guard if received m from n − t processes then ... (the processes cannot refer to f!)

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 11 / 30

slide-20
SLIDE 20

Counting argument in threshold-guarded algorithms

n t f

if received m from t + 1 processes then ...

t + 1

Correct processes count distinct incoming messages

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 12 / 30

slide-21
SLIDE 21

Counting argument in threshold-guarded algorithms

n t f

if received m from t + 1 processes then ...

t + 1

Correct processes count distinct incoming messages

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 12 / 30

slide-22
SLIDE 22

Counting argument in threshold-guarded algorithms

n t f

if received m from t + 1 processes then ...

t + 1

at least one non-faulty sent the message

Correct processes count distinct incoming messages

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 12 / 30

slide-23
SLIDE 23
  • ur abstraction

at a glance

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 13 / 30

slide-24
SLIDE 24

Data + counter abstraction over parametric intervals

n = 6, t = 1, f = 1 t + 1 = 2, n − t = 5

  • nr. processes (counters)

received received

sent accepted

  • 1
  • 1
  • 2
  • 2
  • 3
  • 3
  • 4
  • 4
  • 5
  • 5
  • 6
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 3 processes at (sent, received=3)

1 process at (accepted, received=5)

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 14 / 30

slide-25
SLIDE 25

Data + counter abstraction over parametric intervals

n = 6, t = 1, f = 1 t + 1 = 2, n − t = 5

  • nr. processes (counters)

received received

sent accepted

  • 1
  • 1
  • 2
  • 2
  • 3
  • 3
  • 4
  • 4
  • 5
  • 5
  • 6
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • Igor Konnov (www.forsyte.at)

Parameterized Model Checking of FTDAs... FMCAD’13 14 / 30

slide-26
SLIDE 26

Data + counter abstraction over parametric intervals

n = 6, t = 1, f = 1 t + 1 = 2, n − t = 5

  • nr. processes (counters)

received received

sent accepted

  • 1
  • 1
  • 2
  • 2
  • 3
  • 3
  • 4
  • 4
  • 5
  • 5
  • 6
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • Igor Konnov (www.forsyte.at)

Parameterized Model Checking of FTDAs... FMCAD’13 14 / 30

slide-27
SLIDE 27

Data + counter abstraction over parametric intervals

✘✘✘✘✘ ✘ ❳❳❳❳❳ ❳

n = 6, ✘✘✘✘✘

✘ ❳❳❳❳❳ ❳

t = 1, ✘✘✘✘✘

✘ ❳❳❳❳❳ ❳

f = 1 n > 3 · t ∧ t ≥ f Parametricintervals: I0 = [0, 1) I1 = [1, t + 1) It+1 = [t + 1, n − t) In−t = [n − t, ∞)

  • nr. processes (counters)

received received

sent accepted

  • I0

I1 It+1 In−t

  • I0

I1 It+1 In−t

  • I0

I1 It+1 In−t

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 14 / 30

slide-28
SLIDE 28

Data + counter abstraction over parametric intervals

n > 3 · t ∧ t ≥ f Parametricintervals: I0 = [0, 1) I1 = [1, t + 1) It+1 = [t + 1, n − t) In−t = [n − t, ∞)

  • nr. processes (counters)

received received

sent accepted

  • I0

I1 It+1 In−t

  • I0

I1 It+1 In−t

  • I0

I1 It+1 In−t all correct processes accepted?

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 14 / 30

slide-29
SLIDE 29

Related work: (0, 1, ∞)-counter abstraction

Pnueli, Xu, and Zuck (2001) introduced (0, 1, ∞)-counter abstraction: finitely many local states, e.g., {N, T, C}. abstract the number of processes in every state, e.g., K : C → 0, T → 1, N → “many”. perfectly reflects mutual exclusion properties e.g., G (K(C) = 0 ∨ K(C) = 1).

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 15 / 30

slide-30
SLIDE 30

Related work: (0, 1, ∞)-counter abstraction

Pnueli, Xu, and Zuck (2001) introduced (0, 1, ∞)-counter abstraction: finitely many local states, e.g., {N, T, C}. abstract the number of processes in every state, e.g., K : C → 0, T → 1, N → “many”. perfectly reflects mutual exclusion properties e.g., G (K(C) = 0 ∨ K(C) = 1).

Our parametric data + counter abstraction:

unboundendly many local states (nr. of received messages) finer counting of processes: t + 1 processes in a specific state can force global progress, while t processes cannot mapping t, t + 1, and n − t to “many” is too coarse.

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 15 / 30

slide-31
SLIDE 31

Technical details

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 16 / 30

slide-32
SLIDE 32

Technical challenges

How to do data abstraction? How to do counter abstraction? How to refine spurious counter-examples introduced by the abstraction?

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 17 / 30

slide-33
SLIDE 33

Abstract operations

Concrete: Abstract: 1 t + 1 n − t above · · · I0 I1 It+1 In−t

Concrete t + 1 ≤ x

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 18 / 30

slide-34
SLIDE 34

Abstract operations

Concrete: Abstract: 1 t + 1 n − t above · · · I0 I1 It+1 In−t

Concrete t + 1 ≤ x is abstracted as x = It+1 ∨ x = In−t.

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 18 / 30

slide-35
SLIDE 35

Abstract operations

Concrete: Abstract: 1 t + 1 n − t above · · · I0 I1 It+1 In−t

Concrete t + 1 ≤ x is abstracted as x = It+1 ∨ x = In−t. Concrete x′ = x + 1,

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 18 / 30

slide-36
SLIDE 36

Abstract operations

Concrete: Abstract: 1 t + 1 n − t above · · · I0 I1 I0 I1 It+1 In−t

Concrete t + 1 ≤ x is abstracted as x = It+1 ∨ x = In−t. Concrete x′ = x + 1, is abstracted as: x = I0 ∧ x′ = I1 . . .

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 18 / 30

slide-37
SLIDE 37

Abstract operations

Concrete: Abstract: 1 t + 1 n − t above · · · I0 I1 I0 I1 It+1 In−t

Concrete t + 1 ≤ x is abstracted as x = It+1 ∨ x = In−t. Concrete x′ = x + 1, is abstracted as: x = I0 ∧ x′ = I1 ∨x = I1 ∧ (x′ = I1 ∨ x′ = It+1) . . .

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 18 / 30

slide-38
SLIDE 38

Abstract operations

Concrete: Abstract: 1 t + 1 n − t above · · · I0 I1 I0 I1 It+1 In−t

Concrete t + 1 ≤ x is abstracted as x = It+1 ∨ x = In−t. Concrete x′ = x + 1, is abstracted as: x = I0 ∧ x′ = I1 ∨x = I1 ∧ (x′ = I1 ∨ x′ = It+1) ∨x = It+1 ∧ (x′ = It+1 ∨ x′ = In−t) . . .

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 18 / 30

slide-39
SLIDE 39

Abstract operations

Concrete: Abstract: 1 t + 1 n − t above · · · I0 I1 I0 I1 It+1 In−t

Concrete t + 1 ≤ x is abstracted as x = It+1 ∨ x = In−t. Concrete x′ = x + 1, is abstracted as: x = I0 ∧ x′ = I1 ∨x = I1 ∧ (x′ = I1 ∨ x′ = It+1) ∨x = It+1 ∧ (x′ = It+1 ∨ x′ = In−t) ∨x = In−t ∧ x′ = In−t

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 18 / 30

slide-40
SLIDE 40

Parametric abst. refinement — uniformly spurious paths

Classical CEGAR:

Concrete Abstract

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 19 / 30

slide-41
SLIDE 41

Parametric abst. refinement — uniformly spurious paths

Classical CEGAR:

Concrete Abstract

Our case:

Concrete n2, t2, f2 Concrete n1, t1, f1 Abstract

· · · · · ·

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 19 / 30

slide-42
SLIDE 42

the implementation

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 20 / 30

slide-43
SLIDE 43

Tool Chain: ByMC

Parametric Promela code static analysis + Yices Parametric Interval Domain D Parametric data abstraction with Yices Parametric Promela code Parametric counter ab- straction with Yices normal Promela code Spin property holds counterexample

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 21 / 30

slide-44
SLIDE 44

Tool Chain: ByMC

Parametric Promela code static analysis + Yices Parametric Interval Domain D Parametric data abstraction with Yices Parametric Promela code Parametric counter ab- straction with Yices normal Promela code Spin property holds counterexample Refine Concrete counter representation (VASS) SMT formula Yices counterexample feasible unsat sat

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 21 / 30

slide-45
SLIDE 45

Tool Chain: ByMC

Parametric Promela code static analysis + Yices Parametric Interval Domain D Parametric data abstraction with Yices Parametric Promela code Parametric counter ab- straction with Yices normal Promela code Spin property holds counterexample Refine Concrete counter representation (VASS) SMT formula Yices counterexample feasible

invariant candidates (by the user)

unsat sat

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 21 / 30

slide-46
SLIDE 46

Concrete vs. parameterized (Byzantine case)

Time to check relay (sec, logscale) Memory to check relay (MB, logscale)

Parameterized model checking performs well (the red line). Experiments for fixed parameters quickly degrade (n = 9 runs out of memory). We found counter-examples for the cases n = 3t and f > t, where the resilience condition is violated.

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 22 / 30

slide-47
SLIDE 47

Experimental results at a glance

Algorithm Fault Resilience Property Valid? #Refinements Time

ST87 Byz n > 3t U ✓ 4 sec. ST87 Byz n > 3t C ✓ 10 32 sec. ST87 Byz n > 3t R ✓ 10 24 sec. ST87 Symm n > 2t U ✓ 1 sec. ST87 Symm n > 2t C ✓ 2 3 sec. ST87 Symm n > 2t R ✓ 12 16 sec. ST87 Omit n > 2t U ✓ 1 sec. ST87 Omit n > 2t C ✓ 5 6 sec. ST87 Omit n > 2t R ✓ 5 10 sec. ST87 Clean n > t U ✓ 2 sec. ST87 Clean n > t C ✓ 4 8 sec. ST87 Clean n > t R ✓ 13 31 sec. CT96 Clean n > t U ✓ 1 sec. CT96 Clean n > t A ✓ 1 sec. CT96 Clean n > t R ✓ 1 sec. CT96 Clean n > t C ✗ 1 sec.

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 23 / 30

slide-48
SLIDE 48

When resilience condition is wrong...

Algorithm Fault Resilience Property Valid? #Refinements Time

ST87 Byz n > 3t ∧ f ≤ t+1 U ✗ 9 56 sec. ST87 Byz n > 3t ∧ f ≤ t+1 C ✗ 11 52 sec. ST87 Byz n > 3t ∧ f ≤ t+1 R ✗ 10 17 sec. ST87 Byz n ≥ 3t ∧ f ≤ t U ✓ 5 sec. ST87 Byz n ≥ 3t ∧ f ≤ t C ✓ 9 32 sec. ST87 Byz n ≥ 3t ∧ f ≤ t R ✗ 30 78 sec. ST87 Symm n > 2t ∧ f ≤ t+1 U ✗ 2 sec. ST87 Symm n > 2t ∧ f ≤ t+1 C ✗ 2 4 sec. ST87 Symm n > 2t ∧ f ≤ t+1 R ✓ 8 12 sec. ST87 Omit n > 2t ∧ f ≤ t U ✓ 1 sec. ST87 Omit n > 2t ∧ f ≤ t C ✗ 2 sec. ST87 Omit n > 2t ∧ f ≤ t R ✗ 2 sec.

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 24 / 30

slide-49
SLIDE 49

Experimental setup

The tool (source code in OCaml), the code of the distributed algorithms in Parametric Promela, and a virtual machine with full setup are available at: http://forsyte.at/software/bymc

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 25 / 30

slide-50
SLIDE 50

Summary of results

Abstraction tailored for distributed algorithms

threshold-based fault-tolerant allows to express different fault assumptions

Verification of threshold-based fault-tolerant algorithms

with threshold guards that are widely used Byzantine faults (and other) for all system sizes

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 26 / 30

slide-51
SLIDE 51

Summary of results

Abstraction tailored for distributed algorithms

threshold-based fault-tolerant allows to express different fault assumptions

Verification of threshold-based fault-tolerant algorithms

with threshold guards that are widely used Byzantine faults (and other) for all system sizes

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 26 / 30

slide-52
SLIDE 52

Related work: non-parameterized

Model checking of the small size instances: clock synchronization

[Steiner, Rushby, Sorea, Pfeifer 2004]

consensus

[Tsuchiya, Schiper 2011]

asynchronous agreement, folklore broadcast, condition-based consensus

[John, Konnov, Schmid, Veith, Widder 2013]

and more...

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 27 / 30

slide-53
SLIDE 53

Related work: parameterized case

Regular model checking of fault-tolerant distributed protocols:

[Fisman, Kupferman, Lustig 2008]

“First-shot” theoretical framework. No guards like x ≥ t + 1, only x ≥ 1. No implementation. Manual analysis applied to folklore broadcast (crash faults).

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 28 / 30

slide-54
SLIDE 54

Related work: parameterized case

Regular model checking of fault-tolerant distributed protocols:

[Fisman, Kupferman, Lustig 2008]

“First-shot” theoretical framework. No guards like x ≥ t + 1, only x ≥ 1. No implementation. Manual analysis applied to folklore broadcast (crash faults). Backward reachability using SMT with arrays:

[Alberti, Ghilardi, Pagani, Ranise, Rossi 2010-2012]

Implementation. Experiments on Chandra-Toueg 1990. No resilience conditions like n > 3t. Safety only.

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 28 / 30

slide-55
SLIDE 55

Our current work

Discrete synchronous Discrete partially synchronous Discrete asynchronous Continuous synchronous Continuous partially synchronous One instance/ finite payload Many inst./ finite payload Many inst./ unbounded payload Messages with reals

core of {ST87, BT87, CT96}, MA06 (common), MR04 (binary)

  • ne-shot broadcast, c.b.consensus

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 29 / 30

slide-56
SLIDE 56

Future work: threshold guards + orthogonal features

Discrete synchronous Discrete partially synchronous Discrete asynchronous Continuous synchronous Continuous partially synchronous One instance/ finite payload Many inst./ finite payload Many inst./ unbounded payload Messages with reals

core of {ST87, BT87, CT96}, MA06 (common), MR04 (binary)

  • ne-shot broadcast, c.b.consensus

DHM12 ST87 AK00 CT96 (failure detector) DLS86, MA06, L98 (Paxos) ST87, BT87, CT96, DAs with failure-detectors DLPSW86 DFLPS13 WS07 ST87 (JACM) FSFK06 WS09

clock sync broadcast

  • approx. agreement

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 29 / 30

slide-57
SLIDE 57

Thank you!

  • http://forsyte.at/software/bymc
  • Igor Konnov (www.forsyte.at)

Parameterized Model Checking of FTDAs... FMCAD’13 30 / 30

slide-58
SLIDE 58

Fairness, Refinement, and Invariants

In the Byzantine case we have in transit : ∀i. (recvi ≥ sent) and G F ¬in transit. In this case communication fairness implies computation fairness. But in the abstract version sent can deviate from the number of processes who sent the echo message. In this case the user formulates a simple state invariant candidate, e.g., sent = K([sv = SE ∨ sv = AC]) (on the level of the original concrete system). The tool checks automatically, whether the candidate is actually a state invariant. After the abstraction the abstract version of the invariant restricts the behavior of the abstract transition system.

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 31 / 30

slide-59
SLIDE 59

Parametric abstraction refinement — justice suppression

justice G F ¬in transit necessary to verify liveness

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 32 / 30

slide-60
SLIDE 60

Parametric abstraction refinement — justice suppression

justice G F ¬in transit necessary to verify liveness counter example:

in transit in transit in transit in transit in transit in transit in transit

s1

in transit

s2 sk s3 · · · · · · · · · if ∀j all concretizations of sj violate ¬in transit, then CE is spurious.

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 32 / 30

slide-61
SLIDE 61

Parametric abstraction refinement — justice suppression

justice G F ¬in transit necessary to verify liveness counter example:

in transit in transit in transit in transit in transit in transit in transit

s1

in transit

s2 sk s3 · · · · · · · · · if ∀j all concretizations of sj violate ¬in transit, then CE is spurious. refine justice to G F ¬in transit ∧ G F

  • 1≤j≤k

¬at(sj)

  • Igor Konnov (www.forsyte.at)

Parameterized Model Checking of FTDAs... FMCAD’13 32 / 30

slide-62
SLIDE 62

Parametric abstraction refinement — justice suppression

justice G F ¬in transit necessary to verify liveness counter example:

in transit in transit in transit in transit in transit in transit in transit

s1

in transit

s2 sk s3 · · · · · · · · · if ∀j all concretizations of sj violate ¬in transit, then CE is spurious. refine justice to G F ¬in transit ∧ G F

  • 1≤j≤k

¬at(sj)

  • . . . we use unsat cores to refine several loops at once

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 32 / 30

slide-63
SLIDE 63

Parametric abstraction refinement — justice suppression

justice G F ¬in transit necessary to verify liveness

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 33 / 30

slide-64
SLIDE 64

Parametric abstraction refinement — justice suppression

justice G F ¬in transit necessary to verify liveness counter example:

in transit in transit in transit in transit in transit in transit in transit

s1

in transit

s2 sk s3 · · · · · · · · · if ∀j all concretizations of sj violate ¬in transit, then CE is spurious.

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 33 / 30

slide-65
SLIDE 65

Parametric abstraction refinement — justice suppression

justice G F ¬in transit necessary to verify liveness counter example:

in transit in transit in transit in transit in transit in transit in transit

s1

in transit

s2 sk s3 · · · · · · · · · if ∀j all concretizations of sj violate ¬in transit, then CE is spurious. refine justice to G F ¬in transit ∧ G F

  • 1≤j≤k

¬at(sj)

  • Igor Konnov (www.forsyte.at)

Parameterized Model Checking of FTDAs... FMCAD’13 33 / 30

slide-66
SLIDE 66

Parametric abstraction refinement — justice suppression

justice G F ¬in transit necessary to verify liveness counter example:

in transit in transit in transit in transit in transit in transit in transit

s1

in transit

s2 sk s3 · · · · · · · · · if ∀j all concretizations of sj violate ¬in transit, then CE is spurious. refine justice to G F ¬in transit ∧ G F

  • 1≤j≤k

¬at(sj)

  • . . . we use unsat cores to refine several loops at once

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 33 / 30

slide-67
SLIDE 67

asynchronous reliable broadcast (srikanth & toueg 1987)

the core of the classic broadcast algorithm from the da literature. it solves an agreement problem depending on the inputs vi. Variables of process i

vi : {0 , 1} init with 0 or 1 accepti : {0 , 1} init with 0

An indivisible step:

i f vi = 1 then send ( echo ) to all ; i f received (echo) from at l e a s t t + 1 distinct processes and not sent ( echo ) before then send ( echo ) to all ; i f received ( echo ) from at l e a s t n - t distinct processes then accepti := 1;

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 34 / 30

slide-68
SLIDE 68

asynchronous reliable broadcast (srikanth & toueg 1987)

the core of the classic broadcast algorithm from the da literature. it solves an agreement problem depending on the inputs vi. Variables of process i

vi : {0 , 1} init with 0 or 1 accepti : {0 , 1} init with 0

An indivisible step:

i f vi = 1 then send ( echo ) to all ; i f received (echo) from at l e a s t t + 1 distinct processes and not sent ( echo ) before then send ( echo ) to all ; i f received ( echo ) from at l e a s t n - t distinct processes then accepti := 1;

asynchronous t byzantine faults correct if n > 3t resilience condition rc parameterized process skeleton p(n, t)

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 34 / 30

slide-69
SLIDE 69

Abstract CFA

qI q0 q1 q2 q3 sv = V1 ¬(sv = V1) inc sent sv := SE q4 q5 q6 q7 q8 recv := z where (recv ≤ z ∧ z ≤ sent + f ) ¬(t + 1 ≤ recv) t + 1 ≤ recv sv = V0 ¬(sv = V0) inc sent n − t ≤ recv ¬(n − t ≤ recv) sv := SE sv := AC

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 35 / 30

slide-70
SLIDE 70

Abstract CFA

qI q0 q1 q2 q3 sv = V1 ¬(sv = V1) inc sent sv := SE q4 q5 q6 q7 q8 recv := z where (recv ≤ z ∧ z ≤ sent + f ) ¬(t + 1 ≤ recv) t + 1 ≤ recv sv = V0 ¬(sv = V0) inc sent n − t ≤ recv ¬(n − t ≤ recv) sv := SE sv := AC qI q0 q1 q2 q3 sv = V1 ¬(sv = V1) inc sent sv := SE q4 q5 q6 q7 q8

  • recv = I0 ∧ sent = I0 ∧ (recv ′ = I0 ∨ recv ′ = I1)
  • ∨ . . .

¬(t + 1 ≤ recv) recv = It+1 ∨ recv = In−t sv = V0 ¬(sv = V0)

  • sent = I1 ∧ (sent′ = I1 ∨ sent′ = It+1)
  • ∨ . . .

n − t ≤ recv ¬(n − t ≤ recv) sv := SE sv := AC

Igor Konnov (www.forsyte.at) Parameterized Model Checking of FTDAs... FMCAD’13 35 / 30