I didn't read it as suggesting that the source code itself would be secret, only that the code would act on secret data, like private keys.
> non-deterministic (e.g. invokes random)
I'm not sure how that works either, since there's no way to prove that the "random" number you generated off-chain really is random. It's possible to do random number generation among multiple mutually-untrusting parties already, though, just by getting them to each pick a random number, and publishing its hash, then (after receiving all the hashes), revealing the input random numbers and XORing them all together.
> or async (pulls data outside the blockchain).
I assume the data from outside the blockchain has to have signatures on, so that the smart contract on the blockchain can verify that this data is legitimate. Again I'm not sure why that needs zero-knowledge.
I didn't read it as suggesting that the source code itself would be secret, only that the code would act on secret data, like private keys.
> non-deterministic (e.g. invokes random)
I'm not sure how that works either, since there's no way to prove that the "random" number you generated off-chain really is random. It's possible to do random number generation among multiple mutually-untrusting parties already, though, just by getting them to each pick a random number, and publishing its hash, then (after receiving all the hashes), revealing the input random numbers and XORing them all together.
> or async (pulls data outside the blockchain).
I assume the data from outside the blockchain has to have signatures on, so that the smart contract on the blockchain can verify that this data is legitimate. Again I'm not sure why that needs zero-knowledge.