Flakes fixes this for Nix, it ensures builds are truly reproducible by capturing all the inputs (or blocking them).
Flakes, then, run in a pure evaluation mode, meaning you don't have access to stuff like the system triple, the current time, or env vars and all fetching functions require a hash.