§ 08 · Mining · Overview
Mining
Proof of useful work, where every tile of a matrix product is a lottery ticket
On this page 6 sections
MiningMining: Adding new blocks to the chain. Miners do costly work for the chance to add the next block and collect its reward; on Pearl, that work is multiplying matrices. decides who gets to add the next block. Everyone who wants to try does costly work, and the work works like a lottery: more work, more tickets, more chances to win the block and its reward.
In Bitcoin the work is hashing: guess a number, hash, check, repeat, trillions of times a second. The guesses are useless once the block is found.
Pearl’s work is matrix multiplication, the arithmetic at the heart of AI models. That’s Pearl’s big idea, proof of useful workProof of useful work: Proof of work whose computation can also be useful. Pearl's is matrix multiplication, the main math inside AI models, though the rules do not check that the matrices mean anything.: the same operations that serve an AI model can also mine a block. This group explains exactly how, byte by byte, and is honest about where the “useful” part ends.
Try it
Side by side: a Bitcoin miner trying nonces, and a Pearl miner turning matrix work into tickets.
How does Bitcoin mine?
A Bitcoin miner builds an 80-byte header that ends with a 4-byte nonceNonce: In Bitcoin, the number in the header a miner keeps changing until the block hash is low enough. Pearl's header has no nonce: miners multiply matrices instead.. It hashes the header, and if the hash, read as a number, is below the target, the block is won. If not, it changes the nonce and tries again. Each try is one “hash”, and that’s what Bitcoin’s hashrate counts.
The proof is the header itself: anyone can hash it once and see the small number.
What does a Pearl miner do instead?
Pearl’s header has no nonce, and its hash is never compared with the target. Instead, in plain words:
-
Choose two matrices
Any two grids of whole numbers from −64 to 64. In the official miner, they are an AI model’s activations and weights.
-
Add noise nobody could predict
Hashes of the block template and of the two matrices become seedsNoise seed: One of two random-looking values made from the job key and fingerprints of the two matrices (and, since block 99,000, their sizes). Each seed grows into one noise matrix., and the seeds become noiseLow-rank noise: Random-looking numbers a miner must add to both matrices before multiplying. No one can predict them in advance, and because they have low rank (128) they are cheap to remove afterwards. that is added to both matrices. Change anything and the noise changes.
-
Multiply, and keep a diary per tile
The output is cut into small tilesTile: A small patch of cells in the output matrix: 2 × 64 cells in the official GPU miner, though miners may choose other shapes (block 130,827 used 8 × 16). Each tile of a multiplication becomes one lottery ticket. (128 cells each in the reference miner and in the real blocks checked for this site). Every 128 steps along the multiplication, each tile’s running sums are folded into a 64-byte diary, its transcriptTranscript: A tile's running diary: every 128 steps along the long sums, the tile's running totals are folded into a 64-byte record. The ticket is a hash of it, so it depends on the work along the way, not just the final answer..
-
Every tile is a lottery ticket
A BLAKE3 hash of the diary is the tile’s ticketTicket: A 256-bit BLAKE3 hash of a tile's transcript. It wins a block if, read as a number, it is at most the target times the work that tile cost.. It wins if it’s at most the target times the work the tile cost.
-
Prove the winner
The winning tile becomes a certificateCertificate: The proof of work that travels in front of every block: about 60 KB, mostly a zero-knowledge proof. Any node can check it in milliseconds without seeing the miner's matrices.: about 60 KB, mostly a zero-knowledge proof that any node checks in milliseconds.
-
Peel off the noise
The noise is cheap to remove, so the miner can recover the product of its original matrices: the useful answer.
Why can’t a Pearl miner cheat?
Three guards, each with its own page:
- Unpredictable noise. The noise depends on the block being mined and on fingerprints of both matrices, so no one can multiply in advance or reuse an old product. See noise seeds.
- Tickets watch the whole multiplication. A ticket hashes the running sums at every checkpoint, not just the final answer, so known shortcuts cost as much as doing the work. That’s an argued conjecture, not a proof. See tickets and target.
- A fixed price per multiply-accumulate. The winning bar is scaled by each tile’s work, and since block 96,251 a rank penalty stops miners buying an easier bar with bigger noise rank.
Is the work really useful?
It can be. Pearl’s official miner plugs into vLLM, a popular engine for running AI language models, and mines inside the model’s own large matrix multiplications. After mining, it removes the noise and the model carries on with the layer’s output. (The integer math is exact; whether the GPU’s floating-point version is bit-for-bit exact is an open question.) See useful output.
But the rules don’t check usefulness, and can’t. A certificate proves that some matrices were honestly multiplied, not what they meant. Random numbers pass just as well as an AI layer; Pearl’s own reference CPU miner uses random matrices. A 2026 study reported that the most widely used third-party miner contains no AI inference code at all. How much of Pearl’s mining does useful work is an open question.
What’s in this group?
| Page | What you’ll learn |
|---|---|
| The puzzle | The whole mining process, step by step, with a toy you can run. |
| Noise seeds | The job key, matrix fingerprints, salted seeds, and why the miner can’t pick its noise. |
| Tickets and target | The tile diary, the BLAKE3 ticket, the scaled target, and a real block’s check. |
| The certificate | What the zero-knowledge proof says, who builds it, how big and fast it is. |
| Rank penalty | The block 96,251 rule, and why it penalizes more noise, not less. |
| Useful output | Removing the noise, mining inside vLLM, overhead claims and the usefulness gap. |
| Hashrate | Why one “hash” on Pearl is one multiply-accumulate. |
| Pools | Shares, the gateway, pools seen on mainnet, and solo mining. |
The math underneath (matrices, rank, tiles, cheap verification) is in matrix math.
- Matrix entries
- [−64, 64]
- whole numbers
- Noise rank
- 128
- minimum since 96,251
- Reference tile
- 2 × 64
- one ticket = 128 cells
- Diary checkpoint
- every 128 steps
- along the shared dimension
- Proof
- 59,560 bytes
- per block
- Verify
- 7–21 ms
- measured on an Apple M5 Max CPU
In this group
- 08.01 The puzzle Mining one Pearl block, step by step, with every intermediate value
- 08.02 Noise seeds Commit first, then roll the dice
- 08.03 Tickets and target A diary per tile, a BLAKE3 ticket, and a bar scaled by work
- 08.04 The certificate From a winning tile to a proof anyone can check in milliseconds
- 08.05 Rank penalty More noise buys a stricter bar, not an easier one
- 08.06 Useful output Getting the real answer back, and the honest limits of "useful"
- 08.07 Hashrate On Pearl, one "hash" is one multiply-accumulate
- 08.08 Pools Shares, a gateway that proves, and who mines Pearl today