Safeguard
Supply Chain•

Reproducible builds or SLSA provenance: which comes first?

Reproducible builds let anyone verify an artifact by rebuilding. SLSA provenance records how it was built. Different questions, so pick an order.

Safeguard Security Team
4 min read

Start with pinned inputs and a build record, then add provenance from your CI platform, then work toward reproducible output where your tools allow it. Provenance says how and where an artifact was built. Reproducibility lets a third party check the claim by rebuilding. They solve different problems.

Two different questions

Provenance asks: who built this, with what process, from which inputs? The SLSA specification describes provenance in exactly those terms. Its build track has levels. Build level 1 requires that provenance exists, level 2 requires signed provenance generated by a hosted build platform, and level 3 requires a hardened build platform. The descriptions say level 1 helps against mistakes and documents the build, level 2 addresses tampering after the build, and level 3 addresses tampering during the build.

Reproducibility asks: if I build the same source with the same environment and instructions, do I get the same bytes? The reproducible-builds project defines it as any party being able to recreate bit-by-bit identical copies of the specified artifacts, verified by comparison, usually with cryptographic hashes.

One is a statement you read and trust at some level. The other is something you can test yourself.

Comparison

ProvenanceReproducible build
Main outputA signed or recorded statement about the buildIdentical bytes on a rebuild
Who checksConsumer verifies the statement against expectationsAnyone rebuilds and compares hashes
Depends onTrust in the build platformDeterministic tools and pinned inputs
Typical effort for a small teamLow if the CI platform supports itMedium to high, varies by language
Protects againstMistakes and tampering, depending on levelA compromised build step, because a second build would differ

A sensible order

  1. Pin inputs. Lockfiles, toolchain versions, base image digests. This helps both goals and costs little.
  2. Write a build record. Source commit, inputs and output hashes, kept with the artifact.
  3. Turn on provenance if your CI platform offers it, and check what level the platform's documentation says it meets. Do not describe your project as meeting a level unless you have checked the requirements.
  4. Aim at reproducible output for the artifacts that matter most, and compare two builds on different machines.
  5. Consider an independent rebuild for releases that need the highest trust.

Why not skip to reproducible

It is attractive because identical bytes are strong evidence. But the work depends heavily on your language and tools. Some ecosystems make it easy, and some embed timestamps and paths deep in outputs. A small team that spends three months chasing a hash is not necessarily safer than one that pinned inputs and published provenance in a week.

Why not stop at provenance

Provenance is as trustworthy as the platform that produced it. Reproducibility removes that single point of trust, because a second party can check without taking your word. That is the reason to keep it on the roadmap.

Where Safeguard fits

Safeguard is not a build platform or a provenance generator. It covers the dependency side: SBOMs, dependency scanning and policies that gate what enters a build. Free scan: gold.safeguard.sh/scan.

Quick check

Can I have provenance without reproducibility?

Yes. Many projects do. You are then trusting the platform that generated the provenance.

Can I be reproducible without provenance?

Yes. Anyone can verify by rebuilding, although provenance still helps tell people where to look.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.