learn-web3-with-phoebe / Leader session 2 of 6
Learn Web3 with Phoebe · Leader session 2 of 6

The user count that is not one

Larkfield sees about 1,000 addresses in a month. The truth, on data where the truth is known, is 304 entities. The standard method for closing that gap gets to somewhere between 676 and 707 and stops there. Tonight is the three numbers, the single sentence of evidence the method is working from, and the two findings that matter more than any of them: the error only ever runs one way, and the operators everybody worries about are not where most of it comes from.

🟠 Leader track Anyone who reports an active user number Anyone who has to defend one 45 min
0-3 · Welcome 3-16 · The heuristic 16-30 · The measurement 30-45 · Build-along and Q&A
Part 0

The guess you wrote down, and the three numbers coming

Session 1 ended with a single unhedged number on paper: how many real people sit behind Larkfield's thousand addresses. Get it out and put it where you can see it. Tonight that guess meets a world where the answer is not a matter of opinion, because the data was generated by a process that knows who owns what, so every method run against it can be scored rather than argued about. Three numbers come out, and the third one is the only one that changes how you would report.

Live = presented in the 45 minutes Self-study = the full depth, after class 🔍 Every diagram zooms

★ What you walk out with tonight. The co-spend heuristic in one sentence, said back without notes, including what it uses as evidence and what it has none of. Three measured numbers on Larkfield: about 1,000 addresses, 304 entities, and 676 to 707 in between. And the reason the third number is reportable and a point estimate is not, which is the only part of tonight that will still be useful when the method changes.

LiveWhy a generated world, and not real rows4 min▶

Everything measured tonight comes out of a generator that builds a population, gives each party some addresses and produces transactions from them. Nothing here describes anything outside this page. That is a deliberate choice and it is the only choice that makes tonight worth forty five minutes.

On rows from anywhere else, an entity count is unknowable, which means every method is unfalsifiable and the discussion collapses into whose method sounds more careful. Here the generator knows the truth, the method never sees it, and the two get compared afterwards. That is the difference between a claim and a measurement, and it is the reason this world exists.

Real world

Larkfield's population is 300 ordinary people holding one to four addresses each, plus 4 operators running 60 addresses each on purpose. That is 304 entities. Ordinary people spend from two of their own addresses in one transaction about a quarter of the time; the operators avoid doing that 97 percent of the time. Four thousand transactions are produced from that, and everything tonight is read off those.

Self-studyThe words that keep coming back4 min▶
  • Address. One identifier in the rows. About 1,000 of them appear in a Larkfield month.
  • Entity. One real party, holding one or more addresses. There are 304, and the data never says so.
  • Co-spend. A single transaction that spends from two addresses at once. The only evidence of common control that exists in these rows.
  • Cluster. A set of addresses the method has decided belong together. There are 676 to 707 of them.
  • Still split. Clusters beyond the true entity count: addresses that belong to one party and were not joined. The whole of the remaining error.
  • Wrongly merged. A cluster holding addresses from more than one party. Zero, in every month measured.
  • Operator. A party running many addresses deliberately. Four of them here, and they turn out not to be the main problem.
  • Probabilistic linkage. Joining records by fuzzy attributes and scores, which is a different craft and lives in learn-entity-resolution-with-phoebe. The evidence here is structural and the join is deterministic.
Part 1 · covers the method

One sentence of evidence, and everything that follows from it

13 min live

The standard method is short enough to state in a sentence, which is worth noticing before anyone describes it as sophisticated: addresses spent together in a single transaction are treated as one holder. That is the whole of the evidence and the whole of the rule. What makes it interesting is not the rule, it is the shape of what the rule cannot see.

