2026-10-19
Ring raised to 48, three times Monero's, before the first peer
The founder's call, made while nobody had joined yet, so it cost one re-made first block (now tied to Bitcoin block 972,206). Measured at 48: a node accepts a payment in 64 ms, a fresh node checks a block at 33 ms per payment, a payment is 9.5 kB, and an informed attacker names the real coin 2.09% of the time where 2.08% is a pure guess. 44 checks and the 14-step test drive pass. 64 was measured too (82 ms, 11.7 kB, 1.8%) and judged not worth the extra cost yet.
2026-10-19
Code published; testnet-1 launching
The repository is public under the Vesper organisation on GitHub, with these pages served from it. Node v0.9.0, 44 self-test checks, MIT licence; every push re-runs the checks in public on Windows and Linux. The first public commit is the dated record of what existed. The seed node follows on a rented server; its address lands here and in config.json the day it is up.
2026-10-18
Testnet-1 decided and built: ring of 32
Three decisions by the founder: a public testnet first, ring size 32 (measured: a node accepts a payment in 54 ms, 7.3 kB per payment, an informed attacker names the real coin 3.0% of the time where 3.1% is fair), and a seed node on a rented server. Test coins tVESP with tvsp2 addresses. launch_genesis.py ties the genesis block to the newest Bitcoin block at launch. deploy/ holds the seed-node kit for an Ubuntu server: it refuses to start if the self-test fails, opens only SSH and 8880, mines on one core. The automated test drive now runs on a network of its own, so it can never join testnet-1 by accident. Node v0.9.0.
2026-10-15
Node v0.8.0: review fixes, 44 checks
A silent connection is closed after 20 s and one address holds at most 8 of 64 slots: before, a slowloris attack of 64 idle connections locked every peer and wallet out. Blocks are at most 4,000,000 bytes, a consensus rule: a valid 18 MB block that no node could relay was possible. Peer answers capped at 16 MB. 9,500 malformed requests against every API route: no crashes.
2026-10-15
Payment proofs and recovery codes
proof pay lets a payer prove that one output paid one address an amount, and nothing else; the receiver can do the same from a view key; six forgeries fail in the self-test. A new wallet shows a 55-character recovery code once: the code is the wallet, on any computer. A payment spends from one of the wallet's addresses when one holds enough, so payers comparing rings cannot link your addresses.
2026-10-15
Peer table, sorted inputs, Tor
Addresses from gossip are candidates checked two a round, at most 2 peers per network block, never home addresses on a public node, so one attacker cannot fill a node's peer table. Inputs are listed in key-image order: the old order said which hidden input was bigger. --proxy sends every connection through Tor, name lookups included, and a hidden node stops announcing its address. Node v0.7.0, 42 checks.
2026-10-15
Addresses v2: as many as you like
Subaddresses: give each payer their own address, all unlinkable, one wallet, one view key. Each output has its own R from a sealed anchor, which closes the Janus attack Monero's subaddresses still carry. One-byte view tags halve scanning time. Addresses now start vesp2. Node v0.6.0.
2026-10-15
One range proof per payment; the test drive runs itself
Aggregated Bulletproofs: 736 bytes for a payment's outputs instead of 672 each; a payment is 5.1 kB of JSON; a fresh node checks a block at 15.1 ms per payment. python testdrive.py runs the whole public test drive on two throwaway nodes, 14 checks, five minutes. Node v0.5.0.
2026-10-15
Decoys drawn from measured spending
Decoys were picked by rank; against an attacker who knows how people spend, the real coin was named 7.3% of the time on a young chain and 22% on a busy year-old one. Now drawn as ages from the spending distribution Monero's wallets use: 7.2%, 6.5%, 6.1%. Fair for a ring of 16 is 6.2%.
2026-10-15
Phase 4: network privacy, built and measured
A payment travels quietly from node to node before any node broadcasts it (Dandelion++). leaktest.py runs the node's own routing code in a 200-node simulation: an attacker with 10% of the nodes names the sender's node 11% of the time, 25% without the stem. A trace-back leak in the first version (a "loop" answer that revealed which nodes held a payment) was found and closed the same day, before any network ran it. Per-address limits and bans; mining on several cores, 300 to 420 tries a second on eight. Node v0.4.0, 37 checks.
2026-10-14
Check-everything pass before publication
33 of 33 self-test checks; the whole test drive re-run live on two nodes. A damaged chain file no longer stops a node: it keeps the good blocks, sets the file aside and fetches the rest from peers. Readable transaction summaries. The seven out-of-date statements found on these pages were corrected.
2026-10-12
Join and Breaking pages; code prepared for publication
MIT licence, repository assembled, proof-of-existence fingerprints written. Planned: the code goes public under the Vesper organisation on GitHub; the first public commit is the dated record. Until then the link above is a placeholder.
2026-10-11
Second review pass: node v0.3.0, 33 checks
Per-block difficulty (ASERT-style, 10-minute half-life). 10-block spend lock. Wallets read only new blocks with an encrypted notebook. Rings fetched whole. Block-ID collision and junk-block DoS designed out. Reorganisations cost branches, not the chain. Power-cut-safe saves. Wallet passwords stretched 8x harder.
2026-10-11
Proof of work switched to Argon2id
32 MiB per try, about 90 tries a second per laptop core. Bitcoin mining chips cannot run it. Interim; RandomX likely for production.
2026-10-11
Phase 3, stage one: hidden senders
CLSAG-style rings of 16 and key images. A payment no longer names the output it spends. 20 checks at the time; 640-byte signatures; 35 ms to accept a payment.
2026-10-11
Development fund as a glass box
10% of each reward for 4,204,800 blocks, paid to an auditable one-time key, enforced by consensus. Fund spends are public on chain.
2026-10-11
Phase 2: hidden amounts
Pedersen commitments, Bulletproofs range proofs (672 bytes, batch-verified), two-plus shuffled outputs per payment, view keys open amounts. libsodium backend. 18 checks.
2026-10-10
Phase 1: stealth addresses and view keys
No address ever on chain. Two nodes, one payment each way, a stranger finds nothing in the chain file. 13 checks. Named Vesper; ticker later changed to VESP after collisions with Vesper Finance (VSP) and the bolivar (VES).
2026-10-05
A learning chain first
A complete transparent cryptocurrency in Python, 15 checks, built to understand blocks, proof of work and signatures before adding privacy. Vesper runs on its engine.