NOTES-alt.md (14866B)
1 # Speaker notes and sources — dg-fisma-2026-alt 2 3 The **alternative** deck, for the case where DG FISMA turns out to want GNU 4 Taler and the NGI TALER technical results rather than the Digital Euro 5 Regulation. Decide which deck to run in the first two minutes of the meeting; 6 `dg-fisma-2026` is the other one. 7 8 21 slides, ~20 minutes. Slide 19 ("Where this touches your files") is the 9 bridge: if the room pulls towards the digital euro, switch decks there. 10 11 Everything below was checked against primary sources in October 2026. Several 12 claims that circulate in our own older decks **do not survive checking** — the 13 "Do not say" list at the end is not hypothetical, it is a list of things we 14 have actually been putting on slides. 15 16 --- 17 18 ## Slide 2 — What GNU Taler is 19 20 - "In development since 2015": first commit in `exchange.git` is 2015-01-08 21 ("initial import for mint"). `taler-typescript-core` starts 2015-11-25. 22 - "Over a million lines across some twenty repositories": counted over 23 exchange, merchant, taler-typescript-core, libeufin, anastasis, sync, donau, 24 challenger, taler-android, taler-ios, taler-docs — ~1.54m lines of 25 `.c/.h/.ts/.kt/.java/.py/.swift/.rs/.sql/.js`. Conservative phrasing on 26 purpose; do not quote a precise figure. 27 28 ## Slide 3 — Three operations 29 30 - The point the draft trilogue deck got wrong: **the exchange detects 31 double-spending, not the merchant.** If anyone in the room has seen that 32 deck, this is the correction. 33 34 ## Slide 5 — The engine 35 36 - Withdrawal blinding is information-theoretic. **Refresh is not** — per D5.3, 37 an exchange or eavesdropper without a quantum computer could link a dirty 38 coin to its refreshed derivative in exponential time. Do not claim 39 information-theoretic unlinkability for the whole protocol. 40 41 ## Slide 6 — Asymmetric privacy 42 43 - Tinn, *Management Science*, 2025, on asymmetric privacy being 44 welfare-optimal. Same citation as in the other deck. 45 46 ## Slide 7 — Who gets what out of it 47 48 - Structure borrowed from Tanja's ECB deck of 16 April 2026 (customer / 49 merchant / government benefits, each with a "things to note" caveat). Keep 50 the caveat line: it is what makes the rest credible. 51 52 ## Slide 9 — Age restriction 53 54 - Özgür Kesim, Christian Grothoff, Florian Dold, Martin Schanzenbach, 55 *Zero-Knowledge Age Restriction for GNU Taler*, **ESORICS 2022**, LNCS, 56 DOI 10.1007/978-3-031-17140-6_6. **CHECK** the volume number and page range 57 against Springer before printing a full bibliographic entry. 58 - Design document DD 24, `Implementation status: Implemented`. Implementation 59 evidence: exchange 2022-03-01 and 2022-03-28, wallet 2022-04-19. Shipped in 60 the normative exchange protocol (`WithdrawRequest.max_age`, 61 reveal-withdraw); test vectors published in 62 `exchange/src/util/tv_age_restriction.json`. 63 - Mechanism: the age commitment is a vector of M Edx25519 public keys; 64 restricting to group *m* means withholding the private keys for slots > *m*. 65 Bound to the coin by signing `FDH(C_p, h_Q)` under the denomination key. 66 Refresh carry-over is enforced by cut-and-choose, so a cheat succeeds with 67 probability 1/κ. 68 - **Honest caveat, say it if asked:** implemented but **not switched on in any 69 deployment** — it is an exchange-operator opt-in, and DD 24 notes the 70 operator must then stick with the decision. The open question is legal 71 recognition of a cryptographic attestation in place of an ID check, which is 72 exactly the thing this room could move. 73 74 ## Slide 10 — Subscriptions and discounts 75 76 - **Merged in `merchant` master**, not a branch — correct this if you have said 77 otherwise before. Normative since merchant protocol **v21**; token 78 fountains since **v43**; current implemented version v44. Provisioned in 79 the reference demo deployment (`sandcastle-ng`). 80 - Mechanism: wallet generates an EdDSA key pair per token, blinds the public 81 key, merchant blind-signs with the token-family key (RSA or Clause-Schnorr). 82 Redemption = unblinded issue signature + a signature under the token key. 83 Double-spend caught by a spent-token registry 84 (`merchant_do_insert_spent_token`). 85 - **Do not over-claim:** each token is **one use**. A twelve-month 86 subscription is twelve tokens. "One credential, unlimited unlinkable uses" 87 is not the design. 88 - Still unmerged: the wallet UI (DD 94, Partial) and declarative semantic token 89 families (DD 101, Experimental/Prototype). Asset or share tokens (DD 100) 90 are **Not started** — do not mention them as existing. 91 - Sources: `taler-docs/core/api-merchant.rst`, 92 `core/merchant/post-private-tokenfamilies.rst`, 93 `exchange/src/include/taler/taler_crypto_lib.h` ("Token crypto primitives"). 94 95 ## Slide 11 — Donau 96 97 - Donation Authority operated by or on behalf of the tax authority; holds the 98 register of recognised charities and their yearly volume limits. 99 - Donor identifier `DI = H(TAXID, S)` with a secret salt `S`. Per-unit 100 blinded `UDI` pairs are signed by the charity, verified and blind-signed by 101 the Donau. At year end the donor submits the receipts and receives one 102 Ed25519 statement over `(DI, total, year)`; the validator recomputes 103 `H(TAXID, S)` from the salt the donor supplies. 104 - So: the charity never learns who gave; the authority never learns which 105 charity received which donation, and never sees `TAXID` itself. 106 - **Timing caveat** the paper itself raises: receipts must not be submitted at 107 a time strongly correlated with the donation, or the unlinkability between 108 issuance and submission weakens. Know this; do not volunteer it. 109 - Status: service implemented (protocol v2), Debian-packaged, merchant 110 integration merged, stood up in the reference deployment. Wallet-side 111 partial. **No tax authority runs one.** 112 - **CHECK before citing:** the paper in `donau/doc/usenix-security-2025/` is an 113 anonymised submission draft with open TODOs — **do not say "published at 114 USENIX Security 2025"**. Safe: "documented in a peer-review submission and 115 in NGI TALER deliverable D3.4", or cite the BFH thesis. 116 117 ## Slide 12 — Paivana 118 119 - `paivana-httpd`: an HTTP reverse proxy gating a target site behind a Taler 120 payment. Prices come from merchant templates whose POSIX regex is matched 121 against the whole URL. Unpaid visitors get a Mustache paywall page; after 122 payment the proxy sets a keyed-hash access cookie over (expiry, website, 123 client address) and streams the upstream response. 124 - The paywall page carries a `Paivana` HTTP header "to also facilitate agentic 125 payments" — that is the basis for the AI-agent claim, and it is the whole of 126 it. Do not inflate it. 127 - **Do not repeat the Paivana marketing claims** that circulate elsewhere — 128 "audited by Swiss Regulator", "~100,000 TPS", "150,000 users", a "$3–5T 129 market". They are unsourced or contradicted by project documents. This is 130 why Paivana is absent from the other deck. 131 132 ## Slide 13 — Oral Information Management 133 134 - Freetown, 2025: 21 women, 6 local languages; 4 had completed primary school; 135 6 could read a five-digit ordinal number. After a 24-hour gap, 8 tasks: 136 16 completed all 8 with no errors, 4 with two tries and no help, 1 did not 137 complete. Joint work with MyOralVillage (myoralvillage.org). 138 - Source: `marketing/presentations/comprehensive/oim.tex`, reused in the 139 lugcamp and interledger decks. 140 141 ## Slide 14 — Offline 142 143 - Partially offline (merchant offline, customer online, OTP from the PoS key) 144 is implemented and used for vending; see Huang et al., SUERF 2023, and 145 `comprehensive/offline.tex`. 146 - The CAP argument and the hardware-vulnerability timeline are the same 147 material as slides 8–9 of the other deck. If this room wants the timeline, 148 switch decks — it is a whole slide there. 149 150 ## Slide 15 — Anastasis 151 152 - Core secret encrypted under a master key; master key split across an open set 153 of escrow providers under a user-chosen policy; recovery by authentication 154 challenges (security question, SMS, video ID, IBAN transfer). Works without 155 the user remembering anything of high entropy. 156 - Source: `anastasis/doc/anastasis.texi`, §Introduction and §Adversary models. 157 - Status: provider backend, client libraries, CLI and GTK app implemented. Do 158 not claim a production provider network. 159 160 ## Slide 16 — Post-quantum 161 162 **Tanja wrote the source document. Let her own this slide and the Q&A on it.** 163 164 - D5.3, *Impact of Quantum Computers on GNU Taler for WP5*, Tanja Lange and 165 Jonathan Levin, rev. 1.0, 28 November 2024, EU ref. Ares(2024)8484648, 166 public. Local copy: 167 `taler-www/static/presentations/d5.3-ngi-ImpactOfQuantumComputersOnTaler.pdf`. 168 - The quoted assessment, verbatim: *"The protocols in GNU Taler exclusively use 169 factoring- and discrete logarithm-based public key cryptography. This means 170 that the cryptographic protocols in GNU Taler are very susceptible to attacks 171 with a quantum computer."* 172 - The two clocks: forging denomination keys needs a quantum computer **at 173 attack time** (D5.3: "not currently considered particularly severe"); 174 refresh/linking ECDH allows **retroactive deanonymisation** from a database 175 obtained later, which D5.3 calls *"a severe vulnerability … that requires 176 fixing long before quantum computers arrive"*. 177 - The dual-use obstacle, D5.3 §3.5: *"Among the currently proposed post-quantum 178 signature schemes, none innately has this dual-use property."* 179 - The candidate: Beullens, Lyubashevsky, Nguyen, Seiler, ACM CCS 2023 — 180 ~22 kB signature, two round trips, versus 256 bytes for RSA-2048 blind 181 signatures today. D5.3 itself gives no sizes; these are from the paper. 182 - Project self-assessment, `2026-pqc/pqc.tex`: inventory **done**; alternative 183 refresh formulation **done (\*)**, where the asterisk is *"suitable 184 constructions exist, but currently available primitives introduce additional 185 limitations implementations have to work around"*; primitive recommendations 186 **work in progress**; *"no standard implementations exist"* for the required 187 blinding and k-unique signatures. Estimated 18–24 months, ≈€750k. 188 - **CRITICAL — do not say "PQ refresh is implemented".** DD 62 (PQ refresh) is 189 `Design status: Superseded`, superseded by exchange protocol v32, which uses 190 ECDHE transfer public keys. Shipped code at exchange HEAD 191 (`src/util/crypto.c`) calls `GNUNET_CRYPTO_ecdh_eddsa()`. **Pre-quantum 192 Curve25519 is what runs today.** 193 - Clause-Blind-Schnorr is **also** pre-quantum. It is not a hedge. 194 195 ## Slide 17 — Where it runs, and what is built 196 197 - **eNetzbon**, Basel, since 2024, through the Cyclos adapter 198 (`taler-rust/adapters/taler-cyclos`). **No merchant, user or volume figure 199 is sourced anywhere** — do not quote one. Note D2.1 (May 2025) does not 200 mention Netzbon at all. 201 - **Taler Operations AG**: FINMA written confirmation of the sandbox exemption, 202 December 2022 (applied September 2022); BankV Art. 6 ¶2; public deposits 203 ≤ CHF 1m; VQF SRO membership since **7 March 2024** (GwG Art. 14). 204 Operational limits: ≤ CHF 2,500/month and ≤ CHF 15,000/year per direction, 205 ≤ CHF 1,000 per transaction. Source: D2.1 Swiss Sandbox Report, 28 May 2025. 206 The operator's own notice on taler-ops.ch, verbatim: *"Taler Operations is 207 not supervised by the Swiss Financial Market Supervisory Authority 208 (FINMA)."* and *"Escrowed customer assets are not subject to deposit 209 insurance but held in a segregated bank account."* 210 - **First fiat merchants:** P15 CoNetWorking Space, Biel/Bienne, 6 January 2026 211 (first shop to accept eCHF); be-bop.io, PVH Éditions and le Coffice from 212 20 May 2026 via the be-BOP integration. 213 - **Magnet Bank:** internal alpha. Local decks give launch dates ranging from 214 Q3'2025 through Q2'2027; **Magnet Bank itself has published none**, and its 215 project page gives no timeline. The EU grant period ends 30 November 2026, 216 so a 2027 launch is after grant close — expect that question. 217 - **Bank connectivity:** libeufin EBICS dialects are exactly 218 `valiant, raiffeisen, postfinance, gls, maerki_baumann`; nexus-manual says 219 tested with Postfinance (CHF), GLS (EUR), Raiffeisen (CHF), Maerki Baumann 220 (CHF), Valiant (CHF). Magnet Bank and Cyclos and Wise are **separate Rust 221 adapters**, not libeufin. 222 - **28,500 TPS:** Boss & Grothoff, *GNU Taler Scalability*, BFH BSc thesis, 223 15 June 2022, on INRIA Grid'5000 (Dahu cluster, Grenoble; 32 nodes, 2×Xeon 224 Gold 6130, 10 Gbps, partitioned PostgreSQL, 200 exchange processes). Full 225 end-to-end mix including refresh. **Run at 1024-bit RSA** — the thesis says 226 production would want ≥2048 and argues the gap is recoverable by switching 227 Libgcrypt→OpenSSL, but that is an argument, not a measurement. Hence 228 "at reduced key sizes" on the slide; if pressed on production key sizes the 229 honest answer is **unverified**. 230 - ~2,000 TPS for Switzerland and ~100,000 TPS for a 500-million-person economy 231 are **Giesecke+Devrient rules of thumb** from a private conversation, 232 reported in the same thesis. Not a measured requirement, not an NGI TALER 233 KPI. 234 235 ## Slide 18 — Roadmap 236 237 - Taken from the project's own technical roadmap (lugcamp/interledger decks), 238 minus anything the checks above contradicted. 239 240 --- 241 242 ## Do not say 243 244 1. **"Post-quantum design"** unqualified, or "PQ refresh is implemented". 245 DD 62 is superseded; running code is ECDH. Correct phrasing exists in 246 `2025-bis/bis.tex`: *"Post-quantum design (not fully implemented)"*. 247 2. **"100,000 TPS capability"**, or that it was a project requirement. 248 3. **"28,500 TPS on a single server"** or "using 2 servers" — both appear in 249 our own decks (`2024-harbinger`, `2026-dielinke`) and both are wrong. It 250 was a distributed cluster, at 1024-bit keys. 251 4. **"Regulated CHF"**, **"cleared by FINMA"**, **"audited by the Swiss 252 regulator"** — all three appear in our decks. FINMA confirmed the model 253 falls *outside* licensing, which is the opposite of a clearance. 254 5. **"3× in production in Switzerland"** — one of the three (LeFrancPaysan) is 255 a prospect. The honest count is two. 256 6. Any **Netzbon** merchant, user or volume number. 257 7. A **Magnet Bank launch date attributed to the bank**. 258 8. Phrasing that makes GLS, Raiffeisen, Postfinance or Valiant sound like banks 259 that offer Taler. An integration means a Taler operator can hold an account 260 there. 261 9. **"Published at USENIX Security 2025"** for the Donau paper. 262 10. Paivana's circulating marketing numbers. 263 11. **"Without patents"** — one has since been filed on the offline design. 264 265 ## Still to check before the meeting 266 267 - ESORICS 2022 volume number and page range for the age-restriction paper. 268 - Whether D5.4 (the second PQC report) has been submitted; D5.3 says it is the 269 first of two. 270 - Whether anything has been announced about Magnet Bank since the v1.4 release 271 note of 4 February 2026.