marketing

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

commit 55f0d39cd4b6ad95fa3f0a744d2125b784403be9
parent f71fe8d480ebabef7fa191d02eae689882b16469
Author: Christian Grothoff <grothoff@gnunet.org>
Date:   Tue, 21 Apr 2026 08:41:06 +0200

sum

Diffstat:
Apresentations/2026-interledger/abstract.en.txt | 9+++++++++
Apresentations/2026-interledger/illiteracy.png | 0
Apresentations/2026-interledger/main.tex | 833+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apresentations/2026-interledger/numeracy.png | 0
Apresentations/2026-interledger/operations.png | 0
Apresentations/2026-interledger/taler-in-use.png | 0
Apresentations/2026-interledger/taler-logo-2021-inkscape.pdf | 0
Apresentations/2026-interledger/taler-macros.tex | 105+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apresentations/2026-interledger/taler-oim.png | 0
Apresentations/2026-interledger/transaction-types.png | 0
10 files changed, 947 insertions(+), 0 deletions(-)

diff --git a/presentations/2026-interledger/abstract.en.txt b/presentations/2026-interledger/abstract.en.txt @@ -0,0 +1,9 @@ +GNU Taler is a Free Software privacy-friendly payment system from the GNU +project. Taler does not use a blockchain: monetary policies are expected to +be set by a central bank. Digital money can be issued either by retail +banks or by the central bank. Paying with Taler is extremely efficient: +customers authorize transactions with one click, and then the system takes +only a few milliseconds to finalize the transactions. In this talk, we will +introduce the political goals, architecture and technology behind Taler, +demonstrate the current state of the art and outline likely future +developments. diff --git a/presentations/2026-interledger/illiteracy.png b/presentations/2026-interledger/illiteracy.png Binary files differ. diff --git a/presentations/2026-interledger/main.tex b/presentations/2026-interledger/main.tex @@ -0,0 +1,833 @@ +\pdfminorversion=3 +\documentclass[fleqn,xcolor={usenames,dvipsnames}]{beamer} +\input taler-macros + +\newcommand{\TITLE}{NEXT \\ GENERATION \\ INTERNET} +\newcommand{\SUB}{The GNU Taler Payment System} +\newcommand{\AUTHOR}{Christian Grothoff} +\newcommand{\SPEAKER}{Christian Grothoff} +\newcommand{\INST}{The GNU Project} +\newcommand{\DATE}{\today} + +% Do not edit this part +\title{\TITLE} +\subtitle{\SUB} +\date{\DATE} +\author[\SPEAKER]{\AUTHOR} +\institute{\INST} +\usepackage{amsmath} +\usepackage{multimedia} +\usepackage[utf8]{inputenc} +\usepackage{framed,color,ragged2e} +\usepackage[absolute,overlay]{textpos} +\definecolor{shadecolor}{rgb}{0.8,0.8,0.8} +\usetheme{boxes} +\setbeamertemplate{navigation symbols}{} +\usepackage{xcolor} +\usepackage[normalem]{ulem} +\usepackage{listings} +\usepackage{adjustbox} +\usepackage{array} +\usepackage{bbding} +\usepackage{relsize} +\usepackage{graphicx} +\usepackage{tikz,eurosym,calc} +\usetikzlibrary{tikzmark} +\usetikzlibrary{shapes,arrows,arrows.meta} +\usetikzlibrary{positioning,fit,patterns} +\usetikzlibrary{calc} +\usepackage{multicol} +\usepackage{pgf-umlsd} +\usepackage{relsize} + + +% CSS +\lstdefinelanguage{CSS}{ + basicstyle=\ttfamily\scriptsize, + keywords={color,background-image:,margin,padding,font,weight,display,position,top,left,right,bottom,list,style,border,size,white,space,min,width, transition:, transform:, transition-property, transition-duration, transition-timing-function}, + sensitive=true, + morecomment=[l]{//}, + morecomment=[s]{/*}{*/}, + morestring=[b]', + morestring=[b]", + alsoletter={:}, + alsodigit={-} +} + +% JavaScript +\lstdefinelanguage{JavaScript}{ + basicstyle=\ttfamily\scriptsize, + morekeywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break}, + morecomment=[s]{/*}{*/}, + morecomment=[l]//, + morestring=[b]", + morestring=[b]' +} + +\lstdefinelanguage{HTML5}{ + basicstyle=\ttfamily\scriptsize, + language=html, + sensitive=true, + alsoletter={<>=-}, + morecomment=[s]{<!-}{-->}, + tag=[s], + otherkeywords={ + % General + >, + % Standard tags + <!DOCTYPE, + </html, <html, <head, <title, </title, <style, </style, <link, </head, <meta, />, + % body + </body, <body, + % Divs + </div, <div, </div>, + % Paragraphs + </p, <p, </p>, + % scripts + </script, <script, + % More tags... + <canvas, /canvas>, <svg, <rect, <animateTransform, </rect>, </svg>, <video, <source, <iframe, </iframe>, </video>, <image, </image> + }, + ndkeywords={ + % General + =, + % HTML attributes + charset=, src=, id=, width=, height=, style=, type=, rel=, href=, + % SVG attributes + fill=, attributeName=, begin=, dur=, from=, to=, poster=, controls=, x=, y=, repeatCount=, xlink:href=, + % CSS properties + margin:, padding:, background-image:, border:, top:, left:, position:, width:, height:, + % CSS3 properties + transform:, -moz-transform:, -webkit-transform:, + animation:, -webkit-animation:, + transition:, transition-duration:, transition-property:, transition-timing-function:, + } +} + +\lstdefinelanguage{JavaScript}{ + basicstyle=\ttfamily\scriptsize, + keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break, for}, + keywordstyle=\color{blue}\bfseries, + ndkeywords={class, export, boolean, throw, implements, import, this}, + ndkeywordstyle=\color{darkgray}\bfseries, + identifierstyle=\color{black}, + sensitive=false, + comment=[l]{//}, + morecomment=[s]{/*}{*/}, + commentstyle=\color{purple}\ttfamily, + stringstyle=\color{red}\ttfamily, + morestring=[b]', + morestring=[b]" +} + +\setbeamersize{description width=1em} + +\title{GNU Taler} +%\subtitle{} + +% NOTE: adjust as needed! +\author[C. Grothoff]{F. Dold, C. Grothoff} +\institute{The GNU Project} + + +\begin{document} + +\justifying + +\begin{frame}{GNU Taler} + \vfill + \begin{center} + {\huge {\bf Digital} cash, made \textbf{socially responsible}.} + \end{center} + \vfill + \begin{center} + \includegraphics[scale=0.3]{taler-logo-2021-inkscape.pdf} + \end{center} + \vfill + \begin{center} + Privacy-Preserving, Practical, Taxable, Free Software, Efficient + \end{center} + \vfill + \vfill +\ % +\end{frame} + + +\begin{frame}{What is Taler?} + \framesubtitle{\url{https://taler.net/en/features.html}} \noindent +Taler is + \vfill + \begin{itemize} + \item a Free/Libre software \emph{payment system} infrastructure project + \item ... with a surrounding software ecosystem + \item ... and a company (Taler Systems S.A.) and community that wants to deploy it + as widely as possible. + \end{itemize} + \vfill +\noindent + However, Taler is + \begin{itemize} + \item \emph{not} a currency or speculative asset + \item \emph{not} a long-term store of value + \item \emph{not} a network or instance of a system + \item \emph{not} based on proof-of-work or proof-of-stake + \end{itemize} +\end{frame} + + +\begin{frame}{Design principles} + \framesubtitle{https://taler.net/en/principles.html} +GNU Taler must ... +\begin{enumerate} + \item {... be implemented as {\bf free software}.} + \item {... protect the {\bf privacy of buyers}.} + \item {... enable the state to {\bf tax income} and crack down on + illegal business activities.} + \item {... prevent payment fraud.} + \item {... only {\bf disclose the minimal amount of information + necessary}.} + \item {... be usable.} + \item {... be efficient.} + \item {... avoid single points of failure.} + \item {... foster {\bf competition}.} +\end{enumerate} +\end{frame} + + +\begin{frame} +\frametitle{Taler Overview} +\begin{center} +\begin{tikzpicture} + \tikzstyle{def} = [node distance= 5em and 5em, inner sep=1em, outer sep=.3em]; + \node (origin) at (0,0) {}; + \node (exchange) [def,above=of origin,draw]{Exchange}; + \node (customer) [def, draw, below left=of origin] {Customer}; + \node (merchant) [def, draw, below right=of origin] {Merchant}; + \node (auditor) [def, node distance=5em and 6em, draw, above right=of origin]{Auditor}; +% \node (regulator) [def, draw, above=of auditor]{CSSF}; + + \tikzstyle{C} = [color=black, line width=1pt] + + \draw [<-, C] (customer) -- (exchange) node [midway, above, sloped] (TextNode) {withdraw coins}; + \draw [<-, C] (exchange) -- (merchant) node [midway, above, sloped] (TextNode) {deposit coins}; + \draw [<-, C] (merchant) -- (customer) node [midway, above, sloped] (TextNode) {spend coins}; + \draw [<-, C] (exchange) -- (auditor) node [midway, above, sloped] (TextNode) {verify}; +% \draw [<-, C] (regulator) -- (auditor) node [midway, above, sloped] (TextNode) {report}; + +\end{tikzpicture} +\end{center} +\end{frame} + + + +\begin{frame} +\frametitle{Architecture of Taler} +\begin{center} + \includegraphics[width=0.8\textwidth]{operations.png} +\end{center} +\end{frame} + + +\begin{frame}{Usability of GNU Taler} + \vfill + \begin{center} + \url{https://demo.taler.net/} + \end{center} + \begin{enumerate} + \item Install browser extension. + \item Visit the {\tt bank.demo.taler.net} to withdraw coins. + \item Visit the {\tt shop.demo.taler.net} to spend coins. + \end{enumerate} + \vfill +\end{frame} + + +\begin{frame}{Real-world use} +\vfill +\begin{center} +\includegraphics[width=1.0\textwidth]{taler-in-use.png} +\end{center} +\vfill +\end{frame} + + +\begin{frame}{Literacy \& Numeracy}{Joint work with MyOralVillage} + \includegraphics[width=0.45\textwidth]{illiteracy.png} + \includegraphics[width=0.45\textwidth]{numeracy.png} +\end{frame} + + +\begin{frame}{GNU Taler Oral Information Management Design} + \begin{center} + \includegraphics[width=0.5\textwidth]{taler-oim.png} +\end{center} + \begin{center} + \includegraphics[width=0.5\textwidth]{transaction-types.png} +\end{center} +\end{frame} + + +\begin{frame}{Results from Freetown (2025)} +\begin{itemize} + \item 21 women speaking 6 local languages were briefed on how to send money in the OIM Taler prototype. + \item Of these only 4 had completed primary school, and only 6 could read a 5-digit cash (ordinal) number. + \item After 24 hours they were presented a Taler wallet with a random sum in New Leone tokens. + They were asked to count the money, and complete 8 tasks to send some to another person by generating a scannable QR code. + \item 16 completed all 8 tasks with no errors. + \item 4 completed all 8 tasks with two tries but no help. Only one was unable to complete the process successfully. +\end{itemize} +\end{frame} + + +\begin{frame}{Taler: Project Status} +\framesubtitle{\url{https://taler-ops.ch/}} + 3x in production in Switzerland: + \begin{itemize} + \item Netzbon regional currency + \item Taler Operations AG for {\bf regulated} CHF + \item LeFrancPaysan (coming soon) + \end{itemize} + With potential to grow: + \begin{itemize} + \item Core banking integrations for GLS, Magnet, Raiffeisen, Postfinance, Valiant Bank exist + \item Raising funds for launch in European Union + \end{itemize} +\end{frame} + + +\begin{frame}{Taler: Technical Roadmap} + \begin{itemize} + \item Currency conversion via Interledger protocol + \item Subscription \& discount tokens + \item Improved point-of-sale terminal integration + \item Hardware integrations (doors, xOTP, MDB) + \item KYC via e-ID across Europe + \item Post-quantum cryptographic protocol variant + \item Oral information mangement-inspired UIs + \end{itemize} +\end{frame} + + +\begin{frame}{How to support?} + \begin{description} + \item[Join:] {\small \url{https://lists.gnu.org/mailman/listinfo/taler}} + \item[Discuss:] {\small \url{https://ich.taler.net/}} + \item[Develop:] \url{https://bugs.taler.net/}, \url{https://git.taler.net/} + \item[Apply:] \url{https://nlnet.nl/propose}, \url{https://nlnet.nl/taler} + \item[Translate:] \url{https://weblate.taler.net/}, \url{translation-volunteer@taler.net} + \item[Integrate:] \url{https://docs.taler.net/} + \item[Invest:] {\small \url{invest@taler-systems.com}} + \item[Donate:] \url{https://gnunet.org/ev} + \item[Partner:] \url{https://taler-systems.com/} + \end{description} +\end{frame} + + +\begin{frame} +\frametitle{Do you have any questions?} +\vfill +References: +{\tiny + \begin{enumerate} + \item{Özgür Kesim, Christian Grothoff, Florian Dold and Martin Schanzenbach. + {\em Zero-Knowledge Age Restriction for GNU Taler}. + {\bf 27th European Symposium on Research in Computer Security (ESORICS), 2022}.} + \item{David Chaum, Christian Grothoff and Thomas Moser. + {\em How to issue a central bank digital currency}. + {\bf SNB Working Papers, 2021}.} + \item{Christian Grothoff, Bart Polot and Carlo von Loesch. + {\em The Internet is broken: Idealistic Ideas for Building a GNU Network}. + {\bf W3C/IAB Workshop on Strengthening the Internet Against Pervasive Monitoring (STRINT)}, 2014.} + \item{Jeffrey Burdges, Florian Dold, Christian Grothoff and Marcello Stanisci. + {\em Enabling Secure Web Payments with GNU Taler}. + {\bf SPACE 2016}.} + \item{Florian Dold, Sree Harsha Totakura, Benedikt M\"uller, Jeffrey Burdges and Christian Grothoff. + {\em Taler: Taxable Anonymous Libre Electronic Reserves}. + Available upon request. 2016.} + \item{Eli Ben-Sasson, Alessandro Chiesa, Christina Garman, Matthew Green, Ian Miers, Eran Tromer and Madars Virza. + {\em Zerocash: Decentralized Anonymous Payments from Bitcoin}. + {\bf IEEE Symposium on Security \& Privacy, 2016}.} + \item{David Chaum, Amos Fiat and Moni Naor. + {\em Untraceable electronic cash}. + {\bf Proceedings on Advances in Cryptology, 1990}.} + \item{Phillip Rogaway. + {\em The Moral Character of Cryptographic Work}. + {\bf Asiacrypt}, 2015.} \label{bib:rogaway} +\end{enumerate} +} +\begin{center} + {\bf Let money facilitate trade; but ensure capital serves society.} +\end{center} +\end{frame} + + +\begin{frame}{Rights} + \begin{itemize} + \item GNUnet e.V. shared copyrights of their AGPLv3+ licensed code with Taler Systems SA + \item Taler Systems SA holds copyrights to entire GNU Taler code base (AGPLv3+, GPLv3+, + dual-licensing exclusive domain of Taler Systems SA) + \item Taler Systems SA applied for patent on offline payment solution + \item Taler Systems SA holds trademark on ``Taler''. + \item FSF holds trademark on ``GNU'', we are authorized to use ``GNU Taler''. + \item Taler Systems SA owns {\tt taler.net} and {\tt taler-systems.com}. + \end{itemize} +\end{frame} + +\section*{References} +\begin{frame}[allowframebreaks]{References} +\bibliographystyle{plain} +\bibliography{ref,extra,rfc,biblio-defqa} +\end{frame} + + + +% This should be last... +\begin{frame}{Acknowledgments} + + \begin{minipage}{0.45\textwidth} \ \\ + {\tiny Funded by the European Union (Project 101135475).} + + \begin{center} + \includegraphics[width=0.5\textwidth]{../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]{../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} + + + + +\begin{frame}{Taler {\tt /withdraw/sign}} +% Customer withdrawing coins with blind signatures +% \bigskip + \begin{figure}[th] + \begin{minipage}[b]{0.45\linewidth} + \begin{center} + \begin{tikzpicture}[scale = 0.4, + transform shape, + msglabel/.style = { text = Black, yshift = .3cm, + sloped, midway }, + okmsg/.style = { ->, color = MidnightBlue, thick, + >=stealth }, + rstmsg/.style = { ->, color = BrickRed, thick, + >=stealth } + ] + \node[draw = MidnightBlue, + fill = CornflowerBlue, + minimum width = .3cm, + minimum height = 10cm + ] (h1) at (-4, 0) {}; + \node[draw = MidnightBlue, + fill = CornflowerBlue, + minimum width = .3cm, + minimum height = 10cm + ] (h2) at (4, 0) {}; + \node[above = 0cm of h1] {Wallet}; + \node[above = 0cm of h2] {Exchange}; + + \path[->, color = MidnightBlue, very thick, >=stealth] + (-5, 4.5) edge + node[rotate=90, text = Black, yshift = .3cm] {Time} + (-5, -4.5); + \path[okmsg, dashed] + ($(h1.east)+(0, 4.0)+(0, -1.0)$) edge + node[msglabel] {SEPA(RK,A)} + ($(h2.west)+(0, 3.5)+(0, -1.0)$); + \path[okmsg] + ($(h1.east)+(0, -1.0)$) edge + node[msglabel] {POST {\tt /withdraw/sign} $S_{RK}(DK, B_b(C))$} + ($(h2.west)+(0, -1.5)$); + \path[okmsg] + ($(h2.west)+(0, -2.0)$) edge + node[msglabel] {200 OK: $S_{DK}(B_b(C))$)} + ($(h1.east)+(0, -2.5)$); + \path[rstmsg] + ($(h2.west)+(0, -3.5)$) edge + node[msglabel] {402 PAYMENT REQUIRED: $S_{RK}(DK, B_b(C))$)} + ($(h1.east)+(0, -4)$); + \node at (5.3, 0) {}; + \end{tikzpicture} + \end{center} + Result: $\langle c, S_{DK}(C) \rangle$. + \end{minipage} + \hspace{0.5cm} + \begin{minipage}[b]{0.45\linewidth} + \tiny + \begin{description} + \item[$A$] Some amount, $A \ge A_{DK}$ + \item[$RK$] Reserve key + \item[$DK$] Denomination key + \item[$b$] Blinding factor + \item[$B_b()$] RSA-FDH blinding % DK supressed + \item[$C$] Coin public key $C := cG$ + \item[$S_{RK}()$] EdDSA signature + \item[$S_{DK}()$] RSA-FDH signature + \end{description} + \end{minipage} + \end{figure} +\end{frame} + + +\begin{frame}[t]{Taler {\tt /deposit}} +Merchant and exchange see only the public coin $\langle C, S_{DK}(C) \rangle$. +\bigskip + \begin{figure}[th] + \begin{minipage}[b]{0.45\linewidth} + \begin{center} + \begin{tikzpicture}[scale = 0.4, + transform shape, + msglabel/.style = { text = Black, yshift = .3cm, + sloped, midway }, + okmsg/.style = { ->, color = MidnightBlue, thick, + >=stealth }, + rstmsg/.style = { ->, color = BrickRed, thick, + >=stealth } + ] + \node[draw = MidnightBlue, + fill = CornflowerBlue, + minimum width = .3cm, + minimum height = 10cm + ] (h1) at (-4, 0) {}; + \node[draw = MidnightBlue, + fill = CornflowerBlue, + minimum width = .3cm, + minimum height = 10cm + ] (h2) at (4, 0) {}; + \node[above = 0cm of h1] {Merchant}; + \node[above = 0cm of h2] {Exchange}; + + \path[->, color = MidnightBlue, very thick, >=stealth] + (-5, 4.5) edge + node[rotate=90, text = Black, yshift = .3cm] {Time} + (-5, -4.5); + \path[->, color = MidnightBlue, thick, >=stealth] + ($(h1.east)+(0,3)$) edge + node[text = Black, yshift = .3cm, sloped] {POST {\tt /deposit} $S_{DK}(C), S_{c}(D)$} + ($(h2.west)+(0,2)$); + \path[->, color = MidnightBlue, thick, >=stealth] + ($(h2.west)+(0,0.5)$) edge + node[text = Black, yshift = .3cm, sloped] {200 OK: $S_{SK}(S_{c}(D))$} + ($(h1.east)+(0,-0.5)$); + \path[rstmsg] + ($(h2.west)+(0, -2.5)$) edge + node[msglabel] {409 CONFLICT: $S_{c}(D')$} + ($(h1.east)+(0, -3.5)$); + \node at (5.3, 0) {}; + \end{tikzpicture} + \end{center} + \end{minipage} + \hspace{0.5cm} + \begin{minipage}[b]{0.45\linewidth} + \tiny + \begin{description} + \item[$DK$] Denomination key + \item[$S_{DK}()$] RSA-FDH signature using $DK$ + \item[$c$] Private coin key, $C := cG$. + \item[$S_{C}()$] EdDSA signature using $c$ + \item[$D$] Deposit details + \item[$SK$] Exchange's signing key + \item[$S_{SK}()$] EdDSA signature using $SK$ + \item[$D'$] Conficting deposit details $D' \not= D$ + \end{description} + \end{minipage} + \end{figure} +\end{frame} + + +\begin{frame}{Taler {\tt /refresh/melt}} + \begin{figure}[th] + \begin{minipage}[b]{0.45\linewidth} + \begin{center} + \begin{tikzpicture}[scale = 0.4, + transform shape, + msglabel/.style = { text = Black, yshift = .3cm, + sloped, midway }, + okmsg/.style = { ->, color = MidnightBlue, thick, + >=stealth }, + rstmsg/.style = { ->, color = BrickRed, thick, + >=stealth } + ] + \node[draw = MidnightBlue, + fill = CornflowerBlue, + minimum width = .3cm, + minimum height = 10cm + ] (h1) at (-4, 0) {}; + \node[draw = MidnightBlue, + fill = CornflowerBlue, + minimum width = .3cm, + minimum height = 10cm + ] (h2) at (4, 0) {}; + \node[above = 0cm of h1] {Customer}; + \node[above = 0cm of h2] {Exchange}; + + \path[->, color = MidnightBlue, very thick, >=stealth] + (-5, 4.5) edge + node[rotate=90, text = Black, yshift = .3cm] {Time} + (-5, -4.5); + \path[->, color = MidnightBlue, thick, >=stealth] + ($(h1.east)+(0,3)$) edge + node[text = Black, yshift = .3cm, sloped] {POST {\tt /refresh/melt} $S_{DK}(C), S_c({\cal DK}, {\cal T},{\cal B})$} + ($(h2.west)+(0,2)$); + \path[->, color = MidnightBlue, thick, >=stealth] + ($(h2.west)+(0,0.5)$) edge + node[text = Black, yshift = .3cm, sloped] {200 OK: $S_{SK}(H({\cal T}, {\cal B}),\gamma)$} + ($(h1.east)+(0,-0.5)$); + \path[rstmsg] + ($(h2.west)+(0, -2.5)$) edge + node[msglabel] {409 CONFLICT: $S_{C}(X), \ldots$} + ($(h1.east)+(0, -3.5)$); + \node at (5.3, 0) {}; + \end{tikzpicture} + \end{center} + \end{minipage} + \hspace{0.5cm} + \begin{minipage}[b]{0.45\linewidth} + \tiny + \begin{description} + \item[$\kappa$] System-wide security parameter, usually 3. + \\ \smallskip + \item[$\cal DK$] $:= [DK^{(i)}]_i$ \\ List of denomination keys \\ + $D + \sum_i A_{DK^{(i)}} < A_{DK}$ + \item[$t_j$] Random scalar for $j<\kappa$ + \item[${\cal T}$] $:= [T_j]_\kappa$ where $T_j = t_j G$ + \item[$k_j$] $:= c T_j = t_j C$ is an ECDHE + \item[$b_j^{(i)}$] $:= KDF_b(k_j,i)$ % blinding factor + \item[$c_j^{(i)}$] $:= KDF_c(k_j,i)$ % coin secret keys + \item[$C_j^{(i)}$] $: = c_j^{(i)} G$ % new coin publics % keys + \item[${\cal B}$] $:= [H( \beta_j )]_\kappa$ where \\ + $\beta_j := \left[ B_{b_j^{(i)}}(C_j^{(i)}) \right]_i$ + \\ \smallskip + \item[$\gamma$] Random value in $[0,\kappa)$ +% \\ \smallskip +% \item[$X$] Deposit or refresh + \end{description} + \end{minipage} + \end{figure} +\end{frame} + + +\begin{frame}{Taler {\tt /refresh/reveal}} + \begin{figure}[th] + \begin{minipage}[b]{0.45\linewidth} + \begin{center} + \begin{tikzpicture}[scale = 0.4, + transform shape, + msglabel/.style = { text = Black, yshift = .3cm, + sloped, midway }, + okmsg/.style = { ->, color = MidnightBlue, thick, + >=stealth }, + rstmsg/.style = { ->, color = BrickRed, thick, + >=stealth } + ] + \node[draw = MidnightBlue, + fill = CornflowerBlue, + minimum width = .3cm, + minimum height = 10cm + ] (h1) at (-4, 0) {}; + \node[draw = MidnightBlue, + fill = CornflowerBlue, + minimum width = .3cm, + minimum height = 10cm + ] (h2) at (4, 0) {}; + \node[above = 0cm of h1] {Customer}; + \node[above = 0cm of h2] {Exchange}; + + \path[->, color = MidnightBlue, very thick, >=stealth] + (-5, 4.5) edge + node[rotate=90, text = Black, yshift = .3cm] {Time} + (-5, -4.5); + \path[->, color = MidnightBlue, thick, >=stealth] + ($(h1.east)+(0,3)$) edge + node[text = Black, yshift = .3cm, sloped] {POST {\tt /refresh/reveal} $H({\cal T}, {\cal B}), {\tilde{\cal T}}, \beta_\gamma$} + ($(h2.west)+(0,2)$); + \path[->, color = MidnightBlue, thick, >=stealth] + ($(h2.west)+(0,0.5)$) edge + node[text = Black, yshift = .3cm, sloped] {200 OK: $\cal S$} + ($(h1.east)+(0,-0.5)$); + \path[rstmsg] + ($(h2.west)+(0, -2.5)$) edge + node[msglabel] {400 BAD REQUEST: $Z$} + ($(h1.east)+(0, -3.5)$); + \node at (5.3, 0) {}; + \end{tikzpicture} + \end{center} + \end{minipage} + \hspace{0.5cm} + \begin{minipage}[b]{0.45\linewidth} + \tiny + \begin{description} + \item[$\cal DK$] $:= [DK^{(i)}]_i$ + \item[$t_j$] .. \\ \smallskip + + \item[$\tilde{\cal T}$] $:= [t_j | j \in \kappa, j \neq \gamma]$ \\ \smallskip + + \item[$k_\gamma$] $:= c T_\gamma = t_\gamma C$ + \item[$b_\gamma^{(i)}$] $:= KDF_b(k_\gamma,i)$ + \item[$c_\gamma^{(i)}$] $:= KDF_c(k_\gamma,i)$ + \item[$C_\gamma^{(i)}$] $: = c_\gamma^{(i)} G$ + + \item[$B_\gamma^{(i)}$] $:= B_{b_\gamma^{(i)}}(C_\gamma^{(i)})$ + \item[$\beta_\gamma$] $:= \big[ B_\gamma^{(i)} \big]_i$ + \item[$\cal S$] $:= \left[ S_{DK^{(i)}}( B_\gamma^{(i)} ) \right]_i$ \\ \smallskip + + \item[$Z$] Cut-and-choose missmatch information + \end{description} + \end{minipage} + \end{figure} +\end{frame} + + +\begin{frame}{Taler {\tt /refresh/link}} + \begin{figure}[th] + \begin{minipage}[b]{0.45\linewidth} + \begin{center} + \begin{tikzpicture}[scale = 0.4, + transform shape, + msglabel/.style = { text = Black, yshift = .3cm, + sloped, midway }, + okmsg/.style = { ->, color = MidnightBlue, thick, + >=stealth }, + rstmsg/.style = { ->, color = BrickRed, thick, + >=stealth } + ] + \node[draw = MidnightBlue, + fill = CornflowerBlue, + minimum width = .3cm, + minimum height = 10cm + ] (h1) at (-4, 0) {}; + \node[draw = MidnightBlue, + fill = CornflowerBlue, + minimum width = .3cm, + minimum height = 10cm + ] (h2) at (4, 0) {}; + \node[above = 0cm of h1] {Customer}; + \node[above = 0cm of h2] {Exchagne}; + + \path[->, color = MidnightBlue, very thick, >=stealth] + (-5, 4.5) edge + node[rotate=90, text = Black, yshift = .3cm] {Time} + (-5, -4.5); + \path[->, color = MidnightBlue, thick, >=stealth] + ($(h1.east)+(0,3)$) edge + node[text = Black, yshift = .3cm, sloped] {POST {\tt /refresh/link} $C$} + ($(h2.west)+(0,2)$); + \path[->, color = MidnightBlue, thick, >=stealth] + ($(h2.west)+(0,0.5)$) edge + node[text = Black, yshift = .3cm, sloped] {200 OK: $T_\gamma$} + ($(h1.east)+(0,-0.5)$); + \path[rstmsg] + ($(h2.west)+(0, -2.5)$) edge + node[msglabel] {404 NOT FOUND} + ($(h1.east)+(0, -3.5)$); + \node at (5.3, 0) {}; + \end{tikzpicture} + \end{center} + \end{minipage} + \hspace{0.5cm} + \begin{minipage}[b]{0.45\linewidth} + \tiny + \begin{description} + \item[$C$] Old coind public key \\ \smallskip + \item[$T_\gamma$] Linkage data $\cal L$ at $\gamma$ + \end{description} + \end{minipage} + \end{figure} +\end{frame} + + +\begin{frame}{Operational security} + \begin{center} + \resizebox{\textwidth}{!}{ +\begin{tikzpicture}[ + font=\sffamily, + every matrix/.style={ampersand replacement=\&,column sep=2cm,row sep=2cm}, + source/.style={draw,thick,rounded corners,fill=green!20,inner sep=.3cm}, + process/.style={draw,thick,circle,fill=blue!20}, + sink/.style={source,fill=green!20}, + datastore/.style={draw,very thick,shape=datastore,inner sep=.3cm}, + dots/.style={gray,scale=2}, + to/.style={->,>=stealth',shorten >=1pt,semithick,font=\sffamily\footnotesize}, + every node/.style={align=center}] + + % Position the nodes using a matrix layout + \matrix{ + \node[source] (wallet) {Wallet}; + \& \node[process] (browser) {Browser}; + \& \node[process] (shop) {Web shop}; + \& \node[sink] (backend) {Taler backend}; \\ + }; + + % Draw the arrows between the nodes and label them. + \draw[to] (browser) to[bend right=50] node[midway,above] {(4) signed contract} + node[midway,below] {(signal)} (wallet); + \draw[to] (wallet) to[bend right=50] node[midway,above] {(signal)} + node[midway,below] {(5) signed coins} (browser); + \draw[<->] (browser) -- node[midway,above] {(3,6) custom} + node[midway,below] {(HTTPS)} (shop); + \draw[to] (shop) to[bend right=50] node[midway,above] {(HTTPS)} + node[midway,below] {(1) proposed contract / (7) signed coins} (backend); + \draw[to] (backend) to[bend right=50] node[midway,above] {(2) signed contract / (8) confirmation} + node[midway,below] {(HTTPS)} (shop); +\end{tikzpicture} +} +\end{center} +\end{frame} + + +\begin{frame}{Use Cases: Refugee Camps} + Today: + \begin{itemize} + \item Non-bankable + \item Direct distribution of goods to population + \item Limited economic activity in camps + \item High level of economic dependence + \end{itemize}\vfill\pause + With GNU Taler: + \begin{itemize} + \item Local currency issued as basic income backed by aid + \item Taxation possible based on economic status + \item Local governance enabled by local taxes + \item Increased economic independence and political participation + \end{itemize} +\end{frame} + + +\begin{frame}{Use Case: Anti-Spam} + \framesubtitle{Background: \url{https://pep.security/}} + Today, p$\equiv$p provides authenticated encryption for e-mail: + \begin{itemize} + \item Free software + \item Easy to use opportunistic encryption + \item Available for Outlook, Android, Enigmail + \item Spies \& spam filters can no longer inspect content + \end{itemize}\vfill\pause + With GNU Taler: + \begin{itemize} + \item Peer-to-peer payments via e-mail + \item If unsolicited sender, hide messages from user \& + automatically request payment from sender + \item Sender can attach payment to be moved to inbox + \item Receiver may grant refund to sender + \end{itemize} +\end{frame} diff --git a/presentations/2026-interledger/numeracy.png b/presentations/2026-interledger/numeracy.png Binary files differ. diff --git a/presentations/2026-interledger/operations.png b/presentations/2026-interledger/operations.png Binary files differ. diff --git a/presentations/2026-interledger/taler-in-use.png b/presentations/2026-interledger/taler-in-use.png Binary files differ. diff --git a/presentations/2026-interledger/taler-logo-2021-inkscape.pdf b/presentations/2026-interledger/taler-logo-2021-inkscape.pdf Binary files differ. diff --git a/presentations/2026-interledger/taler-macros.tex b/presentations/2026-interledger/taler-macros.tex @@ -0,0 +1,105 @@ +\usepackage[utf8]{inputenc} + +% fonts and colors +\usepackage[defaultfam,tabular,lining]{montserrat} + +\setbeamercolor{normal text}{fg=black,bg=white} +\setbeamercolor{alerted text}{fg=red!50!black} +\setbeamercolor{example text}{fg=green!50!black} + +\setbeamercolor{title}{fg=white} +\setbeamerfont{title}{size=\Huge} +\setbeamerfont{title}{series=\bfseries} + +\setbeamercolor{subtitle}{fg=white} +\setbeamerfont{subtitle}{size=\Large} + +\setbeamercolor{author}{fg=white} +\setbeamerfont{author}{size=\Large} + +\setbeamercolor{institute}{fg=white} +\setbeamerfont{institute}{size=\large} + +\setbeamercolor{date}{fg=black} +\setbeamerfont{date}{size=\large} + +\setbeamercolor{frametitle}{fg=white} +\setbeamerfont{frametitle}{size=\LARGE} +\setbeamerfont{framesubtitle}{size=\large} + +\makeatletter +\setbeamertemplate{frametitle}{% + \vbox{}\vskip-0.5em% + \begin{beamercolorbox}[wd=.7\paperwidth]{frametitle} + \usebeamerfont{frametitle}% + \strut\insertframetitle\strut\par% + \end{beamercolorbox} + \ifx\insertframesubtitle\@empty% + \vskip.9em + \else% + \vskip-0.3em + \begin{beamercolorbox}[wd=.68\paperwidth]{frametitle} + \usebeamerfont{framesubtitle}% + \strut\insertframesubtitle\strut\par% + \end{beamercolorbox} + \fi +} +\makeatother + +\usepackage{tikz} +\usetikzlibrary{calc,intersections,positioning,fadings,through} + +% footline +\setbeamertemplate{navigation symbols}{} +\setbeamertemplate{footline}{% + \leavevmode% + \hskip3pt% + \insertframenumber + \hfill + \SPEAKER + \hfill + \TITLE + \hfill + \raisebox{-0.8mm}{\includegraphics[height=0.7cm]{../logo-NGI_TALER_Bold.png}} + \vskip0pt% +} + +% background + +\usepackage{xcolor} +\definecolor{left}{RGB}{0,66,179} + +\setbeamertemplate{title page} +{%\leavemode% + \begin{beamercolorbox}[wd=\the\paperwidth, ht=\the\paperheight,ignorebg,center]{} + \begin{tikzpicture}[overlay, remember picture] + \fill [left color=left, right color=left!50!black] (current page.north west) -- (current page.north east) -- ($(current page.north east)+(0,-6.5)$) -- ($(current page.north west)+(5,-6.5)$) -- ($(current page.north west)+(4.5,-6.8)$) -- ($(current page.north west)+(4,-6.5)$) -- ($(current page.north west)+(0,-6.5)$); + \end{tikzpicture} + \end{beamercolorbox}% + \vspace*{-8cm} + + \begin{beamercolorbox}[sep=8pt,left]{title} + {\usebeamerfont{title}\inserttitle\par}% + {\usebeamerfont{subtitle}\insertsubtitle\par}% + \end{beamercolorbox}% + \vskip1em\par + \begin{beamercolorbox}[sep=8pt,left]{author} + \usebeamerfont{author}\insertauthor + \end{beamercolorbox} + \begin{beamercolorbox}[sep=8pt,left]{institute} + \usebeamerfont{inst}\insertinstitute\\ + \end{beamercolorbox}% + + \begin{beamercolorbox}[sep=5pt,left]{date} + \usebeamerfont{date}\insertdate + \end{beamercolorbox} + \vspace*{2.5cm} +} + +\setbeamertemplate{background canvas} +{%\leavemode% + \begin{tikzpicture}[overlay, remember picture] + \fill [left color=left, right color=left!50!black] (current page.north west) -- (current page.north east) -- ($(current page.north east)+(0,-2)$) -- ($(current page.north west)+(5,-2)$) -- ($(current page.north west)+(4.5,-2.3)$) -- ($(current page.north west)+(4,-2)$) -- ($(current page.north west)+(0,-2)$); + \end{tikzpicture} +} + diff --git a/presentations/2026-interledger/taler-oim.png b/presentations/2026-interledger/taler-oim.png Binary files differ. diff --git a/presentations/2026-interledger/transaction-types.png b/presentations/2026-interledger/transaction-types.png Binary files differ.