Motivated by distributed implementations of game-theoretical algorithms, we study symmetric process systems and the problem of attaining common knowledge between processes. We formalize our setting by defining a notion of peer-to-peer networks(*) and appropriate symmetry concepts in the context of Communicating Sequential Processes (CSP), due to the common knowledge creating effects of its synchronous communication primitives. We then prove that CSP with input and output guards makes common knowledge in symmetric peer-to-peer networks possible, but not the restricted version which disallows output statements in guards and is commonly implemented. (*) Please note that we are not dealing with fashionable incarnations such as file-sharing networks, but merely use this name for a mathematical notion of a network consisting of directly connected peers "treated on an equal footing", i.e. not having a client-server structure or otherwise pre-determined roles.)
Our original motivation comes from the distributed implementation of gametheoretical algorithms (see e.g. [9] for a discussion of the interface between game theory and distributed computing). Two important issues in the domain of game theory have always been knowledge, especially common knowledge, and symmetry between the players, also called anonymity. We will describe these issues and the connections to distributed computing in the following two paragraphs, before we motivate our choice of process calculus and the overall goal of the paper.
Common Knowledge and Synchronization. The concept of common knowledge has been a topic of much research in distributed computing as well as in game theory. When do processes or players “know” some fact, mutually know that they know it, mutually know that they mutually know that they know it, and so on ad infinitum? And how crucial is the difference between arbitrarily, but finitely deep mutual knowledge and the limit case of real common knowledge?
In the area of distributed computing, the classical example showing that the difference is indeed essential is the scenario of Coordinated Attack, first considered by [8]. The game-theoretical incarnation of the underlying issue is the Electronic Mail Game [23,17].
The basic insight of these examples is that two agents that communicate through an unreliable channel can never achieve common knowledge, and that their behavior under finite mutual knowledge can be strikingly different.
These issues are analyzed in detail in [5], in particular in a separately published part [10], including a variant where communication is reliable, but message delivery takes an unknown amount of time. Even in that variant, it is shown that only finite mutual knowledge can be attained.
However, in a synchronous communication act, sending and receiving of a message is, by definition, performed simultaneously. In that way, the agents obtain not only the pure factual information content of a message, but the sender also knows that the receiver has received the message, the receiver knows that the sender knows that, and so on ad infinitum. The communicated information immediately becomes common knowledge.
Attaining common knowledge and achieving synchronization between processes are thus closely related. Furthermore, synchronization is in itself an important subject, see e.g. [24].
Symmetry and Peer-to-peer Networks. In game theory, it is traditionally a fundamental assumption that players are anonymous and treated on an equal footing, in the sense that their names do not play a role and no single player is a priori distinguished from the others [19,18].
In distributed computing, too, this kind of symmetry between processes is often a desideratum. Reasons to avoid a predetermined assignment of roles to processes or a centralized coordinator include fault tolerance, modularity, and load balancing [1].
We will consider symmetry on two levels. Firstly, the communication network used by the processes should be symmetric to some extent in order not to discriminate single processes a priori on a topological level; we will formalize this requirement by defining peer-to-peer networks. Secondly, processes in symmetric positions of the network should have equal possibilities of behavior; this we will formalize in a semantic symmetry requirement on the possible computations.
Communicating Sequential Processes (CSP). Since we are interested in synchronization and common knowledge, a process calculus which supports synchronous communication through primitive statements clearly has some appeal. We will focus on one of the prime examples of such calculi, namely CSP, introduced in [11] and revised in [12,25]. It allows synchronous communication by means of deterministic statements on the one hand and non-deterministic alternatives on the other hand, where the communication statements occur in guards.
Furthermore, it has been implemented in various programming languages, among the best-known of which is Occam [13]. We thus have at our disposal a theoretical framework and programming tools which in principle could give us synchronization and common knowledge “for free”.
However, symmetric situations are a reliable source of impossibility results [6]. In particular, the restricted dialect CSP in which was, for implementation issues [4], chosen to be the theoretical foundation of Occam is provably [3] less expressive than the general form, called CSP i/o . CSP in has been used throughout the history of Occam, up to and including its latest variant Occam-π [27]. This generally tends to be the case for implementations of CSP, one notable exception being a very recent extension [28] of JCSP2 to CSP i/o . Some of the resulting restrictions of CSP in can in practice be overcome by using helper processes such as buffers [14]. Our goal therefore is to formalize the concepts mentioned above, extend the notion of peer-to-peer networks by allowing helper processes, and
This content is AI-processed based on open access ArXiv data.