The adversary \(\Adv \) has the same shape: a single per-\(\id \) interface \(\id .\fopl {A}\) guarding and silencing the core \(\id .\op {A}\). What separates it from the environment is who may reach it. Where \(\Zenv .\admits \) is only \(\Apid \cup \Zpid \), the field \(\Adv .\admits = \Stdpid \cup \Apid \cup \Zpid \) holds every process id that ever places a call. Only \(\Corr \)’s is missing, and \(\Corr \) places none. That width is a requirement rather than a convenience: the mediation hooks of Chapter 2, and the calls ideal functionalities place through the abbreviation \(\Adv (\cdot )\), are both calls placed on the adversary by a machine acting for some party.
These interfaces are what a backdoor looks like in this notation. The adversary holds no token of its own and cannot begin a call, so every attack it mounts starts from another machine handing it control: a party’s interface through \(\opl {Mediate}\), or the environment directly, which is how an environment instructs an adversary at all. What it may say in return is narrow: the silenced set is \(\{\id '' : \id '' \ne \id \}\), so an interface of \(\Adv \) may claim only the identity it runs at.
Inside an interface with identity \(\id \) we write \(\Adv (in)\) for the call \((A,\id .P).\fopl {A}(in)\) as \(\id \), and \(\Zenv (in)\) likewise. The claim must be \(\id \) and no other, since line 5 silences a core on everything but its own identity; the adversary therefore learns the caller as the claimed id, and needs no separate field for it. Its core is entered as \(\id .\op {A}(in)\) from \(\id '\), the shape \(\opl {Silence}\) declares and the shape every other core is entered in. The target’s party component is \(\id .P\), so the call also records on whose behalf it is made.
Adversary \(\Adv \)
\(\PID := A\), \(\Ps := \bits \cup \{A,Z\}\), \(\admits := \Stdpid \cup \Apid \cup \Zpid \), \(\uses := \{(\Zenv ,\serves )\}\), \(\pars := \none \)