The whole rule, and what it does to eight addresses held by three owners THE ONLY EVIDENCE THE METHOD EVER GETS A B one transaction Two addresses spent in one transaction: a co-spend. THE RULE, IN FULL Addresses spent together in a single transaction are treated as one holder, and everything follows from that. There is no other signal in these rows, and no attribute to fall back on when a co-spend never happens. EIGHT ADDRESSES, THREE OWNERS, AND WHAT THE METHOD RETURNS 1a 1b Owner 1 Both addresses were spent together at least once, so the method joins them. 1 cluster 2a 2b 2c Owner 2 The third address was never spent alongside the other two, so nothing links it and it stands alone. 2 clusters 3a 3b 3c Owner 3 No co-spend at all. Nothing wrong was done and nothing was hidden; it simply never happened. 3 clusters Three owners went in. Six clusters came out, and every one of the six is pure. Not one cluster holds addresses from two different owners, so the method has never claimed a link that was not there. It has only failed to claim links that were. Six is therefore a ceiling on the number of owners, and the truth sits somewhere underneath it.
🔍 Click to zoom - owner 3 is the shape of the whole problem. Three addresses, one person, no concealment, and no evidence either.
LiveWhat the rule has, and what it has nothing of4 min▶

A co-spend is strong evidence. To spend from two addresses in one transaction you have to be able to authorise both, which means one party controls both, which is exactly the thing being inferred. When the method says two addresses belong together it is right, and the measurements later confirm that it is right every single time.

The absence of a co-spend is evidence of nothing at all. It is consistent with two different owners and it is equally consistent with one owner who never happened to spend from both at once. Nothing distinguishes those cases, and nothing else in the rows carries an alternative signal, because there are no attributes to compare. Names, contact details and behavioural fingerprints do not exist here; that whole family of technique belongs to learn-entity-resolution-with-phoebe and there is nothing for it to work on.

Read those two paragraphs together and the shape of the error is already determined before anyone runs anything. Strong positive evidence, no negative evidence, therefore missed links and no false links. That is a property of the method, not a property of the data, and it is what makes the result reportable.

LiveWhy owner 3 is the honest case3 min▶

It is tempting to read the diagram as a story about evasion, and every conversation about address counts drifts that way within a few minutes. Owner 3 is the correction. Three addresses, one ordinary person, nothing concealed, no intent of any kind, and the method returns three parties.

People hold several addresses for reasons that have nothing to do with hiding: one for a long-term holding, one for day to day, one that came with a device, one they stopped using. No rule was broken and no counter-measure would help. The addresses simply never got spent together, and the only evidence the method uses is the one that never arrived.

Keep owner 3 in mind through Part 2, because the second measured finding of the night is that owner 3, not the operators, is where most of the remaining error lives.

Self-studyWhy the method is still worth running4 min▶

Given what follows, a reasonable reaction is to ask why anyone bothers. The answer is that it removes about half the error, it does so with no tuning and no parameters, and it produces an artefact that is worth more than the number: a bound with a known direction.

A method with no parameters is also a method nobody can quietly tilt. There is no threshold to move when the result is unwelcome, no similarity cutoff to argue about in a review, and no way to produce a different answer from the same rows. For a figure that will be read by people outside the company, that property is not a consolation prize. It is most of the value.

Part 2 · covers the measurement

Three numbers, five months, and the direction of the error

14 min live

Now the same method against the full Larkfield world, repeated across five months so that nothing here rests on one lucky draw. The headline is that the naive count is about 3.2 times the truth and the clustered count is still about 2.3 times it. The finding underneath the headline is the one to take to a board.

Three numbers on one scale, then the same run repeated across five months WHAT LARKFIELD SEES, WHAT THE METHOD SAYS, WHAT IS TRUE Addresses that appear 982 to 1,025 3.2 times the truth After the co-spend method 676 to 707 2.3 times the truth Entities, the actual truth 304 the truth, known here The lighter tip on a bar is the spread across the five months. FIVE MONTHS, THE SAME METHOD EVERY TIME MONTH ADDRESSES CLUSTERS STILL SPLIT WRONGLY MERGED Month A 982 696 392 0 Month B 981 676 372 0 Month C 988 688 384 0 Month D 1,025 707 403 0 Month E 993 696 392 0 OPERATOR DISCIPLINE, MONTH A Operators 50% to 100% careful 666 697 The entire range is 31. The gap to the truth is 392. Report the bound. The clustered figure is a ceiling, and nothing in the run gives you a floor. Wrongly merged clusters are 0 in all five months, so the method never fused two parties together. Whatever the real entity count is, it sits at or below the clustered figure and never above it. That is a sentence you can defend anywhere. The point estimate from the same run is not. Operator discipline moves the count by 31 across its whole range, against a gap of 392. Most of what is missed is not anybody hiding.
🔍 Click to zoom - the zero column is the finding. It is what turns a disappointing estimate into a defensible upper bound.
Live The generator and the clustering, both running in this page. Change the month or the operators and watch which number moves.

