BIP-116
MERKLEBRANCHVERIFY.
Would let a script check that one or more items come from a list fixed in advance, without revealing the whole list.
Today a script, the small program that decides who can spend coins, has to show every possible spending condition, even unused ones. That wastes space and reveals private details of a contract. This new check would let coins commit to a set of keys or rules and reveal only the ones needed when spending.
Read BIP-116 in full on GitHubAll BIPs