Peerplays is a provably fair peer-to-peer gaming network that will be going live on May 30, 2017. Its back-end infrastructure is a Graphene blockchain that utilizes delegated proof of stake (DPOS). Witnesses on this network validate blocks, and also independently report on various off-chain events in a timely manner.
Any witness can verify whether a binary event occurred (e.g. “Did FC Barcelona beat AC Milan by greater than 2 goals?”). If sufficient witnesses verify this event, then the blockchain code will consider the event to be resolved.
However, how should the operator of a witness verify the truth of an event? The gold standard would be for an operator of a witness to personally witness each of the various off-chain events, and to then report about them on the chain. Barring this difficult feat, various alternatives are possible. Before discussing the proposals, some terms will be defined.
Although various sources could be used to determine whether any event did occur, any particular report might not be attributable to a firsthand witness of the actual event. Therefore, the following definitions will be used when discussing the criteria for verifying any particular event.
Authoritative source is an entity that regulates the conduct and/or scoring of an event (e.g. sports league, league official, etc.)
Authenticated source is an entity whose identity is known in some manner (e.g. sports league web site, news site, or eyewitness, etc.) and whose report can be attributed to them by some means (e.g. a cryptographically secure connection to their website; observing the source on radio or television or in-person; etc.)
The distinction between these two characteristics is necessary because a source may be neither authoritative nor authenticated.
When reporting on any particular event, I propose that at least one of the following criteria should be used when verifying the truth of any particular event:
(a) a single authoritative and authenticated source reporting on an event;
(b) at least two non-authoritative yet authenticated sources reporting on an event;
(c) at least one non-authoritative and authenticated source and two unauthenticated sources reporting on an event;
(d) a stricter criterion that is determined by the Peerplays Blockchain Standards Association (PBSA).
If any one of these criteria cannot be met, then a witness should not verify an event.
Notice that I do not list any option for which unauthenticated sources alone should be used to verify an event. This is because it is possible for the transmittal of the information to be manipulated between the source and the witness.
Do you see any problems with these criteria in principle? Are there better alternatives? Please share your thoughts below.