...

...
LiveThe error runs one way, and that is the reportable part4 min▶

Drag the slider anywhere you like and watch the wrongly merged column. It stays at zero. Across every month and every setting, the method has never once put two real parties in the same cluster, and the reason is structural rather than lucky: a co-spend cannot happen between two parties who cannot authorise each other's addresses.

That single fact changes what can be said out loud. "Larkfield has 696 users" is a claim with an unknown error in an unknown direction, and it is wrong. "Larkfield has at most 696 entities, and the true figure is somewhere below that" is a claim with a known direction, a stated method and no tuning, and it is correct. The second sentence is less satisfying and considerably more useful, because a decision made on a ceiling is a decision that cannot be embarrassed by the truth arriving later.

Notice what the bound does not give you. There is no floor. Nothing in this run says the answer is above 400, or above 304, or above anything at all, and inventing one from the shape of the distribution would be putting back exactly the false confidence that the bound removed.

LiveThe uncomfortable part: discipline barely matters4 min▶

Every conversation about address counts ends up about operators, and every proposed fix is aimed at them. So take the four operators in Larkfield's world and vary how carefully they avoid co-spending, from careless at 50 percent to perfect at 100 percent. The clustered count moves from 666 to 697.

That is a range of 31, against a gap between the clustered figure and the truth of 392. Perfect operator tradecraft and sloppy operator tradecraft produce almost the same number, which means the operators' behaviour is not what the gap is made of. Their many addresses still are: decomposed, the operators account for 235 of the 392 and ordinary holders for 157. What barely moves is the part that responds to how carefully they act.

The consequence for a plan of work is direct and unwelcome. Effort aimed at detecting deliberate multi-address behaviour is aimed at a small fraction of the error. The large fraction is not a detection problem at all, because there is nothing to detect and nobody is doing anything.

Self-studyWhere serious people disagree5 min▶

One camp holds that you report the bound and you refuse the point estimate, in every forum, permanently. Their argument is that a ceiling is the only thing the evidence supports, and that a number offered with a caveat becomes a number without a caveat by the second slide it appears on. They have watched it happen. Give a board 696 with a footnote and within a quarter the 696 is in a target, a bonus and an external deck, and the footnote is gone.

The other camp holds that refusing to give a figure does not remove the figure, it relocates it. Somebody will still put a number in the board pack, and it will be produced by whoever is least equipped to caveat it, using a method nobody wrote down. On this view the responsible move is to publish the clustered number with a stated direction of error, a documented method and a standing instruction that it can only be compared with itself. A wrong number with known properties beats a vacuum that gets filled.

Both camps are staffed by people who have been burned. Notice that they disagree about organisations rather than about statistics: neither one disputes the measurement. Which one is right in your building depends on whether a caveat survives contact with your reporting chain, and you probably already know the answer to that.

Part 3 · build-along

Make the bound and say it out loud

15 min hands on

No code. Six steps on the live box above and on your own reporting, said in the room. The aim is to be able to state a one-directional bound in a sentence that survives being repeated by someone who was not here.

Score the guess you brought

Your number from session 1, against 304. Write down how far off you were and in which direction. Almost everyone is high, and the interesting part is by how much, because that is the size of the instinct you have to argue against later.

Say the rule back without notes

One sentence, no hedging: what the method treats as evidence. Then say what it has no evidence of. Anyone who can only do the first half will over-trust the output every time.

Move the slider to both ends

Set the operators to 50 and then to 100. Read the clustered count at each end and write the difference down. Then write the difference between the clustered count and 304 next to it, and look at the two numbers together.

Try to break the zero

Work through every month and several slider positions and look for a single wrongly merged cluster. Say why you did not find one, in terms of what a co-spend requires rather than in terms of luck.

Write the sentence for your board

One sentence containing the figure, the word ceiling or at most, the method in four words, and the fact that no floor exists. Read it aloud. If it takes more than fifteen seconds it will not be repeated correctly.

