Interactive demo — progress through 7 sections to understand the concept
In 2001, Zooko Wilcox-O'Hairn observed a fundamental trilemma for naming systems. He argued that a name can have at most two of these three properties:
Generate random secp256k1 keypairs until the NPUB contains your chosen word. This is "vanity mining" — anyone can do it.
Here are two keypairs, both with "sat" in their NPUB. Anyone can make these. There's no way to tell them apart.
While we mine, here's how the scanner will evaluate each candidate. We use three complementary metrics: unique character count (diversity — how many distinct characters appear), max frequency (raindrop — how many times the most common character repeats), and Shannon entropy (distribution — how uneven the character distribution is). Combined quality = max(rarity_unique, rarity_max, rarity_entropy) — the best of any metric.
The unique character count measures how many distinct bech32 characters appear in a window. Fewer unique chars = more recognizable "low-diversity" pattern.
A 16-character window with only 3 unique characters looks like:
A 16-character window with 10 unique characters looks like:
Same window size. But one is instantly recognizable and the other looks like noise. Fewer unique characters = bigger blocks of the same color = more recognizable to humans.
The max frequency measures how many times the most common character repeats in a window. A big "raindrop" of one character is visually striking.
For W=16: E[max_freq] ≈ 3.08 (from Monte Carlo simulation, 5M samples). A window where one character appears 8 times is a big visual cluster — max_freq=8, rarity_max = 8 − 3.08 = 4.92.
Max frequency catches "one big raindrop" patterns: a window like "aaaaaaaaa1234567" has max_freq=9 (one char dominates) even though unique=8 looks normal. Diversity alone would miss this.
How uneven is the character distribution? Random windows have H≈3.2 bits. Lower = more uneven = more recognizable. Catches patterns like 'aaabbcdeeff12345' where no single char dominates but the distribution is still skewed.
Entropy catches "skewed distribution" patterns: a window where no single char dominates but several chars are overrepresented. Diversity and max_freq might both look normal, but entropy still flags the unevenness.
Each metric catches different patterns. OR logic means a window qualifies if ANY metric is exceptional. This maximizes Alice's chances of finding a recognizable pattern while the attacker must still replicate the EXACT pattern.
The scanner ranks windows by combined quality descending — highest max(rarity_unique, rarity_max, rarity_entropy) wins. Shannon entropy is also displayed as a secondary metric showing the evenness of the distribution.
Mining started automatically when you entered this section. You don't need to press anything.
Now we scan Alice's NPUB from Section 2 with the pattern scanner, using exactly the window size (W) you selected. We look for naturally-occurring high-dominance, low-diversity windows — outliers ranked by combined quality = max(rarity_unique, rarity_max, rarity_entropy). Shannon entropy is displayed as a secondary metric showing how uneven the character distribution is.
Alice's fingerprint (left) was discovered for free. An attacker (right) generates a new key with the same vanity prefix — but their fingerprint is completely different. This is the core of the asymmetric vanity approach.
The complete identity system combines a human-readable vanity prefix (green zone) with the machine-discovered anti-phish fingerprint (orange zone).
A grinding service can find a vanity offset for your NPUB using ONLY your public key. It computes P + d·G for d=1,2,3... — never seeing your secret key.