Overview#Indistinguishability Obfuscation (IO) is a Cryptographic Primitive that provides a formal notion of program obfuscation.
Informally, obfuscation hides the implementation of a program while still allowing users to run it.
A candidate construction of Indistinguishability Obfuscation with provable security under concrete Computational Hardness Assumption relating to multilinear maps was published in 2013, but this assumption was later invalidated.
Work has continued attempting to establish preconditions from more standard assumptions, notably the 2020 work of Jain, Lin, and Sahai based on the XDH, LWE, and LPN assumptions. However, none have achieved widespread acceptance to date, and the Jain, Lin, and Sahai proposal also requires the existence of exponential-stretch pseudorandom generator in the function class NC0. The existence of any pseudorandom generators in NC0 was a long-standing open problem until 2006, making this assumption dubious.