See the overview by 0xParc
Vitalik's description (quotes below) of extremely powerful types of cryptography that will revolutionize certain types of software.
Specifically ZK-Snarks "allow a user to prove any arbitrary statement about data that they hold, in a way that the proof (i) is easy to verify, and (ii) does not leak any data other than the statement itself... But ZK-SNARKs have an important limitation: you need to know the data to make proofs about it. Each piece of state in a ZK-SNARK application must have a single "owner", who must be around to approve any reads or writes to it."
"FHE lets you do any computation on encrypted data without seeing the data. This lets you do computations on a user's data for the user's benefit while keeping the data and the algorithm private... But FHE too has its limits: any FHE-based technology still requires someone to hold the decryption key."
"Indistinguishability obfuscation lets you create an "encrypted program" that performs an arbitrary computation, in such a way that all internal details of the program are hidden."