Name what breaks the sentence

Say which change to Larkfield's product would make the bound useless: something that causes parties who are genuinely separate to co-spend. Keep the answer. Session 3 is about parties who are paid to behave differently.

The habit to keep. When any method hands you an estimate, ask which direction its errors run before you ask how big they are. A method whose errors are two-sided gives you a number you have to trust. A method whose errors are one-sided gives you a bound you can defend, and a bound is worth more than a closer estimate almost every time somebody senior is going to repeat it.

Check yourself

Three questions

Across all five months the number of wrongly merged clusters is 0. What does that let Larkfield say that it otherwise could not?

A zero in the wrongly merged column means the method never invented a link. Every remaining error is a link it failed to make, and failing to merge can only inflate the count. So the count is an upper bound, which is a very different object from an accurate one, and the same run says nothing whatsoever about a lower bound.

Moving the 4 operators from 50 percent careful to 100 percent careful changes the clustered count from 666 to 697. What follows for a plan of work?

A range of 31 against a gap of 392 is the measurement. Perfect tradecraft and careless tradecraft land in nearly the same place, so the deliberate behaviour everybody plans against is the part that barely moves. Note what this does not say: decomposed, the operators are the larger share of the gap at 235 against 157, because they hold many addresses that never need to be spent together. It is their behaviour that is a small term, not their contribution.

An analyst proposes reporting "about 690 users, plus or minus 30". What is wrong with the shape of that statement, setting aside the exact figures?

The 30 is the spread across months, which is variation in the method's output, not the distance to the truth. Writing it as a symmetric band implies the answer could be above 690, and the zero in the wrongly merged column says it cannot. The error is one-directional and the correct shape is a ceiling, not a band.

Before session 3

Homework

Twenty minutes, on a count your own organisation reports and on the sentence you wrote in step 5.

Find a count that is really an identifier count

Accounts, devices, sessions, email addresses, logins. Pick one that gets reported as people. Write down what would have to be true for the two to be equal, then say plainly whether it is.

Bring the sentence and one adversary

Your board sentence from step 5, and the answer to step 6: one product change that would make separate parties co-spend and break the bound. Session 3 is about numbers that somebody is paid to move.

Covered tonight

What this session covers

✓The co-spend rule in one sentenceAddresses spent together in one transaction are treated as one holder, and that is the whole of the evidence.
✓The three numbersAbout 1,000 addresses, 676 to 707 clusters, 304 entities. Roughly 3.2 times and 2.3 times the truth.
✓The error runs one way0 wrongly merged in all five months, which makes the clustered figure a ceiling and gives no floor at all.
✓Operator discipline barely matters50 to 100 percent careful moves the count from 666 to 697, a range of 31 against a gap of 392.
✓Reporting a bound instead of a pointThe sentence that survives repetition, and the disagreement about whether a caveat survives a reporting chain.
◐Parties who are paid to move the numberNamed tonight as the thing that would break the bound. Session 3 measures it.
◐The correction path for a figure already reportedTouched tonight. Session 4 deals with a warehouse that cannot restate.
○Probabilistic record linkageFellegi-Sunter, blocking and string comparison live in learn-entity-resolution-with-phoebe.
○Hashes, blocks, consensus and transaction mechanicsAssumed from learn-blockchain-with-phoebe rather than repeated here.
○Anything about holdings, price or marketsOut of scope by design, and nothing here is advice of any kind.
Take this with you

Cheat sheet

The rule. Addresses spent together in a single transaction are treated as one holder. That is all of it.
The three numbers. About 1,000 addresses. 676 to 707 clusters. 304 entities.
The two multiples. Naive is about 3.2 times the truth. Clustered is still about 2.3 times it.
The zero. 0 wrongly merged in every month, so the method never invents a link, only misses them.
Ceiling, no floor. The truth is at or below the clustered figure, and nothing in the run says how far below.
Discipline is 31. Operators from careless to perfect move the count 666 to 697, against a gap of 392.
Owner 3 is the gap. Ordinary people, several addresses, nothing hidden, no co-spend, nothing to detect.
The sentence. At most this many entities, by the co-spend method, with no lower bound. Fifteen seconds or it will not be repeated right.