Is it possible for one party to encrypt some data and have another party (unknown to the first party) view that original data if a certain condition is met?
I cannot find any information about this despite numerous searches. I might have the terminology wrong, or perhaps… it is impossible!
I read about zk-SNARKS, and as I understand it, this technique is used to prove a computation on an encrypted value or perhaps show the opening of some commitment in a set.
I thought perhaps you could set a condition in a circuit. Say (for simplicity), using a (public) input integer x less than 100 (or maybe part of a set or something), you could print secret data y. But that would mean the encrypting party would have to produce an unsatisfied partial SNARK somehow. Then the person that wants to attempt decryption would have to input their integer later.
I guess it’s not a great example unless the input is provably random, but is there some technique to do this? I only mention SNARKS as it’s the only thing I could think of where you can have arbitrary conditions like this. In reality, I was thinking of something where the data revealed could be any size, like a huge text file or something other than an integer y.