From cb6c242b70e33566cd90f48bf7ddc798d3cea612 Mon Sep 17 00:00:00 2001 From: Code Orange Devs Date: Sat, 26 Sep 2026 11:51:11 +0800 Subject: [PATCH 1/2] privacy-track: update page to Season One (Silent Payments first, review-first) Co-Authored-By: Claude Opus 5.5 --- privacy-track.html | 50 ++++++++++++++++++++-------------------- privacy-track/index.html | 50 ++++++++++++++++++++-------------------- tools/generate-pages.mjs | 6 ++--- 3 files changed, 53 insertions(+), 53 deletions(-) diff --git a/privacy-track.html b/privacy-track.html index 47f633e..81cd946 100644 --- a/privacy-track.html +++ b/privacy-track.html @@ -4,14 +4,14 @@ Bitcoin Privacy Developer Track - Code Orange Dev School - + - + @@ -20,11 +20,11 @@ - + - + @@ -110,7 +110,7 @@ /Programs/Privacy_Track_

Bitcoin Privacy Developer Track. Contribution-first, by design.

-

12 biweekly 90-minute sessions over 6 months, covering chain analysis, wallet fingerprinting, Silent Payments, Payjoin, Floresta, Kyoto, Lightning privacy, and a contribution sprint. Every session ends with a real open source contribution.

+

12 biweekly 90-minute sessions over 6 months, opening with Silent Payments, then chain analysis, coin selection, Payjoin, light clients, network privacy, CoinJoin and swaps, Lightning, ecash, and a contribution sprint. Every session ends with real proof of work in an open-source privacy project.

For Developers 6 months · biweekly @@ -132,8 +132,8 @@

Duration

- 5–8 - PRs per graduate + 28 + BIP352 test vectors you'll pass
10+ @@ -180,12 +180,12 @@

Full guide →

-
Month 1

Chain Analysis; Wallet Fingerprinting

-
Month 2

Coin Selection and UTXO Management; Silent Payments

-
Month 3

Payjoin; Light Clients with Floresta and Kyoto

-
Month 4

P2P Privacy and Node Fingerprinting; ASmap and Network Attacks

-
Month 5

CoinJoin with JoinMarket; OpenSwap

-
Month 6

Lightning Privacy; Contribution Sprint

+
Month 1

Silent Payments I: build a sender; Silent Payments II: build a scanner

+
Month 2

Silent Payments III: Review Club on Bitcoin Core; Think Like the Adversary (chain analysis & fingerprinting)

+
Month 3

Coin Selection & Change; Payjoin

+
Month 4

Light Clients with Floresta and Kyoto; Network Privacy: Tor, BIP324, private broadcast, ASmap

+
Month 5

CoinJoin & OpenSwap; Lightning Privacy

+
Month 6

Ecash: Cashu & Fedimint; Contribution Sprint

@@ -203,15 +203,15 @@

-

Every session ends with a contribution. No exceptions.

-

Not "homework." Not "exercises." A contribution: a PR, a review, an issue triage, a docs fix - something with your name on it, in a real Bitcoin privacy repo, before you log off. Over 12 focused sessions that compounds into a public contribution record no CV can fake.

+

Every session ends with proof of work. Useful, not noisy.

+

Not "homework." Proof of work: a lab passing the official test vectors, a PR you built and tested, a reproduced bug, a docs fix, a pull request from our curated pool. Nothing goes upstream unless a maintainer would be glad to receive it. Over 12 sessions that compounds into a public contribution record no CV can fake.

# session checklist [x] deep-dive - 90 min - [x] pair on open issues - [x] ship contribution ✓ - ── merged or it didn't happen + [x] review a live PR together + [x] ship proof of work ✓ + ── tested or it didn't happen
@@ -281,7 +281,7 @@

✕ It's not for you if
→ You're brand new to programming - do rawBit first - → You want theory without shipping - every session ends in a contribution + → You want theory without shipping - every session ends in proof of work → You can't commit to a 6-month arc - this is contribution-first by design
@@ -335,12 +335,12 @@

