marketing

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

2026-UHA-ENSISA.tex (33337B)


      1 \documentclass[aspectratio=169,t]{beamer}
      2 
      3 \input texinputs/taler-macros
      4 
      5 \usepackage{tikz}
      6 \usepackage{ragged2e}
      7 \usepackage{graphicx}
      8 \usetikzlibrary{positioning,fit,patterns}
      9 
     10 %
     11 %  Presentation at "P15 Biel/Bienne le 30 avril 2026"
     12 %   Copyright (C) 2026 Emmanuel Benoist,
     13 
     14 %    This program is free software: you can redistribute it and/or modify
     15 %    it under the terms of the GNU General Public License as published by
     16 %    the Free Software Foundation, either version 3 of the License, or
     17 %    (at your option) any later version.
     18 %
     19 %    This program is distributed in the hope that it will be useful,
     20 %    but WITHOUT ANY WARRANTY; without even the implied warranty of
     21 %    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     22 %    GNU General Public License for more details.
     23 %
     24 %    You should have received a copy of the GNU General Public License
     25 %    along with this program.  If not, see <http://www.gnu.org/licenses/>.
     26 %
     27 
     28 % *Especially* edit these...
     29 % \setbeameroption{show notes on second screen=right} % Both
     30 
     31 \newcommand{\SPEAKER}{Emmanuel Benoist}
     32 \newcommand{\DATE}{} {}
     33 
     34 \newcommand{\TITLE}{Presentation of GNU Taler}
     35 \newcommand{\SUB}{26.05.26, ENSISA, Mulhouse}
     36 \newcommand{\AUTHOR}{Emmanuel Benoist / Ch. Grothoff}
     37 \newcommand{\INST}{https://www.taler.net}
     38 
     39 % Do not edit this part
     40 \title{\TITLE}
     41 \subtitle{\SUB}
     42 \date{\DATE}
     43 \author[\SPEAKER]{\AUTHOR}
     44 \institute{\INST}
     45 
     46 \usepackage{amsmath}
     47 \usepackage{multimedia}
     48 \usepackage[percent]{overpic}
     49 \usepackage{url}
     50 \usepackage{pifont}
     51 \usepackage[absolute,overlay]{textpos}
     52 \usepackage{listings}
     53 \usepackage{pgf-umlsd}
     54 \usepackage{tikz, xcolor}
     55 \usetikzlibrary{shapes,arrows,positioning} 
     56 \tikzset{
     57     %Define standard arrow tip
     58     >=stealth',
     59     %Define style for boxes
     60     punkt/.style={
     61            rectangle,
     62            rounded corners,
     63            draw=black, very thick,
     64            minimum width=3.5em,
     65            minimum height=2em,
     66            text centered},
     67     % Define arrow style
     68     pull/.style={
     69            <->,
     70            thick,draw=red,
     71            shorten <=2pt,
     72            shorten >=2pt,},
     73     % Define arrow style
     74     pil/.style={
     75            ->,
     76            thick,
     77            shorten <=2pt,
     78            shorten >=2pt,}
     79 }
     80 
     81 
     82 %\usepackage{tikz, xcolor}
     83 %\usetikzlibrary{shapes,arrows}
     84 
     85 
     86 \tikzstyle{decision} = [diamond, draw, text width=4.5em, 
     87                         text badly centered, node distance=2cm, 
     88                         inner sep=0pt]
     89 \tikzstyle{block} = [rectangle, draw, text width=5em, 
     90                      text centered, rounded corners, 
     91                      minimum height=4em, node distance=3cm]
     92 \tikzstyle{line} = [draw, -latex']
     93 \tikzstyle{lineeee} = [draw]
     94 \tikzstyle{cloud} = [draw, ellipse, node distance=2.5cm, minimum height=2em]
     95 \tikzstyle{walet} = [draw, rectangle, node distance=0.2cm, minimum height=2em]
     96 \tikzstyle{reseau} = [node distance=0.2cm, minimum height=2em]
     97 \tikzstyle{blank} = [node distance=1cm]
     98 
     99 \usetikzlibrary{shapes,arrows}
    100 \usetikzlibrary{positioning}
    101 \usetikzlibrary{calc}
    102 
    103 \usepackage[utf8]{inputenc}
    104 \usepackage{adjustbox}
    105 \usepackage{array}
    106 \usepackage{bbding}
    107 \usepackage{relsize}
    108 \usepackage{graphicx}
    109 \usepackage{tikz,eurosym,calc}
    110 \usetikzlibrary{tikzmark}
    111 \usetikzlibrary{shapes,arrows,arrows.meta}
    112 \usetikzlibrary{positioning,fit,patterns}
    113 \usetikzlibrary{calc}
    114 \usepackage{multicol}
    115 \usepackage{pgf-umlsd}
    116 \usepackage{relsize}
    117 \usepackage{booktabs}
    118 \usepackage{makecell}
    119 \usepackage{arydshln}
    120 \usepackage{ulem}
    121 \begin{document}
    122 
    123 \begin{frame}[plain]
    124 \maketitle
    125 \end{frame}
    126 
    127 \begin{frame}{Agenda}
    128   \tableofcontents
    129 \end{frame}
    130 
    131 \section{GNU Taler: Introduction}
    132 
    133 
    134 \begin{frame}{GNU Taler~\cite{taler2016space,DBLP:phd/hal/Dold19,cbdc2021chaum}}
    135   \vfill
    136   \begin{center}
    137     {\huge {\bf Digital} cash, made \textbf{socially responsible}.}
    138   \end{center}
    139   \vfill
    140   \begin{center}
    141   \includegraphics[scale=0.3]{taler-logo-2021-inkscape.pdf}
    142   \end{center}
    143   \vfill
    144   \begin{center}
    145     Privacy-Preserving, Practical, Taxable, Free Software, Efficient
    146   \end{center}
    147  \vfill
    148  \vfill
    149 \ %
    150 \end{frame}
    151 
    152 
    153 \begin{frame}{What is Taler?}
    154   \framesubtitle{\url{https://taler.net/en/features.html}}  \noindent
    155 Taler is
    156   \vfill
    157   \begin{itemize}
    158     \item a Free/Libre software \emph{payment system} infrastructure project
    159     \item ... with a surrounding software ecosystem
    160     \item ... and a company (Taler Systems S.A.) and community that wants to deploy it
    161       as widely as possible.
    162   \end{itemize}
    163   \vfill
    164 \noindent
    165  However, Taler is
    166   \begin{itemize}
    167     \item \emph{not} a currency or speculative asset
    168     \item \emph{not} a long-term store of value
    169     \item \emph{not} a network or instance of a system
    170     \item \emph{not} based on proof-of-work or proof-of-stake
    171   \end{itemize}
    172 \end{frame}
    173 
    174 
    175 \begin{frame}{Design principles}
    176   \framesubtitle{https://taler.net/en/principles.html}
    177 GNU Taler must ...
    178 \begin{enumerate}
    179   \item {... be implemented as {\bf free software}.}
    180   \item {... protect the {\bf privacy of buyers}.}
    181   \item {... enable the state to {\bf tax income} and crack down on
    182     illegal business activities.}
    183   \item {... prevent payment fraud.}
    184   \item {... only {\bf disclose the minimal amount of information
    185     necessary}.}
    186   \item {... be usable.}
    187   \item {... be efficient.}
    188   \item {... avoid single points of failure.}
    189   \item {... foster {\bf competition}.}
    190 \end{enumerate}
    191 \end{frame}
    192 
    193 
    194 \begin{frame}
    195 \frametitle{Taler Overview}
    196 \begin{center}
    197 \begin{tikzpicture}
    198  \tikzstyle{def} = [node distance= 5em and 6.5em, inner sep=1em, outer sep=.3em];
    199  \node (origin) at (0,0) {};
    200  \node (exchange) [def,above=of origin,draw]{Exchange};
    201  \node (customer) [def, draw, below left=of origin] {Customer};
    202  \node (merchant) [def, draw, below right=of origin] {Merchant};
    203  \node (auditor) [def, draw, above right=of origin]{Auditor};
    204 % \node (regulator) [def, draw, above=of auditor]{CSSF};
    205 
    206  \tikzstyle{C} = [color=black, line width=1pt]
    207 
    208  \draw [<-, C] (customer) -- (exchange) node [midway, above, sloped] (TextNode) {withdraw coins};
    209  \draw [<-, C] (exchange) -- (merchant) node [midway, above, sloped] (TextNode) {deposit coins};
    210  \draw [<-, C] (merchant) -- (customer) node [midway, above, sloped] (TextNode) {spend coins};
    211  \draw [<-, C] (exchange) -- (auditor) node [midway, above, sloped] (TextNode) {verify};
    212 % \draw [<-, C] (regulator) -- (auditor) node [midway, above, sloped] (TextNode) {report};
    213 
    214 \end{tikzpicture}
    215 \end{center}
    216 \end{frame}
    217 
    218 
    219 
    220 \begin{frame}
    221 \frametitle{Architecture of Taler}
    222 \begin{center}
    223   \includegraphics[width=0.8\textwidth]{operations.png}
    224 \end{center}
    225 \end{frame}
    226 
    227 
    228 \begin{frame}{Consumer Impact of Taler}
    229 \begin{itemize}
    230 \item {\bf Convenient:} pay with one click instantly --– in Euro,
    231 Dollar, Yen or Bitcoin
    232 \item {\bf Friction-free security:} Payments do not require sign-up,
    233 login or multi-factor authentication
    234 \item {\bf Privacy-preserving:} payment requires/shares no personal information
    235 \item {\bf Bank account:} not required
    236 \end{itemize}
    237 \end{frame}
    238 
    239 
    240 \begin{frame}{Merchant Impact of Taler}
    241 \begin{itemize}
    242 \item {\bf Instant clearance:} one-click transactions and instant clearance at par
    243 \item {\bf Easy \& compliant:} GDPR \& PCI-DSS compliance-free and without any effort
    244 \item {\bf Major profit increase:} efficient protocol $+$ no fraud $=$ extremely low costs
    245 \item {\bf 1-click checkout:} without Amazon and without false positives in fraud detection
    246 \end{itemize}
    247 \end{frame}
    248 
    249 
    250 
    251 \section{Protocol Basics}
    252 
    253 
    254 %\begin{frame}[plain]
    255 %   \begin{tikzpicture}[remember picture,overlay]
    256 %     \node[anchor=south west, inner sep=0pt] at (current page.south west) {%
    257 %       \movie[height = \paperheight, width = \paperwidth, poster, showcontrols] {BFH Bachelor's thesis video}{cs-movie.mp4}%
    258 %     };
    259 %   \end{tikzpicture}
    260 %\end{frame}
    261 
    262 
    263 \begin{frame}{How does it work?}
    264 We use a few ancient constructions:
    265   \begin{itemize}
    266   \item Cryptographic hash function (1989)
    267   \item Blind signature (1983)
    268   \item Schnorr signature (1989)
    269   \item \sout{Diffie-Hellman key exchange (1976)} Deterministic signatures (1977) % 1977: RSA, 2008: EdDSA
    270   \item Cut-and-choose zero-knowledge proof (1985)
    271   \end{itemize}
    272 But of course we use modern instantiations.
    273 \end{frame}
    274 
    275 
    276 \begin{frame}{Definition: Taxability}
    277   We say Taler is taxable because:
    278   \begin{itemize}
    279   \item Merchant's income is visible from deposits.
    280   \item Hash of contract is part of deposit data.
    281   \item State can trace income and enforce taxation.
    282   \end{itemize}%\pause
    283   Limitations:
    284   \begin{itemize}
    285   \item withdraw loophole
    286   \item {\em sharing} coins among family and friends
    287   \end{itemize}
    288 \end{frame}
    289 
    290 
    291 \begin{frame}{Exchange setup: Create a denomination key (RSA)}
    292    \begin{minipage}{6cm}
    293     \begin{enumerate}
    294     \item Generate random primes $p,q$.
    295     \item Compute $n := pq$, $\phi(n) = (p-1)(q-1)$
    296     \item Pick small $e < \phi(n)$ such that
    297           $d := e^{-1} \mod \phi(n)$ exists.
    298     \item Publish public key $(e,n)$.
    299     \end{enumerate}
    300   \end{minipage}
    301   \begin{minipage}{6cm}
    302   \begin{tikzpicture}
    303  \tikzstyle{def} = [node distance=1em and 1em, inner sep=0em, outer sep=.3em];
    304     \node (origin) at (0,0) {\includegraphics[width=0.2\textwidth]{dice.pdf}};
    305     \node (primes) [draw=none, below = of origin] at (0,0) {$(p, q)$};
    306     \node (seal) [def, draw=none, below left=of primes]{\includegraphics[width=0.15\textwidth]{seal.pdf}};
    307     \node (hammer) [def, draw=none, below right=of primes]{\includegraphics[width=0.15\textwidth]{hammer.pdf}};
    308 
    309     \tikzstyle{C} = [color=black, line width=1pt]
    310 
    311     \draw [<-, C] (primes) -- (origin) node [midway, above, sloped] (TextNode) {};
    312     \draw [<-, C] (seal) -- (primes) node [midway, above, sloped] (TextNode) {};
    313     \draw [<-, C] (hammer) -- (primes) node [midway, above, sloped] (TextNode) {};
    314   \end{tikzpicture}
    315 %  \includegraphics[width=0.4\textwidth]{seal.pdf}
    316   \end{minipage}
    317 \end{frame}
    318 
    319 
    320 \begin{frame}{Merchant: Create a signing key (EdDSA)}
    321   \begin{minipage}{6cm}
    322     \begin{itemize}
    323   \item Generate random number $m \mod o$ as private key
    324   \item Compute public key $M := mG$
    325   \end{itemize}
    326   \end{minipage}
    327   \begin{minipage}{6cm}
    328   \begin{tikzpicture}
    329    \tikzstyle{def} = [node distance= 1em and 1em, inner sep=0em, outer sep=.3em];
    330     \node (origin) at (0,0) {\includegraphics[width=0.2\textwidth]{dice.pdf}};
    331     \node (m) [draw=none, below = of origin] at (0,0) {$m$};
    332     \node (seal) [draw=none, below=of m]{M};
    333    \tikzstyle{C} = [color=black, line width=1pt]
    334 
    335     \draw [<-, C] (m) -- (origin) node [midway, above, sloped] (TextNode) {};
    336     \draw [<-, C] (seal) -- (primes) node [midway, above, sloped] (TextNode) {};
    337   \end{tikzpicture}
    338   \end{minipage}
    339   \parbox[t]{3cm}{{\bf Capability:} $m \Rightarrow$ }
    340   \raisebox{\dimexpr-\height+\baselineskip}{\includegraphics[width=0.1\textwidth]{merchant-sign.pdf}}
    341 \end{frame}
    342 
    343 
    344 \begin{frame}{Customer: Create a planchet (EdDSA)}
    345   \begin{minipage}{8cm}
    346   \begin{itemize}
    347   \item Generate random number $c \mod o$ as private key
    348   \item Compute public key $C := cG$
    349   \end{itemize}
    350   \end{minipage}
    351   \begin{minipage}{4cm}
    352   \begin{tikzpicture}
    353    \tikzstyle{def} = [node distance= 1em and 1em, inner sep=0em, outer sep=.3em];
    354     \node (origin) at (0,0) {\includegraphics[width=0.2\textwidth]{dice.pdf}};
    355     \node (c) [draw=none, below = of origin] at (0,0) {$c$};
    356     \node (planchet) [draw=none, below=of c]{\includegraphics[width=0.4\textwidth]{planchet.pdf}};
    357     \tikzstyle{C} = [color=black, line width=1pt]
    358 
    359     \draw [<-, C] (c) -- (origin) node [midway, above, sloped] (TextNode) {};
    360     \draw [<-, C] (planchet) -- (c) node [midway, above, sloped] (TextNode) {};
    361   \end{tikzpicture}
    362   \end{minipage}
    363   \parbox[t]{3cm}{{\bf Capability:} $c \Rightarrow$ }
    364   \raisebox{\dimexpr-\height+\baselineskip}{\includegraphics[width=0.1\textwidth]{planchet-sign.pdf}}
    365 \end{frame}
    366 
    367 
    368 \begin{frame}{Customer: Blind planchet (RSA)}
    369   \begin{minipage}{6cm}
    370     \begin{enumerate}
    371     \item Obtain public key $(e,n)$
    372     \item Compute $f := FDH(C)$, $f < n$.
    373     \item Generate random blinding factor $b \in \mathbb Z_n$
    374     \item Transmit $f' := f b^e \mod n$
    375     \end{enumerate}
    376   \end{minipage}
    377   \begin{minipage}{6cm}
    378   \begin{tikzpicture}
    379    \tikzstyle{def} = [node distance= 2em and 0.5em, inner sep=0em, outer sep=.3em];
    380     \node (origin) at (0,0) {\includegraphics[width=0.2\textwidth]{dice.pdf}};
    381     \node (b) [def, draw=none, below = of origin] at (0,-0.2) {$b$};
    382     \node (blinded) [def, draw=none, below right=of b]{\includegraphics[width=0.2\textwidth]{blinded.pdf}};
    383     \node (planchet) [def, draw=none, above right=of blinded]{\includegraphics[width=0.15\textwidth]{planchet.pdf}};
    384     \node (exchange) [node distance=4em and 0.5em, draw, below =of blinded]{Exchange};
    385     \tikzstyle{C} = [color=black, line width=1pt]
    386 
    387     \draw [<-, C] (b) -- (origin) node [midway, above, sloped] (TextNode) {};
    388     \draw [<-, C] (blinded) -- (planchet) node [midway, above, sloped] (TextNode) {};
    389     \draw [<-, C] (blinded) -- (b) node [midway, above, sloped] (TextNode) {};
    390     \draw [<-, C] (exchange) -- (blinded) node [midway, above, sloped] (TextNode) {{\small transmit}};
    391   \end{tikzpicture}
    392   \end{minipage}
    393 \end{frame}
    394 
    395 
    396 \begin{frame}{Exchange: Blind sign (RSA)}
    397    \begin{minipage}{6cm}
    398     \begin{enumerate}
    399     \item Receive $f'$.
    400     \item Compute $s' := f'^d \mod n$.
    401     \item Send signature $s'$.
    402     \end{enumerate}
    403    \end{minipage}
    404   \begin{minipage}{6cm}
    405   \begin{tikzpicture}
    406    \tikzstyle{def} = [node distance= 2em and 0.5em, inner sep=0em, outer sep=.3em];
    407     \node (hammer) [def, draw=none] at (0,0) {\includegraphics[width=0.15\textwidth]{hammer.pdf}};
    408     \node (signed) [def, draw=none, below left=of hammer]{\includegraphics[width=0.2\textwidth]{sign.pdf}};
    409     \node (blinded) [def, draw=none, above left=of signed]{\includegraphics[width=0.15\textwidth]{blinded.pdf}};
    410     \node (customer) [node distance=4em and 0.5em, draw, below =of signed]{Customer};
    411     \tikzstyle{C} = [color=black, line width=1pt]
    412 
    413     \draw [<-, C] (signed) -- (hammer) node [midway, above, sloped] (TextNode) {};
    414     \draw [<-, C] (signed) -- (blinded) node [midway, above, sloped] (TextNode) {};
    415     \draw [<-, C] (customer) -- (signed) node [midway, above, sloped] (TextNode) {{\small transmit}};
    416   \end{tikzpicture}
    417   \end{minipage}
    418 \end{frame}
    419 
    420 
    421 \begin{frame}{Customer: Unblind coin (RSA)}
    422   \begin{minipage}{6cm}
    423    \begin{enumerate}
    424     \item Receive $s'$.
    425     \item Compute $s := s' b^{-1} \mod n$ % \\
    426     % ($(f')^d = (f b^e)^d = f^d b$).
    427     \end{enumerate}
    428    \end{minipage}
    429   \begin{minipage}{6cm}
    430   \begin{tikzpicture}
    431    \tikzstyle{def} = [node distance= 2em and 0.5em, inner sep=0em, outer sep=.3em];
    432     \node (b) [def, draw=none] at (0,0) {$b$};
    433     \node (coin) [def, draw=none, below left=of b]{\includegraphics[width=0.2\textwidth]{coin.pdf}};
    434     \node (signed) [def, draw=none, above left=of coin]{\includegraphics[width=0.15\textwidth]{sign.pdf}};
    435     \tikzstyle{C} = [color=black, line width=1pt]
    436 
    437     \draw [<-, C] (coin) -- (b) node [midway, above, sloped] (TextNode) {};
    438     \draw [<-, C] (coin) -- (signed) node [midway, above, sloped] (TextNode) {};
    439   \end{tikzpicture}
    440   \end{minipage}
    441 \end{frame}
    442 
    443 
    444 \begin{frame}{Customer: Build shopping cart}
    445   \begin{center}
    446   \begin{tikzpicture}
    447    \tikzstyle{def} = [node distance= 1em and 1em, inner sep=0em, outer sep=.3em];
    448     \node (origin) [draw=none] at (0,0) {\includegraphics[width=0.15\textwidth]{cart.pdf}};
    449     \node (merchant) [node distance=4em and 0.5em, draw, below =of origin]{\includegraphics[width=0.15\textwidth]{shop.pdf}};
    450     \tikzstyle{C} = [color=black, line width=1pt];
    451     \draw [<-, C] (merchant) -- (origin) node [midway, right] (TextNode) {{\small transmit}};
    452   \end{tikzpicture}
    453   \end{center}
    454 \end{frame}
    455 
    456 
    457 \begin{frame}{Merchant: Propose contract (EdDSA)}
    458    \begin{minipage}{6cm}
    459    \begin{enumerate}
    460     \item Complete proposal $D$.
    461     \item Send $D$, $EdDSA_m(D)$
    462     \end{enumerate}
    463    \end{minipage}
    464   \begin{minipage}{6cm}
    465   \begin{tikzpicture}
    466    \tikzstyle{def} = [node distance=2em and 0.5em, inner sep=0em, outer sep=.3em];
    467     \node (cart) [def, draw=none] at (0,0) {\includegraphics[width=0.15\textwidth]{cart.pdf}};
    468     \node (proposal) [def, draw=none, below right=of cart]{\includegraphics[width=0.3\textwidth]{merchant_propose.pdf}};
    469     \node (customer) [node distance=4em and 0.5em, draw, below =of proposal]{Customer};
    470     \tikzstyle{C} = [color=black, line width=1pt];
    471     \node (sign) [def, draw=none, above right=of proposal] {$m$};
    472     \tikzstyle{C} = [color=black, line width=1pt]
    473 
    474     \draw [<-, C] (proposal) -- (sign) node [midway, above, sloped] (TextNode) {};
    475     \draw [<-, C] (proposal) -- (cart) node [midway, above, sloped] (TextNode) {};
    476     \draw [<-, C] (customer) -- (proposal) node [midway, right] (TextNode) {{\small transmit}};
    477   \end{tikzpicture}
    478   \end{minipage}
    479 \end{frame}
    480 
    481 
    482 \begin{frame}{Customer: Spend coin (EdDSA)}
    483   \begin{minipage}{6cm}
    484    \begin{enumerate}
    485     \item Receive proposal $D$, $EdDSA_m(D)$.
    486     \item Send $s$, $C$, $EdDSA_c(D)$
    487     \end{enumerate}
    488    \end{minipage}
    489   \begin{minipage}{6cm}
    490   \begin{tikzpicture}
    491    \tikzstyle{def} = [node distance=1.5em and 0.4em, inner sep=0em, outer sep=.3em];
    492     \node (proposal) [def, draw=none] at (0,0) {\includegraphics[width=0.15\textwidth]{merchant_propose.pdf}};
    493     \node (contract) [def, draw=none, below right=of cart]{\includegraphics[width=0.3\textwidth]{contract.pdf}};
    494     \node (c) [def, draw=none, above=of contract] {$c$};
    495     \node (merchant) [node distance=4em and 0.5em, draw, below=of contract]{Merchant};
    496     \node (coin) [def, draw=none, right=of contract]{\includegraphics[width=0.2\textwidth]{coin.pdf}};
    497     \tikzstyle{C} = [color=black, line width=1pt]
    498 
    499     \draw [<-, C] (contract) -- (c) node [midway, above, sloped] (TextNode) {};
    500     \draw [<-, C] (contract) -- (proposal) node [midway, above, sloped] (TextNode) {};
    501     \draw [<-, C] (merchant) -- (contract) node [midway, above, sloped] (TextNode) {{\small transmit}};
    502     \draw [<-, C] (merchant) -- (coin) node [midway, right] (TextNode) {{\small transmit}};
    503   \end{tikzpicture}
    504   \end{minipage}
    505 \end{frame}
    506 
    507 
    508 \begin{frame}{Merchant and Exchange: Verify coin (RSA)}
    509    \begin{minipage}{6cm}
    510  \begin{equation*}
    511    s^e \stackrel{?}{\equiv} FDH(C) \mod n
    512    \end{equation*}
    513    \end{minipage}
    514   \begin{minipage}{6cm}
    515   \begin{minipage}{0.2\textwidth}
    516     \includegraphics[width=\textwidth]{coin.pdf}
    517   \end{minipage}
    518   $\stackrel{?}{\Leftrightarrow}$
    519   \begin{minipage}{0.2\textwidth}
    520     \includegraphics[width=\textwidth]{seal.pdf}
    521   \end{minipage}
    522   \end{minipage}
    523   \vfill
    524   The exchange does not only verify the signature, but also
    525   checks that the coin was not double-spent.
    526   \vfill
    527   %\pause
    528   \begin{center}
    529   {\bf Taler is an online payment system.}
    530   \end{center}
    531   \vfill
    532 \end{frame}
    533 
    534 
    535 \begin{frame}
    536   \frametitle{Blind Signature implementations}
    537   \begin{block}{RSA}
    538     \begin{itemize}
    539     \item Chaum e-cash
    540     \end{itemize}
    541   \end{block}
    542   \begin{block}{Eliptic curves}
    543     \begin{itemize}
    544     \item Clause Schnorr
    545     \item Shorter
    546     \end{itemize}
    547   \end{block}
    548     \begin{block}{Post quantic cryptography}
    549     \begin{itemize}
    550     \item New protocol designed in NGI-Taler
    551     \item Implementation : work in progress 
    552     \end{itemize}
    553   \end{block}
    554 
    555 \end{frame}
    556 
    557 
    558 %\input refresh.tex
    559 
    560 
    561 \section{Component Zoo}
    562 
    563 
    564 \begin{frame}{The Taler Software Ecosystem: Overview}
    565   \framesubtitle{\url{https://taler.net/en/docs.html}}
    566   Taler is based on modular components that work together to provide a
    567   complete payment system:
    568   \vfill
    569   \begin{itemize}
    570     \item {\bf Exchange:} Service provider for digital cash
    571       \begin{itemize}
    572         \item Core exchange software (cryptography, database)
    573         \item Air-gapped key management, real-time {\bf auditing}
    574         \item {\bf libeufin}: Modular integration with banking systems
    575         \item {\bf challenger}: KYC service with OAuth 2.0 API
    576       \end{itemize}
    577     \item {\bf Merchant:} Integration service for existing businesses
    578       \begin{itemize}
    579         \item Core merchant backend software (cryptography, database)
    580         \item {\bf Back-office interface} for staff
    581         \item {\bf Frontend integration} (E-commerce, Point-of-sale)
    582       \end{itemize}
    583     \item {\bf Wallet:} Consumer-controlled applications for e-cash
    584       \begin{itemize}
    585         \item Multi-platform wallet software (for browsers \& mobile phones)
    586         \item Wallet backup storage providers ({\bf sync} \& {\bf Anastasis})
    587       \end{itemize}
    588   \end{itemize}
    589 \end{frame}
    590 
    591 
    592 \begin{frame}{Taler Exchange}
    593   The {\bf Exchange} is the core logic of the payment system.
    594 
    595   \begin{itemize}
    596     \item One exchange at minimum must be operated per currency
    597     \item Offers a REST API for merchants and customers
    598     \item Uses several helper processes for configuration and to
    599           interact with RTGS and cryptography
    600     \item KYC support via OAuth 2.0, KycAID or Persona APIs
    601   \end{itemize}
    602 \end{frame}
    603 
    604 
    605 \begin{frame}{Taler Merchant}
    606   The {\bf Merchant} is the software run by merchants to accept\\
    607   GNU Taler payments.
    608 
    609   \begin{minipage}{6cm}
    610   \begin{itemize}
    611     \item REST API for integration with e-commerce
    612     \item SPA provides Web interface for administration
    613     \item Features include:
    614       \begin{itemize}
    615       \item Multi-tenant support
    616       \item Refunds
    617       \item Templates
    618       \item Webhooks
    619       \item Inventory management (optional)
    620       \end{itemize}
    621   \end{itemize}
    622   \end{minipage}
    623   \begin{minipage}{5cm}
    624   \includegraphics[width=5cm]{screenshots/merchant-spa-settings}
    625   \end{minipage}
    626 \end{frame}
    627 
    628 
    629 \begin{frame}{Taler Wallet}
    630   The {\bf Wallet} is the software run by consumers to store
    631   their digital cash and authorize transactions.
    632 
    633   \begin{minipage}{8cm}
    634   \begin{itemize}
    635     \item {\bf wallet-core} is the logic shared by all interfaces
    636     \item Works on Android, F-Droid, iOS, Ubuntu Touch,
    637           WebExtension (Chrome, Chromium, Firefox, etc.)
    638     \item Features include:
    639       \begin{itemize}
    640       \item Multi-currency support
    641       \item Wallet-to-wallet payments (NFC or QR code)
    642       \item CRDT-like data model
    643       \end{itemize}
    644   \end{itemize}
    645   \end{minipage}
    646   \begin{minipage}{3cm}
    647   \includegraphics[width=3cm]{screenshots/Screenshot_20230225-103520.png}
    648   \end{minipage}
    649 \end{frame}
    650 
    651 
    652 \begin{frame}{Taler Auditor}
    653   The {\bf Auditor} is the software run by an independent auditor
    654   to validate the operation of an Exchange.
    655 
    656   \begin{itemize}
    657     \item REST API for additional report inputs by merchants (optional)
    658     \item Secure database replication logic
    659   \end{itemize}
    660 \end{frame}
    661 
    662 
    663 \begin{frame}{libeufin-nexus}
    664   libeufin-nexus allows Taler components to interact with a core banking system. It:
    665 
    666   \begin{itemize}
    667     \item provides an implementation of the Wire Gateway for the exchange
    668     \item supports EBICS 2.5 and 3.0
    669     \item other APIs such as FinTS or PSD2-style XS2A APIs can be added
    670       without requiring changes to the Exchange
    671     \item was tested with GLS Bank (DE) and Postfinance (CH) accounts and real EUR/CHF
    672   \end{itemize}
    673 \end{frame}
    674 
    675 
    676 \begin{frame}{libeufin-bank}
    677   libeufin-bank implements a standalone bank with a Web interface. It:
    678 
    679   \begin{itemize}
    680     \item provides the Taler Core Bank API for RESTful online banking
    681        using a Web interface (with multi-factor authentication)
    682     \item includes a Taler Wire Gateway for the exchange
    683     \item offers the Taler Bank Integration API to allow wallets
    684        to easily withdraw digital cash
    685     \item optionally provides the Taler Conversion Info API for currency
    686        conversion between fiat and regional currencies
    687     \item optionally integrates with libeufin-nexus to interact with
    688        a core banking system
    689   \end{itemize}
    690 \end{frame}
    691 
    692 
    693 \begin{frame}{Challenger}
    694   Challenger allows clients to obtain validated address (KYC) data about
    695   users:
    696 
    697   \begin{itemize}
    698     \item Customizable Web-based process for address validation
    699     \item Can validate phone numbers, e-mail addresses or physical mailing addresses
    700     \item Provides an exchange-compatible OAuth 2.0 API
    701   \end{itemize}
    702 \end{frame}
    703 
    704 
    705 \begin{frame}{Depolymerization}
    706   Depolymerization is a bridge between GNU Taler and blockchains,
    707   making Taler a layer 2 system for crypto-currencies (like Lightning).
    708 
    709   \begin{itemize}
    710     \item provides an implementation of the Wire Gateway for the exchange
    711     \item Works on top of Bitcoin and Ethereum
    712           crypto-currencies, with the DLTs as the ``RTGS''
    713     \item Provides same API to Exchange as libeufin-nexus
    714   \end{itemize}
    715 \end{frame}
    716 
    717 
    718 \begin{frame}{Point-of-Sale App for Android}
    719 \begin{minipage}{7cm}
    720   \begin{itemize}
    721     \item Allows merchant to generate orders against Taler backend
    722           and display QR code to enable customer to pay in person
    723     \item Patterned after ViewTouch restaurant UI
    724   \end{itemize}
    725 \end{minipage}
    726 \begin{minipage}{4cm}
    727   \includegraphics[width=4cm]{screenshots/Screenshot_20230224-194112.jpg}
    728   \includegraphics[width=4cm]{screenshots/Screenshot_20230224-194119.jpg}
    729   \includegraphics[width=4cm]{screenshots/Screenshot_20230224-195348.jpg}
    730 \end{minipage}
    731 \end{frame}
    732 
    733 
    734 \begin{frame}{Payment plugins}
    735 \begin{minipage}{5cm}
    736   \includegraphics[width=4cm]{screenshots/woocommerce-cart.png}
    737   \includegraphics[width=4cm]{screenshots/pretix.png}
    738   \end{minipage}
    739 \begin{minipage}{5cm}
    740   \begin{itemize}
    741     \item Pretix, ticket sales system
    742     \item Joomla!, an e-commerce platform
    743     \item WooCommerce, an e-commerce solution on top of WordPress
    744     \item DrupalCommerce, an e-commerce solution on top of Drupal
    745   \end{itemize}
    746 \end{minipage}
    747 \end{frame}
    748 
    749 
    750 
    751 
    752 
    753 
    754 
    755 \section{Future Work \& Conclusion}
    756 
    757 
    758 \begin{frame}{Use Case: Journalism}
    759   Today:
    760   \begin{itemize}
    761     \item Corporate structure % ($\Rightarrow$ filter)
    762     \item Advertising primary revenue % ($\Rightarrow$ dependence)
    763     \item Tracking readers critical for business success
    764     \item Journalism and marketing hard to distinguish
    765   \end{itemize}\vfill%\pause
    766   With GNU Taler:
    767   \begin{itemize}
    768     \item One-click micropayments per article
    769     \item Hosting requires no expertise % (no PCI DSS)
    770     \item Reader-funded reporting separated from marketing
    771     \item Readers can remain anonymous
    772   \end{itemize}
    773 \end{frame}
    774 
    775 
    776 \begin{frame}{Taler: Project Status}
    777 \framesubtitle{\url{https://docs.taler.net/}}
    778 \begin{itemize}
    779     \item Cryptographic protocols and core exchange component are stable
    780     \item Pilot project at Bern University of Applied Sciences cafeteria
    781     \item Netzbon (regional currency) in Basel launched
    782     \item Taler Operations AG live Swiss-wide
    783     \item Internal alpha deployment with Magnet Bank (Hungary)
    784     \item Deployment in Germany / Eurozone 2027
    785   \end{itemize}
    786 \end{frame}
    787 
    788 
    789 \begin{frame}{Competitor comparison}
    790   \begin{center} \small
    791     \begin{tabular}{l||c|c|c|c|c}
    792                 & Cash     & Bitcoin    & Zerocoin  & Creditcard & GNU Taler  \\ \hline \hline
    793     Online      &$-$$-$$-$ &   ++       &    ++     &     +      &   +++      \\ \hline
    794     Offline     & +++      &   $-$$-$   &    $-$$-$ &     +      &   $+$$+$   \\ \hline
    795     Trans. cost & +        & $-$$-$$-$  & $-$$-$$-$ &     $-$    &   ++       \\ \hline
    796     Speed       & +        & $-$$-$$-$  & $-$$-$$-$ &     o      &   ++       \\ \hline
    797     Taxation    & $-$      &   $-$$-$   & $-$$-$$-$ &    +++     &  +++       \\ \hline
    798     Payer-anon  &  ++      &   o        &    ++     &  $-$$-$$-$ &  +++       \\ \hline
    799     Payee-anon  & ++       &   o        &    ++     &  $-$$-$$-$ &  $-$$-$$-$ \\ \hline
    800     Security    &  $-$     &   o        &    o      &    $-$$-$  &  ++        \\ \hline
    801     Conversion  & +++      &  $-$$-$$-$ & $-$$-$$-$ &    +++     &  +++       \\ \hline
    802     Libre       &  $-$     &  +++       &    +++    & $-$ $-$ $-$&  +++       \\
    803   \end{tabular}
    804   \end{center}
    805 \end{frame}
    806 
    807 
    808 \begin{frame}{Other ongoing developments}
    809   \begin{itemize}
    810     \item Privacy-preserving auctions (trading, currency exchange) ({\tt oezguer@taler.net})
    811     \item Hardware and software support for embedded systems ({\tt mikolai@taler.net})
    812     \item Tax-deductable receipts for donations to charities (donau.git)
    813     \item Unlinkable anonymous subscriptions and discount tokens ({\tt ivan@taler.net})
    814     \item Support for illiterate and innumerate users\footnote{Background: \url{https://myoralvillage.org/}}
    815          ({\tt marc@taler.net})
    816   \end{itemize}
    817 \end{frame}
    818 
    819 
    820 \begin{frame}{Open Challenges}
    821   \begin{itemize}
    822     \item Try to explain this to lawyers and AML staff of banks
    823     \item What are convincing arguments for citizens to switch?
    824     \item How to address anti-competitive cash-back from card payments?
    825     \item $\ldots$
    826   \end{itemize}
    827 \end{frame}
    828 
    829 
    830 \begin{frame}{How to support?}
    831   \begin{description}
    832     \item[Join:] {\small \url{https://lists.gnu.org/mailman/listinfo/taler}}
    833     \item[Discuss:] {\small \url{https://ich.taler.net/}}
    834     \item[Develop:] \url{https://bugs.taler.net/}, \url{https://git.taler.net/}
    835     \item[Apply:] \url{https://nlnet.nl/propose}, \url{https://nlnet.nl/taler}
    836     \item[Translate:] \url{https://weblate.taler.net/}, \url{translation-volunteer@taler.net}
    837     \item[Integrate:] \url{https://docs.taler.net/}
    838     \item[Donate:] \url{https://gnunet.org/ev}
    839     \item[Partner:] \url{https://taler-systems.com/}
    840   \end{description}
    841 \end{frame}
    842 
    843 \begin{frame}
    844   \frametitle{Install the Wallet}
    845   \begin{columns}
    846     \begin{column}{0.35\textwidth}
    847       \begin{block}{Google Play Store}
    848       \end{block}
    849       \begin{center}
    850 \includegraphics[width=0.5\textwidth]{./images/google_play_GNU_Taler.jpg}
    851 \end{center}
    852 \end{column}
    853 \begin{column}{0.35\textwidth}
    854   \begin{block}{Apple Store}    
    855   \end{block}
    856       \begin{center}
    857         \includegraphics[width=0.5\textwidth]{./images/Apple-Store-taler-app.png}
    858       \end{center}
    859     \end{column}
    860 \begin{column}{0.35\textwidth}
    861   \begin{block}{F-Droid}    
    862   \end{block}
    863       \begin{center}
    864         \includegraphics[width=0.5\textwidth]{./images/QR-Code-f-droid.png}
    865       \end{center}
    866 
    867 \end{column}
    868 
    869   \end{columns}
    870 \end{frame}
    871 
    872 
    873 
    874 \begin{frame}{Demonstration}
    875   \vfill
    876   \begin{center}
    877     \url{https://demo.taler.net/}
    878   \end{center}
    879   \begin{enumerate}
    880   \item Install browser extension.
    881   \item Visit the {\tt bank.demo.taler.net} to withdraw coins.
    882   \item Visit the {\tt shop.demo.taler.net} to spend coins.
    883   \end{enumerate}
    884   \vfill
    885 \end{frame}
    886 
    887 \subsection{Pay with Taler}
    888 \begin{frame}
    889   \frametitle{Pay with Taler I}
    890   \begin{columns}
    891     \begin{column}{0.4\textwidth}
    892  \begin{block}{Withdraw e-cash}
    893     \begin{itemize}
    894     \item Withdraw in the app
    895     \item Transfer money to the Exchange
    896     \item Wait until the transfer is finalized
    897     \end{itemize}
    898   \end{block}
    899 
    900     \end{column}
    901     \begin{column}{0.5\textwidth}
    902 \begin{center}
    903   \includegraphics[width=0.4\textwidth]{./images/screenShot-withdraw.jpeg}
    904 \end{center}
    905 \end{column}
    906 
    907   \end{columns}
    908 
    909 \end{frame}
    910 
    911 \begin{frame}
    912   \frametitle{Pay with Taler II}
    913   \begin{columns}
    914     \begin{column}{0.4\textwidth}
    915   \begin{block}{Scan the QR code presented by the merchand}
    916     \begin{itemize}
    917     \item Validate the payment in the app
    918     \item DONE
    919     \end{itemize}
    920   \end{block}
    921 
    922     \end{column}
    923     \begin{column}{0.5\textwidth}
    924 \begin{center}
    925   \includegraphics[width=0.4\textwidth]{./images/taler-snack-automat.jpg}
    926 \end{center}
    927     \end{column}
    928 
    929   \end{columns}
    930 
    931 \end{frame}
    932 
    933 
    934 \begin{frame}{Conclusion}
    935   \begin{center}
    936     {\bf  What can we do?}
    937    \end{center}
    938   \vfill
    939 \begin{itemize}
    940  \item{Suffer mass-surveillance enabled by credit card oligopolies with high fees, and}
    941  \item{Engage in arms race with deliberately unregulatable blockchains}
    942 % \item{Enjoy the ``benefits'' of cash \\
    943 %  \hfill  \includegraphics[height=0.3\textheight]{atm-rupee.jpg} \hfill}
    944 \end{itemize}
    945 \vfill
    946 \begin{center}
    947   {\bf OR}
    948 \end{center}
    949 \vfill
    950 \begin{itemize}
    951  \item{Establish free software alternative balancing social goals!}
    952 \end{itemize}
    953 \vfill
    954 \end{frame}
    955 
    956 
    957 
    958 \section*{References}
    959 \begin{frame}[allowframebreaks]{References}
    960 \bibliographystyle{plain}
    961 \bibliography{ref,extra,rfc,biblio-defqa}
    962 \end{frame}
    963 
    964 
    965 % This should be last...
    966 \begin{frame}{Acknowledgments}
    967 
    968   \begin{minipage}{0.45\textwidth} \ \\
    969     {\tiny Funded by the European Union (Project 101135475).}
    970 
    971     \begin{center}
    972       \includegraphics[width=0.5\textwidth]{./images/bandera.jpg}
    973     \end{center}
    974   \end{minipage}
    975   \hfill
    976   \begin{minipage}{0.45\textwidth}
    977     {\tiny Funded by SERI (HEU-Projekt 101135475-TALER).}
    978 
    979     \begin{center}
    980       \includegraphics[width=0.65\textwidth]{./images/sbfi.jpg}
    981     \end{center}
    982   \end{minipage}
    983 
    984   \vfill
    985 
    986   {\tiny
    987 
    988     Views and opinions expressed are however those of the author(s) only
    989     and do not necessarily reflect those of the European Union. Neither the
    990     European Union nor the granting authority can be held responsible for
    991     them.
    992 
    993   }
    994 \end{frame}
    995 
    996 
    997 \end{document}
    998 
    999 
   1000 
   1001 \begin{frame}{Future work}
   1002   \begin{itemize}
   1003     \item Performance improvements for RSA in FLOSS crypto libraries
   1004     \item Integrate with e-ID for easier \& cheaper KYC
   1005     \item Buy anonymous pre-paid debit cards on-demand with Taler wallet
   1006     \item Implement PQC across the stack (with cipher agility, where possible with additive security)
   1007   \end{itemize}
   1008 \end{frame}