ProofProtocol™
Proof Protocol / non-blocking-valid-proof

PP-SPEC-032: The Non-Blocking Requirement and the Valid-Proof Conditions

Abstract

This document states, at the level of principle, two requirements a system must meet to produce a proof of efficacy that is both trustworthy and deployable: it must be non-blocking with respect to the tested party's production, and its verdict must satisfy the valid-proof conditions. It distinguishes these two properties, which are frequently conflated. A system can be non-blocking and still fail to be independent. This specification defines the requirements only. It does not specify the mechanism by which they are met.

1. Scope

This specification is doctrine. It defines requirements and the distinctions between them. It deliberately does not define topology, data formats, scoring procedures, capture mechanisms, or any other means of implementation. Those are out of scope here and are addressed elsewhere.

The requirements below are stated using the key words MUST, MUST NOT, SHOULD, and MAY as described in RFC 2119.

2. Definitions

3. The non-blocking requirement

A proof system MUST NOT sit in the tested party's production path as a precondition of production. Production MUST proceed independently of the state of verification. If verification is delayed, degraded, or unavailable, production MUST continue unaffected.

Rationale: a control that halts production until its own verification catches up trades the tested party's availability for the verifier's bookkeeping. This is not acceptable to operating organizations and is not required in order to produce a valid proof. Out-of-band verification carries no such cost, because it was never a gate.

This requirement concerns availability only. It says nothing about whether the resulting verdict is trustworthy. See Section 5.

4. The valid-proof conditions

A verdict is a valid proof only if all of the following hold. If any one fails, the result MUST be rendered as an explicit invalid result, never as a passing verdict and never as a silent omission.

  1. Independent sealer. The verdict MUST be sealed by an independent sealer. The tested party MUST NOT seal, or control the sealing of, a verdict about itself.
  2. Pre-forensic capture. The evidence underlying the verdict MUST be captured faithfully at the moment of execution. The tested party MUST NOT be positioned to reshape that evidence before it is sealed.
  3. Independent determination. The determination of the outcome MUST be made independently of the tested party. The tested party MAY define the surface of what is tested. The tested party MUST NOT define, in whole or in part, the criteria by which the outcome is judged.

Condition 3 admits a legitimate role for the tested party: it may say what its product is and what interface it exposes, so that a proof can reach it and so that the tested party will consent to be tested. It may not say what counts as passing.

5. The availability-independence distinction

Non-blocking (Section 3) and valid (Section 4) are independent properties. Conflating them is an error this specification exists in part to prevent.

Therefore a claim of non-blocking operation MUST NOT be presented, or reasonably understood, as a claim of independence. Availability and independence are separate axes and MUST be claimed separately.

6. The required pairing

A conformant proof system MUST be non-blocking on the tested party's production (Section 3) and MUST be fail-closed on the verdict (Section 4). Both. Neither alone is sufficient.

The pairing yields both: production is never held hostage to verification, and the verdict is never rendered when its conditions are not met.

7. Contrast with blocking and self-attesting patterns

Two design patterns fail the requirements above and are named here as patterns, not as organizations.

A system may exhibit both patterns at once. Curing one does not cure the other.

8. Conformance

A system conforms to this specification if and only if:

  1. It meets the non-blocking requirement of Section 3.
  2. Every verdict it renders meets all valid-proof conditions of Section 4, or is rendered as an explicit invalid result.
  3. It does not present non-blocking operation as independence (Section 5).
  4. It satisfies the required pairing of Section 6.

Conformance is a property of the system's requirements, not of any particular implementation of them.

9. What this specification does not define

This specification does not define, and conformance does not require any particular choice of:

These are matters of implementation and are addressed separately. Their omission here is deliberate.

License

This work is licensed under the Apache License 2.0 License (Apache License 2.0). You may copy and redistribute this document in any medium or format for any purpose, provided you give appropriate credit and do not distribute modified material.

View source on GitHub