class Component extends DCLogic { modules = [ - { quarter: 'Month 01', sessions: 'Sessions 01-02', emoji: '01', title: 'Chain analysis and wallet fingerprints', desc: 'Learn the common heuristics used to follow funds, then identify the subtle transaction patterns wallets leak.', repos: ['rust-bitcoin', 'BDK', 'issue pool'] }, - { quarter: 'Month 02', sessions: 'Sessions 03-04', emoji: '02', title: 'Coin selection and Silent Payments', desc: 'Work through UTXO management, change detection, and BIP352 receiving flows that prevent address reuse.', repos: ['BDK', 'silent payments', 'BIP352'] }, - { quarter: 'Month 03', sessions: 'Sessions 05-06', emoji: '03', title: 'Payjoin and light clients', desc: 'Break the common-input heuristic with collaborative transactions, then study compact-filter clients with Floresta and Kyoto.', repos: ['rust-payjoin', 'Floresta', 'Kyoto'] }, - { quarter: 'Month 04', sessions: 'Sessions 07-08', emoji: '04', title: 'P2P privacy and network attacks', desc: 'Map node fingerprinting, transaction broadcast leakage, ASmap, and eclipse-style attacks into practical contribution targets.', repos: ['Floresta', 'bitcoin-core', 'ASmap'] }, - { quarter: 'Month 05', sessions: 'Sessions 09-10', emoji: '05', title: 'CoinJoin and OpenSwap', desc: 'Explore collaborative transaction systems with JoinMarket and OpenSwap, focusing on docs, tests, and integration issues.', repos: ['JoinMarket', 'OpenSwap', 'privacy docs'] }, - { quarter: 'Month 06', sessions: 'Sessions 11-12', emoji: '06', title: 'Lightning privacy and contribution sprint', desc: 'Close with Lightning privacy, review readiness, and a sprint that turns prepared issues into polished upstream PRs.', repos: ['LDK', 'issue pool', 'PR checklist'] } + { quarter: 'Month 01', sessions: 'Sessions 01-02', emoji: '01', title: 'Silent Payments: build it', desc: 'Build a BIP352 sender and scanner from scratch, graded against the official test vectors, then compare full-node, indexer and remote-scanner privacy trade-offs.', repos: ['BIP352', 'Shroud', 'BlindBit'] }, + { quarter: 'Month 02', sessions: 'Sessions 03-04', emoji: '02', title: 'Silent Payments in Core, then think like the adversary', desc: 'Review the live Bitcoin Core Silent Payments PRs as a Review Club, then learn the chain-analysis heuristics and wallet fingerprints used to follow funds.', repos: ['bitcoin-core', 'libsecp256k1', 'BDK'] }, + { quarter: 'Month 03', sessions: 'Sessions 05-06', emoji: '03', title: 'Coin selection and Payjoin', desc: 'Work through UTXO management and change, then break the common-input heuristic with collaborative transactions.', repos: ['BDK', 'rust-payjoin', 'issue pool'] }, + { quarter: 'Month 04', sessions: 'Sessions 07-08', emoji: '04', title: 'Light clients and network privacy', desc: 'Run your own node with Floresta and Kyoto, then use Bitcoin Core 31 private broadcast, BIP324 and ASmap against network surveillance.', repos: ['Floresta', 'Kyoto', 'peer-observer'] }, + { quarter: 'Month 05', sessions: 'Sessions 09-10', emoji: '05', title: 'CoinJoin, OpenSwap and Lightning privacy', desc: 'Autopsy a CoinJoin, complete an atomic swap on regtest, then compare what BOLT11 and BOLT12 blinded paths leak.', repos: ['JoinMarket', 'OpenSwap', 'LDK'] }, + { quarter: 'Month 06', sessions: 'Sessions 11-12', emoji: '06', title: 'Ecash and the contribution sprint', desc: 'Mint and redeem ecash on a test mint, then close with a sprint that turns prepared issues and test reports into polished upstream work.', repos: ['Cashu', 'Fedimint', 'PR checklist'] } ]; repos = [ diff --git a/privacy-track/index.html b/privacy-track/index.html index 47f633e..81cd946 100644 --- a/privacy-track/index.html +++ b/privacy-track/index.html @@ -4,14 +4,14 @@ Bitcoin Privacy Developer Track - Code Orange Dev School - + - + @@ -20,11 +20,11 @@ - + - + @@ -110,7 +110,7 @@ /Programs/Privacy_Track_

Bitcoin Privacy Developer Track. Contribution-first, by design.

-

12 biweekly 90-minute sessions over 6 months, covering chain analysis, wallet fingerprinting, Silent Payments, Payjoin, Floresta, Kyoto, Lightning privacy, and a contribution sprint. Every session ends with a real open source contribution.

+

12 biweekly 90-minute sessions over 6 months, opening with Silent Payments, then chain analysis, coin selection, Payjoin, light clients, network privacy, CoinJoin and swaps, Lightning, ecash, and a contribution sprint. Every session ends with real proof of work in an open-source privacy project.

For Developers 6 months · biweekly @@ -132,8 +132,8 @@

Duration

- 5–8 - PRs per graduate + 28 + BIP352 test vectors you'll pass
10+ @@ -180,12 +180,12 @@

Full guide →

-
Month 1

Chain Analysis; Wallet Fingerprinting

-
Month 2

Coin Selection and UTXO Management; Silent Payments

-
Month 3

Payjoin; Light Clients with Floresta and Kyoto

-
Month 4

P2P Privacy and Node Fingerprinting; ASmap and Network Attacks

-
Month 5

CoinJoin with JoinMarket; OpenSwap

-
Month 6

Lightning Privacy; Contribution Sprint

+
Month 1

Silent Payments I: build a sender; Silent Payments II: build a scanner

+
Month 2

Silent Payments III: Review Club on Bitcoin Core; Think Like the Adversary (chain analysis & fingerprinting)

+
Month 3

Coin Selection & Change; Payjoin

+
Month 4

Light Clients with Floresta and Kyoto; Network Privacy: Tor, BIP324, private broadcast, ASmap

+
Month 5

CoinJoin & OpenSwap; Lightning Privacy

+
Month 6

Ecash: Cashu & Fedimint; Contribution Sprint

@@ -203,15 +203,15 @@

-

Every session ends with a contribution. No exceptions.

-

Not "homework." Not "exercises." A contribution: a PR, a review, an issue triage, a docs fix - something with your name on it, in a real Bitcoin privacy repo, before you log off. Over 12 focused sessions that compounds into a public contribution record no CV can fake.

+

Every session ends with proof of work. Useful, not noisy.

+

Not "homework." Proof of work: a lab passing the official test vectors, a PR you built and tested, a reproduced bug, a docs fix, a pull request from our curated pool. Nothing goes upstream unless a maintainer would be glad to receive it. Over 12 sessions that compounds into a public contribution record no CV can fake.

# session checklist [x] deep-dive - 90 min - [x] pair on open issues - [x] ship contribution ✓ - ── merged or it didn't happen + [x] review a live PR together + [x] ship proof of work ✓ + ── tested or it didn't happen
@@ -281,7 +281,7 @@

✕ It's not for you if
→ You're brand new to programming - do rawBit first - → You want theory without shipping - every session ends in a contribution + → You want theory without shipping - every session ends in proof of work → You can't commit to a 6-month arc - this is contribution-first by design
@@ -335,12 +335,12 @@

class Component extends DCLogic { modules = [ - { quarter: 'Month 01', sessions: 'Sessions 01-02', emoji: '01', title: 'Chain analysis and wallet fingerprints', desc: 'Learn the common heuristics used to follow funds, then identify the subtle transaction patterns wallets leak.', repos: ['rust-bitcoin', 'BDK', 'issue pool'] }, - { quarter: 'Month 02', sessions: 'Sessions 03-04', emoji: '02', title: 'Coin selection and Silent Payments', desc: 'Work through UTXO management, change detection, and BIP352 receiving flows that prevent address reuse.', repos: ['BDK', 'silent payments', 'BIP352'] }, - { quarter: 'Month 03', sessions: 'Sessions 05-06', emoji: '03', title: 'Payjoin and light clients', desc: 'Break the common-input heuristic with collaborative transactions, then study compact-filter clients with Floresta and Kyoto.', repos: ['rust-payjoin', 'Floresta', 'Kyoto'] }, - { quarter: 'Month 04', sessions: 'Sessions 07-08', emoji: '04', title: 'P2P privacy and network attacks', desc: 'Map node fingerprinting, transaction broadcast leakage, ASmap, and eclipse-style attacks into practical contribution targets.', repos: ['Floresta', 'bitcoin-core', 'ASmap'] }, - { quarter: 'Month 05', sessions: 'Sessions 09-10', emoji: '05', title: 'CoinJoin and OpenSwap', desc: 'Explore collaborative transaction systems with JoinMarket and OpenSwap, focusing on docs, tests, and integration issues.', repos: ['JoinMarket', 'OpenSwap', 'privacy docs'] }, - { quarter: 'Month 06', sessions: 'Sessions 11-12', emoji: '06', title: 'Lightning privacy and contribution sprint', desc: 'Close with Lightning privacy, review readiness, and a sprint that turns prepared issues into polished upstream PRs.', repos: ['LDK', 'issue pool', 'PR checklist'] } + { quarter: 'Month 01', sessions: 'Sessions 01-02', emoji: '01', title: 'Silent Payments: build it', desc: 'Build a BIP352 sender and scanner from scratch, graded against the official test vectors, then compare full-node, indexer and remote-scanner privacy trade-offs.', repos: ['BIP352', 'Shroud', 'BlindBit'] }, + { quarter: 'Month 02', sessions: 'Sessions 03-04', emoji: '02', title: 'Silent Payments in Core, then think like the adversary', desc: 'Review the live Bitcoin Core Silent Payments PRs as a Review Club, then learn the chain-analysis heuristics and wallet fingerprints used to follow funds.', repos: ['bitcoin-core', 'libsecp256k1', 'BDK'] }, + { quarter: 'Month 03', sessions: 'Sessions 05-06', emoji: '03', title: 'Coin selection and Payjoin', desc: 'Work through UTXO management and change, then break the common-input heuristic with collaborative transactions.', repos: ['BDK', 'rust-payjoin', 'issue pool'] }, + { quarter: 'Month 04', sessions: 'Sessions 07-08', emoji: '04', title: 'Light clients and network privacy', desc: 'Run your own node with Floresta and Kyoto, then use Bitcoin Core 31 private broadcast, BIP324 and ASmap against network surveillance.', repos: ['Floresta', 'Kyoto', 'peer-observer'] }, + { quarter: 'Month 05', sessions: 'Sessions 09-10', emoji: '05', title: 'CoinJoin, OpenSwap and Lightning privacy', desc: 'Autopsy a CoinJoin, complete an atomic swap on regtest, then compare what BOLT11 and BOLT12 blinded paths leak.', repos: ['JoinMarket', 'OpenSwap', 'LDK'] }, + { quarter: 'Month 06', sessions: 'Sessions 11-12', emoji: '06', title: 'Ecash and the contribution sprint', desc: 'Mint and redeem ecash on a test mint, then close with a sprint that turns prepared issues and test reports into polished upstream work.', repos: ['Cashu', 'Fedimint', 'PR checklist'] } ]; repos = [ diff --git a/tools/generate-pages.mjs b/tools/generate-pages.mjs index 18549c1..b21dc9a 100644 --- a/tools/generate-pages.mjs +++ b/tools/generate-pages.mjs @@ -47,15 +47,15 @@ const programs = [ title: "Bitcoin Privacy Track", type: "Developer Cohort", audience: "For Developers", - duration: "12 months", + duration: "6 months", schedule: "Bi-weekly sessions", format: "Online, Discord", level: "Advanced", href: "/privacy-track", image: "/assets/new-workshops/workshop-hands-on-devices.jpg", blurb: - "A contribution-first curriculum covering Silent Payments, Payjoin, Floresta, Fedimint, and Lightning privacy.", - lessons: ["Chain analysis defense", "Silent Payments", "Payjoin", "Floresta", "Fedimint privacy"], + "Drop-in, review-first sessions opening with Silent Payments, then Payjoin, light clients, network privacy, Lightning and ecash.", + lessons: ["Silent Payments", "Chain analysis defense", "Payjoin", "Network privacy", "Ecash privacy"], }, { slug: "rawbit", From 673810a861322fdfee6460aecbbd9f11586990a4 Mon Sep 17 00:00:00 2001 From: Code Orange Devs Date: Sat, 26 Sep 2026 14:10:46 +0800 Subject: [PATCH 2/2] privacy-track: even stat labels; replace 'PR per session' framing Checked rendered at 1400px and 375px (no horizontal overflow). Co-Authored-By: Claude Opus 5.5 --- privacy-track.html | 8 ++++---- privacy-track/index.html | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/privacy-track.html b/privacy-track.html index 81cd946..1248194 100644 --- a/privacy-track.html +++ b/privacy-track.html @@ -133,7 +133,7 @@

28 - BIP352 test vectors you'll pass + BIP352 test vectors
10+ @@ -152,7 +152,7 @@

/GitHub_Curriculum_

Season One: 12 sessions, one contribution path.

-

The public curriculum is now mapped on GitHub: each session teaches one Bitcoin privacy problem, then sends students into a curated issue pool so the work can become a real upstream pull request.

+

The public curriculum is now mapped on GitHub: each session teaches one Bitcoin privacy problem, then ends with proof of work: a lab, a tested PR, or an issue from a curated pool that can become a real upstream contribution.

@@ -164,8 +164,8 @@

months

- PR - per session + 1 + live PR review / session
Bitcoin privacy hardware used in Code Orange workshops diff --git a/privacy-track/index.html b/privacy-track/index.html index 81cd946..1248194 100644 --- a/privacy-track/index.html +++ b/privacy-track/index.html @@ -133,7 +133,7 @@

28 - BIP352 test vectors you'll pass + BIP352 test vectors
10+ @@ -152,7 +152,7 @@

/GitHub_Curriculum_

Season One: 12 sessions, one contribution path.

-

The public curriculum is now mapped on GitHub: each session teaches one Bitcoin privacy problem, then sends students into a curated issue pool so the work can become a real upstream pull request.

+

The public curriculum is now mapped on GitHub: each session teaches one Bitcoin privacy problem, then ends with proof of work: a lab, a tested PR, or an issue from a curated pool that can become a real upstream contribution.

@@ -164,8 +164,8 @@

months

- PR - per session + 1 + live PR review / session
Bitcoin privacy hardware used in Code Orange workshops