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
- Intentional divergence (malicious or accidental)
238
+
239
+
**The hash question isn't abstract.** When an auditor asks "does my local build produce the same hash as production?"—they're really asking: *"Is my local model of the system actually the production system, or just a similar-looking approximation?"*
240
+
241
+
### What Reproducibility Actually Provides
242
+
243
+
Reproducibility closes the behavioral gap. If:
244
+
- Auditor builds from source → gets hash X
245
+
- Production attestation shows → hash X
246
+
247
+
Then the auditor's local testing environment **is** the production system. Their conclusions apply. The audit is meaningful.
248
+
249
+
Without reproducibility, the auditor has two options:
250
+
1.**Trust the developer's build** — "I audited something similar, probably fine"
251
+
2.**Pull the production image and diff manually** — Tedious, error-prone, incomplete
252
+
253
+
Neither is satisfactory. Reproducibility makes the audit rigorous.
254
+
255
+
### The Smart Contract Analogy
256
+
257
+
Smart contracts solved this problem:
258
+
- Source code on Etherscan
259
+
- Compiler version specified
260
+
- Anyone can recompile and verify the bytecode matches on-chain codehash
261
+
- DYOR is actually possible
262
+
263
+
TEE apps need the same pattern. The attestation is like the on-chain codehash. But without reproducible builds, there's no way to connect it back to auditable source.
264
+
265
+
---
266
+
267
+
**Next:**[01a-reproducible-builds](../01a-reproducible-builds) shows how developers can provide the evidence auditors need—and protect against bitrot that breaks verification over time.
268
+
269
+
---
270
+
162
271
## Next Steps
163
272
273
+
-[01a-reproducible-builds](../01a-reproducible-builds): Make builds verifiable for auditors
164
274
-[02-kms-and-signing](../02-kms-and-signing): Derive persistent keys and sign messages
165
275
-[03-gateway-and-tls](../03-gateway-and-tls): Custom domains and TLS
0 commit comments