||This article includes a list of references, but its sources remain unclear because it has insufficient inline citations. (September 2010)|
Zooko's triangle is a diagram named after Zooko Wilcox-O'Hearn which sets out a conjecture for any system for giving names to participants in a network protocol. At the vertices of the triangle are three properties that are generally considered desirable for such names:
- Human-meaningful: The quality of meaningfulness and memorability to the users of the naming system. Domain names and nicknaming are naming systems that are highly memorable.
- Decentralized: The lack of a centralized authority for determining the meaning of a name. Instead, measures such as a Web of trust are used.
- Secure: The quality that there is one, unique and specific entity to which the name maps. For instance, domain names are unique because there is just one party able to prove that they are the owner of each domain name.
Of these three properties, Zooko's conjecture states that no single kind of name can achieve more than two. So the edges of the triangles represent the three possible choices for a naming scheme:
- Decentralized and human-meaningful: This is true of nicknames people choose for themselves.
- Secure and human-meaningful: This is the property that domain names and URLs aim for.
- Secure and decentralized: This is a property of OpenPGP public key fingerprints.
Zooko's conjecture was disproved through creating practical systems that exhibit all three properties.
The contribution of Zooko's triangle is that it encouraged systems designers to explore how to attain all three properties.
The original name systems designed featured two out of three properties, following Zooko's triangle:
- Compromise decentralization: DNSSec offers a secure, human-meaningful naming scheme, but is not decentralized.
- Compromise human-readability: .onion addresses and bitcoin addresses are secure and decentralized and are not human-meaningful, to most.
- Compromise security: I2P uses name translation services which are decentralized and provide human-meaningful names, but one relies on trusting third parties. Petname systems demonstrate that one can build a naming system by dynamically translating between different possible kinds of names.
After such systems were explored, Zooko's conjecture was disproved by practically implementing systems that exhibit all three properties. Computer scientist Nick Szabo illustrated that all three properties can be achieved up to the limits of Byzantine fault tolerance.
The internet activist Aaron Swartz described a naming system based on Bitcoin which tries to square Zooko's triangle by employing Bitcoin's distributed blockchain as a proof-of-work to establish consensus of domain name ownership. These systems remain vulnerable to sybil attacks, but are secure under Byzantine assumptions. A few months after the proposal, Namecoin was released which implements the concept.
Following Namecoin, other platforms were developed which defy Zooko's conjecture, such as Twister.
- Zooko Wilcox-O'Hearn. "Names: Decentralized, Secure, Human-Meaningful: Choose Two". Archived from the original on 2001-10-20.
- Mark Steigler, Zooko, An Introduction to Petname Systems, Feb 2005
- Nick Szabo, Secure Property Titles, 1998
- Aaron Swartz, Squaring the Triangle: Secure, Decentralized, Human-Readable Names, Aaron Swartz, January 6, 2011
- Dan Kaminsky, Spelunking the Triangle: Exploring Aaron Swartz’s Take On Zooko’s Triangle, January 13, 2011
- Zooko Wilcox-O'Hearn, Names: Decentralized, Secure, Human-Meaningful: Choose Two – the essay highlighting this difficulty
- Marc Stiegler, An Introduction to Petname Systems – a clear introduction
- Nick Szabo, Secure Property Titles – argues that all three properties can be achieved up to the limits of Byzantine fault tolerance.
- Bob Wyman, The Persistence of Identity: Updating Zooko's Pyramid
- Paul Crowley, Squaring Zooko's Triangle
- Aaron Swartz, Squaring the Triangle using a technique from Bitcoin