
The hackspace smelled like burnt coffee and desperation. Maya had arrived at 7:45 AM, fifteen minutes early, carrying a tray of pastries from a bakery she’d never visited before. Dex was already there, standing in front of a whiteboard covered in mathematical notation that looked like a foreign language.
“You brought food,” he said, not looking up. “Good. This is going to take a while.”
Maya set the pastries on a workbench and pulled up a chair. “You said ring signatures would break linkability. I’m ready to learn.”
Dex turned around. His eyes were red-rimmed—he’d been up all night. “Ring signatures are the most important tool you’ll ever use for spending privacy. They’re also the easiest to mess up. So pay attention.”
He picked up a marker and drew a large circle on the whiteboard. Inside the circle, he wrote ten names: Alice, Bob, Carol, Dave, Eve, Frank, Grace, Henry, Iris, Jack.
“Imagine you’re in a room with nine other people,” Dex began. “Each of you has a unique key. You want to sign a document—in our case, a transaction—but you don’t want anyone to know that you signed it. So you create a ring of all ten keys. Then you produce a signature that proves someone in the ring signed it, but mathematically, it’s impossible to tell who.”
He drew arrows from each name to the center of the circle.
“That’s a ring signature. On the blockchain, when you spend money, you create a ring signature using your real input plus several decoy inputs from unrelated wallets. An observer sees ten possible inputs. They know one of them is real. But they don’t know which one.”
Maya studied the diagram. “So the other nine people are just… camouflage.”
“Exactly. They don’t even know you’re using their keys. You’re not spending their money—you’re just using their public keys to hide your own.”
“And the more decoys, the better?”
“Up to a point. More decoys means more privacy, but also larger transactions and higher fees. Most wallets use ten to twenty decoys per ring. That’s usually enough to break linkability.”
Dex erased the circle and drew a chain of blocks. “Here’s the critical part. Without ring signatures, your transaction looks like this: Input A → Output B. Anyone watching sees a direct link. With ring signatures, it looks like this: Input A, Input C, Input D, Input E… (ten total) → Output B. An observer sees ten possible inputs. They can’t tell which one is real.”
Maya nodded slowly. “So they can’t link my input to my output.”
“They can’t link with certainty. But they can make probabilistic guesses. If nine of the decoys are obviously fake—old wallets, empty wallets, exchange wallets—then an analyst can eliminate them and narrow down to the real one. That’s why decoy quality matters.”
He picked up a second marker—red this time—and drew a star next to three of the names. “Bad decoys are worse than no decoys. They give the analyst a filter. Good decoys are indistinguishable from real inputs. They make the analyst’s job exponentially harder.”
Maya thought about the transaction she’d made to the coffee shop—the one Dex had criticized. “So my decoys were bad.”
“They were terrible. Three had zero balance. Two were brand new. One was an exchange wallet. Any competent analyst could eliminate at least half of them immediately.” Dex’s voice was sharp but not cruel. “That’s why we’re practicing today. You need to learn how to choose decoys that actually hide you.”
Scene 2: The Math Behind the Magic (Simplified)
Dex turned to a fresh section of the whiteboard and wrote a single equation:
Ring Signature = f(m, K₁, K₂, …, Kₙ, s₁, s₂, …, sₙ)
“I’m not going to make you learn the cryptography,” he said. “But you need to understand why ring signatures work, so you don’t treat them like magic.”
He drew a series of interconnected circles. “The math ensures that the signature could have been generated by any of the ring members’ private keys. It’s like a circular chain of equations—each one depends on the others, and the whole thing only works if at least one of the private keys is real. But because of the way the equations wrap around, there’s no way to tell which key was used.”
Maya squinted at the diagram. “So it’s like a group alibi.”
“Exactly. You and nine strangers all have alibis that overlap. The police know one of you is guilty, but each person’s alibi is verified by the others. Without additional evidence, they can’t break the circle.”
Dex pulled out his laptop and opened a test network wallet. “Watch. I’m going to create a ring signature transaction with fake coins.”
He selected an input—a test address with a balance of 10 test coins. Then he clicked a button labeled Add Decoys. A list of ten random public keys appeared—all from old test wallets that had been inactive for months.
“The software automatically selects decoys from a pool of recent transactions,” Dex explained. “The goal is to choose decoys that look similar to my real input—similar age, similar balance, similar activity pattern.”
He clicked Sign. The software churned for three seconds, then displayed a long string of letters and numbers—the ring signature.
“Now I broadcast.” He clicked Send. The test network explorer updated.
Transaction ID: test123abc
Ring Members (10):
- 0x7f3a… (real input)
- 0x2c9d… (decoy)
- 0x8b1e… (decoy)
- … (seven more)
Output: 0x9f2d… (recipient)
Maya stared at the screen. “It doesn’t show which one is real.”
“That’s the point. Now watch what happens with bad decoys.” Dex ran a second transaction, this time manually selecting terrible decoys—a wallet created yesterday, a wallet with zero balance, a wallet clearly labeled as an exchange. He broadcast the transaction.
“Now an analyst looks at this ring and sees that nine of the ten inputs are obviously impossible. The only plausible one is my real input. The ring signature provides almost no privacy.”
Maya grimaced. “So the software’s automatic decoy selection isn’t always good?”
“It’s often lazy. Some wallets pull from a small pool of recent transactions, which makes it easier to eliminate. The best privacy wallets use continuous sampling—they constantly update their decoy pool to reflect current network conditions. But even those aren’t perfect.”
Dex closed the test network and opened a different tool—a decoy quality analyzer. “This is what the Analyst uses. You feed it a transaction, and it scores each decoy on three metrics: age, balance, and activity pattern. Decoys that score poorly are eliminated.”
He ran the analyzer on Maya’s coffee shop transaction. The screen populated with scores:
Decoy 1: Age 2 days (poor), Balance 0 (poor), Activity none (poor) → Eliminated
Decoy 2: Age 180 days (good), Balance 5.2 (good), Activity moderate (good) → Kept
Decoy 3: Age 1 day (poor), Balance 0.01 (poor), Activity none (poor) → Eliminated
… and so on.
Five decoys remained. Five possibilities. The Analyst’s confidence had gone from 10% (one in ten) to 20% (one in five).
“He doesn’t know it’s you,” Dex said. “But he’s narrowed it down. And if you keep making transactions with bad decoys, eventually he’ll have enough data to correlate.”
Maya felt the familiar cold spread through her chest. “How do I fix it?”
“Practice. And better decoy selection. Today, you’re going to make fifty ring signature transactions on the test network. By the end, choosing good decoys should be automatic.”
Scene 3: The Analyst Encounters a Ring Signature
Three hundred miles away, the Analyst sat in his glass-walled office, staring at his screens. The morning had started with a routine scan of the Target C cluster—and then he saw it.
A new transaction. Ring signature. Ten inputs.
His clustering software flagged it immediately: Ring signature detected. Standard heuristics unreliable.
The Analyst leaned forward. This was the second ring signature transaction from Target C in two days. The first one—the coffee shop purchase—had been sloppy. Bad decoys. Easy to eliminate. But this one was different.
He ran his decoy elimination script. The script analyzed each of the ten inputs for obvious disqualifiers—zero balance, recent creation, known exchange ownership.
Results:
- Eliminated: 3 decoys (zero balance)
- Eliminated: 2 decoys (created within past week)
- Eliminated: 1 decoy (exchange wallet)
- Remaining: 4 decoys + 1 real input = 5 possibilities
Better than last time, he thought. But still not good.
He ran a second analysis—behavioral clustering. He looked at the spending patterns of the five remaining inputs. Three of them had never made a purchase at a grocery store. Two had. Target C always bought groceries.
He eliminated the three that had no grocery history. Now two possibilities remained.
Fifty percent certainty, he thought. Not enough for a warrant. Not enough for identification. But enough to know I’m close.
He added a note to the Target C file: Subject is learning. Decoy quality improving. Recommend continued monitoring.
Then he pulled up a new tool—one he’d been developing in secret. He called it the “decoy correlation engine.” It worked by tracking decoys across multiple transactions. If the same decoy appeared in rings with the same real input multiple times, the correlation could be used to identify the real input with high probability.
He ran the engine on Target C’s two ring signature transactions. The decoy sets overlapped on three addresses. Not enough for a conclusion—but enough to start building a pattern.
Whoever is helping her knows what they’re doing, he thought. But they’re not perfect. And neither is she.
He smiled grimly. Maya, you’re getting better. But I’m getting smarter.
Scene 4: Maya’s First Ring Signature Spend (Real Funds)
The test network transactions had gone well. Fifty ring signatures, each one with carefully selected decoys. By the end, Maya could choose good decoys in her sleep.
Now it was time for the real thing.
Dex set up his laptop beside hers. “We’re going to spend a small amount—0.2 coins—to a merchant you’ve never used before. A bookstore across town. Pay with crypto through their payment processor.”
Maya’s hands trembled over the keyboard. “What if I mess up?”
“Then we learn from it. But you won’t mess up. You’ve practiced fifty times.”
She took a deep breath and opened her real wallet. The balance stared back at her—thousands of coins, most of them still trapped in stealth addresses she hadn’t touched. She selected a small stealth address with a balance of 0.5 coins.
“Add decoys,” Dex said.
She clicked Add Decoys. The software suggested ten addresses. She scrutinized each one:
- Age? All between 30 and 200 days old. Good.
- Balance? All between 0.1 and 1.0 coins. Good.
- Activity? All had at least three previous transactions. Good.
- Exchange wallets? None.
She eliminated two that had slightly unusual patterns—one with a single large transaction, one with no outgoing spends. The software replaced them with fresh decoys. She checked again.
“Good,” Dex said. “Now sign.”
She clicked Sign. The laptop’s fan whirred as the software computed the ring signature. Three seconds later, the Send button lit up.
“Broadcast.”
She clicked. The transaction appeared on the blockchain explorer.
Ring Members (10): Ten addresses, none obviously fake. No zero balances. No recent creations. No exchange tags.
Maya stared at the screen. For the first time, her real input was hidden in a crowd of plausible decoys.
“Run the analyzer,” Dex said.
She opened the decoy quality tool and fed it the transaction ID. The results populated:
Decoy elimination rate: 2 out of 10 eliminated (both for minor age discrepancies)
Remaining possibilities: 8
Analyst confidence: ~12.5%
Maya let out a breath she didn’t know she’d been holding. “He can’t trace it.”
“He can’t trace it with certainty,” Dex corrected. “He has an 87.5% chance of being wrong. That’s not the same as zero. But it’s good enough for now.”
She watched as the transaction confirmed. The bookstore would receive the payment. The safe house would get its books. And the Analyst would see a ring signature that led nowhere.
For the first time in months, Maya felt like she was winning.
Scene 5: The Limits of Ring Signatures
Dex waited until Maya’s celebration had subsided. Then he sat her down and pulled up a presentation he’d prepared.
“Ring signatures are powerful,” he said. “But they have limits. Three big ones.”
He displayed the first limit:
1. Decoy quality degrades over time.
“A decoy that looks good today might look terrible tomorrow. If a decoy wallet gets hacked, or labeled by an exchange, or goes dormant for too long, it becomes eliminable. That means your old transactions—the ones you thought were private—can become less private over time.”
Maya frowned. “So privacy isn’t permanent?”
“Nothing on the blockchain is permanent except the data itself. Privacy is a snapshot. What’s private today might be public next year.”
He displayed the second limit:
2. Ring signatures don’t hide amounts or timestamps.
“The Analyst can’t tell which input is yours. But he can see that someone spent 0.2 coins at 2:00 PM on a Tuesday. If he knows your habits—if he knows you always spend small amounts on weekday afternoons—he can make educated guesses.”
“So I need to change my habits.”
“Yes. Randomize everything. Spend at different times, different amounts, different merchants. Don’t be predictable.”
He displayed the third limit:
3. The more you spend, the more data you create.
“Every ring signature transaction gives the Analyst more information. He can’t trace individual transactions, but he can build a statistical profile. Over time, with enough data, he might be able to identify you by process of elimination—not because he broke a single transaction, but because he eliminated every other possibility.”
Maya felt the hope drain out of her. “So what’s the point? If privacy degrades over time, and I can’t hide my habits, and more data makes me more traceable… why bother?”
Dex leaned forward. “Because the goal isn’t absolute anonymity. It’s survival. You don’t need to be untraceable forever. You just need to be untraceable long enough to escape. Long enough to build a new life. Long enough for the Analyst to give up and move on.”
He pulled up a graph. “Every transaction you make with good decoys reduces his confidence. Every time you change your habits, you reset his models. Every day you stay safe, his odds of finding you drop.”
Maya studied the graph. A line trended downward—Analyst confidence over time. It wasn’t zero. It would never be zero. But it was low. Low enough to live with.
“So I keep practicing,” she said. “Keep using ring signatures. Keep choosing good decoys. Keep randomizing my habits.”
“And keep learning.” Dex closed the laptop. “Because tomorrow, we’re going to talk about decoy mixes—how to create decoys that are so good they’re indistinguishable from real wallets. And after that, we’ll talk about the community mixing service.”
Maya stood up. Her legs were wobbly—adrenaline and exhaustion and hope all tangled together. “Thank you, Dex. I don’t know how to repay you.”
Dex smiled—a rare, genuine smile. “Keep the safe house running. That’s enough.”
That night, Maya walked home through streets she was finally beginning to know. She took a different route—not because she was paranoid, but because she was learning. Randomness was her ally now.
When she got back to her apartment, she checked the blockchain explorer one more time. The ring signature transaction sat there, ten inputs, one output. No obvious link to her.
She closed the laptop and lay down on the mattress. Her phone buzzed—a message from Dex.
Good work today. Tomorrow, we make you harder to trace.
She smiled and typed back: I’m already harder to trace. But I’ll take more.
Outside, the city hummed with the sound of traffic and distant sirens. Somewhere in a glass tower, the Analyst was still watching. Still calculating. Still trying to break the ring.
But tonight, the ring held.
Table of contents:
Introduction
Chapter 1: The Public Ledger
Chapter 2: A Glass House
Chapter 3: The Stealth Protocol
Chapter 4: The View Key
Chapter 5: The Linkability Flaw
Chapter 6: The Stalker’s Trace
Chapter 7: The Ring Signature
Chapter 8: A Decoy Mix <<<<<< NEXT
Chapter 9: The Tracing Resistance
Chapter 10: Anonymous, Not Invisible
![]()