As part of the implementation of our zero-knowledge contingent service payment protocol, we produced an efficient boolean circuit for SHA-256. The format of our circuit is the same as the one used in the Bristol circuits. The Bristol page does contain a SHA-256 circuit. However, our circuit was optimized to have far fewer AND gates. We share it here as we think it may be useful in general.
File | No. ANDs | No. XORs | No. INVs | |
Our circuit | sha256Final.txt | 22,272 | 91,780 | 2,194 |
Bristol circuit | sha-256.txt | 90,825 | 42,029 | 103,258 |
File | No. ANDs | No. XORs | No. INVs | |
64 Bit Adder | GoldfederAdder64_v2.txt | 63 | 251 | 0 |
32 Bit Adder | GoldfederAdder32_v2.txt | 31 | 123 | 0 |