aboutsummaryrefslogtreecommitdiff
path: root/doc/claimant.md
blob: b98f2ad704d4f82950b4c503da5e5f9f4224f1cf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# Claimant model
## **System<sup>CHECKSUM</sup>**
System<sup>CHECKSUM</sup> is about the claims made by a data publisher.
* **Claim<sup>CHECKSUM</sup>**:
	_I, data publisher, claim that the data_:
	1. has cryptographic hash X
	2. is produced by no-one but myself
* **Statement<sup>CHECKSUM</sup>**: signed checksum<br>
* **Claimant<sup>CHECKSUM</sup>**: data publisher<br>
	The data publisher is a party that wants to publish some data to an
	end-user.
* **Believer<sup>CHECKSUM</sup>**: end-user<br>
	Belief is based on seeing a valid Statement<sup>CHECKSUM</sup>.
* **Verifier<sup>CHECKSUM</sup>**: data publisher<br>
	The data publisher tries to detect unwanted statements.
* **Arbiter<sup>CHECKSUM</sup>**:<br>
    There's no official body.  Invalidated claims would affect reputation.

System<sup>CHECKSUM\*</sup> can be defined to make more specific claims.  Below
is a reproducible builds example.

### **System<sup>CHECKSUM-RB</sup>**:
System<sup>CHECKSUM-RB</sup> is about the claims made by a _software publisher_
that makes reproducible builds available.
* **Claim<sup>CHECKSUM-RB</sup>**:
	_I, software publisher, claim that the data_:
	1. has cryptographic hash X
	2. is the output of a reproducible build for which the source can be located
	using X as an identifier
* **Statement<sup>CHECKSUM-RB</sup>**: Statement<sup>CHECKSUM</sup>
* **Claimant<sup>CHECKSUM-RB</sup>**: software publisher<br>
* **Believer<sup>CHECKSUM-RB</sup>**: end-user<br>
	Belief is based on seeing a valid Statement<sup>CHECKSUM-RB</sup>.
* **Verifier<sup>CHECKSUM-RB</sup>**: any interested party<br>
	These parties try to verify the above claims.  For example:
	* the software publisher itself (_"has my identity been compromised?"_)
	* rebuilders that check for locatability and reproducibility
* **Arbiter<sup>CHECKSUM-RB</sup>**:<br>
    There's no official body.  Invalidated claims would affect reputation.

## **System<sup>CHECKSUM-LOG</sup>**:
System<sup>CHECKSUM-LOG</sup> is about the claims made by a _log operator_.
It adds _discoverability_ into System<sup>CHECKSUM\*</sup>.  Discoverability
means that Verifier<sup>CHECKSUM\*</sup> can see all
Statement<sup>CHECKSUM</sup> that Believer<sup>CHECKSUM\*</sup> accept.

* **Claim<sup>CHECKSUM-LOG</sup>**:
	_I, log operator, make available:_
	1. a globally consistent append-only log of Statement<sup>CHECKSUM</sup>
* **Statement<sup>CHECKSUM-LOG</sup>**: signed tree head
* **Claimant<sup>CHECKSUM-LOG</sup>**: log operator<br>
   Possible operators might be:
	* a small subset of data publishers
	* members of relevant consortia
* **Believer<sup>CHECKSUM-LOG</sup>**:
		Believer<sup>CHECKSUM\*</sup> and
		Verifier<sup>CHECKSUM\*</sup><br>
	Belief is based on two factors:
	1. seeing a valid Statement<sup>CHECKSUM-LOG</sup>
	2. seeing a number of valid Statement<sup>CHECKSUM-WITNESS</sup> from
	independent instances of System<sup>CHECKSUM-WITNESS</sup>.
* **Verifier<sup>CHECKSUM-LOG</sup>**: System<sup>CHECKSUM-WITNESS</sup><br>
	Witnesses verify the log's append-only property from their own local
	vantage point(s).
* **Arbiter<sup>CHECKSUM-LOG</sup>**:<br>
	There is no official body.  The ecosystem at large should stop using an
	instance of System<sup>CHECKSUM-LOG</sup> if cryptographic proofs of log
	misbehavior are preseneted by some Verifier<sup>CHECKSUM-LOG</sup>.

## **System<sup>CHECKSUM-WITNESS</sup>**:
System<sup>CHECKSUM-WITNESS</sup> is about making the claims of a log operator
_trustworthy_.
* **Claim<sup>CHECKSUM-WITNESS</sup>**:
	_I, witness, claim that_:
	1. System<sup>CHECKSUM-LOG</sup> provides a locally consistent append-only
	log
* **Statement<sup>CHECKSUM-WITNESS</sup>**: signed tree head
* **Claimant<sup>CHECKSUM-WITNESS</sup>**: third party<br>
	Examples of parties that may take on this role include:
	* members of relevant consortia
	* non-profits and other reputable organizations
	* security enthusiasts and researchers
	* log operators (cross-ecosystem)
	* monitors (cross-ecosystem)
	* a small subset of data publishers (cross-ecosystem)
* **Believer<sup>CHECKSUM-WITNESS</sup>**:
		Believer<sup>CHECKSUM\*</sup> and
		Verifier<sup>CHECKSUM\*</sup><br>
	Belief is based on seeing a valid Statement<sup>CHECKSUM-WITNESS</sup>.
* **Verifier<sup>CHECKSUM-WITNESS</sup>**: n/a <br>
	Witnesses are trusted parties.  Security is based on _strength in numbers_.
* **Arbiter<sup>CHECKSUM-WITNESS</sup>**:<br>
	There is no official body.  Invalidated claims would affect reputation.