# 3.1. Proof of publication

Client-side-validation is the paradigm proposed by Peter Todd in 2016. Its core idea is the fact that the validation of a state in a distributed system doesn’t need to be performed globally by all parties participating a decentralized protocol; instead, only parties invloved in a specific state transition need to do the validation. With this approach, the state transition, instead of being published into a global network, is convolved into a short cryptographic commitment (for instance, by utilizing cryptographic hash functions), which needs to become a part of a certain “proof-of-publication” medium, exhibiting three main qualities:

1. Proof of receipt: ability to proof that each member of some *audience* has received a message (like commitment); “a real world analogy is a legal notice being published in a major newspaper - we can assume any subscriber received the message and had a chance to read it.” - writes Peter Todd \[…],
2. Proof of non-publication: ability to proof that some specific message was never published; “Extending the above real world analogy the court can easily determine that a legal notice was not published when it should have been by examining newspaper archives. (or equally, *because* the notice had not been published, some action a litigant had taken was permissible)” \[ibid]
3. Proof of membership: ability to proof that some member indeed participates in some audience. “In the case of our newspaper analogy because we know what today’s date is, and we trust the newspaper never to publish two different editions with the same date we can be certain we have searched all possible issues where the legal notice may have been published.” \[ibid]

The first client-side-validation system was the OpenTimeStamps protocol, again, proposed and developed by Peter Todd in 2014-2016


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://black-paper.rgb.tech/consensus-layer/3.-client-side-validation/3.1.-proof-of-publication.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
