<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <issn pub-type="ppub">1613-0073</issn>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Zero-Knowledge Protocols⋆</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Gabriele Costa</string-name>
          <email>gabriele.costa@imtlucca.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Cosimo Perini Brogi</string-name>
          <email>cosimo.perinibrogi@imtlucca.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>IMT School for Advanced Studies Lucca</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Zero-Knowledge Proofs</institution>
          ,
          <addr-line>Security Verification, Dynamic Epistemic Logic, Action models, Protocol Speci-</addr-line>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2024</year>
      </pub-date>
      <fpage>8</fpage>
      <lpage>12</lpage>
      <abstract>
        <p>goals. We outline a novel approach for formally verifying zero-knowledge protocols building on Dynamic Epistemic Logic (DEL) as an abstract semantics for a low-level protocol specification language called SPEC. One of the main benefits is that our methodology abstracts the logical structure of the interactions from the mathematical subtleties related to cryptographic primitives. Furthermore, we leverage the DEL action structures to verify the knowledge dynamics generated by the protocol runs. We illustrate our methodology by applying it to a new protocol called BKP, and we prove that it meets the participants' ∗Corresponding author.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        Zero Knowledge Proofs (ZKP) play a key role in security-critical applications, such as blockchain
technology [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] and e-voting platforms. Their goal is to protect privacy and improve security in
digital interactions, by allowing one party to prove the authenticity or possession of information
without revealing it. They are often crucial for preserving data confidentiality and building
trust between interacting parties.
      </p>
      <p>The formal verification of the epistemic properties of ZKP is thus essential and challenging
at the same time: the definition of a general framework for their design and verification is still
an open problem. Very often, only a combination of methods provides robust mathematical
proofs that security desiderata are met by specific ZKP. 1</p>
      <p>
        In this paper, we suggest, by a working example, how epistemic logics can help in formally
verifying ZKP of a security protocol, challenging some known limitations (according to [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]) of
those systems for characterising knowledge in a cryptographic setting.
⋆Work partially supported by the project SERICS – SWOPS (PE00000014) under the MUR National Recovery and
Resilience Plan funded by the European Union NextGenerationEU.
†These authors contributed equally.
Brogi)
https://www.imtlucca.it/it/gabriele.costa (G. Costa); https://www.imtlucca.it/it/cosimo.perinibrogi (C. Perini
      </p>
      <p>
        © 2024 Copyright for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0).
1See, e.g., [
        <xref ref-type="bibr" rid="ref2 ref3">2, 3</xref>
        ] and [
        <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
        ], as well as works mentioned in Section 6 below.
      </p>
      <p>CEUR</p>
      <p>ceur-ws.org</p>
      <p>
        We present an original protocol specification language (SPEC) designed to ofer a lucid
and exact framework for delineating protocol actions. We then use the semantics of dynamic
epistemic logic (DEL), based on action models [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], to interpret statements in SPEC. Next, we
show how this DEL-based abstract semantics can correctly model the information flow and
knowledge evolution of honest interactive agents in a single run of an original protocol (BKP)
we implemented via SPEC statements.
      </p>
      <p>More precisely, we prove that by applying to the epistemic model for the initial configuration
of BKP the action model interpretations of (respectively) the honest prover and the honest verifier
SPEC-formalisations, we obtain new epistemic models that validate, for each participant, the
protocol security desiderata (namely, zero-knowledge, proof-of-knowledge, and no-repudiation,
for the honest prover; proof-of-knowledge for the honest verifier) rendered as formulas in the
language of epistemic logic.</p>
      <p>The results on BKP show that our approach of modelling a low-level specification language,
as our SPEC, via a semantics based on mathematical structures for dynamic epistemic reasoning
allows us to faithfully represent the evolution of the protocol from the perspectives of both
the participants (prover and verifier), and asses the main security features expected from the
protocol by each of the interacting agents.</p>
      <p>The paper is structured as follows: in Section 2 we present our broken key protocol (BKP)
as a working example of zero-knowledge protocol; in Section 3 we introduce the syntax and
operational semantics for the Simple Protocol Epistemic Calculus (SPEC), our protocol
specification language; Section 4 recalls the basics of dynamic epistemic logic (DEL) which we apply
to define an abstract interpretation for statements in SPEC (Definition
6); in Section 5 we show
how to model the BKP evolution using that DEL-based abstract semantics and prove that, after a
single run of the protocol, the prover’s and verifier’s goals are satisfied; in Section
6 we discuss
related work.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Broken Key Protocol</title>
      <p>In this section, we introduce the broken key protocol (BKP) that will also serve as a working
example along the rest of the paper. The execution of a single session of BKP is depicted in</p>
      <sec id="sec-2-1">
        <title>The protocol involves a verifier  , who owns two secret encryption keys  1 and  2, a prover</title>
        <p>, who wants to inform  that one between her keys is compromised without revealing which
one. To achieve their goals,  and  run the following protocol steps:</p>
        <sec id="sec-2-1-1">
          <title>Prover</title>
          <p>check(enc( 1,  ), enc( 2,  ))
enc( 1,  ) enc( 2,  ) h( )</p>
        </sec>
        <sec id="sec-2-1-2">
          <title>Verifier</title>
          <p>
            := fresh()
1.  initiates the session by pinging  (with a constant message ∗).
2.  generates a fresh, random message  , encrypts it with both  1 and  2 (enc( 1, ) and
enc( 2, ) , respectively), and computes the hash of  (ℎ() ). Then, she sends the three
values enc( 1, ) , enc( 2, ) and ℎ() to  .
3.  controls the received values by checking that:
a. enc( 1, ) and enc( 2, ) are ciphertexts for the same message (e.g., through a secure
multiparty computation equality test [
            <xref ref-type="bibr" rid="ref8">8</xref>
            ]), and;
b. enc( 1, ) ≠ enc( 2, ) , i.e., two diferent keys have been used for encrypting  .
If this is the case,  continues by decrypting one of the two ciphertexts (depending on
which between  1 and  2 is compromised) and sends  back to  .
          </p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Protocol language</title>
      <p>We present the syntax and operational semantics of our protocol specification language, named
Simple Protocol Epistemic Calculus (SPEC).</p>
      <p>
        We start by providing the syntax of protocol statements inspired by the Simple Protocol
