3 ms·
You want verifiable builds, but that different algorithms should produce the same result. Is this even possible? And wouldn't it be easier to just verify the
by greenhouse_gas 9y ago
You want verifiable builds, but that different algorithms should produce the same result.
Is this even possible?
And wouldn't it be easier to just verify the binary manually?
- dllthomas 9y agoI've not been able to confidently follow what the parent wrote, but if they're discussing diverse double compiling, the way it works is that you compile the same source code (S) with a bunch of different compilers (C0...CN). This gives you a bunch of executables (E0...EN) which are the compilation of S. Because C0...CN are different compilers, E0...EN will probably differ, bitwise. But because behavior should depend only on the source code, if those compilers are sufficiently correct E0...EN should behave the same. So if you compile S with E0...EN to get (say) E0'...EN', those should all be bitwise identical.
- DannyB2 9y agoYou said it way better than I did. Also doing cross-compilation on different platforms should produce identical binaries, are at least identical behaving binaries.
- dwheeler 9y agoThat's right. Details, demos, and formal proofs about diverse double compiling (DDC) can be found here on my web page: https://www.dwheeler.com/trusting-trust/ https://www.dwheeler.com/trusting-trust/