You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
EPOCH_LIMIT_PUBLIC: Public epoch-limit key generated from EPOCH_LIMIT_SECRET
89
-
EPOCH_LIMIT_PROOF: A bytestring representing a zero-knowledge proof of knowledge of EPOCH_LIMIT_SECRET.
89
+
EPOCH_LIMIT_PROOF: A bytestring representing a zero-knowledge proof of
90
+
knowledge of EPOCH_LIMIT_SECRET.
90
91
Output:
91
92
REQUEST: Bytestring containing EPOCH_LIMIT_PUBLIC and EPOCH_LIMIT_PROOF
92
93
```
@@ -116,7 +117,8 @@ Inputs:
116
117
SITE_PUBLIC: Public key generated from SITE_SECRET
117
118
TOKEN: Bytestring containing VALUE and SIG
118
119
Output:
119
-
VALID: Boolean indicating whether TOKEN was issued using EPOCH_LIMIT_SECRET and SITE_PUBLIC.
120
+
VALID: Boolean indicating whether TOKEN was issued using EPOCH_LIMIT_SECRET
121
+
and SITE_PUBLIC.
120
122
```
121
123
122
124
#### Proof Generation Algorithm
@@ -129,14 +131,21 @@ Inputs:
129
131
SITE_PUBLIC: Public key generated from SITE_SECRET
130
132
TOKEN: Bytestring containing VALUE and SIG
131
133
BOUND: Integer which we want to prove VALUE is less than or equal to
132
-
EPOCH_LENGTH: Integer in seconds representing the length of a given epoch for rate limiting purposes.
133
-
EPOCH_LIMIT: Integer between 0 and 2^17 exclusive representing the maximum tokens possible to issue in a given epoch.
134
+
EPOCH_LENGTH: Integer in seconds representing the length of a given epoch
135
+
for rate limiting purposes.
136
+
EPOCH_LIMIT: Integer between 0 and 2^17 exclusive representing the maximum
137
+
tokens possible to issue in a given epoch.
134
138
COUNTER: Amount of proofs issued in current epoch (excluding this one).
135
139
PROOF_ID: String used to trace this specific proof generation request.
136
140
Intermediates:
137
141
EPOCH: The current epoch according to EPOCH_LENGTH and the current time.
138
-
EPOCH_LIMIT_RANDOM: Output of a VRF seeded by EPOCH_LIMIT_SECRET and applied to EPOCH and COUNTER.
139
-
T_PROOF: Non-Interactive Zero-Knowledge Proof that TOKEN was issued using EPOCH_LIMIT_SECRET and SITE_PUBLIC, that VALUE <= BOUND, that EPOCH_LIMIT_RANDOM was properly calculated, that COUNTER < EPOCH_LIMIT, that the current time is within EPOCH, and of PROOF_ID's value.
142
+
EPOCH_LIMIT_RANDOM: Output of a VRF seeded by EPOCH_LIMIT_SECRET and applied
143
+
to EPOCH and COUNTER.
144
+
T_PROOF: Non-Interactive Zero-Knowledge Proof that TOKEN was issued using
145
+
EPOCH_LIMIT_SECRET and SITE_PUBLIC, that VALUE <= BOUND, that
146
+
EPOCH_LIMIT_RANDOM was properly calculated, that COUNTER <
147
+
EPOCH_LIMIT, that the current time is within EPOCH, and of
148
+
PROOF_ID's value.
140
149
Output:
141
150
PROOF: Bytestring containing EPOCH_LIMIT_RANDOM and T_PROOF.
142
151
```
@@ -150,13 +159,19 @@ Inputs:
150
159
SITE_SECRET: Server's private key
151
160
PROOF: Bytestring containing EPOCH_LIMIT_RANDOM and T_PROOF.
152
161
BOUND': Integer which we want to prove VALUE is less than or equal to
153
-
EPOCH_LENGTH: Integer in seconds representing the length of a given epoch for rate limiting purposes.
154
-
EPOCH_LIMIT: Integer between 0 and 2^17 exclusive representing the maximum tokens possible to issue in a given epoch.
162
+
EPOCH_LENGTH: Integer in seconds representing the length of a given epoch
163
+
for rate limiting purposes.
164
+
EPOCH_LIMIT: Integer between 0 and 2^17 exclusive representing the maximum
165
+
tokens possible to issue in a given epoch.
155
166
PROOF_ID: String used in generating PROOF to demonstrate provenance.
156
167
Intermediates:
157
-
EPOCH: The current epoch according to EPOCH_LENGTH and the current time. The server may decide to try multiple EPOCHs (for example, the ones immediately before or after) to prevent issues around EPOCH boundaries.
168
+
EPOCH: The current epoch according to EPOCH_LENGTH and the current time. The
169
+
server may decide to try multiple EPOCHs (for example, the ones
170
+
immediately before or after) to prevent issues around EPOCH
171
+
boundaries.
158
172
Output:
159
173
VALID: Boolean indicating whether or not PROOF is valid.
0 commit comments