marketing

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

2025-ethz.tex (73527B)


      1 \documentclass[aspectratio=169,t]{beamer}
      2 \input taler-macros
      3 
      4 \newcommand{\TITLE}{NEXT \\ GENERATION \\ INTERNET}
      5 \newcommand{\SUB}{The GNU Taler Payment System}
      6 \newcommand{\AUTHOR}{Christian Grothoff}
      7 \newcommand{\SPEAKER}{Christian Grothoff}
      8 \newcommand{\INST}{The GNU Project}
      9 \newcommand{\DATE}{Traffic Seminar --- ETHZ}
     10 
     11 % Do not edit this part
     12 \title{\TITLE}
     13 \subtitle{\SUB}
     14 \date{\DATE}
     15 \author[\SPEAKER]{\AUTHOR}
     16 \institute{\INST}
     17 
     18 
     19 \usepackage{amsmath}
     20 \usepackage{multimedia}
     21 \usepackage[utf8]{inputenc}
     22 \usepackage{framed,color,ragged2e}
     23 \usepackage[absolute,overlay]{textpos}
     24 \definecolor{shadecolor}{rgb}{0.8,0.8,0.8}
     25 \usetheme{boxes}
     26 \setbeamertemplate{navigation symbols}{}
     27 \usepackage{xcolor}
     28 \usepackage[normalem]{ulem}
     29 \usepackage{listings}
     30 \usepackage{adjustbox}
     31 \usepackage{array}
     32 \usepackage{bbding}
     33 \usepackage{relsize}
     34 \usepackage{graphicx}
     35 \usepackage{tikz,eurosym,calc}
     36 \usetikzlibrary{tikzmark}
     37 \usetikzlibrary{shapes,arrows,arrows.meta}
     38 \usetikzlibrary{positioning,fit,patterns}
     39 \usetikzlibrary{calc}
     40 \usepackage{multicol}
     41 \usepackage{pgf-umlsd}
     42 \usepackage{relsize}
     43 
     44 \usepackage{booktabs}
     45 \usepackage{makecell}
     46 \usepackage{arydshln}
     47 
     48 
     49 
     50 % "The GNU Taler Payment System", including
     51 % an introduction to our objectives,
     52 % background on the technology,
     53 % demonstration of the system,
     54 % social implications and open issues.
     55 
     56 % CSS
     57 \lstdefinelanguage{CSS}{
     58   basicstyle=\ttfamily\scriptsize,
     59   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},
     60   sensitive=true,
     61   morecomment=[l]{//},
     62   morecomment=[s]{/*}{*/},
     63   morestring=[b]',
     64   morestring=[b]",
     65   alsoletter={:},
     66   alsodigit={-}
     67 }
     68 
     69 % JavaScript
     70 \lstdefinelanguage{JavaScript}{
     71   basicstyle=\ttfamily\scriptsize,
     72   morekeywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break},
     73   morecomment=[s]{/*}{*/},
     74   morecomment=[l]//,
     75   morestring=[b]",
     76   morestring=[b]'
     77 }
     78 
     79 \lstdefinelanguage{HTML5}{
     80   basicstyle=\ttfamily\scriptsize,
     81   language=html,
     82   sensitive=true,
     83   alsoletter={<>=-},
     84   morecomment=[s]{<!-}{-->},
     85   tag=[s],
     86   otherkeywords={
     87   % General
     88   >,
     89   % Standard tags
     90 	<!DOCTYPE,
     91   </html, <html, <head, <title, </title, <style, </style, <link, </head, <meta, />,
     92 	% body
     93 	</body, <body,
     94 	% Divs
     95 	</div, <div, </div>,
     96 	% Paragraphs
     97 	</p, <p, </p>,
     98 	% scripts
     99 	</script, <script,
    100   % More tags...
    101   <canvas, /canvas>, <svg, <rect, <animateTransform, </rect>, </svg>, <video, <source, <iframe, </iframe>, </video>, <image, </image>
    102   },
    103   ndkeywords={
    104   % General
    105   =,
    106   % HTML attributes
    107   charset=, src=, id=, width=, height=, style=, type=, rel=, href=,
    108   % SVG attributes
    109   fill=, attributeName=, begin=, dur=, from=, to=, poster=, controls=, x=, y=, repeatCount=, xlink:href=,
    110   % CSS properties
    111   margin:, padding:, background-image:, border:, top:, left:, position:, width:, height:,
    112 	% CSS3 properties
    113   transform:, -moz-transform:, -webkit-transform:,
    114   animation:, -webkit-animation:,
    115   transition:,  transition-duration:, transition-property:, transition-timing-function:,
    116   }
    117 }
    118 
    119 \lstdefinelanguage{JavaScript}{
    120   basicstyle=\ttfamily\scriptsize,
    121   keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break, for},
    122   keywordstyle=\color{blue}\bfseries,
    123   ndkeywords={class, export, boolean, throw, implements, import, this},
    124   ndkeywordstyle=\color{darkgray}\bfseries,
    125   identifierstyle=\color{black},
    126   sensitive=false,
    127   comment=[l]{//},
    128   morecomment=[s]{/*}{*/},
    129   commentstyle=\color{purple}\ttfamily,
    130   stringstyle=\color{red}\ttfamily,
    131   morestring=[b]',
    132   morestring=[b]"
    133 }
    134 
    135 \setbeamersize{description width=1em}
    136 
    137 \definecolor{blue}{rgb}{0,0,0.7}
    138 \newcommand{\orange}[1]{{\color{orange}#1}}
    139 \newcommand{\blue}[1]{{\color{blue}#1}}
    140 \newcommand{\red}[1]{{\color{red}#1}}
    141 \newcommand{\Guardian}{\mathcal{G}}
    142 \newcommand{\Child}{\mathcal{C}}
    143 \newcommand{\Customer}{\mathcal{C}}
    144 \newcommand{\Merchant}{\mathcal{M}}
    145 \newcommand{\Exchange}{\mathcal{E}}
    146 
    147 \newcommand{\Commit}{\mathsf{Commit}}
    148 \newcommand{\Attest}{\mathsf{Attest}}
    149 \newcommand{\Verify}{\mathsf{Verify}}
    150 \newcommand{\Derive}{\mathsf{Derive}}
    151 \newcommand{\DeriveCompare}{\mathsf{DeriveCompare_\kappa}}
    152 \newcommand{\Compare}{\mathsf{Compare}}
    153 \newcommand{\AgeVer}{\mathsf{AgeVer}}
    154 
    155 \newcommand{\HashF}{\mathsf{H}}
    156 \newcommand{\Hash}{\mathsf{H}}
    157 \newcommand{\Block}{\mathbb{B}}
    158 \newcommand{\Pub}{\mathsf{Pub}}
    159 \newcommand{\Sign}{\mathsf{Sig}}
    160 \newcommand{\Ver}{\mathsf{Ver}}
    161 \newcommand{\Encoding}{\mathsf{Encoding}}
    162 \newcommand{\ECDSA}{\mathsf{ECDSA}}
    163 \newcommand{\Null}{\mathcal{O}}
    164 \newcommand{\EC}{\mathrm{ec}}
    165 \newcommand{\Curve}{\mathsf{Curve25519}}
    166 \newcommand{\SHA}{\mathsf{SHA256}}
    167 \newcommand{\SHAF}{\mathsf{SHA252}}
    168 \newcommand{\FDH}{\mathsf{FDH}}
    169 
    170 \newcommand{\negl}{\epsilon}
    171 
    172 \newcommand{\rand}{\mathsf{rand}}
    173 \newcommand{\age}{\mathsf{a}}
    174 \newcommand{\Age}{\mathsf{M}}
    175 \newcommand{\bage}{\mathsf{b}}
    176 \newcommand{\minage}{\mathsf{m}}
    177 \newcommand{\attest}{\mathsf{T}}
    178 \newcommand{\commitment}{\mathsf{Q}}
    179 \newcommand{\pruf}{\mathsf{P}}
    180 \newcommand{\Vcommitment}{\vec{\mathsf{Q}}}
    181 \newcommand{\Vpruf}{\vec{\mathsf{P}}}
    182 \newcommand{\blinding}{\beta}
    183 
    184 \newcommand{\ZN}{\mathbb{Z}_N}
    185 \newcommand{\Z}{\mathbb{Z}}
    186 \newcommand{\N}{\mathbb{N}}
    187 \newcommand{\A}{\mathbb{A}}
    188 \newcommand{\E}{\mathbb{E}}
    189 \newcommand{\F}{\mathbb{F}}
    190 \newcommand{\seck}{\mathsf{s}}
    191 \newcommand{\pubk}{\mathsf{P}}
    192 \renewcommand{\H}{\mathbb{H}}
    193 \newcommand{\K}{\mathbb{K}}
    194 \newcommand{\Proofs}{\mathbb{P}}
    195 \newcommand{\Commitments}{\mathbb{O}}
    196 \newcommand{\Attests}{\mathbb{T}}
    197 \newcommand{\Blindings}{\mathbb{B}}
    198 \newcommand{\Nil}{\perp}
    199 
    200 \newcommand{\p}{\mathsf{p}}
    201 \newcommand{\com}{\mathsf{com}}
    202 \newcommand{\prf}{\mathsf{prf}}
    203 
    204 \newcommand{\Adv}{\mathcal{A}}
    205 \newcommand{\PPT}{\mathfrak{A}}
    206 \newcommand{\Probability}{\mathrm{Pr}}
    207 \newcommand{\Algorithm}{f}
    208 \renewcommand{\Game}[1]{G_\Adv^\mathsf{#1}}
    209 
    210 \DeclareMathOperator{\Image}{Im}
    211 \DeclareMathOperator{\Mod}{mod}
    212 
    213 \newcommand{\Encode}[1]{\overbracket[0.5pt][2pt]{\,#1\,}}
    214 \newcommand{\Decode}[1]{\underbracket[0.5pt][3pt]{\,#1\,}}
    215 \newcommand{\FDHg}[1]{[#1]_g\,}
    216 \newcommand{\logg}{{\breve{g}}}
    217 
    218 
    219 \newcommand{\drawfrom}{\xleftarrow{\$}}
    220 \newcommand\Exists{%
    221 	  \mathop{\lower0.75ex\hbox{\ensuremath{%
    222 		  \mathlarger{\mathlarger{\mathlarger{\mathlarger{\exists}}}}}}}%
    223 	  \limits}
    224 
    225 \newcommand\Forall{%
    226 	  \mathop{\lower0.75ex\hbox{\ensuremath{%
    227 		  \mathlarger{\mathlarger{\mathlarger{\mathlarger{\forall}}}}}}}%
    228 	  \limits}
    229 
    230 
    231 \begin{document}
    232 
    233 \begin{frame}[plain]
    234 \maketitle
    235 \end{frame}
    236 
    237 \begin{frame}{Agenda}
    238   \tableofcontents
    239 \end{frame}
    240 
    241 \section{Motivation \& Background}
    242 
    243 
    244 \begin{frame}{A Social Problem}
    245 %  \vfill
    246   This was a question posed to RAND researchers in 1971:
    247 
    248 \begin{quote}
    249   ``Suppose you were an advisor to the head of the KGB. Suppose you are given the assignment of designing a system for the surveillance of all citizens and visitors within the boundaries of the USSR. The system is not to be too obtrusive or obvious. What would be your decision?''
    250 \end{quote}
    251 %The result: an electronic funds transfer system that looks
    252 %strikingly similar today's debit card system.
    253 \pause
    254 \begin{minipage}{2cm}
    255 \includegraphics[width=2cm]{pics/nsa_spy.jpg}
    256 \end{minipage}
    257 \begin{minipage}{12cm}
    258 ``I think one of the big things that we need to do, is we need
    259 to get away from true-name payments on the Internet. The credit
    260 card payment system is one of the worst things that happened for the
    261 user, in terms of being able to divorce their access from their
    262 identity.'' \hfill --Edward Snowden, IETF 93 (2015)
    263 \end{minipage}
    264 
    265 \end{frame}
    266 
    267 
    268 \begin{frame}{Banks have Problems, too!}
    269 
    270   3D secure (``verified by visa'') is a nightmare:
    271 
    272   \begin{minipage}{5cm}
    273     \begin{itemize}
    274     \item Complicated process
    275     \item Shifts liability to consumer
    276     \item Significant latency
    277     \item Can refuse valid requests
    278     \item Legal vendors excluded
    279     \item No privacy for buyers
    280      \end{itemize}
    281   \end{minipage}
    282   \begin{minipage}{5cm}
    283       \includegraphics[width=\textwidth]{illustrations/cc3ds.pdf}
    284   \end{minipage}
    285   \vfill
    286     Online credit card payments will be replaced, but with what?
    287 \end{frame}
    288 
    289 
    290 \begin{frame}{The Bank's Problem}
    291     \begin{itemize}
    292     \item Global tech companies push oligopolies
    293     \item Privacy and federated finance are at risk
    294 %    \item 30\% fees are conceivable
    295     \item Economic sovereignty is in danger
    296     \end{itemize}
    297 \begin{textblock*}{4cm}(11.5cm,5.2cm) % {block width} (coords)
    298  {\includegraphics[width=\textwidth]{../investors/competitor-logos/amazon.png}}
    299 \end{textblock*}
    300 \begin{textblock*}{2cm}(11cm,3cm) % {block width} (coords)
    301  {\includegraphics[width=\textwidth]{../investors/competitor-logos/alipay.jpeg}}
    302 \end{textblock*}
    303 \begin{textblock*}{2cm}(11cm,7cm) % {block width} (coords)
    304  {\includegraphics[width=\textwidth]{../investors/competitor-logos/paypal.jpeg}}
    305 \end{textblock*}
    306 \begin{textblock*}{2cm}(3cm,9cm) % {block width} (coords)
    307  {\includegraphics[width=\textwidth]{../investors/competitor-logos/applepay.jpeg}}
    308 \end{textblock*}
    309 \begin{textblock*}{2cm}(7cm,7cm) % {block width} (coords)
    310  {\includegraphics[width=\textwidth]{../investors/competitor-logos/samsungpay.jpeg}}
    311 \end{textblock*}
    312 \begin{textblock*}{1cm}(9.5cm,6.3cm) % {block width} (coords)
    313  {\includegraphics[width=\textwidth]{../investors/competitor-logos/android_pay.png}}
    314 \end{textblock*}
    315 \vfill
    316 \end{frame}
    317 
    318 
    319 \begin{frame}{Predicting the Future}
    320   \begin{itemize}
    321   \item Google and Apple will be your bank and run your payment system
    322   \item They can target advertising based on your purchase history, location and
    323         your ability to pay
    324   \item They will provide more usable, faster and broadly available
    325         payment solutions; our federated banking system will be history
    326 %        just like SMTP is now Gmail.
    327   \item After they dominate the payment sector, they will start to charge fees
    328         befitting their oligopoly size
    329   \item Competitors and vendors not aligning with their corporate ``values''
    330         will be excluded by policy and go bankrupt
    331   \item The imperium will have another major tool for its financial warfare
    332   \end{itemize}
    333 \end{frame}
    334 
    335 
    336 \begin{frame}{Central Bank Digital Currency?}
    337 Speech by Augustin Carstens, Bank of International Settlements (October 2020) on the difference between Central Bank Digital Currencies and cash.
    338  \begin{center}
    339     \movie[height = 0.5\paperheight, poster, showcontrols]{Central Bank Digital Currency vs. Cash}
    340           {bis-cbdc.mp4}
    341 
    342 {\tiny
    343 \url{https://www.youtube.com/watch?v=R_E4Uu7ycqE} (10'2020)}
    344 \end{center}
    345 \end{frame}
    346 
    347 
    348 
    349 \begin{frame}{The Emergency Act of Canada}
    350 Speech by Premier Kenney, Alberta, February 2022.
    351  \begin{center}
    352     \movie[height = 0.5\paperheight, poster, showcontrols]{The Emergency Act of Canada}
    353           {emergencyact.mp4}
    354 
    355 {\tiny \url{https://www.youtube.com/watch?v=NehMAj492SA} (2'2022)}
    356   \end{center}
    357 \end{frame}
    358 
    359 
    360 \section{GNU Taler: Introduction}
    361 
    362 \begin{frame}
    363   \vfill
    364   \begin{center}
    365     {\bf GNU Taler: Introduction}
    366   \end{center}
    367   \vfill
    368 \end{frame}
    369 
    370 
    371 \begin{frame}{GNU Taler~\cite{taler2016space,DBLP:phd/hal/Dold19,cbdc2021chaum}}
    372   \vfill
    373   \begin{center}
    374     {\huge {\bf Digital} cash, made \textbf{socially responsible}.}
    375   \end{center}
    376   \vfill
    377   \begin{center}
    378   \includegraphics[scale=0.3]{taler-logo-2021-inkscape.pdf}
    379   \end{center}
    380   \vfill
    381   \begin{center}
    382     Privacy-Preserving, Practical, Taxable, Free Software, Efficient
    383   \end{center}
    384  \vfill
    385  \vfill
    386 \ %
    387 \end{frame}
    388 
    389 
    390 \begin{frame}{What is Taler?}
    391   \framesubtitle{\url{https://taler.net/en/features.html}}  \noindent
    392 Taler is
    393   \vfill
    394   \begin{itemize}
    395     \item a Free/Libre software \emph{payment system} infrastructure project
    396     \item ... with a surrounding software ecosystem
    397     \item ... and a company (Taler Systems S.A.) and community that wants to deploy it
    398       as widely as possible.
    399   \end{itemize}
    400   \vfill
    401 \noindent
    402  However, Taler is
    403   \begin{itemize}
    404     \item \emph{not} a currency or speculative asset
    405     \item \emph{not} a long-term store of value
    406     \item \emph{not} a network or instance of a system
    407     \item \emph{not} based on proof-of-work or proof-of-stake
    408   \end{itemize}
    409 \end{frame}
    410 
    411 
    412 \begin{frame}{Design principles}
    413   \framesubtitle{https://taler.net/en/principles.html}
    414 GNU Taler must ...
    415 \begin{enumerate}
    416   \item {... be implemented as {\bf free software}.}
    417   \item {... protect the {\bf privacy of buyers}.}
    418   \item {... enable the state to {\bf tax income} and crack down on
    419     illegal business activities.}
    420   \item {... prevent payment fraud.}
    421   \item {... only {\bf disclose the minimal amount of information
    422     necessary}.}
    423   \item {... be usable.}
    424   \item {... be efficient.}
    425   \item {... avoid single points of failure.}
    426   \item {... foster {\bf competition}.}
    427 \end{enumerate}
    428 \end{frame}
    429 
    430 
    431 \begin{frame}
    432 \frametitle{Taler Overview}
    433 \begin{center}
    434 \begin{tikzpicture}
    435  \tikzstyle{def} = [node distance= 5em and 6.5em, inner sep=1em, outer sep=.3em];
    436  \node (origin) at (0,0) {};
    437  \node (exchange) [def,above=of origin,draw]{Exchange};
    438  \node (customer) [def, draw, below left=of origin] {Customer};
    439  \node (merchant) [def, draw, below right=of origin] {Merchant};
    440  \node (auditor) [def, draw, above right=of origin]{Auditor};
    441 % \node (regulator) [def, draw, above=of auditor]{CSSF};
    442 
    443  \tikzstyle{C} = [color=black, line width=1pt]
    444 
    445  \draw [<-, C] (customer) -- (exchange) node [midway, above, sloped] (TextNode) {withdraw coins};
    446  \draw [<-, C] (exchange) -- (merchant) node [midway, above, sloped] (TextNode) {deposit coins};
    447  \draw [<-, C] (merchant) -- (customer) node [midway, above, sloped] (TextNode) {spend coins};
    448  \draw [<-, C] (exchange) -- (auditor) node [midway, above, sloped] (TextNode) {verify};
    449 % \draw [<-, C] (regulator) -- (auditor) node [midway, above, sloped] (TextNode) {report};
    450 
    451 \end{tikzpicture}
    452 \end{center}
    453 \end{frame}
    454 
    455 
    456 
    457 \begin{frame}
    458 \frametitle{Architecture of Taler}
    459 \begin{center}
    460   \includegraphics[width=0.8\textwidth]{operations.png}
    461 \end{center}
    462 \end{frame}
    463 
    464 
    465 \begin{frame}{Consumer Impact of Taler}
    466 \begin{itemize}
    467 \item {\bf Convenient:} pay with one click instantly --– in Euro,
    468 Dollar, Yen or Bitcoin
    469 \item {\bf Friction-free security:} Payments do not require sign-up,
    470 login or multi-factor authentication
    471 \item {\bf Privacy-preserving:} payment requires/shares no personal information
    472 \item {\bf Bank account:} not required
    473 \end{itemize}
    474 \end{frame}
    475 
    476 
    477 \begin{frame}{Merchant Impact of Taler}
    478 \begin{itemize}
    479 \item {\bf Instant clearance:} one-click transactions and instant clearance at par
    480 \item {\bf Easy \& compliant:} GDPR \& PCI-DSS compliance-free and without any effort
    481 \item {\bf Major profit increase:} efficient protocol $+$ no fraud $=$ extremely low costs
    482 \item {\bf 1-click checkout:} without Amazon and without false positives in fraud detection
    483 \end{itemize}
    484 \end{frame}
    485 
    486 
    487 \begin{frame}{Usability of Taler}
    488   \vfill
    489   \begin{center}
    490     \url{https://demo.taler.net/}
    491   \end{center}
    492   \begin{enumerate}
    493   \item Install browser extension.
    494   \item Visit the {\tt bank.demo.taler.net} to withdraw coins.
    495   \item Visit the {\tt shop.demo.taler.net} to spend coins.
    496   \end{enumerate}
    497   \vfill
    498 \end{frame}
    499 
    500 
    501 \section{Protocol Basics}
    502 
    503 \begin{frame}
    504   \vfill
    505   \begin{center}
    506     {\bf Protocol Basics}
    507   \end{center}
    508   \vfill
    509 \end{frame}
    510 
    511 
    512 \begin{frame}[plain]
    513    \begin{tikzpicture}[remember picture,overlay]
    514      \node[anchor=south west, inner sep=0pt] at (current page.south west) {%
    515        \movie[height = \paperheight, width = \paperwidth, poster, showcontrols] {BFH Bachelor's thesis video}{cs-movie.mp4}%
    516      };
    517    \end{tikzpicture}
    518 \end{frame}
    519 
    520 
    521 \begin{frame}{How does it work?}
    522 We use a few ancient constructions:
    523   \begin{itemize}
    524   \item Cryptographic hash function (1989)
    525   \item Blind signature (1983)
    526   \item Schnorr signature (1989)
    527   \item \sout{Diffie-Hellman key exchange (1976)} Deterministic signatures (1977) % 1977: RSA, 2008: EdDSA
    528   \item Cut-and-choose zero-knowledge proof (1985)
    529   \end{itemize}
    530 But of course we use modern instantiations.
    531 \end{frame}
    532 
    533 
    534 \begin{frame}{Definition: Taxability}
    535   We say Taler is taxable because:
    536   \begin{itemize}
    537   \item Merchant's income is visible from deposits.
    538   \item Hash of contract is part of deposit data.
    539   \item State can trace income and enforce taxation.
    540   \end{itemize}\pause
    541   Limitations:
    542   \begin{itemize}
    543   \item withdraw loophole
    544   \item {\em sharing} coins among family and friends
    545   \end{itemize}
    546 \end{frame}
    547 
    548 
    549 \begin{frame}{Exchange setup: Create a denomination key (RSA)}
    550    \begin{minipage}{6cm}
    551     \begin{enumerate}
    552     \item Generate random primes $p,q$.
    553     \item Compute $n := pq$, $\phi(n) = (p-1)(q-1)$
    554     \item Pick small $e < \phi(n)$ such that
    555           $d := e^{-1} \mod \phi(n)$ exists.
    556     \item Publish public key $(e,n)$.
    557     \end{enumerate}
    558   \end{minipage}
    559   \begin{minipage}{6cm}
    560   \begin{tikzpicture}
    561  \tikzstyle{def} = [node distance=1em and 1em, inner sep=0em, outer sep=.3em];
    562     \node (origin) at (0,0) {\includegraphics[width=0.2\textwidth]{dice.pdf}};
    563     \node (primes) [draw=none, below = of origin] at (0,0) {$(p, q)$};
    564     \node (seal) [def, draw=none, below left=of primes]{\includegraphics[width=0.15\textwidth]{seal.pdf}};
    565     \node (hammer) [def, draw=none, below right=of primes]{\includegraphics[width=0.15\textwidth]{hammer.pdf}};
    566 
    567     \tikzstyle{C} = [color=black, line width=1pt]
    568 
    569     \draw [<-, C] (primes) -- (origin) node [midway, above, sloped] (TextNode) {};
    570     \draw [<-, C] (seal) -- (primes) node [midway, above, sloped] (TextNode) {};
    571     \draw [<-, C] (hammer) -- (primes) node [midway, above, sloped] (TextNode) {};
    572   \end{tikzpicture}
    573 %  \includegraphics[width=0.4\textwidth]{seal.pdf}
    574   \end{minipage}
    575 \end{frame}
    576 
    577 
    578 \begin{frame}{Merchant: Create a signing key (EdDSA)}
    579   \begin{minipage}{6cm}
    580     \begin{itemize}
    581   \item Generate random number $m \mod o$ as private key
    582   \item Compute public key $M := mG$
    583   \end{itemize}
    584   \end{minipage}
    585   \begin{minipage}{6cm}
    586   \begin{tikzpicture}
    587    \tikzstyle{def} = [node distance= 1em and 1em, inner sep=0em, outer sep=.3em];
    588     \node (origin) at (0,0) {\includegraphics[width=0.2\textwidth]{dice.pdf}};
    589     \node (m) [draw=none, below = of origin] at (0,0) {$m$};
    590     \node (seal) [draw=none, below=of m]{M};
    591    \tikzstyle{C} = [color=black, line width=1pt]
    592 
    593     \draw [<-, C] (m) -- (origin) node [midway, above, sloped] (TextNode) {};
    594     \draw [<-, C] (seal) -- (primes) node [midway, above, sloped] (TextNode) {};
    595   \end{tikzpicture}
    596   \end{minipage}
    597   \parbox[t]{3cm}{{\bf Capability:} $m \Rightarrow$ }
    598   \raisebox{\dimexpr-\height+\baselineskip}{\includegraphics[width=0.1\textwidth]{merchant-sign.pdf}}
    599 \end{frame}
    600 
    601 
    602 \begin{frame}{Customer: Create a planchet (EdDSA)}
    603   \begin{minipage}{8cm}
    604   \begin{itemize}
    605   \item Generate random number $c \mod o$ as private key
    606   \item Compute public key $C := cG$
    607   \end{itemize}
    608   \end{minipage}
    609   \begin{minipage}{4cm}
    610   \begin{tikzpicture}
    611    \tikzstyle{def} = [node distance= 1em and 1em, inner sep=0em, outer sep=.3em];
    612     \node (origin) at (0,0) {\includegraphics[width=0.2\textwidth]{dice.pdf}};
    613     \node (c) [draw=none, below = of origin] at (0,0) {$c$};
    614     \node (planchet) [draw=none, below=of c]{\includegraphics[width=0.4\textwidth]{planchet.pdf}};
    615     \tikzstyle{C} = [color=black, line width=1pt]
    616 
    617     \draw [<-, C] (c) -- (origin) node [midway, above, sloped] (TextNode) {};
    618     \draw [<-, C] (planchet) -- (c) node [midway, above, sloped] (TextNode) {};
    619   \end{tikzpicture}
    620   \end{minipage}
    621   \parbox[t]{3cm}{{\bf Capability:} $c \Rightarrow$ }
    622   \raisebox{\dimexpr-\height+\baselineskip}{\includegraphics[width=0.1\textwidth]{planchet-sign.pdf}}
    623 \end{frame}
    624 
    625 
    626 \begin{frame}{Customer: Blind planchet (RSA)}
    627   \begin{minipage}{6cm}
    628     \begin{enumerate}
    629     \item Obtain public key $(e,n)$
    630     \item Compute $f := FDH(C)$, $f < n$.
    631     \item Generate random blinding factor $b \in \mathbb Z_n$
    632     \item Transmit $f' := f b^e \mod n$
    633     \end{enumerate}
    634   \end{minipage}
    635   \begin{minipage}{6cm}
    636   \begin{tikzpicture}
    637    \tikzstyle{def} = [node distance= 2em and 0.5em, inner sep=0em, outer sep=.3em];
    638     \node (origin) at (0,0) {\includegraphics[width=0.2\textwidth]{dice.pdf}};
    639     \node (b) [def, draw=none, below = of origin] at (0,-0.2) {$b$};
    640     \node (blinded) [def, draw=none, below right=of b]{\includegraphics[width=0.2\textwidth]{blinded.pdf}};
    641     \node (planchet) [def, draw=none, above right=of blinded]{\includegraphics[width=0.15\textwidth]{planchet.pdf}};
    642     \node (exchange) [node distance=4em and 0.5em, draw, below =of blinded]{Exchange};
    643     \tikzstyle{C} = [color=black, line width=1pt]
    644 
    645     \draw [<-, C] (b) -- (origin) node [midway, above, sloped] (TextNode) {};
    646     \draw [<-, C] (blinded) -- (planchet) node [midway, above, sloped] (TextNode) {};
    647     \draw [<-, C] (blinded) -- (b) node [midway, above, sloped] (TextNode) {};
    648     \draw [<-, C] (exchange) -- (blinded) node [midway, above, sloped] (TextNode) {{\small transmit}};
    649   \end{tikzpicture}
    650   \end{minipage}
    651 \end{frame}
    652 
    653 
    654 \begin{frame}{Exchange: Blind sign (RSA)}
    655    \begin{minipage}{6cm}
    656     \begin{enumerate}
    657     \item Receive $f'$.
    658     \item Compute $s' := f'^d \mod n$.
    659     \item Send signature $s'$.
    660     \end{enumerate}
    661    \end{minipage}
    662   \begin{minipage}{6cm}
    663   \begin{tikzpicture}
    664    \tikzstyle{def} = [node distance= 2em and 0.5em, inner sep=0em, outer sep=.3em];
    665     \node (hammer) [def, draw=none] at (0,0) {\includegraphics[width=0.15\textwidth]{hammer.pdf}};
    666     \node (signed) [def, draw=none, below left=of hammer]{\includegraphics[width=0.2\textwidth]{sign.pdf}};
    667     \node (blinded) [def, draw=none, above left=of signed]{\includegraphics[width=0.15\textwidth]{blinded.pdf}};
    668     \node (customer) [node distance=4em and 0.5em, draw, below =of signed]{Customer};
    669     \tikzstyle{C} = [color=black, line width=1pt]
    670 
    671     \draw [<-, C] (signed) -- (hammer) node [midway, above, sloped] (TextNode) {};
    672     \draw [<-, C] (signed) -- (blinded) node [midway, above, sloped] (TextNode) {};
    673     \draw [<-, C] (customer) -- (signed) node [midway, above, sloped] (TextNode) {{\small transmit}};
    674   \end{tikzpicture}
    675   \end{minipage}
    676 \end{frame}
    677 
    678 
    679 \begin{frame}{Customer: Unblind coin (RSA)}
    680   \begin{minipage}{6cm}
    681    \begin{enumerate}
    682     \item Receive $s'$.
    683     \item Compute $s := s' b^{-1} \mod n$ % \\
    684     % ($(f')^d = (f b^e)^d = f^d b$).
    685     \end{enumerate}
    686    \end{minipage}
    687   \begin{minipage}{6cm}
    688   \begin{tikzpicture}
    689    \tikzstyle{def} = [node distance= 2em and 0.5em, inner sep=0em, outer sep=.3em];
    690     \node (b) [def, draw=none] at (0,0) {$b$};
    691     \node (coin) [def, draw=none, below left=of b]{\includegraphics[width=0.2\textwidth]{coin.pdf}};
    692     \node (signed) [def, draw=none, above left=of coin]{\includegraphics[width=0.15\textwidth]{sign.pdf}};
    693     \tikzstyle{C} = [color=black, line width=1pt]
    694 
    695     \draw [<-, C] (coin) -- (b) node [midway, above, sloped] (TextNode) {};
    696     \draw [<-, C] (coin) -- (signed) node [midway, above, sloped] (TextNode) {};
    697   \end{tikzpicture}
    698   \end{minipage}
    699 \end{frame}
    700 
    701 
    702 \begin{frame}{Customer: Build shopping cart}
    703   \begin{center}
    704   \begin{tikzpicture}
    705    \tikzstyle{def} = [node distance= 1em and 1em, inner sep=0em, outer sep=.3em];
    706     \node (origin) [draw=none] at (0,0) {\includegraphics[width=0.15\textwidth]{cart.pdf}};
    707     \node (merchant) [node distance=4em and 0.5em, draw, below =of origin]{\includegraphics[width=0.15\textwidth]{shop.pdf}};
    708     \tikzstyle{C} = [color=black, line width=1pt];
    709     \draw [<-, C] (merchant) -- (origin) node [midway, right] (TextNode) {{\small transmit}};
    710   \end{tikzpicture}
    711   \end{center}
    712 \end{frame}
    713 
    714 
    715 \begin{frame}{Merchant: Propose contract (EdDSA)}
    716    \begin{minipage}{6cm}
    717    \begin{enumerate}
    718     \item Complete proposal $D$.
    719     \item Send $D$, $EdDSA_m(D)$
    720     \end{enumerate}
    721    \end{minipage}
    722   \begin{minipage}{6cm}
    723   \begin{tikzpicture}
    724    \tikzstyle{def} = [node distance=2em and 0.5em, inner sep=0em, outer sep=.3em];
    725     \node (cart) [def, draw=none] at (0,0) {\includegraphics[width=0.15\textwidth]{cart.pdf}};
    726     \node (proposal) [def, draw=none, below right=of cart]{\includegraphics[width=0.3\textwidth]{merchant_propose.pdf}};
    727     \node (customer) [node distance=4em and 0.5em, draw, below =of proposal]{Customer};
    728     \tikzstyle{C} = [color=black, line width=1pt];
    729     \node (sign) [def, draw=none, above right=of proposal] {$m$};
    730     \tikzstyle{C} = [color=black, line width=1pt]
    731 
    732     \draw [<-, C] (proposal) -- (sign) node [midway, above, sloped] (TextNode) {};
    733     \draw [<-, C] (proposal) -- (cart) node [midway, above, sloped] (TextNode) {};
    734     \draw [<-, C] (customer) -- (proposal) node [midway, right] (TextNode) {{\small transmit}};
    735   \end{tikzpicture}
    736   \end{minipage}
    737 \end{frame}
    738 
    739 
    740 \begin{frame}{Customer: Spend coin (EdDSA)}
    741   \begin{minipage}{6cm}
    742    \begin{enumerate}
    743     \item Receive proposal $D$, $EdDSA_m(D)$.
    744     \item Send $s$, $C$, $EdDSA_c(D)$
    745     \end{enumerate}
    746    \end{minipage}
    747   \begin{minipage}{6cm}
    748   \begin{tikzpicture}
    749    \tikzstyle{def} = [node distance=1.5em and 0.4em, inner sep=0em, outer sep=.3em];
    750     \node (proposal) [def, draw=none] at (0,0) {\includegraphics[width=0.15\textwidth]{merchant_propose.pdf}};
    751     \node (contract) [def, draw=none, below right=of cart]{\includegraphics[width=0.3\textwidth]{contract.pdf}};
    752     \node (c) [def, draw=none, above=of contract] {$c$};
    753     \node (merchant) [node distance=4em and 0.5em, draw, below=of contract]{Merchant};
    754     \node (coin) [def, draw=none, right=of contract]{\includegraphics[width=0.2\textwidth]{coin.pdf}};
    755     \tikzstyle{C} = [color=black, line width=1pt]
    756 
    757     \draw [<-, C] (contract) -- (c) node [midway, above, sloped] (TextNode) {};
    758     \draw [<-, C] (contract) -- (proposal) node [midway, above, sloped] (TextNode) {};
    759     \draw [<-, C] (merchant) -- (contract) node [midway, above, sloped] (TextNode) {{\small transmit}};
    760     \draw [<-, C] (merchant) -- (coin) node [midway, right] (TextNode) {{\small transmit}};
    761   \end{tikzpicture}
    762   \end{minipage}
    763 \end{frame}
    764 
    765 
    766 \begin{frame}{Merchant and Exchange: Verify coin (RSA)}
    767    \begin{minipage}{6cm}
    768  \begin{equation*}
    769    s^e \stackrel{?}{\equiv} FDH(C) \mod n
    770    \end{equation*}
    771    \end{minipage}
    772   \begin{minipage}{6cm}
    773   \begin{minipage}{0.2\textwidth}
    774     \includegraphics[width=\textwidth]{coin.pdf}
    775   \end{minipage}
    776   $\stackrel{?}{\Leftrightarrow}$
    777   \begin{minipage}{0.2\textwidth}
    778     \includegraphics[width=\textwidth]{seal.pdf}
    779   \end{minipage}
    780   \end{minipage}
    781   \vfill
    782   The exchange does not only verify the signature, but also
    783   checks that the coin was not double-spent.
    784   \vfill
    785   \pause
    786   \begin{center}
    787   {\bf Taler is an online payment system.}
    788   \end{center}
    789   \vfill
    790 \end{frame}
    791 
    792 \input refresh.tex
    793 
    794 
    795 \section{Component Zoo}
    796 
    797 \begin{frame}
    798   \vfill
    799   \begin{center}
    800     {\bf Component Zoo}
    801   \end{center}
    802   \vfill
    803 \end{frame}
    804 
    805 
    806 \begin{frame}{The Taler Software Ecosystem: Overview}
    807   \framesubtitle{\url{https://taler.net/en/docs.html}}
    808   Taler is based on modular components that work together to provide a
    809   complete payment system:
    810   \vfill
    811   \begin{itemize}
    812     \item {\bf Exchange:} Service provider for digital cash
    813       \begin{itemize}
    814         \item Core exchange software (cryptography, database)
    815         \item Air-gapped key management, real-time {\bf auditing}
    816         \item {\bf libeufin}: Modular integration with banking systems
    817         \item {\bf challenger}: KYC service with OAuth 2.0 API
    818       \end{itemize}
    819     \item {\bf Merchant:} Integration service for existing businesses
    820       \begin{itemize}
    821         \item Core merchant backend software (cryptography, database)
    822         \item {\bf Back-office interface} for staff
    823         \item {\bf Frontend integration} (E-commerce, Point-of-sale)
    824       \end{itemize}
    825     \item {\bf Wallet:} Consumer-controlled applications for e-cash
    826       \begin{itemize}
    827         \item Multi-platform wallet software (for browsers \& mobile phones)
    828         \item Wallet backup storage providers ({\bf sync} \& {\bf Anastasis})
    829       \end{itemize}
    830   \end{itemize}
    831 \end{frame}
    832 
    833 
    834 \begin{frame}{Taler Exchange}
    835   The {\bf Exchange} is the core logic of the payment system.
    836 
    837   \begin{itemize}
    838     \item One exchange at minimum must be operated per currency
    839     \item Offers a REST API for merchants and customers
    840     \item Uses several helper processes for configuration and to
    841           interact with RTGS and cryptography
    842     \item KYC support via OAuth 2.0, KycAID or Persona APIs
    843   \end{itemize}
    844 \end{frame}
    845 
    846 
    847 \begin{frame}{Taler Merchant}
    848   The {\bf Merchant} is the software run by merchants to accept\\
    849   GNU Taler payments.
    850 
    851   \begin{minipage}{6cm}
    852   \begin{itemize}
    853     \item REST API for integration with e-commerce
    854     \item SPA provides Web interface for administration
    855     \item Features include:
    856       \begin{itemize}
    857       \item Multi-tenant support
    858       \item Refunds
    859       \item Templates
    860       \item Webhooks
    861       \item Inventory management (optional)
    862       \end{itemize}
    863   \end{itemize}
    864   \end{minipage}
    865   \begin{minipage}{5cm}
    866   \includegraphics[width=5cm]{screenshots/merchant-spa-settings}
    867   \end{minipage}
    868 \end{frame}
    869 
    870 
    871 \begin{frame}{Taler Wallet}
    872   The {\bf Wallet} is the software run by consumers to store
    873   their digital cash and authorize transactions.
    874 
    875   \begin{minipage}{8cm}
    876   \begin{itemize}
    877     \item {\bf wallet-core} is the logic shared by all interfaces
    878     \item Works on Android, F-Droid, iOS, Ubuntu Touch,
    879           WebExtension (Chrome, Chromium, Firefox, etc.)
    880     \item Features include:
    881       \begin{itemize}
    882       \item Multi-currency support
    883       \item Wallet-to-wallet payments (NFC or QR code)
    884       \item CRDT-like data model
    885       \end{itemize}
    886   \end{itemize}
    887   \end{minipage}
    888   \begin{minipage}{3cm}
    889   \includegraphics[width=3cm]{screenshots/Screenshot_20230225-103520.png}
    890   \end{minipage}
    891 \end{frame}
    892 
    893 
    894 \begin{frame}{Taler Auditor}
    895   The {\bf Auditor} is the software run by an independent auditor
    896   to validate the operation of an Exchange.
    897 
    898   \begin{itemize}
    899     \item REST API for additional report inputs by merchants (optional)
    900     \item Secure database replication logic
    901   \end{itemize}
    902 \end{frame}
    903 
    904 
    905 \begin{frame}{libeufin-nexus}
    906   libeufin-nexus allows Taler components to interact with a core banking system. It:
    907 
    908   \begin{itemize}
    909     \item provides an implementation of the Wire Gateway for the exchange
    910     \item supports EBICS 2.5 and 3.0
    911     \item other APIs such as FinTS or PSD2-style XS2A APIs can be added
    912       without requiring changes to the Exchange
    913     \item was tested with GLS Bank (DE) and Postfinance (CH) accounts and real EUR/CHF
    914   \end{itemize}
    915 \end{frame}
    916 
    917 
    918 \begin{frame}{libeufin-bank}
    919   libeufin-bank implements a standalone bank with a Web interface. It:
    920 
    921   \begin{itemize}
    922     \item provides the Taler Core Bank API for RESTful online banking
    923        using a Web interface (with multi-factor authentication)
    924     \item includes a Taler Wire Gateway for the exchange
    925     \item offers the Taler Bank Integration API to allow wallets
    926        to easily withdraw digital cash
    927     \item optionally provides the Taler Conversion Info API for currency
    928        conversion between fiat and regional currencies
    929     \item optionally integrates with libeufin-nexus to interact with
    930        a core banking system
    931   \end{itemize}
    932 \end{frame}
    933 
    934 
    935 \begin{frame}{Challenger}
    936   Challenger allows clients to obtain validated address (KYC) data about
    937   users:
    938 
    939   \begin{itemize}
    940     \item Customizable Web-based process for address validation
    941     \item Can validate phone numbers, e-mail addresses or physical mailing addresses
    942     \item Provides an exchange-compatible OAuth 2.0 API
    943   \end{itemize}
    944 \end{frame}
    945 
    946 
    947 \begin{frame}{Depolymerization}
    948   Depolymerization is a bridge between GNU Taler and blockchains,
    949   making Taler a layer 2 system for crypto-currencies (like Lightning).
    950 
    951   \begin{itemize}
    952     \item provides an implementation of the Wire Gateway for the exchange
    953     \item Works on top of Bitcoin and Ethereum
    954           crypto-currencies, with the DLTs as the ``RTGS''
    955     \item Provides same API to Exchange as libeufin-nexus
    956   \end{itemize}
    957 \end{frame}
    958 
    959 
    960 \begin{frame}{Point-of-Sale App for Android}
    961 \begin{minipage}{7cm}
    962   \begin{itemize}
    963     \item Allows merchant to generate orders against Taler backend
    964           and display QR code to enable customer to pay in person
    965     \item Patterned after ViewTouch restaurant UI
    966   \end{itemize}
    967 \end{minipage}
    968 \begin{minipage}{4cm}
    969   \includegraphics[width=4cm]{screenshots/Screenshot_20230224-194112.jpg}
    970   \includegraphics[width=4cm]{screenshots/Screenshot_20230224-194119.jpg}
    971   \includegraphics[width=4cm]{screenshots/Screenshot_20230224-195348.jpg}
    972 \end{minipage}
    973 \end{frame}
    974 
    975 
    976 \begin{frame}{Payment plugins}
    977 \begin{minipage}{5cm}
    978   \includegraphics[width=4cm]{screenshots/woocommerce-cart.png}
    979   \includegraphics[width=4cm]{screenshots/pretix.png}
    980   \end{minipage}
    981 \begin{minipage}{5cm}
    982   \begin{itemize}
    983     \item Pretix, ticket sales system
    984     \item Joomla!, an e-commerce platform
    985     \item WooCommerce, an e-commerce solution on top of WordPress
    986     \item DrupalCommerce, an e-commerce solution on top of Drupal
    987   \end{itemize}
    988 \end{minipage}
    989 \end{frame}
    990 
    991 
    992 \section{Offline payments}
    993 
    994 \begin{frame}
    995   \vfill
    996   \begin{center}
    997     {\bf Offline payments}
    998   \end{center}
    999   \vfill
   1000 \end{frame}
   1001 
   1002 
   1003 \begin{frame}[fragile]{Digitaler Euro --- Offline?}
   1004 Many central banks today demand offline capabilities for CBDCs.
   1005 \vfill \pause
   1006 \begin{figure}
   1007 \def\svgwidth{0.8\textwidth}
   1008 
   1009 \begingroup%
   1010 \makeatletter%
   1011 \providecommand\color[2][]{%
   1012 	\errmessage{(Inkscape) Color is used for the text in Inkscape, but the package 'color.sty' is not loaded}%
   1013 	\renewcommand\color[2][]{}%
   1014 }%
   1015 \providecommand\transparent[1]{%
   1016 	\errmessage{(Inkscape) Transparency is used (non-zero) for the text in Inkscape, but the package 'transparent.sty' is not loaded}%
   1017 	\renewcommand\transparent[1]{}%
   1018 }%
   1019 \providecommand\rotatebox[2]{#2}%
   1020 \newcommand*\fsize{\dimexpr\f@size pt\relax}%
   1021 \newcommand*\lineheight[1]{\fontsize{\fsize}{#1\fsize}\selectfont}%
   1022 \ifx\svgwidth\undefined%
   1023 	\setlength{\unitlength}{345bp}%
   1024 	\ifx\svgscale\undefined%
   1025 	\relax%
   1026 	\else%
   1027 	\setlength{\unitlength}{\unitlength * \real{\svgscale}}%
   1028 	\fi%
   1029 \else%
   1030 	\setlength{\unitlength}{\svgwidth}%
   1031 \fi%
   1032 \global\let\svgwidth\undefined%
   1033 \global\let\svgscale\undefined%
   1034 \makeatother%
   1035 \begin{picture}(1,0.53623188)%
   1036 	\lineheight{1}%
   1037 	\setlength\tabcolsep{0pt}%
   1038 	\put(0,0){\includegraphics[width=\unitlength,page=1]{offline-timeline.pdf}}%
   1039 	\put(0.10624514,0.04914349){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny Feb 2017 \cite{arm2017boomerang}\end{tabular}}}}%
   1040 	\put(0,0){\includegraphics[width=\unitlength,page=2]{offline-timeline.pdf}}%
   1041 	\put(0.28309276,0.44884928){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny Mar, Jun 2020 \cite{intel2020lvi,intel2020sgaxe}\end{tabular}}}}%
   1042 	\put(0,0){\includegraphics[width=\unitlength,page=3]{offline-timeline.pdf}}%
   1043 	\put(0.18177392,0.17262607){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny Aug 2017 \cite{arm2017clkscrew}\end{tabular}}}}%
   1044 	\put(0,0){\includegraphics[width=\unitlength,page=4]{offline-timeline.pdf}}%
   1045 	\put(0.08024638,0.44884927){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny Dec 2017 \cite{samsung2017knox}\end{tabular}}}}%
   1046 	\put(0,0){\includegraphics[width=\unitlength,page=5]{offline-timeline.pdf}}%
   1047 	\put(0.02512174,0.36103189){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny May, Aug 2016 \cite{arm2016alias,arm2016cache,zhang2016truspy}\end{tabular}}}}%
   1048 	\put(0,0){\includegraphics[width=\unitlength,page=6]{offline-timeline.pdf}}%
   1049 	\put(0.34119422,0.08566952){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny Aug 2019 \cite{amd2019}\end{tabular}}}}%
   1050 	\put(0,0){\includegraphics[width=\unitlength,page=7]{offline-timeline.pdf}}%
   1051 	\put(0.3956406,0.36131883){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny Oct 2019 \cite{sim2019}\end{tabular}}}}%
   1052 	\put(0,0){\includegraphics[width=\unitlength,page=8]{offline-timeline.pdf}}%
   1053 	\put(0.38164733,0.17343635){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny Jun 2020 \cite{smartcard2020}\end{tabular}}}}%
   1054 	\put(0,0){\includegraphics[width=\unitlength,page=9]{offline-timeline.pdf}}%
   1055 	\put(0.59564059,0.44827535){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny Sep 2022 \cite{atecc2022}\end{tabular}}}}%
   1056 	\put(0,0){\includegraphics[width=\unitlength,page=10]{offline-timeline.pdf}}%
   1057 	\put(0.55650392,0.05335936){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny Mar 2023 \cite{tpm2023}\end{tabular}}}}%
   1058 	\put(0,0){\includegraphics[width=\unitlength,page=11]{offline-timeline.pdf}}%
   1059 	\put(0.80271684,0.06728262){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny Sep 2024 \cite{infineon2024}\end{tabular}}}}%
   1060 	\put(0,0){\includegraphics[width=\unitlength,page=12]{offline-timeline.pdf}}%
   1061 	\put(0.59062556,0.17319998){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny Feb 2023 \cite{intel2023sgx}\end{tabular}}}}%
   1062 	\put(0,0){\includegraphics[width=\unitlength,page=13]{offline-timeline.pdf}}%
   1063 	\put(0.78984349,0.17291304){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny Oct 2024 \cite{amd2025}\end{tabular}}}}%
   1064 	\put(0,0){\includegraphics[width=\unitlength,page=14]{offline-timeline.pdf}}%
   1065 	\put(0.7963995,0.44796104){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny Aug 2023 \cite{arm2023}\end{tabular}}}}%
   1066 	\put(0,0){\includegraphics[width=\unitlength,page=15]{offline-timeline.pdf}}%
   1067 	\put(0.59916521,0.36103188){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny Apr 2023 \cite{amd2023}\end{tabular}}}}%
   1068 	\put(0,0){\includegraphics[width=\unitlength,page=16]{offline-timeline.pdf}}%
   1069 	\put(0.79631301,0.36103188){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny Aug 2024 \cite{intel2024}\end{tabular}}}}%
   1070 	\put(0,0){\includegraphics[width=\unitlength,page=17]{offline-timeline.pdf}}%
   1071 	\put(0.123203,0.24410952){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny 2015\end{tabular}}}}%
   1072 	\put(0.5000146,0.24410952){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny 2020\end{tabular}}}}%
   1073 	\put(0.87682623,0.24410952){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny 2025\end{tabular}}}}%
   1074 	\put(0,0){\includegraphics[width=\unitlength,page=18]{offline-timeline.pdf}}%
   1075 \end{picture}%
   1076 \endgroup%
   1077 \end{figure}
   1078 \end{frame}
   1079 
   1080 
   1081 \begin{frame}{A Scenario}
   1082 {God is offline, but customer pays online}
   1083 \begin{center}
   1084   \includegraphics[height=0.4\textwidth]{shrine.jpg}
   1085 \end{center}
   1086 \end{frame}
   1087 
   1088 \begin{frame}{Typical Payment Process}{All equivalent: Twint, PayPal, AliPay, PayTM}
   1089 \begin{center}
   1090    \movie[%scale=0.6,
   1091            autostart,
   1092            poster]
   1093            {
   1094                \includegraphics[height=0.3\textwidth,width=0.4\textwidth]{white.png}
   1095            }
   1096            {twint.mkv}
   1097 
   1098            {\tiny (C) Twint, 2023}
   1099 \end{center}
   1100 \end{frame}
   1101 
   1102 
   1103 \begin{frame}{Secure Payment ...}{Everything green?}
   1104 \begin{center}
   1105   \includegraphics[height=0.3\textwidth]{paymentTwint-screen_25.png}
   1106 \end{center}
   1107 \end{frame}
   1108 
   1109 \begin{frame}{Exploit ``Code''}{Programming optional}
   1110 \begin{center}
   1111   \includegraphics[height=0.3\textwidth]{paymentTwint-screen.png}
   1112 \end{center}
   1113 \end{frame}
   1114 
   1115 \begin{frame}{``Customers'' {\em love} Twint ...}{Daily non-business for shops}
   1116 \begin{center}
   1117   \includegraphics[height=0.3\textwidth]{paymentTwint-screen_50.png}
   1118 \end{center}
   1119 \end{frame}
   1120 
   1121 
   1122 \begin{frame}{Partially Offline Payments with GNU Taler~\cite{suerf2023huang}}
   1123 
   1124 \begin{center}
   1125 \resizebox{8cm}{6cm}{
   1126 \begin{sequencediagram}
   1127     \newinst{pos}{\shortstack{PoS \\
   1128       \\ \begin{tikzpicture}
   1129         \node [fill=gray!20,draw=black,thick ,align=center] {PoS key \\ PoS ID};
   1130       \end{tikzpicture}
   1131     }}
   1132     \newinst[2]{customer}{\shortstack{Customer \\
   1133       \\ \begin{tikzpicture}
   1134         \node [fill=gray!20,draw=black,thick ,align=center] {Digital \\ Wallet};
   1135       \end{tikzpicture}
   1136     }}
   1137     \newinst[2]{backend}{\shortstack{Merchant Backend \\
   1138        \\ \begin{tikzpicture}[shape aspect=.5]
   1139         \tikzset{every node/.style={cylinder, shape border rotate=90, draw,fill=gray!25}}
   1140         \node at (1.5,0) {\shortstack{{\tiny PoS key} \\ {\tiny PoS ID}}};
   1141        \end{tikzpicture}
   1142     }}
   1143     \postlevel
   1144     \mess[0]{pos}{PoS ID}{customer}
   1145     \begin{sdblock}{optional}{}
   1146       \begin{callself}{customer}{Amount}{}
   1147       \end{callself}
   1148     \end{sdblock}
   1149     \prelevel
   1150     \prelevel
   1151     \prelevel
   1152     \prelevel
   1153     \prelevel
   1154     \begin{sdblock}{optional}{}
   1155       \begin{callself}{pos}{Amount}{}
   1156       \end{callself}
   1157     \end{sdblock}
   1158     \postlevel
   1159     \mess[0]{customer}{PoS ID, [Amount]?}{backend}
   1160     \mess[0]{backend}{Contract}{customer}
   1161     \postlevel
   1162     \mess[0]{customer}{Payment}{backend}
   1163     \begin{callself}{pos}{OTP(PoS key)}{}
   1164     \end{callself}
   1165     \prelevel
   1166     \prelevel
   1167     \begin{callself}{backend}{OTP(PoS key)}{}
   1168     \end{callself}
   1169     \mess[0]{backend}{OTP code}{customer}
   1170     \postlevel
   1171     \mess[0]{customer}{OTP code}{pos}
   1172 \end{sequencediagram}
   1173 }
   1174 \end{center}
   1175 \end{frame}
   1176 
   1177 
   1178 
   1179 \section{Programmable money: Age restrictions}
   1180 
   1181 \begin{frame}
   1182   \vfill
   1183   \begin{center}
   1184     {\bf Programmable money: Age restrictions}~\cite{esorics2022age}
   1185   \end{center}
   1186   \vfill
   1187 \end{frame}
   1188 
   1189 
   1190 \begin{frame}{Age restriction in E-commerce}
   1191 
   1192 	\begin{description}
   1193 		\item[Problem:]~\\[1em]
   1194 			Verification of minimum age requirements in e-commerce.\\[2em]
   1195 
   1196 		\item[Common solutions:]
   1197 
   1198 \begin{tabular}{l<{\onslide<2->}c<{\onslide<3->}cr<{\onslide}}
   1199 	& \blue{Privacy} & \tikzmark{topau} \blue{Ext. authority}& \\[\medskipamount]
   1200 	1. ID Verification     & bad   & required & \\[\medskipamount]
   1201 	2. Restricted Accounts & bad   & required & \\[\medskipamount]
   1202 	3. Attribute-based     & good  & required &\tikzmark{bottomau} \\[\medskipamount]
   1203 \end{tabular}
   1204 	\end{description}
   1205 
   1206 \uncover<4->{
   1207 	\begin{tikzpicture}[overlay,remember picture]
   1208 	\draw[orange,thick,rounded corners]
   1209 		($(pic cs:topau) +(0,0.5)$) rectangle ($(pic cs:bottomau) -(0.3, 0.2)$);
   1210 	\end{tikzpicture}
   1211 	\begin{center}
   1212 	\bf Principle of Subsidiarity is violated
   1213 	\end{center}
   1214 }
   1215 \end{frame}
   1216 
   1217 
   1218 \begin{frame}{Principle of Subsidiarity}
   1219 \begin{center} \Large
   1220 	Functions of government---such as granting and restricting
   1221 	rights---should be performed\\
   1222 	{\it at the lowest level of authority possible},\\
   1223 	as long as they can be performed {\it adequately}.
   1224 \end{center}
   1225 \vfill
   1226 \uncover<2->{
   1227 	For age-restriction, the lowest level of authority is:\\
   1228 	\begin{center}\Large
   1229 	Parents, guardians and caretakers
   1230 	\end{center}
   1231 }
   1232 \end{frame}
   1233 
   1234 
   1235 \begin{frame}{Age restriction design for GNU Taler}
   1236 Design and implementation of an age restriction scheme\\
   1237 with the following goals:
   1238 
   1239 \begin{enumerate}
   1240 \item It ties age restriction to the \textbf{ability to pay} (not to ID's)
   1241 \item maintains \textbf{anonymity of buyers}
   1242 \item maintains \textbf{unlinkability of transactions}
   1243 \item aligns with \textbf{principle of subsidiartiy}
   1244 \item is \textbf{practical and efficient}
   1245 \end{enumerate}
   1246 
   1247 \end{frame}
   1248 
   1249 
   1250 \begin{frame}{Age restriction}
   1251 	\framesubtitle{Assumptions and scenario}
   1252 
   1253 	\begin{columns}
   1254 		\column{7.5cm}
   1255 	\begin{itemize}
   1256 		\item<1-> Assumption: Checking accounts are under control of eligible adults/guardians.
   1257 		\item<2-> \textit{Guardians} \textbf{commit} to an maximum age
   1258 		\item<3-> \textit{Minors} \textbf{attest} their adequate age
   1259 		\item<4-> \textit{Merchants} \textbf{verify} the attestations
   1260 		\item<5-> Minors \textbf{derive} age commitments from existing ones
   1261 		\item<6-> \textit{Exchanges} \textbf{compare} the derived age commitments
   1262 	\end{itemize}
   1263 		\column{5cm}
   1264 		\uncover<7->
   1265 		{
   1266 		\begin{center}
   1267 		\fontsize{7pt}{7pt}\selectfont
   1268 	\begin{tikzpicture}[scale=.5]
   1269 		\node[circle,minimum size=15pt,fill=black!15] at ( 60:4) (Exchange) {$\Exchange$};
   1270 		\node[circle,minimum size=15pt,fill=black!15] at (  0:0) (Client) {$\Child$};
   1271 		\node[circle,minimum size=15pt,fill=black!15] at (  0:4) (Merchant) {$\Merchant$};
   1272 		\node[circle,minimum size=15pt,fill=blue!15]  at (140:3) (Guardian) {$\Guardian$};
   1273 
   1274 		\draw[->] (Guardian)   to [out=50,in=130, loop] node[above]
   1275 			{$\Commit$} (Guardian);
   1276 		\draw[->,blue] (Client)   to [out=-125,in=-190, loop] node[below,left]
   1277 			{\blue{$\Attest$}} (Client);
   1278 		\draw[->,blue] (Merchant) to [out=50,in=130, loop] node[above]
   1279 			{\blue{$\Verify$}} (Merchant);
   1280 		\draw[->,orange] (Client)   to [out=-35,in=-100, loop] node[below]
   1281 			{\orange{$\Derive$}} (Client);
   1282 		\draw[->,orange] (Exchange) to [out=50,in=130, loop] node[above]
   1283 			{\orange{$\Compare$}} (Exchange);
   1284 
   1285 		\draw[orange,|->] (Client)   to node[sloped,above,align=left]
   1286 			{\orange{\scriptsize }} (Exchange);
   1287 		\draw[blue,|->] (Client)   to node[sloped, above]
   1288 			{\blue{\scriptsize }} (Merchant);
   1289 		\draw[,|->] (Guardian) to node[above,sloped,align=left]
   1290 			{{\scriptsize }} (Client);
   1291 	\end{tikzpicture}
   1292 		\end{center}
   1293 		}
   1294 	\end{columns}
   1295 	\vfill
   1296 \end{frame}
   1297 
   1298 
   1299 \begin{frame}{Formal Function Signatures}
   1300 \small
   1301 Searching for functions \uncover<2->{with the following signatures}
   1302 \begin{align*}
   1303 	&\bf \Commit\uncover<2->{:
   1304 		&(\age, \omega) &\mapsto (\commitment, \pruf)
   1305 		&\scriptstyle \N_\Age \times \Omega &\scriptstyle \to \Commitments\times\Proofs,
   1306 		}
   1307 	\\
   1308 	&\bf \Attest\uncover<3->{:
   1309 		&(\minage, \commitment, \pruf) &\mapsto \attest
   1310 		&\scriptstyle \N_\Age\times\Commitments\times\Proofs &\scriptstyle \to \Attests \cup \{\Nil\},
   1311 		}
   1312 	\\
   1313 	&\bf \Verify\uncover<4->{:
   1314 		&(\minage, \commitment, \attest) &\mapsto b
   1315 		&\scriptstyle \N_\Age\times\Commitments\times\Attests &\scriptstyle \to \Z_2,
   1316 		}
   1317 	\\
   1318 	&\bf \Derive\uncover<5->{:
   1319 		&(\commitment, \pruf, \omega) &\mapsto (\commitment', \pruf', \blinding)
   1320 		&\scriptstyle \Commitments\times\Proofs\times\Omega &\scriptstyle \to \Commitments\times\Proofs\times\Blindings,
   1321 		}
   1322 	\\
   1323 	&\bf \Compare\uncover<6->{:
   1324 		&(\commitment, \commitment', \blinding) &\mapsto b
   1325 		&\scriptstyle \Commitments\times\Commitments\times\Blindings &\scriptstyle \to \Z_2,
   1326 		}
   1327 \end{align*}
   1328 	\uncover<7->{
   1329 		with $\Omega, \Proofs, \Commitments, \Attests, \Blindings$
   1330 		sufficiently large sets.\\[1em]
   1331 		Basic and security requirements are defined later.\\[2em]
   1332 	}
   1333 
   1334 		\scriptsize
   1335 	\uncover<2->{
   1336 		Mnemonics:\\
   1337 		$\Commitments=$ \textit{c$\Commitments$mmitments},
   1338 		$\commitment=$ \textit{Q-mitment} (commitment),
   1339 		$\Proofs=$ \textit{$\Proofs$roofs},
   1340 	}
   1341 	\uncover<3->{
   1342 		$\pruf=$ \textit{$\pruf$roof},\\
   1343 		$\Attests=$ \textit{a$\Attests$testations},
   1344 		$\attest=$ \textit{a$\attest$testation},
   1345 	}
   1346 	\uncover<5->{
   1347 		$\Blindings=$ \textit{$\Blindings$lindings},
   1348 		$\blinding=$ \textit{$\blinding$linding}.
   1349 	}
   1350 \end{frame}
   1351 
   1352 \begin{frame}{Age restriction}
   1353 	\framesubtitle{Naïve scheme}
   1354 	\begin{center}
   1355 	\begin{tikzpicture}[scale=.85]
   1356 		\node[circle,minimum size=20pt,fill=black!15] at ( 60:4) (Exchange) {$\Exchange$};
   1357 		\node[circle,minimum size=20pt,fill=black!15] at (  0:0) (Client) {$\Child$};
   1358 		\node[circle,minimum size=20pt,fill=black!15] at (  0:4) (Merchant) {$\Merchant$};
   1359 		\node[circle,minimum size=20pt,fill=blue!15]  at (140:3) (Guardian) {$\Guardian$};
   1360 
   1361 		\draw[->] (Guardian)   to [out=50,in=130, loop] node[above]
   1362 			{$\Commit$} (Guardian);
   1363 		\draw[->,blue] (Client)   to [out=-125,in=-190, loop] node[below,left]
   1364 			{\blue{$\Attest$}} (Client);
   1365 		\draw[->,blue] (Merchant) to [out=50,in=130, loop] node[above]
   1366 			{\blue{$\Verify$}} (Merchant);
   1367 		\draw[->,orange] (Client)   to [out=-35,in=-100, loop] node[below]
   1368 			{\orange{$\Derive$}} (Client);
   1369 		\draw[->,orange] (Exchange) to [out=50,in=130, loop] node[above]
   1370 			{\orange{$\Compare$}} (Exchange);
   1371 
   1372 		\draw[orange,|->] (Client)   to node[sloped,above,align=left]
   1373 			{\orange{\scriptsize }} (Exchange);
   1374 		\draw[blue,|->] (Client)   to node[sloped, above]
   1375 			{\blue{\scriptsize }} (Merchant);
   1376 		\draw[,|->] (Guardian) to node[above,sloped,align=left]
   1377 			{{\scriptsize }} (Client);
   1378 	\end{tikzpicture}
   1379 	\end{center}
   1380 \end{frame}
   1381 
   1382 \begin{frame}{Achieving Unlinkability}
   1383 	\begin{columns}
   1384 		\column{3cm}
   1385 		\begin{center}
   1386 		\fontsize{8pt}{9pt}\selectfont
   1387 		\begin{tikzpicture}[scale=.65]
   1388 			\node[circle,minimum size=20pt,fill=black!15] at ( 60:4) (Exchange) {$\Exchange$};
   1389 			\node[circle,minimum size=20pt,fill=black!15] at (  0:0) (Client) {$\Child$};
   1390 
   1391 			\draw[->,orange] (Client)   to [out=-35,in=-100, loop] node[below]
   1392 				{\orange{$\footnotesize \Derive()$}} (Client);
   1393 			\draw[->,orange] (Exchange) to [out=50,in=130, loop] node[above]
   1394 				{\orange{$\footnotesize \Compare()$}} (Exchange);
   1395 
   1396 			\draw[orange,|->] (Client)   to node[sloped,above,align=left]
   1397 				{\orange{\tiny \uncover<2->{$(\commitment_i,\commitment_{i+1})$}}} (Exchange);
   1398 		\end{tikzpicture}
   1399 		\end{center}
   1400 
   1401 		\column{9cm}
   1402 	Simple use of $\Derive()$ and $\Compare()$ is problematic.
   1403 
   1404 	\begin{itemize}
   1405 		\item<2-> Calling $\Derive()$ iteratively generates sequence
   1406 			$(\commitment_0, \commitment_1, \dots)$ of commitments.
   1407 		\item<2-> Exchange calls $\Compare(\commitment_i, \commitment_{i+1}, .)$
   1408 		\item[$\implies$]\uncover<3->{\bf Exchange identifies sequence}
   1409 		\item[$\implies$]\uncover<3->{\bf Unlinkability broken}
   1410 	\end{itemize}
   1411 	\end{columns}
   1412 \end{frame}
   1413 
   1414 \begin{frame}{Achieving Unlinkability}
   1415 	Define cut\&choose protocol \orange{$\DeriveCompare$},
   1416 	using $\Derive()$ and $\Compare()$.\\[0.5em]
   1417 	\uncover<2->{
   1418 	Sketch:
   1419 	\small
   1420 	\begin{enumerate}
   1421 		\item $\Child$ derives commitments $(\commitment_1,\dots,\commitment_\kappa)$
   1422 			from $\commitment_0$ \\
   1423 			by calling $\Derive()$ with blindings $(\beta_1,\dots,\beta_\kappa)$
   1424 		\item $\Child$ calculates $h_0:=H\left(H(\commitment_1, \beta_1)||\dots||H(\commitment_\kappa, \beta_\kappa)\right)$
   1425 		\item $\Child$ sends $\commitment_0$ and $h_0$ to $\Exchange$
   1426 		\item $\Exchange$ chooses $\gamma \in \{1,\dots,\kappa\}$ randomly
   1427 		\item $\Child$ reveals $h_\gamma:=H(\commitment_\gamma, \beta_\gamma)$ and all $(\commitment_i, \beta_i)$, except $(\commitment_\gamma, \beta_\gamma)$
   1428 		\item $\Exchange$ compares $h_0$ and
   1429 			$H\left(H(\commitment_1, \beta_1)||...||h_\gamma||...||H(\commitment_\kappa, \beta_\kappa)\right)$\\
   1430 			and evaluates $\Compare(\commitment_0, \commitment_i, \beta_i)$.
   1431 	\end{enumerate}
   1432 	\vfill
   1433 	Note: Scheme is similar to the {\it refresh} protocol in GNU Taler.
   1434 	}
   1435 \end{frame}
   1436 
   1437 \begin{frame}{Achieving Unlinkability}
   1438 	With \orange{$\DeriveCompare$}
   1439 	\begin{itemize}
   1440 		\item $\Exchange$ learns nothing about $\commitment_\gamma$,
   1441 		\item trusts outcome with $\frac{\kappa-1}{\kappa}$ certainty,
   1442 		\item i.e. $\Child$ has $\frac{1}{\kappa}$ chance to cheat.
   1443 	\end{itemize}
   1444 	\vfill
   1445 	Note: Still need Derive and Compare to be defined.
   1446 \end{frame}
   1447 
   1448 \begin{frame}{Refined scheme}
   1449 
   1450 	\begin{tikzpicture}[scale=.8]
   1451 		\node[circle,minimum size=25pt,fill=black!15] at (  0:0) (Client)   {$\Child$};
   1452 		\node[circle,minimum size=25pt,fill=black!15] at ( 60:5) (Exchange) {$\Exchange$};
   1453 		\node[circle,minimum size=25pt,fill=black!15] at (  0:5) (Merchant) {$\Merchant$};
   1454 		\node[circle,minimum size=25pt,fill=blue!15]  at (130:3) (Guardian) {$\Guardian$};
   1455 
   1456 		\draw[orange,<->] (Client)   to node[sloped,below,align=center]
   1457 			{\orange{$\DeriveCompare$}} (Exchange);
   1458 		\draw[blue,->] (Client)   to node[sloped, below]
   1459 			{\blue{$(\attest_\minage, \commitment)$}} (Merchant);
   1460 
   1461 		\draw[->] (Guardian)   to [out=150,in=70, loop] node[above]
   1462 			{$\Commit(\age)$} (Guardian);
   1463 		\draw[->] (Guardian)   to node[below,sloped]
   1464 			{($\commitment$, $\pruf_\age$)} (Client);
   1465 		\draw[->,blue] (Client)   to [out=-50,in=-130, loop] node[below]
   1466 			{\blue{$\Attest(\minage, \commitment, \pruf_{\age})$}} (Client);
   1467 		\draw[->,blue] (Merchant) to [out=-50,in=-130, loop] node[below]
   1468 			{\blue{$\Verify(\minage, \commitment, \attest_{\minage})$}} (Merchant);
   1469 	\end{tikzpicture}
   1470 \end{frame}
   1471 
   1472  \begin{frame}{Achieving Unlinkability}
   1473  	\scriptsize
   1474  	$\DeriveCompare : \Commitments\times\Proofs\times\Omega \to \{0,1\}$\\
   1475  	\vfill
   1476  	$\DeriveCompare(\commitment, \pruf, \omega) =$
   1477  \begin{itemize}
   1478  \it
   1479  	\itemsep0.5em
   1480  	\item[$\Child$:]
   1481  		\begin{enumerate}
   1482  				\scriptsize
   1483  			\itemsep0.3em
   1484  			\item for all $i \in \{1,\dots,\kappa\}:
   1485  				(\commitment_i,\pruf_i,\beta_i) \leftarrow \Derive(\commitment, \pruf, \omega + i)$
   1486  			\item $h \leftarrow \Hash\big(\Hash(\commitment_1,\beta_1)\parallel\dots\parallel\Hash(\commitment_\kappa,\beta_\kappa) \big)$
   1487  			\item send $(\commitment, h)$ to $\Exchange$
   1488  		\end{enumerate}
   1489  	\item[$\Exchange$:]
   1490  		\begin{enumerate}
   1491  			\setcounter{enumi}{3}
   1492  				\scriptsize
   1493  			\itemsep0.3em
   1494  			\item save $(\commitment, h)$ \label{st:hash}
   1495  			\item $\gamma \drawfrom \{1,\dots ,\kappa\}$
   1496  			\item send $\gamma$ to $\Child$
   1497  		\end{enumerate}
   1498  	\item[$\Child$:]
   1499  		\begin{enumerate}
   1500  			\setcounter{enumi}{6}
   1501 
   1502  				\scriptsize
   1503  			\itemsep0.3em
   1504  			\item $h'_\gamma \leftarrow \Hash(\commitment_\gamma, \beta_\gamma)$
   1505  			\item $\mathbf{E}_\gamma \leftarrow \big[(\commitment_1,\beta_1),\dots,
   1506  				(\commitment_{\gamma-1}, \beta_{\gamma-1}),
   1507  				\Nil,
   1508  				(\commitment_{\gamma+1}, \beta_{\gamma+1}),
   1509  				\dots,(\commitment_\kappa, \beta_\kappa)\big]$
   1510  			\item send $(\mathbf{E}_\gamma, h'_\gamma)$ to $\Exchange$
   1511  		\end{enumerate}
   1512  	\item[$\Exchange$:]
   1513  		\begin{enumerate}
   1514  			\setcounter{enumi}{9}
   1515  				\scriptsize
   1516  			\itemsep0.3em
   1517  			\item for all $i \in \{1,\dots,\kappa\}\setminus\{\gamma\}: h_i \leftarrow \Hash(\mathbf{E}_\gamma[i])$
   1518  			\item if $h \stackrel{?}{\neq} \HashF(h_1\|\dots\|h_{\gamma-1}\|h'_\gamma\|h_{\gamma+1}\|\dots\|h_{\kappa-1})$ return 0
   1519  			\item for all $i \in \{1,\dots,\kappa\}\setminus\{\gamma\}$:
   1520  				if $0 \stackrel{?}{=} \Compare(\commitment,\commitment_i, \beta_i)$ return $0$
   1521  			\item return 1
   1522  		\end{enumerate}
   1523  \end{itemize}
   1524  \end{frame}
   1525 
   1526 \begin{frame}{Basic Requirements}
   1527 
   1528 	Candidate functions
   1529 	\[ (\Commit, \Attest, \Verify, \Derive, \Compare) \]
   1530 	must first meet \textit{basic} requirements:
   1531 
   1532 	\begin{itemize}
   1533 		\item Existence of attestations
   1534 		\item Efficacy of attestations
   1535 		\item Derivability of commitments and attestations
   1536 	\end{itemize}
   1537 \end{frame}
   1538 
   1539 \begin{frame}{Basic Requirements}
   1540 	\framesubtitle{Formal Details}
   1541 
   1542 	\begin{description}
   1543 		\item[Existence of attestations]
   1544 			{\scriptsize
   1545 			\begin{align*}
   1546 				\Forall_{\age\in\N_\Age \atop \omega \in \Omega}:
   1547 				\Commit(\age, \omega) =: (\commitment, \pruf)
   1548 				\implies
   1549 				\Attest(\minage, \commitment, \pruf) =
   1550 				\begin{cases}
   1551 					\attest \in \Attests, \text{ if } \minage \leq \age\\
   1552 					\Nil \text{ otherwise}
   1553 				\end{cases}
   1554 			\end{align*}}
   1555 		\item[Efficacy of attestations]
   1556 			{\scriptsize
   1557 			\begin{align*}
   1558 				\Verify(\minage, \commitment, \attest) = \
   1559 				\begin{cases}
   1560 					1, \text{if } \Exists_{\pruf \in \Proofs}: \Attest(\minage, \commitment, \pruf) = \attest\\
   1561 					0 \text{ otherwise}
   1562 				\end{cases}
   1563 			\end{align*}}
   1564 
   1565 			{\scriptsize
   1566 			\begin{align*}
   1567 				\forall_{n \leq \age}: \Verify\big(n, \commitment, \Attest(n, \commitment, \pruf)\big) = 1.
   1568 			\end{align*}}
   1569 		\item[etc.]
   1570 	\end{description}
   1571 \end{frame}
   1572 
   1573 \begin{frame}{Requirements}
   1574 	\framesubtitle{Details}
   1575 
   1576 	\begin{description}
   1577 		\item[Derivability of commitments and proofs:]~\\[0.1em]
   1578 		{\scriptsize
   1579 		Let \begin{align*}
   1580 			\age & \in\N_\Age,\,\, \omega_0, \omega_1 \in\Omega\\
   1581 			(\commitment_0, \pruf_0) & \leftarrow \Commit(\age, \omega_0),\\
   1582 			(\commitment_1, \pruf_1, \blinding) & \leftarrow  \Derive(\commitment_0, \pruf_0, \omega_1).
   1583 		\end{align*}
   1584 		We require
   1585 		\begin{align*}
   1586 			\Compare(\commitment_0, \commitment_1, \blinding) = 1 \label{req:comparity}
   1587 		\end{align*}
   1588 		and for all $n\leq\age$:
   1589 		\begin{align*}
   1590 					\Verify(n, \commitment_1, \Attest(n, \commitment_1, \pruf_1)) &%
   1591 					=
   1592 					\Verify(n, \commitment_0,  \Attest(n, \commitment_0,  \pruf_0))
   1593 		\end{align*}}
   1594 	\end{description}
   1595 \end{frame}
   1596 
   1597 \begin{frame}{Security Requirements}
   1598 	Candidate functions must also meet \textit{security} requirements.
   1599 	Those are defined via security games:
   1600 	\begin{itemize}
   1601 		\item Game: Age disclosure by commitment or attestation
   1602 		\item[$\leftrightarrow$] Requirement: Non-disclosure of age
   1603 			\vfill
   1604 
   1605 		\item Game: Forging attestation
   1606 		\item[$\leftrightarrow$] Requirement: Unforgeability of
   1607 			minimum age
   1608 			\vfill
   1609 
   1610 		\item Game: Distinguishing derived commitments and attestations
   1611 		\item[$\leftrightarrow$] Requirement: Unlinkability of
   1612 			commitments and attestations
   1613 
   1614 	\end{itemize}
   1615 	\vfill
   1616 
   1617 	Meeting the security requirements means that adversaries can win
   1618 	those games only with negligible advantage.
   1619 	\vfill
   1620 	Adversaries are arbitrary polynomial-time algorithms, acting on all
   1621 	relevant input.
   1622 \end{frame}
   1623 
   1624 \begin{frame}{Security Requirements}
   1625 	\framesubtitle{Simplified Example}
   1626 
   1627 	\begin{description}
   1628 		\item[Game $\Game{FA}(\lambda)$---Forging an attest:]~\\
   1629 	{\small
   1630 	\begin{enumerate}
   1631 		\item $ (\age, \omega)	\drawfrom	\N_{\Age-1}\times\Omega $
   1632 		\item $ (\commitment, \pruf)	\leftarrow	\Commit(\age, \omega) $
   1633 		\item $ (\minage, \attest) \leftarrow \Adv(\age, \commitment, \pruf)$
   1634 		\item Return 0 if $\minage \leq \age$
   1635 		\item Return $\Verify(\minage,\commitment,\attest)$
   1636 	\end{enumerate}
   1637 	}
   1638 	\vfill
   1639 	\item[Requirement: Unforgeability of minimum age]
   1640 		{\small
   1641 	\begin{equation*}
   1642 		\Forall_{\Adv\in\PPT(\N_\Age\times\Commitments\times\Proofs\to \N_\Age\times\Attests)}:
   1643 		\Probability\Big[\Game{FA}(\lambda) = 1\Big] \le \negl(\lambda)
   1644 	\end{equation*}
   1645 	}
   1646 	\end{description}
   1647 \end{frame}
   1648 
   1649 
   1650 \begin{frame}{Solution: Instantiation with ECDSA}
   1651 %	\framesubtitle{Definition of Commit}
   1652 
   1653 	\begin{description}
   1654 		\item[To Commit to age (group) $\age \in \{1,\dots,\Age\}$]~\\
   1655 		\begin{enumerate}
   1656 			\item<2-> Guardian generates ECDSA-keypairs, one per age (group):
   1657 				\[\langle(q_1, p_1),\dots,(q_\Age,p_\Age)\rangle\]
   1658 			\item<3-> Guardian then \textbf{drops} all private keys
   1659 				$p_i$ for $i > \age$:
   1660 				\[\Big \langle(q_1, p_1),\dots,
   1661 					(q_\age, p_\age),
   1662 					(q_{\age +1}, \red{\Nil}),\dots,
   1663 					(q_\Age, \red{\Nil})\Big\rangle\]
   1664 
   1665 				\begin{itemize}
   1666 					\item $\Vcommitment := (q_1, \dots, q_\Age)$ is the \textit{Commitment},
   1667 					\item $\Vpruf_\age := (p_1, \dots, p_\age, \Nil,\dots,\Nil)$ is the \textit{Proof}
   1668 				\end{itemize}
   1669 				\vfill
   1670 			\item<4-> Guardian gives child $\langle \Vcommitment, \Vpruf_\age \rangle$
   1671 				\vfill
   1672 		\end{enumerate}
   1673 	\end{description}
   1674 \end{frame}
   1675 
   1676 \begin{frame}{Instantiation with ECDSA}
   1677 	\framesubtitle{Definitions of Attest and Verify}
   1678 
   1679 	Child has
   1680 	\begin{itemize}
   1681 		\item ordered public-keys $\Vcommitment = (q_1, \dots, q_\Age) $,
   1682 		\item (some) private-keys $\Vpruf = (p_1, \dots, p_\age, \Nil, \dots, \Nil)$.
   1683 	\end{itemize}
   1684 	\begin{description}
   1685 		\item<2->[To \blue{Attest} a minimum age $\blue{\minage} \leq \age$:]~\\
   1686 			Sign a message with ECDSA using private key $p_\blue{\minage}$
   1687 	\end{description}
   1688 
   1689 	\vfill
   1690 
   1691 	\uncover<3->{
   1692 	Merchant gets
   1693 	\begin{itemize}
   1694 		\item ordered public-keys $\Vcommitment = (q_1, \dots, q_\Age) $
   1695 		\item Signature $\sigma$
   1696 	\end{itemize}
   1697 	\begin{description}
   1698 		\item<4->[To \blue{Verify} a minimum age $\minage$:]~\\
   1699 			Verify the ECDSA-Signature $\sigma$ with public key $q_\minage$.
   1700 	\end{description}
   1701 	}
   1702 	\vfill
   1703 \end{frame}
   1704 
   1705 \begin{frame}{Instantiation with ECDSA}
   1706 	\framesubtitle{Definitions of Derive and Compare}
   1707 	Child has
   1708 	$\Vcommitment = (q_1, \dots, q_\Age) $ and
   1709 	$\Vpruf = (p_1, \dots, p_\age, \Nil, \dots, \Nil)$.
   1710 	\begin{description}
   1711 		\item<2->[To \blue{Derive} new $\Vcommitment'$ and $\Vpruf'$:]
   1712 			Choose random $\beta\in\Z_g$ and calculate
   1713 			\small
   1714 			\begin{align*}
   1715 				\Vcommitment' &:= \big(\beta * q_1,\ldots,\beta * q_\Age\big),\\
   1716 				\Vpruf' &:= \big(\beta p_1,\ldots,\beta p_\age,\Nil,\ldots,\Nil\big)
   1717 			\end{align*}
   1718 			Note: $ (\beta p_i)*G = \beta*(p_i*G)  = \beta*q_i$\\
   1719 			\scriptsize $\beta*q_i$ is scalar multiplication on the elliptic curve.
   1720 	\end{description}
   1721 
   1722 		\vfill
   1723 	\uncover<3->{
   1724 		Exchange gets $\Vcommitment = (q_1,\dots,q_\Age)$, $\Vcommitment' = (q_1', \dots, q_\Age')$ and $\beta$
   1725 	\begin{description}
   1726 		\item[To \blue{Compare}, calculate:]
   1727 			\small
   1728 		$(\beta * q_1, \ldots , \beta * q_\Age) \stackrel{?}{=} (q'_1,\ldots, q'_\Age)$
   1729 	\end{description}
   1730 	\vfill
   1731 	}
   1732 \end{frame}
   1733 
   1734 \begin{frame}{Instantiation with ECDSA}
   1735 
   1736 	Functions
   1737 	(Commit, Attest, Verify, Derive, Compare)\\
   1738 	as defined in the instantiation with ECDSA\\[0.5em]
   1739 	\begin{itemize}
   1740 		\item meet the basic requirements,\\[0.5em]
   1741 		\item also meet all security requirements.\\
   1742 		Proofs by security reduction, details are in the paper.
   1743 	\end{itemize}
   1744 
   1745 \end{frame}
   1746 
   1747 
   1748 \begin{frame}{Instantiation with ECDSA}
   1749  	\framesubtitle{Full definitions}
   1750  	\scriptsize
   1751 
   1752  \begin{align*}
   1753  	\Commit_{E,\FDHg{\cdot}}(\age, \omega) &:= \Big\langle
   1754  		\overbrace{(q_1,\ldots,q_\Age)}^{= \Vcommitment},\;
   1755  		\overbrace{(p_1,\ldots,p_\age, \Nil,\ldots,\Nil)}^{= \Vpruf \text{, length }\Age}
   1756  		\Big\rangle\\
   1757  	\Attest_{E,\HashF}(\bage, \Vcommitment, \Vpruf) &:=
   1758  		\begin{cases}
   1759  			\attest_\bage := \Sign_{E,\HashF}\big(\bage,\Vpruf[\bage]\big) & \text{if } \Vpruf[\bage] \stackrel{?}{\neq} \Nil\\
   1760  			\Nil & \text{otherwise}
   1761  		\end{cases}\\
   1762  %
   1763  	\Verify_{E,\HashF}(\bage, \Vcommitment, \attest) &:= \Ver_{E,\HashF}(\bage, \Vcommitment[\bage], \attest)\\
   1764  %
   1765  	\Derive_{E, \FDHg{\cdot}}(\Vcommitment, \Vpruf, \omega) &:=
   1766  		\Big\langle(\beta * q_1,\ldots,\beta * q_\Age),
   1767  		     (\beta p_1,\ldots,\beta p_\age,\Nil,\ldots,\Nil), \beta \Big\rangle \\
   1768  		     & \text{ with } \beta := \FDHg{\omega} \text{ and multiplication } \beta p_i \text{ modulo } g \nonumber\\
   1769  %
   1770  	\Compare_E(\Vcommitment, \Vcommitment', \beta)	&:=
   1771  		\begin{cases}
   1772  			1 & \text{if } (\beta * q_1, \ldots , \beta * q_\Age) \stackrel{?}{=} (q'_1,\ldots, q'_\Age)\\
   1773  			0 & \text{otherwise}
   1774  		\end{cases}
   1775  \end{align*}
   1776 \end{frame}
   1777 
   1778 
   1779 \begin{frame}{Reminder: GNU Taler Fundamentals}
   1780 	\begin{center}
   1781 	\begin{tikzpicture}[scale=.55]
   1782 		\node[circle,fill=black!10] at (3, 4) (Exchange) {$\Exchange$};
   1783 		\node[circle,fill=black!10] at (0, 0) (Customer) {$\Customer$};
   1784 		\node[circle,fill=black!10] at (6, 0) (Merchant) {$\Merchant$};
   1785 
   1786 		\draw[<->] (Customer)   to [out=65,in=220] node[sloped,above] {\sf withdraw} (Exchange);
   1787 		\draw[<->] (Customer)   to [out=45,in=240] node[sloped,below] {\sf refresh} (Exchange);
   1788 		\draw[<->] (Customer)   to node[sloped, below] {\sf purchase} (Merchant);
   1789 		\draw[<->] (Merchant) to node[sloped, above] {\sf deposit} (Exchange);
   1790 	\end{tikzpicture}
   1791 	\end{center}
   1792 
   1793 	\vfill
   1794 	\begin{itemize}
   1795 		\item Coins are public-/private key-pairs $(C_p, c_s)$.
   1796 		\item Exchange blindly signs $\FDH(C_p)$ with denomination key $d_p$
   1797 		\item Verification:
   1798 		\begin{eqnarray*}
   1799 			1  &\stackrel{?}{=}&
   1800 			\mathsf{SigCheck}\big(\FDH(C_p), D_p, \sigma_p\big)
   1801 		\end{eqnarray*}
   1802 		\scriptsize($D_p$ = public key of denomination and $\sigma_p$ = signature)
   1803 
   1804 	\end{itemize}
   1805 \end{frame}
   1806 
   1807 \begin{frame}{Integration with GNU Taler}
   1808 	\framesubtitle{Binding age restriction to coins}
   1809 
   1810 	To bind an age commitment $\commitment$ to a coin $C_p$, instead of
   1811 	signing $\FDH(C_p)$, $\Exchange$ now blindly signs
   1812 	\begin{center}
   1813 		$\FDH(C_p, \orange{H(\commitment)})$
   1814 	\end{center}
   1815 
   1816 	\vfill
   1817 	Verfication of a coin now requires $H(\commitment)$, too:
   1818 	\begin{center}
   1819 		$1  \stackrel{?}{=}
   1820 		\mathsf{SigCheck}\big(\FDH(C_p, \orange{H(\commitment)}), D_p, \sigma_p\big)$
   1821 	\end{center}
   1822 	\vfill
   1823 \end{frame}
   1824 
   1825 \begin{frame}{Integration with GNU Taler}
   1826 	\framesubtitle{Integrated schemes}
   1827 	\fontsize{8pt}{9pt}\selectfont
   1828 	\begin{tikzpicture}[scale=.9]
   1829 		\node[circle,minimum size=25pt,fill=black!15] at (  0:0) (Client)   {$\Child$};
   1830 		\node[circle,minimum size=25pt,fill=black!15] at ( 60:5) (Exchange) {$\Exchange$};
   1831 		\node[circle,minimum size=25pt,fill=black!15] at (  0:5) (Merchant) {$\Merchant$};
   1832 		\node[circle,minimum size=25pt,fill=blue!15]  at (130:3) (Guardian) {$\Guardian$};
   1833 
   1834 		\draw[<->] (Guardian)   to  node[sloped,above,align=center]
   1835 			{{\sf withdraw}\orange{, using}\\ $\FDH(C_p\orange{, H(\commitment)})$} (Exchange);
   1836 		\draw[<->] (Client)   to node[sloped,below,align=center]
   1837 			{{\sf refresh} \orange{ + }\\ \orange{$\DeriveCompare$}} (Exchange);
   1838 		\draw[<->] (Client)   to node[sloped, below]
   1839 			{{\sf purchase} \blue{+ $(\attest_\minage, \commitment)$}} (Merchant);
   1840 		\draw[<->] (Merchant) to node[sloped, above]
   1841 			{{\sf deposit} \orange{+ $H(\commitment)$}} (Exchange);
   1842 
   1843 		\draw[->] (Guardian)   to [out=70,in=150, loop] node[above]
   1844 			{$\Commit(\age)$} (Guardian);
   1845 		\draw[->] (Guardian)   to node[below,sloped]
   1846 			{($\commitment$, $\pruf_\age$)} (Client);
   1847 		\draw[->,blue] (Client)   to [out=-50,in=-130, loop] node[below]
   1848 			{\blue{$\Attest(\minage, \commitment, \pruf_{\age})$}} (Client);
   1849 		\draw[->,blue] (Merchant) to [out=-50,in=-130, loop] node[below]
   1850 			{\blue{$\Verify(\minage, \commitment, \attest_{\minage})$}} (Merchant);
   1851 	\end{tikzpicture}
   1852 \end{frame}
   1853 
   1854 \begin{frame}{Instantiation with Edx25519}
   1855 	Paper also formally defines another signature scheme: Edx25519.\\[1em]
   1856 
   1857 	\begin{itemize}
   1858 		\item Scheme already in use in GNUnet,
   1859 		\item based on EdDSA (Bernstein et al.),
   1860 		\item generates compatible signatures and
   1861 		\item allows for key derivation from both, private and public keys, independently.
   1862 	\end{itemize}~\\[1em]
   1863 
   1864 	Current implementation of age restriction in GNU Taler uses Edx25519.
   1865 \end{frame}
   1866 
   1867 
   1868 \begin{frame}{Age Restrictions based on KYC}
   1869  Subsidiarity requires bank accounts being owned by adults.
   1870 			\begin{itemize}
   1871 			\item Scheme can be adapted to case where minors have bank accounts
   1872 				\begin{itemize}
   1873 					\item Assumption: banks provide minimum age
   1874 						information during bank
   1875 						transactions.
   1876 					\item Child and Exchange execute a variant of
   1877 						the cut\&choose protocol.
   1878 				\end{itemize}
   1879 			\end{itemize}
   1880 \end{frame}
   1881 
   1882 
   1883 \begin{frame}{Discussion}
   1884 	\begin{itemize}
   1885 		\item Our solution can in principle be used with any token-based payment scheme
   1886 		\item GNU Taler best aligned with our design goals (security, privacy and efficiency)
   1887 		\item Subsidiarity requires bank accounts being owned by adults
   1888 			\begin{itemize}
   1889 			\item Scheme can be adapted to case where minors have bank accounts
   1890 				\begin{itemize}
   1891 					\item Assumption: banks provide minimum age
   1892 						information during bank
   1893 						transactions.
   1894 					\item Child and Exchange execute a variant of
   1895 						the cut\&choose protocol.
   1896 				\end{itemize}
   1897 			\end{itemize}
   1898 		\item Our scheme offers an alternative to identity management systems (IMS)
   1899 	\end{itemize}
   1900 \end{frame}
   1901 
   1902 
   1903 \begin{frame}{Related Work}
   1904 	\begin{itemize}
   1905 		\item Current privacy-perserving systems all based on attribute-based credentials (Koning et al., Schanzenbach et al., Camenisch et al., Au et al.)
   1906 		\item Attribute-based approach lacks support:
   1907 			\begin{itemize}
   1908 				\item Complex for consumers and retailers
   1909 				\item Requires trusted third authority
   1910 			\end{itemize}
   1911 		\vfill
   1912 		\item Other approaches tie age-restriction to ability to pay ("debit cards for kids")
   1913 			\begin{itemize}
   1914 				\item Advantage: mandatory to payment process
   1915 				\item Not privacy friendly
   1916 			\end{itemize}
   1917 	\end{itemize}
   1918 \end{frame}
   1919 
   1920 
   1921 \begin{frame}{Conclusion}
   1922 	Age restriction is a technical, ethical and legal challenge.
   1923 
   1924 	Existing solutions are
   1925 	\begin{itemize}
   1926 		\item without strong protection of privacy or
   1927 		\item based on identity management systems (IMS)
   1928 	\end{itemize}
   1929 	\vfill
   1930 
   1931 	Our scheme offers a solution that is
   1932 	\begin{itemize}
   1933 		\item based on subsidiarity
   1934 		\item privacy preserving
   1935 		\item efficient
   1936 		\item an alternative to IMS
   1937 	\end{itemize}
   1938 \end{frame}
   1939 
   1940 
   1941 \section{Future Work \& Conclusion}
   1942 
   1943 \begin{frame}
   1944   \vfill
   1945   \begin{center}
   1946     {\bf Future Work \& Conclusion}
   1947   \end{center}
   1948   \vfill
   1949 \end{frame}
   1950 
   1951 
   1952 \begin{frame}{Use Case: Journalism}
   1953   Today:
   1954   \begin{itemize}
   1955     \item Corporate structure % ($\Rightarrow$ filter)
   1956     \item Advertising primary revenue % ($\Rightarrow$ dependence)
   1957     \item Tracking readers critical for business success
   1958     \item Journalism and marketing hard to distinguish
   1959   \end{itemize}\vfill\pause
   1960   With GNU Taler:
   1961   \begin{itemize}
   1962     \item One-click micropayments per article
   1963     \item Hosting requires no expertise % (no PCI DSS)
   1964     \item Reader-funded reporting separated from marketing
   1965     \item Readers can remain anonymous
   1966   \end{itemize}
   1967 \end{frame}
   1968 
   1969 
   1970 \begin{frame}{Taler: Project Status}
   1971 \framesubtitle{\url{https://docs.taler.net/}}
   1972 \begin{itemize}
   1973     \item Cryptographic protocols and core exchange component are stable
   1974     \item Pilot project at Bern University of Applied Sciences cafeteria
   1975     \item Netzbon (regional currency) in Basel launched
   1976     \item Taler Operations AG live Swiss-wide
   1977     \item Internal alpha deployment with GLS Bank (Germany)
   1978     \item Internal alpha deployment with Magnet Bank (Hungary)
   1979   \end{itemize}
   1980 \end{frame}
   1981 
   1982 
   1983 \begin{frame}{Competitor comparison}
   1984   \begin{center} \small
   1985     \begin{tabular}{l||c|c|c|c|c}
   1986                 & Cash     & Bitcoin    & Zerocoin  & Creditcard & GNU Taler  \\ \hline \hline
   1987     Online      &$-$$-$$-$ &   ++       &    ++     &     +      &   +++      \\ \hline
   1988     Offline     & +++      &   $-$$-$   &    $-$$-$ &     +      &   $+$$+$   \\ \hline
   1989     Trans. cost & +        & $-$$-$$-$  & $-$$-$$-$ &     $-$    &   ++       \\ \hline
   1990     Speed       & +        & $-$$-$$-$  & $-$$-$$-$ &     o      &   ++       \\ \hline
   1991     Taxation    & $-$      &   $-$$-$   & $-$$-$$-$ &    +++     &  +++       \\ \hline
   1992     Payer-anon  &  ++      &   o        &    ++     &  $-$$-$$-$ &  +++       \\ \hline
   1993     Payee-anon  & ++       &   o        &    ++     &  $-$$-$$-$ &  $-$$-$$-$ \\ \hline
   1994     Security    &  $-$     &   o        &    o      &    $-$$-$  &  ++        \\ \hline
   1995     Conversion  & +++      &  $-$$-$$-$ & $-$$-$$-$ &    +++     &  +++       \\ \hline
   1996     Libre       &  $-$     &  +++       &    +++    & $-$ $-$ $-$&  +++       \\
   1997   \end{tabular}
   1998   \end{center}
   1999 \end{frame}
   2000 
   2001 
   2002 \begin{frame}{Other ongoing developments}
   2003   \begin{itemize}
   2004     \item Privacy-preserving auctions (trading, currency exchange) ({\tt oezguer@taler.net})
   2005     \item Hardware and software support for embedded systems ({\tt mikolai@taler.net})
   2006     \item Tax-deductable receipts for donations to charities (donau.git)
   2007     \item Unlinkable anonymous subscriptions and discount tokens ({\tt ivan@taler.net})
   2008     \item Support for illiterate and innumerate users\footnote{Background: \url{https://myoralvillage.org/}}
   2009          ({\tt marc@taler.net})
   2010   \end{itemize}
   2011 \end{frame}
   2012 
   2013 
   2014 \begin{frame}{Open Challanges}
   2015   \begin{itemize}
   2016     \item Try to explain this to lawyers and AML staff of banks
   2017     \item What are convincing arguments for citizens to switch?
   2018     \item How to address anti-competitive cash-back from card payments?
   2019     \item $\ldots$
   2020   \end{itemize}
   2021 \end{frame}
   2022 
   2023 
   2024 \begin{frame}{How to support?}
   2025   \begin{description}
   2026     \item[Join:] {\small \url{https://lists.gnu.org/mailman/listinfo/taler}}
   2027     \item[Discuss:] {\small \url{https://ich.taler.net/}}
   2028     \item[Develop:] \url{https://bugs.taler.net/}, \url{https://git.taler.net/}
   2029     \item[Apply:] \url{https://nlnet.nl/propose}, \url{https://nlnet.nl/taler}
   2030     \item[Translate:] \url{https://weblate.taler.net/}, \url{translation-volunteer@taler.net}
   2031     \item[Integrate:] \url{https://docs.taler.net/}
   2032     \item[Donate:] \url{https://gnunet.org/ev}
   2033     \item[Partner:] \url{https://taler-systems.com/}
   2034   \end{description}
   2035 \end{frame}
   2036 
   2037 
   2038 \begin{frame}{Conclusion}
   2039   \begin{center}
   2040     {\bf  What can we do?}
   2041    \end{center}
   2042   \vfill
   2043 \begin{itemize}
   2044  \item{Suffer mass-surveillance enabled by credit card oligopolies with high fees, and}
   2045  \item{Engage in arms race with deliberately unregulatable blockchains}
   2046 % \item{Enjoy the ``benefits'' of cash \\
   2047 %  \hfill  \includegraphics[height=0.3\textheight]{atm-rupee.jpg} \hfill}
   2048 \end{itemize}
   2049 \vfill
   2050 \begin{center}
   2051   {\bf OR}
   2052 \end{center}
   2053 \vfill
   2054 \begin{itemize}
   2055  \item{Establish free software alternative balancing social goals!}
   2056 \end{itemize}
   2057 \vfill
   2058 \end{frame}
   2059 
   2060 
   2061 
   2062 \section*{References}
   2063 \begin{frame}[allowframebreaks]{References}
   2064 \bibliographystyle{plain}
   2065 \bibliography{ref,extra,rfc,biblio-defqa}
   2066 \end{frame}
   2067 
   2068 
   2069 % This should be last...
   2070 \begin{frame}{Acknowledgments}
   2071 
   2072   \begin{minipage}{0.45\textwidth} \ \\
   2073     {\tiny Funded by the European Union (Project 101135475).}
   2074 
   2075     \begin{center}
   2076       \includegraphics[width=0.5\textwidth]{../bandera.jpg}
   2077     \end{center}
   2078   \end{minipage}
   2079   \hfill
   2080   \begin{minipage}{0.45\textwidth}
   2081     {\tiny Funded by SERI (HEU-Projekt 101135475-TALER).}
   2082 
   2083     \begin{center}
   2084       \includegraphics[width=0.65\textwidth]{../sbfi.jpg}
   2085     \end{center}
   2086   \end{minipage}
   2087 
   2088   \vfill
   2089 
   2090   {\tiny
   2091 
   2092     Views and opinions expressed are however those of the author(s) only
   2093     and do not necessarily reflect those of the European Union. Neither the
   2094     European Union nor the granting authority can be held responsible for
   2095     them.
   2096 
   2097   }
   2098 \end{frame}
   2099 
   2100 
   2101 \end{document}
   2102 
   2103 
   2104 
   2105 \begin{frame}{Future work}
   2106   \begin{itemize}
   2107     \item Performance improvements for RSA in FLOSS crypto libraries
   2108     \item Integrate with e-ID for easier \& cheaper KYC
   2109     \item Buy anonymous pre-paid debit cards on-demand with Taler wallet
   2110     \item Implement PQC across the stack (with cipher agility, where possible with additive security)
   2111   \end{itemize}
   2112 \end{frame}