Trilemma in computer science concerning network naming schemes
Zooko's triangle is a trilemma of three properties that some people consider desirable for names of participants in a network protocol:[1]
Human-meaningful: Meaningful and memorable (low-entropy) names are provided to the users.
Secure: The amount of damage a malicious entity can inflict on the system should be as low as possible.
Decentralized: Names correctly resolve to their respective entities without the use of a central authority or service.
Overview
Zooko Wilcox-O'Hearn conjectured that no single kind of name can achieve more than two. For example: DNSSec offers a human-meaningful, secure naming scheme, but is not decentralized as it relies on trusted root-servers; .onion addresses and bitcoin addresses are secure and decentralized but not human-meaningful; and I2P uses name translation services which are secure (as they run locally) and provide human-meaningful names – but fail to provide unique entities when used globally in a decentralised network without authorities.[a]
Solutions
Several systems that exhibit all three properties of Zooko's triangle include:
Computer scientist Nick Szabo's paper "Secure Property Titles with Owner Authority" illustrated that all three properties can be achieved up to the limits of Byzantine fault tolerance.[2]
Activist Aaron Swartz described a naming system based on Bitcoin employing Bitcoin's distributed blockchain as a proof-of-work to establish consensus of domain name ownership.[3] These systems remain vulnerable to Sybil attack,[4] but are secure under Byzantine assumptions.
Theoretician Curtis Yarvin implemented a decentralized version of IP addresses in Urbit that hash to four-syllable, human-readable names.[5]