What is "witness encryption"? I recently skimmed over tho papers on time-lock encryption:


“Time-release Protocol from Bitcoin and Witness Encryption for SAT” by Liu, Garcia, and Ryan
“How to Build Time-Lock Encryption” by Jager


To get the data released on a specific point in time they'd extract some information from the blockchain, which can only be obtained if the blockchain has reached a certain size) and use this as a witness for witness encryption:

Is there any "easy" instance of witness encryption or can it be otherwise "simply" explained or visualized?



Requested level and amount of detail: Enough to understand how easy versions work and what they actually do. Knowledge of cryptographic standard primitives (hash, cipher, AE, …) can be assumed if neccessary.
In very short:

Assume you have an NP problem, stated as some condition to be met. Since it is a NP condition, the computational complexity to find a satisfying input (called the witness for the language) grows quite fast.

The setup of such an encryption scheme is based on a multilinear map (a generalization of a bilinear map, but with arbitrary many inputs). And then you only need to know the NP statement to encrypt something, but you need a witness of the according length to decrypt the ciphertext again.

The actual construction is really complex, and I don't think you can explain that in easy terms. But it is based on multilinear maps, and look at DrLecters answer in "What are Cryptographic Multi-linear Maps?" for more information on that. Current constructions build on fully homomorphic encryption.