I really don't understand that some people are still trying to sell blockchain-based electronic voting. But anyway, I just wanted to tell a fun anecdote about the impossibility of making an obfuscater that works for any arbitrary program, or rather, since this is trivial for Quines [1], that it is possible to protect any program from obfuscation by making a simili-Quine of it. Given a program P, it is possible to construct a program Q(P) that takes an additional optional boolean input that defaults to false and which, when this additional input is false (i.e., by default), behaves exactly like the program P, but when called with the additional input set to true, acts as a Quine instead of executing P, thus outputs the source code for Q(P) (which is constructed to includes P's source code). This is guaranteed to work basically because an obfuscater cannot change the behavior of a program without breaking indistinguishability. I remember having a lot of fun working on that as an undergrad a long time ago [2].
p4bl0•15m ago
[1] https://en.wikipedia.org/wiki/Quine_(computing)
[2] https://eprint.iacr.org/2011/497.pdf