BLOQUE II: Documentación técnica
4. Estudio del Entorno de Desarrollo y Explotación
Next to formalizing network properties, we are interested in comparing the case of dynamic communication with possible errors to the “reliable” case: the DC graphs. This is because there are some known results about the success of protocols for DC graphs [29]. Recall for instance that LNS on DC graphs is characterized by the set of initial DC graphs Gthat are sun graphs. The question is then raised whether such results can be extended when unreliability may occur.
In order to compare completeness of dynamic networks with unreliable agents (DCU graphs) to completeness in the reliable case (DC graphs), we definereliable counter-graphs andreliable subgraphs. The idea behind the first is to treat all the agents in the DCU graph as if they were reliable. This means that the structure of the network remains roughly the same but the agent types are changed. The reliable subgraph ofG is the DCU graphG restricted to the reliable agents. Clearly, in this case the structure does change because all the unreliable agents
aare deleted from the network and with it the connectionsaN bandbN afor some other agentb.
Definition 5.2.1. [Reliable Counter-graph G∗] Let G = (A, R, f, N, S) be a
DCU Graph. Then we define its reliable counter-graph by G∗= (A∗, N∗, S∗)
withA∗=A,N∗=N andSa∗=Xa∪Ya.
Definition 5.2.2. [Reliable Subgraph G|R] LetG= (A, R, f, N, S)be a DCU
Graph. Then we define its reliable subgraph by G|R = (A|R, N|R, S|R) with
A|R = R, N|R = {(a, b) ∈ N | a, b ∈ R} and (S|R)a = (Xa ∪Ya)|R = {b ∈
Xa∪Ya | b∈R}.
A sanity check tells us that indeed bothG∗ andG|R are DC graphs. Note that agentsbthat are considered unreliable (but may in fact be reliable) by an agentain G(i.e.b∈Za) will not be reachable fromaby the secret relationS∗
inG∗ nor byS|R inG|R. This makes sense whenb is indeed unreliable for the case ofG|R. However, when agentbis in fact reliable, this might be somewhat strange. In this thesis, as we only consider unreliability in a simple form of the alternating bluffer, we do not have to care about this as it can never happen that
Table 5.1: Table of the relations between completeness
an agent is wrongly accused of being unreliable. This is because the only way for an agent to consider someone unreliable is when contrary information about the secret this agent is available. Yet, this can only happen when the agent herself spreads contrary information about her secret. Still, this may require a different description ofG∗ andG|
R in the case that higher orders of lying are allowed (“lying about someone else’s secret”).
It is clear becauseG∗ andG|R are DC graphs that the definitions of com- pleteness and strong completeness coincide.
We have the following relations betweenG, its reliable counter-graphG∗ and its reliable subgraphG|R.
Proposition 5.2.3. 1) If G is an initial DCU graph, then G∗ and G|R are
initial DC graphs. Additionally, 2) if G∗ is an initial DC graph, then G is an initial DCU graph. 3) If the reliable counter-graph G∗ of DCU graphGis complete, then so is G. 4) A DCU graph G is complete restricted to reliable agents if and only if its reliable subgraph G|R is complete. Also 5) if a DCU
graphGis complete, then so is G|R.
Proof. 1) and 2) follow from the fact Definitions 5.2.1 and 5.2.2 of reliable counter- and reliable subgraph: if G is an initial DCU graph, then for each
a∈Awe have thatS∗
a =Xa∪Ya ={a}and for eacha∈Rit is the case that (S|R)a= (Xa∪Ya)|R={a}|R={a}. Clearly the first of the two also holds in the other direction. 3) is a consequence of the fact that ifG∗ is complete, we have that for alla∈A∗ we have thatSa∗=Xa∪Ya =A∗=A⊇R. HenceG is complete. 4) and 5) follow from the fact thatG|R is G without unreliable agents. If all the reliable agentsrinGknow the secrets of the reliable agents (i.e.R⊆Xa∪Ya), then clearlyG|R is complete and the other way around. And if all agents know the secrets of the reliable agents,G|R is complete for similar reasons.
Haskell Code
We write a code for changing a DCU graph into its reliable counter- or subgraph. Note that these will have the same type as the DCU graphs: Table.
- - t u r n a g r a p h i n t o a r e l i a b l e counter - g r a p h r e l i a b l e C o u n t e r G r a p h :: T a b l e - > T a b l e r e l i a b l e C o u n t e r G r a p h [] = [] r e l i a b l e C o u n t e r G r a p h ((a, (aN, (aX, aY, _aZ) , _aType, _ a P r o p) ) :r e s t) = (a, (aN, (aX, aY, []) , R e l i a b l e, N o n e) ) : r e l i a b l e C o u n t e r G r a p h r e s t - - t u r n a g r a p h i n t o a r e l i a b l e s u b g r a p h r e l i a b l e S u b G r a p h :: T a b l e - > T a b l e r e l i a b l e S u b G r a p h t a b l e = rSG t a b l e w h e r e rSG [] = [] rSG ((a, (aN, (aX, aY, _aZ) , aType, a P r o p) ) :r e s t) = if a T y p e == R e l i a b l e && a P r o p == N o n e
t h e n (a, (new aN, (new aX, new aY, []) , aType, a P r o p) ) : rSG r e s t
e l s e rSG r e s t
w h e r e
new :: [A g e n t] - > [A g e n t]
new = f i l t e r (\x - > x ‘elem‘ r e l i a b l e t a b l e)