Specification language (SPS) of [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>Definition 1.</p>
      <p>A protocol statement  is a term generated through the following grammar.</p>
      <p>::=  ∶=  ∣⇾  ∶  ∣⇽  ∶  ∣ [] ∣ ; 
′</p>
      <p>Briefly, a statement can be an assignment (  ∶=  ), a sending (⇾ ∶  ), a reception (⇽ ∶  ), a
conditional ([] ) or a sequence (;  ′). We use ,  , ⋯ to denote variables. Expressions ,  ′, ⋯
behave as usual and also include uninterpreted function symbols, e.g., enc(…), and constants,
e.g., ∗ and ■ . The same holds for boolean guards ,  ′ in conditional statements. ,  are agent
labels used in the communication mechanism detailed in Section 3.1 and Appendix B. Finally, we
feel free to use parentheses for grouping terms and we introduce the following abbreviations.
skip ≜ _ ∶= ∗2
fail ≜ [ ≠ ] skip3
⇽ ∶  ≜ ⇽  ∶ ; [ ≠ ]
fail
⇾ ∶  1, … ,   ≜ ⇾ ∶  1; …; ⇾ ∶  
⇽ ∶  1, … ,   ≜ ⇽ ∶  1; …; ⇽ ∶  
Example 1. Consider the BKP protocol described in Section 2. The following statements implement
the honest prover   and verifier   .</p>
      <p>≜ ⇾ ∶ ∗; ⇽ ∶ ,  , ; [ comp(, )][ = h(trydec(, , ))]⇾  ∶ trydec(, , )
  ≜
⇽ ∶ ∗;  ∶= fresh(); ⇾ ∶ enc( 1, ), enc( 2, ), h(); ⇽  ∶ ; [ = ]
skip</p>
      <p>The two statements rely on a few cryptographic functions: h, enc and fresh are quite traditional,
and they represent hashing, encryption and generation of a fresh value, respectively; comp is used
by the prover to check whether  and  encrypt the same message with diferent keys. trydec
attempts to decrypt both  and  using key  and returns the cleartext if at least one of the two
operations is possible.
2Where _ is a reserved variable name that cannot appear in any other statement.
3For some variable  .</p>
      <p>In the rest of this paper, with no loss of generality, we also assume protocol statements to be
well typed. Correct typing is guaranteed statically and dynamically through a utility function
Type() that assigns the proper type to any expression  . Types can be either base or function.
For instance, we assume basic types to include Key and Msg (for keys and simple messages,
respectively), while function types include Hash(Msg) and Enc(Key,Msg). Moreover, we assume
that value binding, which occurs in both assignment and receipt statements, always ensures
type correctness, e.g., in  ∶=  we have Type() = Type() .
3.1. Operational semantics
In this section, we define the operational semantics of SPEC. We first introduce some preliminary
definitions.</p>
      <p>Definition 2. An agent state  is a finite, partial mapping from variable names to values. We
use  to denote the empty state and  [ /] for the state  where  is (re-)assigned to value  .
Consequently, the resolution of a variable  in a state  is defined as</p>
      <p>∅ if  is 
 () = {  if  is  ′[ /] where ∅ stands for the undefined value.</p>
      <p>′() if  is  ′[ / ]
We call the pair ⟨ , ⟩ an agent configuration .</p>
      <p>For explaining the operational semantics rules, we assume that a support function for
evaluating expressions and guards (see Definition 1) is defined. We use J K =  to denote that, under
state  , expression  evaluates to value  . Similarly, J K = 1/0 indicates whether, under state  ,
the guard  is satisfied ( 1) or not (0).</p>
      <p>The structural operational semantics of an agent configuration ⟨ , ⟩ is then defined by the
rules of Figure 2.</p>
      <p>⟨ , ⟩ ⟶ ⟨ ′,  ″⟩
⟨ , ;  ′⟩ ⟶ ⟨ ′,  ″;  ′⟩ (Seq 1)</p>
      <p>⟨ , ⟩ ⟶ ⟨ ′, ⋅⟩
⟨ , ;  ′⟩ ⟶ ⟨ ′,  ′⟩ (Seq 2)</p>
      <p>J K = 1
⟨ , []⟩ ⟶ ⟨ , ⟩
(Cond 1)</p>
      <p>J K = 0
⟨ , []⟩ ⟶</p>
      <p>A
(Cond 2)</p>
      <p>J K = 
⟨ ,  ∶= ⟩ ⟶ ⟨ [ /], ⋅⟩
(Asgn)</p>
      <p>J K = 
⟨ , ⇾  ∶ ⟩ ⟶ ⟨ , ⋅⟩ ↑ ,
⟨ , ⇽  ∶ ⟩ ⟶ ⟨ , ⋅⟩ ↓ ,
(Send)
(Recv)</p>
      <p>⟨ , ⟩ ⟶ ⟨ ′,  ″⟩ ↑,
⟨ , ;  ′⟩ ⟶ ⟨ ′,  ″;  ′⟩ ↑,</p>
      <p>⟨ , ⟩ ⟶ ⟨ ′,  ″⟩ ↓,
⟨ , ;  ′⟩ ⟶ ⟨ ′,  ″;  ′⟩ ↓,
(Send-P)
(Recv-P)</p>
      <p>Briefly, sequences are evaluated by reducing the first statement (Seq 1) until, eventually, it
gets to a terminal configuration (denoted by ⋅), and then the second statement is executed (Seq
2). Conditional statements behave as the guarded statement  when the guard is satisfied (Cond
1) or, otherwise, they lead to a faulty configuration A (Cond 2). An assignment updates the
current state  by binding the variable  to the value  obtained from the evaluation of  (Asgn).
Both sending to  (Send) and receiving from  (Recv) lead to special, blocking configurations
labelled with ↑,</p>
      <p>and ↓, , respectively. Moreover, according to rules (Send-P) and (Recv-P),
blocking configurations propagate through the sequences of statements.</p>
      <p>Protocol agents compose to form a choreography, i.e., the actual execution of a protocol
where agents communicate over a network. We provide an SOS for protocol choreographies in
Appendix B.</p>
    </sec>
    <sec id="sec-4">
      <title>4. Abstract semantics</title>
      <p>In this section, we address the task of formalizing through dynamic epistemic logic the epistemic
properties of SPEC protocols.</p>
      <p>
        Dynamic Epistemic Logic (DEL) is a branch of modal logic that deals with knowledge change
over time. Following [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], here we recall the syntax and semantics of DEL. The following
definition describes information flow w.r.t. a dynamic scenario.
      </p>
      <p>Definition 3 (Action model).</p>
      <p>Let Atm be a set of propositional atoms. Let ℒ denote the set of
formulas built on top of Atm w.r.t. a given grammar. Let Ag be a finite set of agents. An action
model  is a quadruple ⟨ , ≈,</p>
      <p>pre, post⟩, where
•  is a finite set of action labels { 1, ⋯ ,   };</p>
      <p>4
indistinguishability of two actions for the agent  ;
is true in a state if  can be executed on that state;
• ≈ is a function associating to each agent  ∈ Ag an accessibility relation ≈ ⊆  × 
modelling
• the precondition function pre ∶  ⟶ ℒ</p>
      <p>assigns to each action  a formula  ∈ ℒ such that 
• the postcondition function post ∶  ⟶</p>
      <p>Subℒ assigns to each action  ∈ 
a substitution from
Atm to formulas in the language ℒ, i.e. a function behaving as the identity map except for a
ifnite number of atoms; we write  ↦</p>
      <p>for the substitution that maps the atom  to  , leaving
all the other propositional atoms unchanged; the identity substitution that leaves all the atoms
unchanged is denoted by idsub.</p>
      <p>Any action model operates on a relational structure that models a static epistemic situation;
by performing an action, the structure of the original model changes, and consequently, the truth
values of epistemic assertions do. Moreover, the postcondition function implements a notion
of factual change, the fact that performing an action changes the truth value of propositional
atoms (as well as epistemic statements) by modifying the basic facts of the world.</p>
      <p>For static epistemic logic (EL), we need to extend a classical propositional language with an
indexed modal operator as in the following
 ∈ ℒ EL ::= ⊤ ∣  ∣ ¬ ∣  ∧  ∣ 


The epistemic formula    formalizes the fact that agent  knows that  holds.5
where  belongs to a given set of propositional atoms and  belongs to a given finite set of agents.
4From now on, we use (indexed) initial Greek letters , ,  , 
,  , , ⋯</p>
      <p>
        denote generic formulas of a formal language for (dynamic) epistemic logic.
5Classical connectives are defined as usual in terms of ¬ and ∧ (see e.g. [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]).
      </p>
      <p>to denote action labels, while terminal Greek letters</p>
      <p>The relational semantics for ℒEL is standard, and we report its definition below.</p>
      <p>Definition 4. An epistemic model ℳ is a triple ⟨ , {  }, ev⟩ made of a non-empty set  “of
possible worlds”, a set of binary “accessibility” relations   ⊆  ×  indexed over the given finite
set of agents Ag,6 an evaluation function ev ∶  × Atm ⟶ {0, 1} associating to each  ∈  and
each  ∈ Atm a truth-value ev(, ) ∈ {0, 1} .</p>
      <p>The forcing relation ⊩ holding between a model ℳ ≜ ⟨ , {  },  ⟩ , a world  ∈  and a formula
 of ℒEL is inductively defined on the structure of  as follows.</p>
      <p>⊩ ℳ  if ev (, ) = 1 ;
 ⊩ ℳ ⊤ for any , ℳ ;
 ⊩ ℳ  ∧  if  ⊩ ℳ  and  ⊩ ℳ  ;
 ⊩ ℳ    if for all  ∈  , if    , then  ⊩ ℳ  .</p>
      <p>In words, when  ⊩ ℳ  , we say that  is forced by  in ℳ. When every world in ℳ forces a
formula  , we write ℳ ⊨  .</p>
      <p>For dynamic epistemic settings, the syntax of ℒEL needs to be extended to ℒDEL by a
dynamic modal operator [, ] , where  is an action model, and  is an action in  : the
formula formalises the fact that, after the action  in  is performed,  (belonging to the
extended language ℒDEL) holds.</p>
      <p>To give a precise semantics to action performing, we need to formalize the update of a static
relational model via an action model. The resulting structure is called model update.
Definition 5 (Model update). Let ℳ ≜ ⟨ , {  }, ev⟩ be an epistemic model and  ≜ ⟨ , ≈, pre, post⟩
be an action model. The model for ℳ updated by  is denoted by  ∘ ℳ and consists of the triple
⟨ ′,  ′, ev′⟩, where
•  ′ ≜ {⟨, ⟩ ∶  ⊩ ℳ pre()} ;
•  ′ ≜  ∈ Ag.{⟨⟨ 1,  1⟩, ⟨ 2,  2⟩⟩ ∶    &amp;  1 ≈  2}
• ev′(⟨, ⟩, ) = 1 if  ⊩ ℳ post()() .</p>
      <p>This allows us to define the meaning of all DEL formulas: it sufices to extend Definition
the following forcing clause:
4 by
 ⊩ ℳ [, ]
if</p>
      <p>⊩ ℳ pre() implies that ⟨, ⟩ ⊩ ∘ℳ ,
where  ∘ ℳ</p>
      <p>is the update model of ℳ with  of Definition 5.</p>
      <p>Example 2. Consider again the BKP protocol. Below, we give the security goals of the protocol in
ℒEL.</p>
      <p>⋅ Zero knowledge:  ZK ≜ ¬  (has ( 1)) ∧ ¬  (has ( 2))
⋅ Proof of knowledge:  PoK ≜   (has ( 1) ∨ has ( 2))
⋅ No repudiation:  NR ≜   (  (  (has ( 1) ∨ has ( 2)))))</p>
      <p>In words,  ZK states that  should not know whether  owns  1 or  2,  PoK states that  must
know that  owns one between  1 and  2, and  NR states that  and  reciprocally acknowledge
that  owns one of the two keys.
6We write    to mean that  is accessible to  for  . Further general conventions are collected in Appendix A.
4.1. Modeling BKP in DEL
This section shows how to interpret SPEC-statements as action models. The actions are applied
to epistemic models that formalize the system made of agent states  and the knowledge of
each agent, modeled through an accessibility relation.</p>
      <sec id="sec-4-1">
        <title>Intuitively, both an agent state   and an accessibility relation   represent information</title>
        <p>accessible to agent  . Nevertheless, the information encoded by   is local to agent  , as it
contains  ’s computational data, and information about any other agent  is not part of   .
Instead, the accessibility relation   models a more general (though potentially uncertain)
information possessed by  , which concerns the status of the whole system of interactive agents.
To describe this proper form of knowledge (and uncertainty), agent states do not sufice since,
by definition, the information encoded in each state is private. Thus, we start by fixing the set
Atm of propositional atoms for BKP, defined as</p>
        <p>∈ Atm ::=  1 =  2 ∣ has () ∣ const ()
where  ∈ Ag = { ,  } ,  1,  2 are expressions, and = denotes identity of values. Formulas for BKP
are built according to the grammar for ℒDEL on top of this set of atoms.</p>
      </sec>
      <sec id="sec-4-2">
        <title>The atom has () expresses the fact that  is stored in the state of agent  . Instead, const ()</title>
        <p>denotes that  can build expression  . Trivially, has () subsumes const () ; that is encoded by
the rule has () (has) stating that any local information of  is per se constructible by  .</p>
        <p>const ()</p>
        <p>Then, for every uninterpreted function f(…) appearing in SPEC expressions, we require
proper inference rules to define their constructibility. For instance, the rules for the functions
used in our working example are the following.</p>
        <p>const (∗)
(∗)
const (fresh())
(fresh)</p>
        <p>const ()
const (h())
(h)
has () has ()
const (enc(, ))
(enc)
has (enc(, )) has () (trydec)1 has (enc(, )) has () (trydec)2
const (trydec(, enc(, ), )) const (trydec(, , enc(, )))</p>
        <p>They state that agent  can construct the constant ∗ and fresh() values. Moreover, if  has a
message  , it can compute its hash h() and encrypt it with a key  it also has. Finally,  can
decrypt a ciphertext enc(, ) when she has the proper key.7</p>
        <p>For what concerns uninterpreted functions appearing in guards, we assume that an
interpretation Lf(…)M of f(…) is defined in terms of a finite set of literals, i.e., positive or negative
atoms, of our language. Intuitively, Lf(…)M = {ℓ1, … , ℓ } represents the fact that the litearals
ℓ1, … , ℓ must be satisfied for f(…) to be true. For instance, we have that</p>
        <p>Lcomp(enc( 1,  1), enc( 2,  2))M ≜ {const (enc( 1,  1)), const (enc( 2,  2)),  1 ≠  2,  1 =  2}.</p>
        <p>Next, we need to interpret our protocol statements in terms of action models.
Definition 6. We define an interpreting function ⟨⟨⋅⟩⟩ from protocol statements  (and agent  ) to
action models ⟨⟨⟩⟩  by induction on the structure of  as follows.8
7It is worth noticing that these rules are not the only candidates. For instance, one may want to model encryption
recursively, e.g., to deal with terms such as enc(, enc( ′, )) . However, nested encryption has no role in the BKP
protocol, and thus we omit it.
8In these and the following graphics, we adopt some standard visual conventions, detailed in Appendix A.</p>
        <p>The action model ⟨⟨ ∶= ⟩⟩  for the assignment  ∶=  by agent  is given by
( ∶=  ).
⟨ , ≈,</p>
        <p>pre, post⟩ where
•  ≜ { 1,  2}
other agents involved in the protocol are unaware of the event.
(⇾ ∶  ). The action model ⟨⟨⇾ ∶ ⟩⟩  for agent  sending  to agent  is given by ⟨ , ≈, pre, post⟩
where
•  ≜ {}
•  ≜ { ℎ ∶ const ( ℎ) &amp; Type( ℎ) = Type()}
• ≈ ≜  ∈</p>
        <p>Ag. {
• pre ≜  ℎ ∈  . const ( ℎ)
• post ≜  ℎ ∈  . has ( ℎ) ↦ ⊤
{⟨ ℎ,   ⟩ ∶  ℎ ∈  &amp;   ∈  }
{⟨ ℎ,  ℎ⟩ ∶  ℎ ∈  }</p>
        <p>In words, sending an expression is a public action that can be performed whenever the sender
is able to construct the value of that expression; after the event, that value is stored in the local
information of the receiver.
(⇽ ∶  ). The action model ⟨⟨⇽ ∶ ⟩⟩  for agent  receiving values on variable  from agent  is
•
•
•
•
•
•
•
•
•
Ag</p>
        <p>Ag
 
i</p>
        <p>Thus, we can informally interpret the receiving statement from the agent  as an equivalence
class of sending statements from the same agent.
([] ). The action model ⟨⟨[]⟩⟩  , for a guarded statement with ⟨⟨⟩⟩  = ⟨  , ≈ , pre , post ⟩, is
given by ⟨ , ≈,</p>
        <p>pre, post⟩ where
 ∪ {} , where  does not occur in</p>
        <p>Ag. ≈ ∪ {⟨, ⟩}
⟨⟨⟩⟩ 
≈ ≜  ∈
pre ≜  ∈  .
post ≜  ∈  .</p>
        <p>{
⋀L M ∧ pre ()</p>
        <p>L
¬ ⋀  
post ()
{ A ↦ ⊤</p>
        <p>M
when  ≠ 
otherwise
when  ≠ 
otherwise
where the expression A ↦ ⊤ denotes the substitution mapping, for each  ∈ Ag, has (■ ) to ⊤.
1–16
.
⋯
Graphically, we have
⋯

 ′</p>
        <p>′</p>
        <p>In words, we model the fact that in SPEC guards are external: in []
whenever the guard 
evaluates to true by agent  , we proceed with the action formalized by  ; when the same guard 
evaluates to false, we have a public announcement of protocol failure.
(;  ′). The action model ⟨⟨;  ′</p>
        <p>⟩⟩ is given by ⟨ , ≈,
action model ⟨⟨⟩⟩  = ⟨  , ≈ , pre , post ⟩ with the action model ⟨⟨ ′⟩⟩ = ⟨  ′, ≈ ′, pre ′, post ′⟩,
pre, post⟩, obtained by the composition of the
′⟩ ∈  . post () ⋅ post ′( ′), where  ⋅  is an abbreviation for .( ())</p>
        <p>Finally, we model the agent states by an epistemic structure. Assuming that the given protocol
involves  agents, the whole system state corresponds to an epistemic model with possible
worlds as  -tuples of lists assigning values to variables (defined on the basis of the current   for
each  ∈ Ag). The epistemic uncertainty of an individual agent  regarding the actual state of
the system is represented by an accessibility relation   among such worlds. The evaluation
function ev for worlds and propositional atoms is given by the information thus encoded in
each  -tuple and according to the semantics of const () defined in Section
4.1.</p>
        <p>Graphically, to distinguish the local information of, say, agent  from agent  , we use colors:
when agent  assigns a value to a variable of hers, we write it inside the node’s area with a color
conventionally assigned to  ; similarly for  . Epistemic possibility and uncertainty for agent 
are represented by (bi-)directed arrows, labeled by  .9 The figures in the next section will make
these graphical conventions more concrete.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Assessing knowledge in BKP</title>
      <p>We can finally prove that each agent implementation complies with the respective goal. First,
we fix the epistemic scenario as described by the initial assumptions of the protocol:  has two
keys ( 1 and  2), and  has at most one10 of them. We call this model ℐBKP and we depict it in
Figure 3 (we assigned blue to  and red to  ).</p>
    </sec>
    <sec id="sec-6">
      <title>Performing   .</title>
      <sec id="sec-6-1">
        <title>We compute the update of ℐBKP with ⟨⟨  ⟩⟩ , where   is the SPEC-statement</title>
        <p>of Example 1 for the honest prover in BKP.   starts by sending ∗: this does not change the
epistemic model, apart from adding ∗ to the local information of  , which we skip for brevity.</p>
        <p>Then,  receives  . Since the actual message sent by  is unknown,  must assume that any
constructible (and type-compatible) message might be received. This results in an unfolding of
9As for the ≈ symbol of Definition 6, we omit the  symbol to enhance picture readability.
10We neglect the case when  knows both the keys since it is irrelevant for our scenario.
three configurations are possible, i.e.,  has no key (left node),  has  1 (middle node) or  has  2 (right
node). In terms of knowledge,  can distinguish between these three states (self-loops), but  cannot.
the epistemic model where, in each world,  ’s local information is extended with the possible
message from  : from  ’s perspective, all the states obtained by extending the same initial
state with  ’s message are epistemically indistinguishable. Next,  receives another message on
variable  . This event is analogous to the previous one and leads to a similar efect:  cannot
distinguish what message  will send. The third receiving, stored in  , behaves in the same way.</p>
      </sec>
      <sec id="sec-6-2">
        <title>Each is distinct from all the others only because of the local information of  .11</title>
        <p>Because of our typing discipline, the resulting model is then made of 3 × 4 × 4 × 2 = 96 worlds.</p>
        <p>The first guard [comp(, )]</p>
        <p>allows us to select from the 96 nodes of the epistemic model
those containing the local information of  triggering the guard. The subsequent guard
[ = h(trydec(, , ))]</p>
        <p>further narrows down the possibilities. After calculating (based on
Definitions 6 and 5) the appropriate accessibility relations for  and  , we obtain the final model

ℱBKP, as depicted in Figure 4.</p>
        <p>Notice that  ’s epistemic uncertainty is narrowed by eliminating the worlds where  ’s key
variable is unassigned but unaltered for the remaining worlds: there are bi-directed  -arrows
connecting the worlds where  has value  1 with worlds where  has value  2. The bi-directed
 -arrows connect worlds in which  does not need to diferentiate between scenarios where
 has swapped the order of sent ciphertexts. Likewise, these arrows eliminate distinctions
between worlds where cryptographic functions have been applied to one message ( 1) versus
11Those epistemic possibilities are summarized in the three-part table given in Appendix C and omitted here for
brevity.</p>
      </sec>
      <sec id="sec-6-3">
        <title>Example 2) is valid. In symbols, ℱBKP ⊨  ZK, ℱBKP ⊨  PoK, and ℱBKP ⊨  NR.</title>
        <p>another ( 2). By an easy inspection of ℱBKP, we see that each component of  ’s goal (see</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>Performing   .</title>
      <sec id="sec-7-1">
        <title>We now compute the update of ℐBKP with ⟨⟨  ⟩⟩ , where   is the SPEC</title>
        <p>statement of Example 1 for the honest verifier in BKP. The first statement applied to
consists of receiving ∗ from  ; as before, we skip this event, which only adds ∗ to  ’s local
information. After generating a new message,  assigns its value to a variable named  . Given
that value assignment is a private action, the resulting model is essentially a replica of ℐBKP.
The nodes are  -accessible from their counterparts in the model derived from ℐBKP by removing
 -loops and incorporating the value of  into  ’s local information. After that,  sequentially
sends three messages to  : enc( 1, ) , enc( 2, ) , and h() . These actions consist of three
public announcements. Since each of those values is constructible in any of its worlds, the
ℐBKP
structure of the previous model is preserved, though the values enc( 1, ) , enc( 2, ) and h()
join  ’s local information for any world.</p>
        <p>At this point,  receives a message from  , whose value is assigned to  . Since  does not
know the actual value she will receive, she must consider the epistemic possibility where 
sends  and the one where  sends another value  2. This situation unfolds the previous model,
whose worlds difer for the local information available to  ; still,  ’s epistemic possibilities are
preserved.</p>
        <p />
      </sec>
      <sec id="sec-7-2">
        <title>BKP terminates, leading to the final model ℱBKF depicted in Figure 5.</title>
        <p>Finally,  checks whether the value stored in  is equal to the value of  : if that is the case,</p>
        <p>Again, one can check that ℱ BKF ⊨  PoK, i.e., the honest verifier achieves a PoK.</p>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>6. Concluding remarks</title>
      <p>We outlined the application of dynamic epistemic logic (DEL) to verify zero-knowledge proofs
(ZKP) formally. We consider it a first step towards a comprehensive verification framework of
ZKP. The approach’s potential is demonstrated through a practical example, illustrating how
DEL semantics can capture the perspectives of protocol participants on the protocol’s evolution.</p>
      <p>
        Formal verification of security protocols is a vast research field, where several methodologies
co-exist. Model checking [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] is often adopted for spotting vulnerabilities (expressed in some
temporal logic such as LTL [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]) by visiting a finite state model representing all the possible runs
of a protocol [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].12 In those contexts, adversarial networks are represented via the Dolev-Yao
12Among several existing model checkers for protocol verification we mention ProVerif [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] and SATMC [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ].
(DY) attacker model [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]
      </p>
      <p>
        A DY-based implementation of zero-knowledge in the Tamarin prover is introduced in [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ],
where the author is able to formally prove some security properties of the Direct Anonymous
Attestation (DAA) protocol. She also discusses some dificulties (and their possible solutions) in
automating rigorous formal verification of ZKP in Tamarin [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ].
      </p>
      <p>
        The paper [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] extends the DY model to compare information leakage between protocol
implementations. Our method difers from that approach since we are focused on reasoning
about agents’ knowledge and security goals.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], the authors present a symbolic semantics for a language including a ZKP operator
aimed at sharing a proof tree without revealing the prover’s identity. Their language is well
suited for scenarios where anonymous proofs are published among a set of participants but
does not include message-sending/receiving primitives. Therefore, they cannot model protocols
such as our BKP.
      </p>
      <p>
        The seminal papers [
        <xref ref-type="bibr" rid="ref22 ref6">22, 6</xref>
        ] approached first ZKP via epistemic logic. They identify some
criticalities that emerge when modeling cryptographic primitives and suggest overcoming them
by combining epistemic and temporal operators.
      </p>
      <p>
        Diferently, [
        <xref ref-type="bibr" rid="ref23 ref24 ref25">23, 24, 25</xref>
        ] assessed the security of some cryptographic protocols using dynamic
epistemic logic. We borrowed some notations from those papers, but none of the previous
proposals consider ZKP, focusing only on security aspects of cryptographic operations.
      </p>
    </sec>
    <sec id="sec-9">
      <title>A. Notational and graphical conventions</title>
      <p>In this appendix, we recap the principal conventions adopted in the paper to facilitate
understanding and maintain consistency in our presentation.13
Mathematical notations. From the logical viewpoint, we will use diferent formal languages
that interact at various levels. To distinguish these abstraction layers, we adopt some general
conventions: operators of the epistemic language we use in our abstract semantics are denoted
by standard symbols in logical practice;14 operators of the higher-order/set-theoretic language
we use to define the relational semantics of the epistemic language are denoted by standard
set-theoretic symbols extended by logical symbols that are kept distinct from those used in the
epistemic language;15 operators of the meta-language, i.e. used to reason about the epistemic
system (language or semantics), are preferably written in plain English.16</p>
      <p>
        Whenever we formally define the basic syntax of a language, we recur to (an easier-to-read
version of) the Backus-Naur form convention [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ].
      </p>
      <p>Moreover, variants of the identity symbol = are omnipresent in the following pages: plain =
between expressions of our protocol language denotes identity between values within the type
of both the expressions; we reserve the symbol ∶= for value assignment to a variable of the
protocol language; ≜ denotes definitional equality.</p>
      <p>Functions are preferably defined by  -abstraction: e.g., . +1 denotes the successor function.
Nevertheless, we occasionally recur to the standard notation to enhance readability. Whenever
needed, we also recur to standard conventions to denote the domain and target of a given
function: e.g.,  ∶ Atm ⟶ ℒ expresses the fact that the function  maps elements of Atm
into elements of ℒ.17 Function definition by cases is expressed by the standard notation
distinguishing values for each case considered.
13Further conventions, abbreviations, and notation overload are promptly and appropriately signaled in the main
body of the paper as soon as they are introduced.
14E.g., conjunction is denoted by the symbol ‘∧’.
15E.g., the expression { ∈  × ℬ ∶  1() &amp;  2()} denotes the set of pairs  of elements in  and ℬ satisfying a
given condition  1 and a given condition  2.
16However, we may write, e.g.,  ∈ Ag to express that the item with label  denotes an agent of our protocol.
17Notice the diference between the long arrow symbol ⟶ used for functions, from the arrow symbol ⇾ we use for
sending statements in our protocol language.
Graphical conventions.</p>
      <p>We use squares to denote actions in action models, reserving more
rounded nodes for the worlds of static epistemic models. Whenever  ≈   in the action model,
we draw an arrow with label  from the square labeled by  to the square labeled by  ; whenever
 ≈   and  ≈   we draw a bi-directed arrow between  and  ; an arrow labeled by Ag
denotes a collection of labeled arrow, namely one for each agent in our given set; when we
remove the  -labelled arrows from that collection, we obtain the collection represented by the
(Ag − ) -labeled arrow. Similar conventions are applied to arrows between worlds rendered in
Section 5.</p>
    </sec>
    <sec id="sec-10">
      <title>B. Choreographies</title>
      <p>In symbols,  (, ) = 
label  .</p>
      <p>A protocol choreography in SPEC is defined as ‖ ⟨  ,   ⟩ where  ∈ {1, … , } .  is a function
mapping each agent label appearing in each protocol agent to another agent in the choreography.

denotes that agent  will send to (and receive from) agent  when using</p>
      <p>For the sake of presentation, we use ⟨ 1,  1⟩ ‖ ⟨ 2,  2⟩ for ⟨ 1,  1⟩‖ ⟨ 2,  2⟩ where ()  and
 are the only labels appearing in  2 and  1 (respectively), and ()  (1, ) = 2
and  (2, ) = 1
.</p>
      <p>We can now introduce the operational semantics of protocol choreographies, given in Figure 6.
Briefly, choreographies allow internal reduction of their protocol agents (Step) and synchronous
⟨  ,   ⟩ ⟶ ⟨  ′,  ′⟩
communications between agents (Sync) when the agent labels mapping permits it.</p>
      <p />
      <p>We say that a choreography ‖ ⟨  ,   ⟩ is successful when ∀.  = ⋅ and we call stuck a
choreography that () is not successful and () does not allow further reductions (denoted by ⇝̸).
Furthermore, we use ⇝⋆ for the transitive closure of ⇝ and, given two choreographies  and
 ′, we say that  ⇝
⋆</p>
      <p>′ is a run of  if  ′⇝̸.</p>
      <p>Then, a successful run of  is a run  ⇝ ⋆  ′ such that  ′ is successful. For instance, by
defining the choreography  ≜ ⟨[
actual cryptographic keys, we have</p>
      <p>k1/],   ⟩ ‖ ⟨[ k1/ 1][k2/ 2],   ⟩, where k1 and k2 denote
 ⇝ ⋆ ⟨[ −1/][ enc(  , )/][
enc(  , )/ ][
h()/][/
′], ⋅⟩ ‖ ⟨[  / 1][  / 2][/], ⋅⟩.</p>
    </sec>
    <sec id="sec-11">
      <title>C. Detailed example</title>
      <p>Here, we provide full details on the intermediate model omitted in Section 5 when modeling   .
We render the model through the three-part table in Figure 7 (denoting that the variable  is
either  1,  2, or unassigned ∅) where:
• rows represent the possible values of  (namely: enc( 1,  1), enc( 1,  2), enc( 2,  1),
enc( 2,  2));
• columns represent the possible values of  ((namely: enc( 1,  1), enc( 1,  2), enc( 2,  1),
⎡⎢⎢ enc( 1,  1) aha(1a)ah( 2) aha(1a)ah( 2) aha(1a)ah( 2) aha(1a)ah( a2a)
⎢⎢ enc( 1,  2) aha(1a)ah( a2a)aha(1a)ah( a2a)aha(1a)ah( a2a)aha(1a)ah( a2a)
∅ ⎢⎢⎢ enc( 2,  1) aha(1a)ah( a2a)aha(1a)ah( a2a)aha(1a)ah( a2a)aha(1a)ah( a2a)
⎢⎢ enc( 2,  2) aha(1a)ah( aa2aa)aha(1a)ah( aa2aa)aha(1a)ah( aa2aa)aha(1a)ah( a2a)
⎣
⎡⎢⎢ enc( 1,  1) aha(1a)ah( 2) aha(1a)ah( 2) aha(1a)ah( 2) aha(1a)ah( a2a)
⎢⎢ enc( 2,  2) aha(1a)ah( aa2aa)aha(1a)ah( aa2aa)aha(1a)ah( aa2aa)aha(1a)ah( a2a)
⎣
enc( 2,  1)
enc( 2,  2)
⎢⎢ enc( 2,  2) aha(1a)ah( aa2aa)aha(1a)ah( aa2aa)aha(1a)ah( aa2aa)aha(1a)ah( a2a)
⎣
Figure 7: Modelling the epistemic evolution of ℐBKP when  sequentially receives from  messages in  ,
 , and  .</p>
      <p>Then, the first guard [comp(, )]</p>
      <p>allows us to select from the 96 nodes of the epistemic model
those containing the local information of  triggering the guard, represented by the blue
further narrows down the
cells in the table.18 The subsequent guard [ = h(trydec(, , ))]
possibilities, enabling us to identify, among the blue cells, the sub-cells highlighted with red
text that satisfy the guard and allow  to send trydec(, , ) to  .
18Recall from Section 4.1 that comp(⋅) is true when keys are diferent and the message is the same.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>X.</given-names>
            <surname>Sun</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F. R.</given-names>
            <surname>Yu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Sun</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Xie</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Peng</surname>
          </string-name>
          ,
          <article-title>A survey on zero-knowledge proof in blockchain</article-title>
          ,
          <source>IEEE Network 35</source>
          (
          <year>2021</year>
          )
          <fpage>198</fpage>
          -
          <lpage>205</lpage>
          . doi:
          <volume>10</volume>
          .1109/MNET.011.2000473.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>S.</given-names>
            <surname>Goldwasser</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Micali</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Rackof</surname>
          </string-name>
          ,
          <article-title>The knowledge complexity of interactive proof systems</article-title>
          ,
          <source>SIAM J. Comput</source>
          .
          <volume>18</volume>
          (
          <year>1989</year>
          )
          <fpage>186</fpage>
          -
          <lpage>208</lpage>
          . URL: https://doi.org/10.1137/0218012. doi:
          <volume>10</volume>
          . 1137/0218012.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>O.</given-names>
            <surname>Goldreich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Micali</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Wigderson</surname>
          </string-name>
          ,
          <article-title>Proofs that yield nothing but their validity for all languages in NP have zero-knowledge proof systems</article-title>
          ,
          <source>J. ACM</source>
          <volume>38</volume>
          (
          <year>1991</year>
          )
          <fpage>691</fpage>
          -
          <lpage>729</lpage>
          . URL: https://doi.org/10.1145/116825.116852. doi:
          <volume>10</volume>
          .1145/116825.116852.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>O.</given-names>
            <surname>Goldreich</surname>
          </string-name>
          ,
          <source>The Foundations of Cryptography - Volume</source>
          <volume>1</volume>
          :
          <string-name>
            <surname>Basic</surname>
            <given-names>Techniques</given-names>
          </string-name>
          , Cambridge University Press,
          <year>2001</year>
          . URL: http://www.wisdom.weizmann.ac.il/%7Eoded/
          <fpage>foc</fpage>
          -vol1.
          <source>html. doi:10</source>
          .1017/CBO9780511546891.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>O.</given-names>
            <surname>Goldreich</surname>
          </string-name>
          ,
          <source>The Foundations of Cryptography - Volume</source>
          <volume>2</volume>
          :
          <string-name>
            <surname>Basic</surname>
            <given-names>Applications</given-names>
          </string-name>
          , Cambridge University Press,
          <year>2004</year>
          . URL: http://www.wisdom.weizmann.ac.il/%7Eoded/
          <fpage>foc</fpage>
          -vol2.
          <source>html. doi:10</source>
          .1017/CBO9780511721656.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>J. Y.</given-names>
            <surname>Halpern</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Pass</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Raman</surname>
          </string-name>
          ,
          <article-title>An epistemic characterization of zero knowledge</article-title>
          , in: A.
          <string-name>
            <surname>Heifetz</surname>
          </string-name>
          (Ed.),
          <source>Proceedings of the 12th Conference on Theoretical Aspects of Rationality and Knowledge (TARK-2009)</source>
          , Stanford, CA, USA, July 6-
          <issue>8</issue>
          ,
          <year>2009</year>
          ,
          <year>2009</year>
          , pp.
          <fpage>156</fpage>
          -
          <lpage>165</lpage>
          . URL: https://doi.org/10.1145/1562814.1562837. doi:
          <volume>10</volume>
          .1145/1562814.1562837.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>A.</given-names>
            <surname>Baltag</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Renne</surname>
          </string-name>
          , Dynamic Epistemic Logic, in: E. N.
          <string-name>
            <surname>Zalta</surname>
          </string-name>
          (Ed.),
          <source>The Stanford Encyclopedia of Philosophy</source>
          , Winter 2016 ed., Metaphysics Research Lab, Stanford University,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>D.</given-names>
            <surname>Bogdanov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Niitsoo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Toft</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Willemson</surname>
          </string-name>
          ,
          <article-title>High-performance secure multi-party computation for data mining applications</article-title>
          ,
          <source>International Journal of Information Security</source>
          <volume>11</volume>
          (
          <year>2012</year>
          )
          <fpage>403</fpage>
          -
          <lpage>418</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>O.</given-names>
            <surname>Almousa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Mödersheim</surname>
          </string-name>
          , L. Viganò,
          <article-title>Alice and bob: Reconciling formal models and implementation, Programming Languages with Applications to Biology and Security: Essays Dedicated to Pierpaolo Degano on the Occasion of His 65th Birthday (</article-title>
          <year>2015</year>
          )
          <fpage>66</fpage>
          -
          <lpage>85</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>P.</given-names>
            <surname>Blackburn</surname>
          </string-name>
          , M. de Rijke, Y. Venema, Modal Logic, volume
          <volume>53</volume>
          , Cambridge University Press,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>H.</given-names>
            <surname>Van Ditmarsch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W. van Der</given-names>
            <surname>Hoek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Kooi</surname>
          </string-name>
          ,
          <article-title>Dynamic epistemic logic</article-title>
          , volume
          <volume>337</volume>
          ,
          <string-name>
            <surname>Springer</surname>
            <given-names>Science</given-names>
          </string-name>
          &amp; Business
          <string-name>
            <surname>Media</surname>
          </string-name>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>E. M.</given-names>
            <surname>Clarke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. A.</given-names>
            <surname>Emerson</surname>
          </string-name>
          ,
          <article-title>Design and synthesis of synchronization skeletons using branching time temporal logic</article-title>
          , in: D.
          <string-name>
            <surname>Kozen</surname>
          </string-name>
          (Ed.),
          <source>Logics of Programs</source>
          , Springer Berlin Heidelberg, Berlin, Heidelberg,
          <year>1982</year>
          , pp.
          <fpage>52</fpage>
          -
          <lpage>71</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>A.</given-names>
            <surname>Pnueli</surname>
          </string-name>
          ,
          <article-title>The temporal logic of programs</article-title>
          ,
          <source>in: 18th Annual Symposium on Foundations of Computer Science</source>
          (sfcs
          <year>1977</year>
          ),
          <year>1977</year>
          , pp.
          <fpage>46</fpage>
          -
          <lpage>57</lpage>
          . doi:
          <volume>10</volume>
          .1109/SFCS.
          <year>1977</year>
          .
          <volume>32</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>D.</given-names>
            <surname>Basin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Cremers</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Meadows</surname>
          </string-name>
          , Model Checking Security Protocols, Springer International Publishing, Cham,
          <year>2018</year>
          , pp.
          <fpage>727</fpage>
          -
          <lpage>762</lpage>
          . URL: https://doi.org/10.1007/ 978-3-
          <fpage>319</fpage>
          -10575-8_
          <fpage>22</fpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>319</fpage>
          -10575-8_
          <fpage>22</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>M.</given-names>
            <surname>Abadi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Blanchet</surname>
          </string-name>
          ,
          <article-title>Analyzing Security Protocols with Secrecy Types and Logic Programs</article-title>
          ,
          <source>Journal of the ACM</source>
          <volume>52</volume>
          (
          <year>2005</year>
          )
          <fpage>102</fpage>
          -
          <lpage>146</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>A.</given-names>
            <surname>Armando</surname>
          </string-name>
          , L. Compagna,
          <article-title>SATMC: A SAT-Based Model Checker for Security Protocols</article-title>
          , in: J. J.
          <string-name>
            <surname>Alferes</surname>
          </string-name>
          , J. Leite (Eds.),
          <source>Logics in Artificial Intelligence</source>
          , Springer Berlin Heidelberg, Berlin, Heidelberg,
          <year>2004</year>
          , pp.
          <fpage>730</fpage>
          -
          <lpage>733</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>D.</given-names>
            <surname>Dolev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. C.</given-names>
            <surname>Yao</surname>
          </string-name>
          ,
          <article-title>On the security of public key protocols</article-title>
          ,
          <source>IEEE Trans. Inf. Theory</source>
          <volume>29</volume>
          (
          <year>1983</year>
          )
          <fpage>198</fpage>
          -
          <lpage>207</lpage>
          . URL: https://doi.org/10.1109/TIT.
          <year>1983</year>
          .
          <volume>1056650</volume>
          . doi:
          <volume>10</volume>
          .1109/TIT.
          <year>1983</year>
          .
          <volume>1056650</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>S.</given-names>
            <surname>Fischlin</surname>
          </string-name>
          ,
          <article-title>Formalising Zero-Knowledge Proofs in the Symbolic Model, Master's thesis</article-title>
          ,
          <source>ETH Zurich</source>
          ,
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>S.</given-names>
            <surname>Meier</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Cremers</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Basin</surname>
          </string-name>
          ,
          <article-title>The TAMARIN prover for the symbolic analysis of security protocols</article-title>
          , in: Computer Aided Verification: 25th International Conference, CAV 2013,
          <string-name>
            <given-names>Saint</given-names>
            <surname>Petersburg</surname>
          </string-name>
          , Russia,
          <source>July 13-19</source>
          ,
          <year>2013</year>
          . Proceedings 25, Springer,
          <year>2013</year>
          , pp.
          <fpage>696</fpage>
          -
          <lpage>701</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>A. W.</given-names>
            <surname>Baskar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Ramanujam</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. P.</given-names>
            <surname>Suresh</surname>
          </string-name>
          ,
          <article-title>A Dolev-Yao Model for Zero Knowledge</article-title>
          ,
          <source>in: Asian Computing Science Conference</source>
          ,
          <year>2009</year>
          . URL: https://www.cmi.ac.in/~spsuresh/pdfs/ zero-know-jun09.
          <fpage>pdf</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>M.</given-names>
            <surname>Backes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Bendun</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mafei</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Mohammadi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Pecina</surname>
          </string-name>
          ,
          <article-title>Symbolic malleable zeroknowledge proofs</article-title>
          , in: C.
          <string-name>
            <surname>Fournet</surname>
            ,
            <given-names>M. W.</given-names>
          </string-name>
          <string-name>
            <surname>Hicks</surname>
          </string-name>
          , L. Viganò (Eds.),
          <source>IEEE 28th Computer Security Foundations Symposium, CSF</source>
          <year>2015</year>
          , Verona, Italy,
          <fpage>13</fpage>
          -
          <issue>17</issue>
          <year>July</year>
          ,
          <year>2015</year>
          , IEEE Computer Society,
          <year>2015</year>
          , pp.
          <fpage>412</fpage>
          -
          <lpage>426</lpage>
          . URL: https://doi.org/10.1109/CSF.
          <year>2015</year>
          .
          <volume>35</volume>
          . doi:
          <volume>10</volume>
          .1109/CSF.
          <year>2015</year>
          .
          <volume>35</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>J. Y.</given-names>
            <surname>Halpern</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Moses</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. R.</given-names>
            <surname>Tuttle</surname>
          </string-name>
          ,
          <article-title>A knowledge-based analysis of zero knowledge (preliminary report)</article-title>
          , in: J.
          <string-name>
            <surname>Simon</surname>
          </string-name>
          (Ed.),
          <source>Proceedings of the 20th Annual ACM Symposium on Theory of Computing, May 2-4</source>
          ,
          <year>1988</year>
          , Chicago, Illinois, USA, ACM,
          <year>1988</year>
          , pp.
          <fpage>132</fpage>
          -
          <lpage>147</lpage>
          . URL: https://doi.org/10.1145/62212.62224. doi:
          <volume>10</volume>
          .1145/62212.62224.
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>X.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Deng</surname>
          </string-name>
          ,
          <article-title>Eficient verification of cryptographic protocols with dynamic epistemic logic</article-title>
          ,
          <source>Applied Sciences</source>
          <volume>10</volume>
          (
          <year>2020</year>
          )
          <fpage>6577</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>M.</given-names>
            <surname>Gattinger</surname>
          </string-name>
          ,
          <string-name>
            <surname>J. van Eijck</surname>
          </string-name>
          ,
          <article-title>Towards model checking cryptographic protocols with dynamic epistemic logic</article-title>
          ,
          <source>in: Proc. LAMAS</source>
          , Citeseer,
          <year>2015</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>14</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>F.</given-names>
            <surname>Dechesne</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <article-title>Dynamic epistemic verification of security protocols: framework and case study, in: A Meeting of the Minds:</article-title>
          <source>Proceedings of the Workshop on Logic, Rationality, and Interaction</source>
          , Beijing, Citeseer,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>D. E.</given-names>
            <surname>Knuth</surname>
          </string-name>
          ,
          <article-title>Backus normal form vs. backus naur form</article-title>
          ,
          <source>Commun. ACM</source>
          <volume>7</volume>
          (
          <year>1964</year>
          )
          <fpage>735</fpage>
          -
          <lpage>736</lpage>
          . URL: https://doi.org/10.1145/355588.365140. doi:
          <volume>10</volume>
          .1145/355588.365140.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>