marketing

Marketing materials (presentations, posters, flyers)
Log | Files | Refs

commit 19ea93a7f41070379f36bb9b41b54fdffd8d8fe5
parent 6d9d165c36531f233959e059dd988ceaf8850171
Author: Christian Grothoff <christian@grothoff.org>
Date:   Mon, 19 Oct 2026 22:31:14 +0200

b-slides

Diffstat:
Mpresentations/2026-dg-fisma/Makefile | 21++++++++++++---------
Apresentations/2026-dg-fisma/NOTES-alt.md | 271+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mpresentations/2026-dg-fisma/NOTES.md | 30++++++++++++++++++++++++++++++
Mpresentations/2026-dg-fisma/README | 26++++++++++++++++++++------
Apresentations/2026-dg-fisma/dg-fisma-2026-alt.tex | 532+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mpresentations/2026-dg-fisma/dg-fisma-2026.pdf | 0
Mpresentations/2026-dg-fisma/dg-fisma-2026.tex | 26++++++++++++++------------
Apresentations/2026-dg-fisma/images/taler-oim.png | 0
8 files changed, 879 insertions(+), 27 deletions(-)

diff --git a/presentations/2026-dg-fisma/Makefile b/presentations/2026-dg-fisma/Makefile @@ -1,19 +1,22 @@ -# Build the DG FISMA deck. Two pdflatex passes are required, otherwise the +# Build the DG FISMA decks. Two pdflatex passes are required, otherwise the # title page and the frame titles do not come out right (see README). +# +# dg-fisma-2026 -- the Digital Euro / trilogue briefing +# dg-fisma-2026-alt -- the GNU Taler technology briefing -DECK = dg-fisma-2026 +DECKS = dg-fisma-2026 dg-fisma-2026-alt -all: $(DECK).pdf +all: $(DECKS:=.pdf) -$(DECK).pdf: $(DECK).tex taler-macros.tex - pdflatex -interaction=nonstopmode $(DECK).tex - pdflatex -interaction=nonstopmode $(DECK).tex +%.pdf: %.tex taler-macros.tex + pdflatex -interaction=nonstopmode $< + pdflatex -interaction=nonstopmode $< clean: - rm -f $(DECK).aux $(DECK).log $(DECK).nav $(DECK).out $(DECK).snm \ - $(DECK).toc $(DECK).vrb + rm -f $(foreach d,$(DECKS),$(d).aux $(d).log $(d).nav $(d).out \ + $(d).snm $(d).toc $(d).vrb) distclean: clean - rm -f $(DECK).pdf + rm -f $(DECKS:=.pdf) .PHONY: all clean distclean diff --git a/presentations/2026-dg-fisma/NOTES-alt.md b/presentations/2026-dg-fisma/NOTES-alt.md @@ -0,0 +1,271 @@ +# Speaker notes and sources — dg-fisma-2026-alt + +The **alternative** deck, for the case where DG FISMA turns out to want GNU +Taler and the NGI TALER technical results rather than the Digital Euro +Regulation. Decide which deck to run in the first two minutes of the meeting; +`dg-fisma-2026` is the other one. + +21 slides, ~20 minutes. Slide 19 ("Where this touches your files") is the +bridge: if the room pulls towards the digital euro, switch decks there. + +Everything below was checked against primary sources in October 2026. Several +claims that circulate in our own older decks **do not survive checking** — the +"Do not say" list at the end is not hypothetical, it is a list of things we +have actually been putting on slides. + +--- + +## Slide 2 — What GNU Taler is + +- "In development since 2015": first commit in `exchange.git` is 2015-01-08 + ("initial import for mint"). `taler-typescript-core` starts 2015-11-25. +- "Over a million lines across some twenty repositories": counted over + exchange, merchant, taler-typescript-core, libeufin, anastasis, sync, donau, + challenger, taler-android, taler-ios, taler-docs — ~1.54m lines of + `.c/.h/.ts/.kt/.java/.py/.swift/.rs/.sql/.js`. Conservative phrasing on + purpose; do not quote a precise figure. + +## Slide 3 — Three operations + +- The point the draft trilogue deck got wrong: **the exchange detects + double-spending, not the merchant.** If anyone in the room has seen that + deck, this is the correction. + +## Slide 5 — The engine + +- Withdrawal blinding is information-theoretic. **Refresh is not** — per D5.3, + an exchange or eavesdropper without a quantum computer could link a dirty + coin to its refreshed derivative in exponential time. Do not claim + information-theoretic unlinkability for the whole protocol. + +## Slide 6 — Asymmetric privacy + +- Tinn, *Management Science*, 2025, on asymmetric privacy being + welfare-optimal. Same citation as in the other deck. + +## Slide 7 — Who gets what out of it + +- Structure borrowed from Tanja's ECB deck of 16 April 2026 (customer / + merchant / government benefits, each with a "things to note" caveat). Keep + the caveat line: it is what makes the rest credible. + +## Slide 9 — Age restriction + +- Özgür Kesim, Christian Grothoff, Florian Dold, Martin Schanzenbach, + *Zero-Knowledge Age Restriction for GNU Taler*, **ESORICS 2022**, LNCS, + DOI 10.1007/978-3-031-17140-6_6. **CHECK** the volume number and page range + against Springer before printing a full bibliographic entry. +- Design document DD 24, `Implementation status: Implemented`. Implementation + evidence: exchange 2022-03-01 and 2022-03-28, wallet 2022-04-19. Shipped in + the normative exchange protocol (`WithdrawRequest.max_age`, + reveal-withdraw); test vectors published in + `exchange/src/util/tv_age_restriction.json`. +- Mechanism: the age commitment is a vector of M Edx25519 public keys; + restricting to group *m* means withholding the private keys for slots > *m*. + Bound to the coin by signing `FDH(C_p, h_Q)` under the denomination key. + Refresh carry-over is enforced by cut-and-choose, so a cheat succeeds with + probability 1/κ. +- **Honest caveat, say it if asked:** implemented but **not switched on in any + deployment** — it is an exchange-operator opt-in, and DD 24 notes the + operator must then stick with the decision. The open question is legal + recognition of a cryptographic attestation in place of an ID check, which is + exactly the thing this room could move. + +## Slide 10 — Subscriptions and discounts + +- **Merged in `merchant` master**, not a branch — correct this if you have said + otherwise before. Normative since merchant protocol **v21**; token + fountains since **v43**; current implemented version v44. Provisioned in + the reference demo deployment (`sandcastle-ng`). +- Mechanism: wallet generates an EdDSA key pair per token, blinds the public + key, merchant blind-signs with the token-family key (RSA or Clause-Schnorr). + Redemption = unblinded issue signature + a signature under the token key. + Double-spend caught by a spent-token registry + (`merchant_do_insert_spent_token`). +- **Do not over-claim:** each token is **one use**. A twelve-month + subscription is twelve tokens. "One credential, unlimited unlinkable uses" + is not the design. +- Still unmerged: the wallet UI (DD 94, Partial) and declarative semantic token + families (DD 101, Experimental/Prototype). Asset or share tokens (DD 100) + are **Not started** — do not mention them as existing. +- Sources: `taler-docs/core/api-merchant.rst`, + `core/merchant/post-private-tokenfamilies.rst`, + `exchange/src/include/taler/taler_crypto_lib.h` ("Token crypto primitives"). + +## Slide 11 — Donau + +- Donation Authority operated by or on behalf of the tax authority; holds the + register of recognised charities and their yearly volume limits. +- Donor identifier `DI = H(TAXID, S)` with a secret salt `S`. Per-unit + blinded `UDI` pairs are signed by the charity, verified and blind-signed by + the Donau. At year end the donor submits the receipts and receives one + Ed25519 statement over `(DI, total, year)`; the validator recomputes + `H(TAXID, S)` from the salt the donor supplies. +- So: the charity never learns who gave; the authority never learns which + charity received which donation, and never sees `TAXID` itself. +- **Timing caveat** the paper itself raises: receipts must not be submitted at + a time strongly correlated with the donation, or the unlinkability between + issuance and submission weakens. Know this; do not volunteer it. +- Status: service implemented (protocol v2), Debian-packaged, merchant + integration merged, stood up in the reference deployment. Wallet-side + partial. **No tax authority runs one.** +- **CHECK before citing:** the paper in `donau/doc/usenix-security-2025/` is an + anonymised submission draft with open TODOs — **do not say "published at + USENIX Security 2025"**. Safe: "documented in a peer-review submission and + in NGI TALER deliverable D3.4", or cite the BFH thesis. + +## Slide 12 — Paivana + +- `paivana-httpd`: an HTTP reverse proxy gating a target site behind a Taler + payment. Prices come from merchant templates whose POSIX regex is matched + against the whole URL. Unpaid visitors get a Mustache paywall page; after + payment the proxy sets a keyed-hash access cookie over (expiry, website, + client address) and streams the upstream response. +- The paywall page carries a `Paivana` HTTP header "to also facilitate agentic + payments" — that is the basis for the AI-agent claim, and it is the whole of + it. Do not inflate it. +- **Do not repeat the Paivana marketing claims** that circulate elsewhere — + "audited by Swiss Regulator", "~100,000 TPS", "150,000 users", a "$3–5T + market". They are unsourced or contradicted by project documents. This is + why Paivana is absent from the other deck. + +## Slide 13 — Oral Information Management + +- Freetown, 2025: 21 women, 6 local languages; 4 had completed primary school; + 6 could read a five-digit ordinal number. After a 24-hour gap, 8 tasks: + 16 completed all 8 with no errors, 4 with two tries and no help, 1 did not + complete. Joint work with MyOralVillage (myoralvillage.org). +- Source: `marketing/presentations/comprehensive/oim.tex`, reused in the + lugcamp and interledger decks. + +## Slide 14 — Offline + +- Partially offline (merchant offline, customer online, OTP from the PoS key) + is implemented and used for vending; see Huang et al., SUERF 2023, and + `comprehensive/offline.tex`. +- The CAP argument and the hardware-vulnerability timeline are the same + material as slides 8–9 of the other deck. If this room wants the timeline, + switch decks — it is a whole slide there. + +## Slide 15 — Anastasis + +- Core secret encrypted under a master key; master key split across an open set + of escrow providers under a user-chosen policy; recovery by authentication + challenges (security question, SMS, video ID, IBAN transfer). Works without + the user remembering anything of high entropy. +- Source: `anastasis/doc/anastasis.texi`, §Introduction and §Adversary models. +- Status: provider backend, client libraries, CLI and GTK app implemented. Do + not claim a production provider network. + +## Slide 16 — Post-quantum + +**Tanja wrote the source document. Let her own this slide and the Q&A on it.** + +- D5.3, *Impact of Quantum Computers on GNU Taler for WP5*, Tanja Lange and + Jonathan Levin, rev. 1.0, 28 November 2024, EU ref. Ares(2024)8484648, + public. Local copy: + `taler-www/static/presentations/d5.3-ngi-ImpactOfQuantumComputersOnTaler.pdf`. +- The quoted assessment, verbatim: *"The protocols in GNU Taler exclusively use + factoring- and discrete logarithm-based public key cryptography. This means + that the cryptographic protocols in GNU Taler are very susceptible to attacks + with a quantum computer."* +- The two clocks: forging denomination keys needs a quantum computer **at + attack time** (D5.3: "not currently considered particularly severe"); + refresh/linking ECDH allows **retroactive deanonymisation** from a database + obtained later, which D5.3 calls *"a severe vulnerability … that requires + fixing long before quantum computers arrive"*. +- The dual-use obstacle, D5.3 §3.5: *"Among the currently proposed post-quantum + signature schemes, none innately has this dual-use property."* +- The candidate: Beullens, Lyubashevsky, Nguyen, Seiler, ACM CCS 2023 — + ~22 kB signature, two round trips, versus 256 bytes for RSA-2048 blind + signatures today. D5.3 itself gives no sizes; these are from the paper. +- Project self-assessment, `2026-pqc/pqc.tex`: inventory **done**; alternative + refresh formulation **done (\*)**, where the asterisk is *"suitable + constructions exist, but currently available primitives introduce additional + limitations implementations have to work around"*; primitive recommendations + **work in progress**; *"no standard implementations exist"* for the required + blinding and k-unique signatures. Estimated 18–24 months, ≈€750k. +- **CRITICAL — do not say "PQ refresh is implemented".** DD 62 (PQ refresh) is + `Design status: Superseded`, superseded by exchange protocol v32, which uses + ECDHE transfer public keys. Shipped code at exchange HEAD + (`src/util/crypto.c`) calls `GNUNET_CRYPTO_ecdh_eddsa()`. **Pre-quantum + Curve25519 is what runs today.** +- Clause-Blind-Schnorr is **also** pre-quantum. It is not a hedge. + +## Slide 17 — Where it runs, and what is built + +- **eNetzbon**, Basel, since 2024, through the Cyclos adapter + (`taler-rust/adapters/taler-cyclos`). **No merchant, user or volume figure + is sourced anywhere** — do not quote one. Note D2.1 (May 2025) does not + mention Netzbon at all. +- **Taler Operations AG**: FINMA written confirmation of the sandbox exemption, + December 2022 (applied September 2022); BankV Art. 6 ¶2; public deposits + ≤ CHF 1m; VQF SRO membership since **7 March 2024** (GwG Art. 14). + Operational limits: ≤ CHF 2,500/month and ≤ CHF 15,000/year per direction, + ≤ CHF 1,000 per transaction. Source: D2.1 Swiss Sandbox Report, 28 May 2025. + The operator's own notice on taler-ops.ch, verbatim: *"Taler Operations is + not supervised by the Swiss Financial Market Supervisory Authority + (FINMA)."* and *"Escrowed customer assets are not subject to deposit + insurance but held in a segregated bank account."* +- **First fiat merchants:** P15 CoNetWorking Space, Biel/Bienne, 6 January 2026 + (first shop to accept eCHF); be-bop.io, PVH Éditions and le Coffice from + 20 May 2026 via the be-BOP integration. +- **Magnet Bank:** internal alpha. Local decks give launch dates ranging from + Q3'2025 through Q2'2027; **Magnet Bank itself has published none**, and its + project page gives no timeline. The EU grant period ends 30 November 2026, + so a 2027 launch is after grant close — expect that question. +- **Bank connectivity:** libeufin EBICS dialects are exactly + `valiant, raiffeisen, postfinance, gls, maerki_baumann`; nexus-manual says + tested with Postfinance (CHF), GLS (EUR), Raiffeisen (CHF), Maerki Baumann + (CHF), Valiant (CHF). Magnet Bank and Cyclos and Wise are **separate Rust + adapters**, not libeufin. +- **28,500 TPS:** Boss & Grothoff, *GNU Taler Scalability*, BFH BSc thesis, + 15 June 2022, on INRIA Grid'5000 (Dahu cluster, Grenoble; 32 nodes, 2×Xeon + Gold 6130, 10 Gbps, partitioned PostgreSQL, 200 exchange processes). Full + end-to-end mix including refresh. **Run at 1024-bit RSA** — the thesis says + production would want ≥2048 and argues the gap is recoverable by switching + Libgcrypt→OpenSSL, but that is an argument, not a measurement. Hence + "at reduced key sizes" on the slide; if pressed on production key sizes the + honest answer is **unverified**. +- ~2,000 TPS for Switzerland and ~100,000 TPS for a 500-million-person economy + are **Giesecke+Devrient rules of thumb** from a private conversation, + reported in the same thesis. Not a measured requirement, not an NGI TALER + KPI. + +## Slide 18 — Roadmap + +- Taken from the project's own technical roadmap (lugcamp/interledger decks), + minus anything the checks above contradicted. + +--- + +## Do not say + +1. **"Post-quantum design"** unqualified, or "PQ refresh is implemented". + DD 62 is superseded; running code is ECDH. Correct phrasing exists in + `2025-bis/bis.tex`: *"Post-quantum design (not fully implemented)"*. +2. **"100,000 TPS capability"**, or that it was a project requirement. +3. **"28,500 TPS on a single server"** or "using 2 servers" — both appear in + our own decks (`2024-harbinger`, `2026-dielinke`) and both are wrong. It + was a distributed cluster, at 1024-bit keys. +4. **"Regulated CHF"**, **"cleared by FINMA"**, **"audited by the Swiss + regulator"** — all three appear in our decks. FINMA confirmed the model + falls *outside* licensing, which is the opposite of a clearance. +5. **"3× in production in Switzerland"** — one of the three (LeFrancPaysan) is + a prospect. The honest count is two. +6. Any **Netzbon** merchant, user or volume number. +7. A **Magnet Bank launch date attributed to the bank**. +8. Phrasing that makes GLS, Raiffeisen, Postfinance or Valiant sound like banks + that offer Taler. An integration means a Taler operator can hold an account + there. +9. **"Published at USENIX Security 2025"** for the Donau paper. +10. Paivana's circulating marketing numbers. +11. **"Without patents"** — one has since been filed on the offline design. + +## Still to check before the meeting + +- ESORICS 2022 volume number and page range for the age-restriction paper. +- Whether D5.4 (the second PQC report) has been submitted; D5.3 says it is the + first of two. +- Whether anything has been announced about Magnet Bank since the v1.4 release + note of 4 February 2026. diff --git a/presentations/2026-dg-fisma/NOTES.md b/presentations/2026-dg-fisma/NOTES.md @@ -378,3 +378,33 @@ header wedge, which use TikZ `remember picture`). Style is `taler-macros.tex` as used by 2026-pqc / 2026-rbi / 2026-dielinke. `\SUB` appears in the footer of every slide and must fit on one line. + +--- + +# Corrections applied October 2026 (after the deck was first drafted) + +- **"Live in Switzerland in regulated CHF, under the FINMA sandbox regime"** + → **"Live in Switzerland in CHF under the FINMA sandbox exemption — not + FINMA-supervised; AML through a recognised SRO".** The old wording + contradicted the "do not say" note already in this file. The operator's own + legal notice reads: *"Taler Operations is not supervised by the Swiss + Financial Market Supervisory Authority (FINMA)."* FINMA confirmed in + December 2022 that the business model falls *outside* licensing under BankV + Art. 6 ¶2 — the opposite of a clearance. SRO (VQF) membership since + 7 March 2024. +- **"v1.5"** → **v1.6**, which is the current release. +- **"28,500 transactions/s measured"** → **"measured at reduced key sizes"**. + The Grid'5000 experiments (Boss & Grothoff, BFH 2022) ran 1024-bit RSA; the + thesis says production would want ≥2048 and argues the gap is recoverable by + switching Libgcrypt→OpenSSL, but that is an argument, not a measurement. If + pressed on production key sizes, the honest answer is unverified. +- **"Hungary 2027 at the earliest"** → **"Hungary in internal alpha, with no + launch date announced"**. Our own decks carry launch dates from Q3'2025 to + Q2'2027; Magnet Bank has published none, and its project page gives no + timeline. Note the EU grant period ends 30 November 2026. +- Layout: on the "Asymmetric privacy answers AML" slide the two closing + bullets were being typeset inside the right-hand column, so they read as a + continuation of the "Payee" list. They are now a full-width paragraph. + +See NOTES-alt.md for the full sourcing behind these, and for the further +"do not say" items that came out of the same round of checking. diff --git a/presentations/2026-dg-fisma/README b/presentations/2026-dg-fisma/README @@ -1,8 +1,22 @@ -Slide deck for the NGI TALER briefing to DG FISMA (European Commission) -on the Digital Euro Regulation, October 2026. +Slide decks for the NGI TALER briefing to DG FISMA (European Commission), +October 2026. Two decks, because the purpose of the meeting is ambiguous: -Build with "make" (or run pdflatex twice by hand -- a single pass does not -lay out the title page and frame titles correctly). + dg-fisma-2026 The Digital Euro Regulation. Makes the case that the + trilogue is negotiating policy constraints on data the + architecture collects anyway, and ends with four asks for + the compromise text plus one for the pilot. -NOTES.md records the sources behind every factual claim on the slides, and -flags the claims that still need to be checked before the deck is presented. + dg-fisma-2026-alt GNU Taler and the NGI TALER technical results, with no + digital-euro argument. Use this one if the room turns + out to want to learn about the project rather than to + discuss the Regulation. + +Decide which to run in the first two minutes. Slide 19 of the alt deck +("Where this touches your files") is the bridge back to the other deck. + +Build both with "make" (or run pdflatex twice by hand -- a single pass does +not lay out the title page and frame titles correctly). + +NOTES.md and NOTES-alt.md record the sources behind every factual claim, and +each carries a "do not say" list of claims that circulate in our own older +decks but do not survive checking. diff --git a/presentations/2026-dg-fisma/dg-fisma-2026-alt.tex b/presentations/2026-dg-fisma/dg-fisma-2026-alt.tex @@ -0,0 +1,532 @@ +\documentclass[aspectratio=169,t]{beamer} +\input taler-macros +\usepackage{eurosym} +\usepackage{array} + +\newcommand{\TITLE}{NEXT \\ GENERATION \\ INTERNET} +\newcommand{\SUB}{GNU Taler: technology and results} +\newcommand{\AUTHOR}{Tanja Lange, Christian Grothoff, Leon Schumacher} +\newcommand{\SPEAKER}{Lange, Grothoff, Schumacher} +\newcommand{\INST}{NGI TALER} +\newcommand{\DATE}{\\ \ \vspace{0.5cm} \\ October 20\textsuperscript{th} 2026} + +% Do not edit this part +\title{\TITLE} +\subtitle{\SUB} +\date{\DATE} +\author[\SPEAKER]{\AUTHOR} +\institute{\INST} + +\begin{document} + +\begin{frame}[plain] +\maketitle +\end{frame} + + +% ---------------------------------------------------------------------- +\begin{frame}{What GNU Taler is} + \begin{minipage}{0.47\textwidth} + {\bf It is} + \begin{itemize} + \item Free software payment {\bf infrastructure}: wallets, merchant + backends, bank integrations + \item {\bf Digital cash} --- bearer tokens in an existing currency, + issued against a bank debit + \item A design where the {\bf payer is unlinkable} and the + {\bf payee is identified} + \end{itemize} + \end{minipage} + \hfill + \begin{minipage}{0.47\textwidth} + {\bf It is not} + \begin{itemize} + \item A currency, an asset, a store of value + \item A blockchain: no mining, no ledger, no consensus + \item Decentralised issuance --- that stays with a regulated + institution + \item One network: anyone may run an instance + \end{itemize} + \end{minipage} + + \vfill + \begin{center} + {\small In development since 2015. A GNU package, licensed AGPL/GPL/LGPL.} + \end{center} +\end{frame} + + +% ---------------------------------------------------------------------- +\begin{frame}{Three operations, and that is all} + \begin{enumerate} + \item {\bf Withdraw.} The wallet asks a regulated operator --- the + {\em exchange} --- for coins. The customer's account is debited, and + the operator signs coins it {\bf cannot recognise later}. + \item {\bf Pay.} The wallet spends coins directly with the merchant. No + account, no login, nothing reusable is disclosed. + \item {\bf Deposit.} The merchant deposits the coins with the exchange, + which detects any double-spend and credits the merchant's account. + \end{enumerate} + \vfill + \begin{center} + Double-spending is detected by the {\bf exchange}, not by the merchant + --- so the merchant never has to be trusted. + \end{center} +\end{frame} + + +% ---------------------------------------------------------------------- +\begin{frame}{Architecture} + \begin{center} + \includegraphics[height=5.6cm]{images/operations.png} + \end{center} +\end{frame} + + +% ---------------------------------------------------------------------- +\begin{frame}{The engine: blind signatures and refresh} + \begin{itemize} + \item {\bf Withdraw.} The wallet blinds a fresh coin key; the operator + signs it with a {\em denomination key} encoding the value. It sees the + account, never the coin. + \item {\bf Spend.} The wallet signs the contract with the coin key. The + merchant checks the operator's signature locally, in microseconds. + \item {\bf Change.} A partly spent coin is {\bf refreshed} into new + coins. The operator verifies that value is conserved and cannot link + new to old --- but the owner can, so change cannot move value + anonymously. + \end{itemize} + \vfill + \begin{center} + {\bf The operator verifies everything and links nothing.}\\[2pt] + {\small Every feature in this deck is built from that one property.} + \end{center} +\end{frame} + + +% ---------------------------------------------------------------------- +\begin{frame}{Asymmetric privacy} + \begin{minipage}{0.47\textwidth} + {\bf Payer} + \begin{itemize} + \item Unlinkable by construction + \item No identity in the payment + \item Carries nobody else's data + \end{itemize} + \end{minipage} + \hfill + \begin{minipage}{0.47\textwidth} + {\bf Payee} + \begin{itemize} + \item Always identified + \item Every receipt attributable + \item Income auditable and taxable + \end{itemize} + \end{minipage} + + \vfill + KYC/AML applies where it works: at {\bf withdrawal} and {\bf deposit}, + inside the regulated perimeter. Anonymity is {\bf one-sided}: there is no + anonymous \emph{recipient}, so the laundering direction is closed. + \vfill + \begin{center} + {\small Cash protects the payer \emph{and} hides the merchant. This + protects the payer and {\bf exposes} the merchant --- which is also + welfare-optimal (Tinn, \emph{Management Science}, 2025).} + \end{center} +\end{frame} + + +% ---------------------------------------------------------------------- +\begin{frame}{Who gets what out of it} + \small + \begin{itemize} + \item {\bf Customer.} Purchase behaviour is private. No account, no + login, no sign-up --- so children, tourists and the unbanked are not + excluded by onboarding. Payment settles instantly, by QR code or NFC, + and is never rejected as suspected fraud. + \item {\bf Merchant.} No card data and no buyer information: GDPR and + PCI-DSS obligations largely fall away rather than being managed. No + chargeback fraud, and costs low enough for small vendors and for + micropayments. + \item {\bf Public authority.} Privacy is a property of the protocol, so + no operator can be compelled to run mass surveillance. Payees must + report income to receive it. Issuance, limits, fees and revocation + stay with the issuer. + \end{itemize} + \vfill + \begin{center} + {\small To note: lose the wallet and you lose the money, as with cash + --- but a {\bf thief gains nothing} from a stolen one.} + \end{center} +\end{frame} + + +% ---------------------------------------------------------------------- +\begin{frame}{One primitive, many products} + \framesubtitle{Change what the token certifies} + \footnotesize + \renewcommand{\arraystretch}{1.45} + \begin{center} + \begin{tabular}{@{}>{\raggedright\arraybackslash}p{5.2cm}@{\quad}>{\raggedright\arraybackslash}p{7.4cm}@{}} + {\bf The token certifies \dots} & {\bf \dots and you have} \\ + \hline + a value, in euro or franc & digital cash --- the base case \\ + a value, and an age bound & age-restricted purchase, without identity \\ + a right to use one merchant & unlinkable subscriptions and discounts \\ + an amount given to a charity & a tax-deductible donation receipt (Donau) \\ + a single HTTP request & pay-per-use web and agent access (Paivana) \\ + a value, shown without text & a wallet usable without reading or counting \\ + \end{tabular} + \end{center} + \vfill + \begin{center} + {\small Each one is the {\bf same protocol} with a different claim inside + the blind signature. None needs a new network.} + \end{center} +\end{frame} + + +% ---------------------------------------------------------------------- +\begin{frame}{Age restriction without identity} + \framesubtitle{ESORICS 2022 --- implemented and shipped} + \small + \begin{itemize} + \item A guardian withdraws coins {\bf committed to an age group}. + Restricting to group $m$ means {\bf withholding the private keys + above $m$}; the commitment is signed into the coin. + \item The minor proves ``at least $k$'' for any $k \le m$ by signing + with that key. The keys above $m$ cannot be derived. + \item The coin does not reveal that it is restricted, or to what. The + merchant learns {\bf one bit} --- not a birthdate, a document number + or a card. + \item The restriction {\bf survives change}: a cut-and-choose proof at + refresh leaves a cheating wallet a $1/\kappa$ chance. + \end{itemize} + \vfill + \begin{center} + {\small The restriction is tied to the {\bf ability to pay}, not to an + identity document --- so no attribute broker and no register of + minors. What is missing is {\bf legal recognition} of a cryptographic + attestation in place of an ID check.} + \end{center} +\end{frame} + + +% ---------------------------------------------------------------------- +\begin{frame}{Subscriptions and discounts, unlinkably} + \small + \begin{itemize} + \item A merchant defines a {\bf token family}. A contract may + {\bf require} tokens and {\bf issue} them: pay once and receive twelve + monthly access tokens; buy ten coffees and receive one free. + \item The wallet blinds a fresh key per token and the merchant + {\bf blind-signs} it, so at redemption the merchant {\bf cannot link + the use to the purchase that issued it}. Re-use is caught by a + {\bf spent-token registry}, not by identifying the holder. + \item Each token is one use: a year's subscription is twelve tokens. + \item {\bf Token fountains} hand promotional tokens to a whole group --- + a university to its students --- with no order, account or name per + recipient. + \end{itemize} + \vfill + \begin{center} + {\small Only the wallet and the merchant are involved --- no exchange, + no bank, no card scheme. Merged in the merchant backend and in the + published protocol; the wallet interface is still in progress.} + \end{center} +\end{frame} + + +% ---------------------------------------------------------------------- +\begin{frame}{Donau: private, deductible donations} + \small + \begin{itemize} + \item A donation today is either {\bf traceable and deductible}, or + {\bf private and not deductible}. + \item A {\bf Donation Authority}, run by or for the tax authority, + registers charities and their annual limits. The wallet collects + blind-signed receipts; the charity forwards blinded values it + {\bf cannot read}, and never learns who gave. + \item At year end the wallet exchanges them for {\bf one signed + statement} --- hashed donor identifier, total, year --- which goes + into the tax return as a QR code. + \item The authority learns what a donor gave {\bf in total} and what a + charity received {\bf in total}, never which donation was which, and + never the tax identifier itself. + \end{itemize} + \vfill + \begin{center} + {\small Auditable throughout: per-charity volume caps are enforced at + issuance. Implemented and packaged, merchant integration merged --- + but no tax authority operates one yet.} + \end{center} +\end{frame} + + +% ---------------------------------------------------------------------- +\begin{frame}{Paivana: paying per page, or as an agent} + \small + \begin{itemize} + \item The web has two working business models: {\bf subscription} and + {\bf surveillance advertising}. Micropayments failed because every + payment needed an account, and processing cost more than the article. + \item {\bf Paivana} is a reverse proxy placed in front of an existing + site. Prices are set per URL pattern, the site is not modified, and + the visitor pays for a {\bf time-bounded access token} --- no account, + no subscription, no registration. + \item The paywall response carries the price in a {\bf machine-readable + header}, so an AI agent can {\bf pay} for what it fetches, under a + budget its owner set, rather than scrape it. + \end{itemize} + \vfill + \begin{center} + A publisher is paid per read and learns nothing about the reader --- + and a crawler can be {\bf asked for money} instead of being blocked. + \end{center} +\end{frame} + + +% ---------------------------------------------------------------------- +\begin{frame}{Users who cannot read the amount} + \framesubtitle{Joint work with MyOralVillage} + \begin{minipage}{0.40\textwidth} + \begin{center} + \includegraphics[width=\textwidth]{images/taler-oim.png} + \end{center} + \end{minipage} + \hfill + \begin{minipage}{0.56\textwidth} + {\small + \begin{itemize} + \item Amounts are shown as {\bf countable denominations}, not + digits; every task is {\bf correctable}. + \item Freetown, 2025: {\bf 21} women, 6 languages. Only 4 had + finished primary school; only 6 could read a five-digit number. + \item After a 24-hour gap, 8 payment tasks, unaided: {\bf 16} + completed all 8 with no errors, {\bf 4} with retries and no help, + 1 did not complete. + \end{itemize} + } + \end{minipage} + + \vfill + \begin{center} + {\small A payment instrument that assumes numeracy excludes the people + who need it most. The {\bf same wallet} serves both.} + \end{center} +\end{frame} + + +% ---------------------------------------------------------------------- +\begin{frame}{Offline: what works, and what cannot} + \begin{itemize} + \item {\bf Deployed:} the {\bf merchant} offline, the customer online. + The terminal shows an identifier, the wallet pays over its own + connection, and a one-time code proves settlement to the terminal. + Vending machines and unattended points of sale. + \item {\bf Unsolved, by anyone:} both sides offline with a bearer + balance. Offline double-spending can be {\bf punished}, never + {\bf prevented}. + \item That leaves two options: trust tamper-resistant hardware + {\bf against its own owner}, or {\bf de-anonymise retroactively}. + There is no third. + \end{itemize} + \vfill + \begin{center} + {\small We do the other half of this work too: breaking the secure + elements such designs rely on, by side channel and fault injection.} + \end{center} +\end{frame} + + +% ---------------------------------------------------------------------- +\begin{frame}{Losing the phone} + \framesubtitle{GNU Anastasis} + \begin{itemize} + \item {\bf Anastasis} encrypts the wallet's root secret under a master + key and {\bf splits that key across independent escrow providers}. + \item The user sets the policy: which subsets must be satisfied, and by + which challenges --- a security question, an SMS, a video + identification, a transfer from a known account. + \item {\bf No single provider} can recover the key, and none learns what + it protects. Recovery works {\bf without} the user remembering + anything of high entropy. + \end{itemize} + \vfill + \begin{center} + Consumer protection by {\bf splitting trust}, rather than by + concentrating it in a custodian.\\[2pt] + {\small Implemented: provider backend, client libraries, command line + and graphical application.} + \end{center} +\end{frame} + + +% ---------------------------------------------------------------------- +\begin{frame}{Post-quantum: where we actually are} + \footnotesize + \begin{itemize} + \item Taler's public-key layer is {\bf entirely} factoring- and + discrete-logarithm-based --- ``very susceptible to attacks with a + quantum computer'', in our own analysis's words. + \item {\bf Two different clocks.} Forging coins needs a quantum computer + {\em at the time of the attack}. Unlinkability does not: refresh uses + Diffie--Hellman, so whoever obtains the operator's database later can + link refreshed coins {\bf retroactively}. That damage accrues today. + \item The obstacle is specific: refresh needs {\bf one key usable both + for signing and for key exchange}, and no proposed post-quantum + signature scheme has that property. + \item {\bf Ready in theory, not in implementation.} The running code is + pre-quantum, and no post-quantum blind signature is deployment-ready + --- the round-efficient candidate costs some {\bf 22\,kB} per + signature against 256 bytes today. Call it 18--24 months. + \end{itemize} +\end{frame} + + +% ---------------------------------------------------------------------- +\begin{frame}{Where it runs, and what is built} + \footnotesize + \begin{minipage}{0.48\textwidth} + {\bf Deployed} + \begin{itemize} + \item eNetzbon, the Basel regional currency, since 2024 + \item eCHF from Taler Operations AG since 2025, under the Swiss + {\bf sandbox exemption}: {\bf not} FINMA-supervised, deposits + capped at CHF\,1\,m, anti-money-laundering through a recognised + self-regulatory body + \item First merchants accepting it since January 2026 + \item Magnet Bank, Hungary: {\bf internal alpha}, no launch date + announced + \end{itemize} + \end{minipage} + \hfill + \begin{minipage}{0.48\textwidth} + {\bf Built} + \begin{itemize} + \item {\bf 28{,}500} payments per second, measured end to end on a + research cluster at reduced key sizes --- Switzerland's entire + retail volume is around 2{,}000 per second + \item EBICS and ISO\,20022 connectivity tested with five Swiss and + German banks; native adapters for Magnet Bank and Cyclos + \item Wallets for Android, iOS and the browser + \end{itemize} + \end{minipage} + + \vfill + \begin{center} + {\footnotesize An integration means a Taler operator can {\bf bank + there}, not that the bank offers Taler. Two live deployments, both + Swiss; none yet in the euro area.} + \end{center} +\end{frame} + + +% ---------------------------------------------------------------------- +\begin{frame}{Roadmap and open problems} + \small + \begin{minipage}{0.47\textwidth} + {\bf In progress} + \begin{itemize} + \item Currency conversion via Interledger + \item Terminals, vending, doors, one-time-password hardware + \item Wallet recovery with Anastasis + \item KYC via national e-ID across Europe + \item Post-quantum protocol variant + \end{itemize} + \end{minipage} + \hfill + \begin{minipage}{0.47\textwidth} + {\bf Unsolved} + \begin{itemize} + \item Both parties offline with a bearer balance + \item Direct debit and pull payments + \item Practical post-quantum blind signatures + \item No euro-area deployment yet + \end{itemize} + \end{minipage} + + \vfill + \begin{center} + {\small We also work the other side: breaking secure elements and + hardware security modules by side channel and fault injection.} + \end{center} +\end{frame} + + +% ---------------------------------------------------------------------- +\begin{frame}{Where this touches your files} + \small + \begin{itemize} + \item {\bf Digital euro.} A design in which privacy is a property of the + protocol, not a restriction on who may query a database. We have a + second deck on that if you would rather have it. + \item {\bf Retail payments.} Instant clearance at par, no interchange to + divide, no payer credential for a merchant to lose. + \item {\bf Anti-money-laundering.} Anonymity on one side only. Every + euro enters and leaves through a regulated institution. + \item {\bf Age assurance.} A proof of ``at least 16'' that discloses + nothing else --- already implemented, pending legal recognition. + \item {\bf Data protection and sovereignty.} Data that is never created + cannot be breached or transferred; free software, published + specification, no single operator. + \end{itemize} +\end{frame} + + +% ---------------------------------------------------------------------- +\begin{frame}{Summary} + \begin{itemize} + \item One property --- {\bf the operator verifies everything and links + nothing} --- and every feature here falls out of it. + \item Privacy for the payer, identification of the payee: taxable, + auditable, and not a laundering instrument. + \item Age proofs, subscriptions, discounts, donation receipts, + pay-per-request web access, recovery after device loss: the + {\bf same protocol}, a different claim inside the signature. + \item Free software and a published specification, in production in + Switzerland --- and not yet in the euro area. + \end{itemize} + \vfill + \begin{center} + {\small \url{https://taler.net} \quad + \url{https://docs.taler.net} \quad + \url{https://git.taler.net} \quad + \url{https://demo.taler.net}} + \end{center} +\end{frame} + + +% ---------------------------------------------------------------------- +\begin{frame}{Acknowledgements} + + \begin{minipage}{0.45\textwidth} \ \\ + {\tiny Funded by the European Union (Project 101135475).} + + \begin{center} + \includegraphics[width=0.5\textwidth]{images/bandera.jpg} + \end{center} + \end{minipage} + \hfill + \begin{minipage}{0.45\textwidth} + {\tiny Funded by SERI (HEU-Projekt 101135475-TALER).} + + \begin{center} + \includegraphics[width=0.65\textwidth]{images/sbfi.jpg} + \end{center} + \end{minipage} + + \vfill + + {\tiny + + Views and opinions expressed are however those of the author(s) only + and do not necessarily reflect those of the European Union. Neither the + European Union nor the granting authority can be held responsible for + them. + + } +\end{frame} + +\end{document} diff --git a/presentations/2026-dg-fisma/dg-fisma-2026.pdf b/presentations/2026-dg-fisma/dg-fisma-2026.pdf Binary files differ. diff --git a/presentations/2026-dg-fisma/dg-fisma-2026.tex b/presentations/2026-dg-fisma/dg-fisma-2026.tex @@ -142,13 +142,11 @@ \item Income auditable and taxable \end{itemize} \end{minipage} + \vfill - \begin{itemize} - \item KYC/AML applies where it works: at {\bf withdrawal} and at - {\bf deposit}, inside the regulated perimeter. - \item Anonymity is {\bf one-sided}, so there is no anonymous - \emph{recipient}. The laundering direction is closed. - \end{itemize} + KYC/AML applies where it works: at {\bf withdrawal} and at {\bf deposit}, + inside the regulated perimeter. Anonymity is {\bf one-sided}, so there is + no anonymous \emph{recipient} --- the laundering direction is closed. \vfill \begin{center} Cash protects the payer \emph{and} hides the merchant.\\ @@ -278,6 +276,7 @@ \item Coin expiry and refresh fees discourage hoarding \end{itemize} \end{minipage} + \vfill \begin{center} Banca d'Italia, on eCash: withdrawal {\bf applies all the controls of an @@ -360,11 +359,13 @@ \begin{minipage}{0.47\textwidth} {\bf Done} \begin{itemize} - \item Live in Switzerland in regulated CHF, under the FINMA - {\bf sandbox} regime with SRO supervision - \item v1.5; independent external security audits - \item {\bf 28{,}500} transactions/s measured --- Switzerland needs - $\approx$2{,}000, the euro area $\approx$100{,}000 + \item Live in Switzerland in CHF under the FINMA {\bf sandbox + exemption} --- {\bf not} FINMA-supervised; AML through a + recognised SRO + \item v1.6; independent external security audits + \item {\bf 28{,}500} transactions/s measured at reduced key sizes + --- Switzerland needs $\approx$2{,}000, the euro area + $\approx$100{,}000 \item Android, iOS, browser; EBICS/ISO 20022 \end{itemize} \end{minipage} @@ -372,7 +373,8 @@ \begin{minipage}{0.47\textwidth} {\bf Not done} \begin{itemize} - \item No euro-area deployment yet; Hungary 2027 at the earliest + \item No euro-area deployment yet; Hungary in internal alpha, with + no launch date announced \item Sandbox caps the Swiss operator at {\bf CHF 1\,m} in total deposits \item Fully offline (both sides) {\bf unsolved} --- as it is for diff --git a/presentations/2026-dg-fisma/images/taler-oim.png b/presentations/2026-dg-fisma/images/taler-oim.png Binary files differ.