marketing

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

slides-EuroDIG2025.tex (17266B)


      1 \documentclass[aspectratio=169,t]{beamer}
      2 
      3 \input texinputs/taler-macros
      4 
      5 \usepackage{tikz}
      6 \usepackage{ragged2e}
      7 \usetikzlibrary{positioning,fit,patterns}
      8 
      9 %
     10 %  Presentation to "EuroDIG 2025 in Strasbourg 13 May 2025"
     11 %   Copyright (C) 2025 Emmanuel Benoist, ....
     12 %
     13 %    This program is free software: you can redistribute it and/or modify
     14 %    it under the terms of the GNU General Public License as published by
     15 %    the Free Software Foundation, either version 3 of the License, or
     16 %    (at your option) any later version.
     17 %
     18 %    This program is distributed in the hope that it will be useful,
     19 %    but WITHOUT ANY WARRANTY; without even the implied warranty of
     20 %    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     21 %    GNU General Public License for more details.
     22 %
     23 %    You should have received a copy of the GNU General Public License
     24 %    along with this program.  If not, see <http://www.gnu.org/licenses/>.
     25 %
     26 
     27 % *Especially* edit these...
     28 % \setbeameroption{show notes on second screen=right} % Both
     29 
     30 \newcommand{\SPEAKER}{Ch. Grothoff, O. Rappaport, and E. Benoist}
     31 \newcommand{\DATE}{May 13, 2025}
     32 \title{}
     33 \date{}
     34 
     35 
     36 \newcommand{\TITLE}{Unchained Digital Cash Payments}
     37 \newcommand{\SUB}{EuroDIG 2025, Strasbourg}
     38 \newcommand{\AUTHOR}{Christian Grothoff, Olivier Rappaport, and Emmanuel Benoist}
     39 \newcommand{\INST}{ https://www.taler.net}
     40 
     41 % Do not edit this part
     42 \title{\TITLE}
     43 \subtitle{\SUB}
     44 \date{\DATE}
     45 \author[\SPEAKER]{\AUTHOR}
     46 \institute{\INST}
     47 
     48 \usepackage{amsmath}
     49 \usepackage{multimedia}
     50 \usepackage[percent]{overpic}
     51 \usepackage{url}
     52 \usepackage{pifont}
     53 \usepackage[absolute,overlay]{textpos}
     54 \usepackage{listings}
     55 
     56 \usepackage{tikz, xcolor}
     57 \usetikzlibrary{shapes,arrows,positioning}
     58 \tikzset{
     59     %Define standard arrow tip
     60     >=stealth',
     61     %Define style for boxes
     62     punkt/.style={
     63            rectangle,
     64            rounded corners,
     65            draw=black, very thick,
     66            minimum width=3.5em,
     67            minimum height=2em,
     68            text centered},
     69     % Define arrow style
     70     pull/.style={
     71            <->,
     72            thick,draw=red,
     73            shorten <=2pt,
     74            shorten >=2pt,},
     75     % Define arrow style
     76     pil/.style={
     77            ->,
     78            thick,
     79            shorten <=2pt,
     80            shorten >=2pt,}
     81 }
     82 
     83 
     84 %\usepackage{tikz, xcolor}
     85 %\usetikzlibrary{shapes,arrows}
     86 
     87 
     88 \tikzstyle{decision} = [diamond, draw, text width=4.5em,
     89                         text badly centered, node distance=2cm,
     90                         inner sep=0pt]
     91 \tikzstyle{block} = [rectangle, draw, text width=5em,
     92                      text centered, rounded corners,
     93                      minimum height=4em, node distance=3cm]
     94 \tikzstyle{line} = [draw, -latex']
     95 \tikzstyle{lineeee} = [draw]
     96 \tikzstyle{cloud} = [draw, ellipse, node distance=2.5cm, minimum height=2em]
     97 \tikzstyle{walet} = [draw, rectangle, node distance=0.2cm, minimum height=2em]
     98 \tikzstyle{reseau} = [node distance=0.2cm, minimum height=2em]
     99 \tikzstyle{blank} = [node distance=1cm]
    100 
    101 \usetikzlibrary{shapes,arrows}
    102 \usetikzlibrary{positioning}
    103 \usetikzlibrary{calc}
    104 
    105 
    106 
    107 
    108 
    109 \begin{document}
    110 
    111 
    112 \frame{\maketitle
    113 }
    114 
    115 
    116 \begin{frame}
    117   \frametitle{Taler}
    118 
    119   \tableofcontents
    120 \end{frame}
    121 
    122 \section{Taler a privacy preserving payment system}
    123 
    124 % free
    125 % privacy friendly
    126 % coins, no ledger
    127 % blindly signed coins
    128 % 3 tiers architecture
    129 
    130 
    131 \section{Introduction to GNU Taler}
    132 \begin{frame}{GNU Taler}
    133   \vfill
    134   \begin{center}
    135     {\huge {\bf Digital} cash, made \textbf{socially responsible}.}
    136   \end{center}
    137   \vfill
    138   \begin{center}
    139   \includegraphics[width=0.5\textwidth]{images/taler-logo-2021-inkscape.pdf}
    140   \end{center}
    141   \vfill
    142   \begin{center}
    143     Privacy-Preserving, Practical, Taxable, Free Software, Efficient
    144   \end{center}
    145  \vfill
    146  \vfill
    147 \ %
    148 \end{frame}
    149 
    150 
    151 \begin{frame}{What is GNU Taler?}
    152   \framesubtitle{\url{https://taler.net/en/features.html}}
    153   \noindent
    154 GNU Taler is
    155   \vfill
    156   \begin{itemize}
    157     \item a Free/Libre software \emph{payment system} infrastructure project
    158     \item ... with a surrounding software ecosystem
    159     \item ... and a company (Taler Systems S.A.) and community that wants to deploy it
    160       as widely as possible.
    161   \end{itemize}
    162   \vfill
    163 \noindent
    164 However, GNU Taler is
    165   \begin{itemize}
    166     \item \emph{not} a currency
    167     \item \emph{not} a long-term store of value
    168     \item \emph{not} a network or instance of a system
    169     \item \emph{not} decentralized
    170     \item \emph{not} based on proof-of-work or proof-of-stake
    171     \item \emph{not} a speculative asset / ``get-rich-quick scheme''
    172   \end{itemize}
    173   \vfill
    174 \end{frame}
    175 
    176 
    177 \begin{frame}{Design goals for the GNU Taler Payment System}
    178   GNU Taler must ...
    179 \begin{enumerate}
    180   \item {... be implemented as {\bf free software}.}
    181   \item {... protect the {\bf privacy of buyers}.}
    182   \item {... must enable the state to {\bf tax income} and crack down on
    183     illegal business activities.}
    184   \item {... prevent payment fraud.}
    185   \item {... only {\bf disclose the minimal amount of information
    186     necessary}.}
    187   \item {... be usable.}
    188   \item {... be efficient.}
    189   \item {... avoid single points of failure.}
    190   \item {... foster {\bf competition}.}
    191 \end{enumerate}
    192 \end{frame}
    193 
    194 
    195 \begin{frame}
    196 \frametitle{GNU Taler Overview}
    197 \begin{center}
    198 \begin{tikzpicture}
    199  \tikzstyle{def} = [node distance= 4.5em and 6em, inner sep=1em, outer sep=.3em];
    200  \node (origin) at (0,0) {};
    201  \node (exchange) [def,above=of origin,draw]{Exchange};
    202  \node (customer) [def, draw, below left=of origin] {Customer};
    203  \node (merchant) [def, draw, below right=of origin] {Merchant};
    204 % \node (auditor) [def, draw, above right=of origin]{Auditor};
    205  \tikzstyle{C} = [color=black, line width=1pt]
    206  \draw [<-, C] (customer) -- (exchange) node [midway, above, sloped] (TextNode) {withdraw coins};
    207  \draw [<-, C] (exchange) -- (merchant) node [midway, above, sloped] (TextNode) {deposit coins};
    208  \draw [<-, C] (merchant) -- (customer) node [midway, above, sloped] (TextNode) {spend coins};
    209 % \draw [<-, C] (exchange) -- (auditor) node [midway, above, sloped] (TextNode) {verify};
    210 \end{tikzpicture}
    211 \end{center}
    212 \end{frame}
    213 
    214 
    215 
    216 
    217 \begin{frame}{Taler: Deployment plan}
    218 
    219   \begin{block}{In Switzerland}
    220     \begin{itemize}
    221     \item \textit{Netzbon}: Local currency in Basel, deployment already started.
    222     \item \textit{BFH Intern}: Snacks and café automats, in use.
    223     \item \textit{CHF in Switzerland}: deployment just started
    224     \end{itemize}
    225   \end{block}
    226   \begin{block}{Europe}
    227     \begin{itemize}
    228     \item \textit{NGI-Taler project} with a German bank (GLS), deployment in
    229       the Eurozone for the end of 2025.
    230 
    231       With a Hungarian bank (MagNet) deployment in 2026 in Hungary.
    232     \item \textit{Depolymerizer} for Bitcoin. Working already as a University
    233       research project (not commercial).
    234     \end{itemize}
    235   \end{block}
    236 \end{frame}
    237 
    238 
    239 
    240 
    241 \section{Customer user expirience}
    242 % Install the wallet
    243 
    244 % Withdraw money Play money (maybe add demo exchange if needed).
    245 % (show a real withdraw money)
    246 
    247 % Send money
    248 
    249 % Ask for money
    250 
    251 
    252 
    253 \begin{frame}
    254   \frametitle{Install the app on your phone}
    255     \framesubtitle{Alternatives (for browsers, etc.) \url{wallet.taler.net}}
    256    \begin{columns}
    257       \begin{column}{0.47\textwidth}
    258         \begin{center}
    259           Apple App Store
    260 
    261           \includegraphics[width=0.3\textwidth]{./images/Apple_logo_black.jpg}
    262       \includegraphics[width=0.6\textwidth]{./qr-codes/QR-Code-Apple-app-store.png}
    263 
    264 \end{center}
    265 \end{column}
    266       \begin{column}{0.47\textwidth}
    267 
    268 
    269         \begin{center}
    270           Google Play Store
    271 
    272           \includegraphics[width=0.3\textwidth]{./images/Google_play_logo.jpg}
    273                     \includegraphics[width=0.6\textwidth]{./qr-codes/QR-Code-Google-Play-store.png}
    274 
    275 \end{center}
    276   \end{column}
    277 \end{columns}
    278 \footnotesize
    279 %Alternatives (Chrome, Firefox, Chromium, Opera extensions, F-Droid, pure APK
    280 %for Android, ...):
    281 %\url{https://wallet.taler.net}
    282 \end{frame}
    283 
    284 
    285 \begin{frame}
    286   \frametitle{Install the app from the store}
    287   \framesubtitle{ Install the Taler Wallet}
    288       \begin{columns}
    289       \begin{column}{0.67\textwidth}
    290         \begin{center}
    291       \includegraphics[width=0.7\textwidth]{./screenshots/01_Play_store-3.jpeg}
    292 \end{center}
    293 \end{column}
    294 \begin{column}{0.27\textwidth}
    295         \begin{center}
    296           Taler wallet icon:
    297 
    298           \vspace{1cm}
    299 
    300   \includegraphics[width=0.4\textwidth]{./screenshots/02_icon_taler_app.jpg}
    301 \end{center}
    302 \end{column}
    303 \end{columns}
    304 
    305 \end{frame}
    306 
    307 
    308 \begin{frame}
    309   \frametitle{Welcome page : get demo money}
    310     \begin{columns}
    311       \begin{column}{0.47\textwidth}
    312          \begin{center}
    313       \includegraphics[width=0.4\textwidth]{./screenshots/03_welcome_screen_get_demo_money.jpeg}
    314            \end{center}
    315 \end{column}
    316 \begin{column}{0.47\textwidth}
    317         \begin{center}
    318 
    319       \includegraphics[width=1\textwidth]{./screenshots/03_welcome_screen_get_demo_money_with_arrow.jpeg}
    320 
    321 \end{center}
    322 \end{column}
    323 \end{columns}
    324 
    325 \end{frame}
    326 
    327 
    328 \begin{frame}
    329   \frametitle{Start action menu}
    330     \begin{columns}
    331       \begin{column}{0.47\textwidth}
    332          \begin{center}
    333       \includegraphics[width=0.4\textwidth]{./screenshots/04_after_withdrawal.jpeg}
    334            \end{center}
    335 \end{column}
    336 \begin{column}{0.47\textwidth}
    337         \begin{center}
    338 
    339       \includegraphics[width=1\textwidth]{./screenshots/04_after_withdrawal_with_arrow.jpeg}
    340 
    341 \end{center}
    342 \end{column}
    343 \end{columns}
    344 
    345 \end{frame}
    346 
    347 
    348 \begin{frame}
    349   \frametitle{Send money to another wallet}
    350     \begin{columns}
    351       \begin{column}{0.47\textwidth}
    352          \begin{center}
    353       \includegraphics[width=0.4\textwidth]{./screenshots/05_menu_empty_history.jpeg}
    354            \end{center}
    355 \end{column}
    356 \begin{column}{0.47\textwidth}
    357         \begin{center}
    358 
    359       \includegraphics[width=1\textwidth]{./screenshots/05_menu_empty_history_with_arrow.jpeg}
    360 
    361 \end{center}
    362 \end{column}
    363 \end{columns}
    364 
    365 \end{frame}
    366 
    367 
    368 \begin{frame}
    369   \frametitle{Fill out the form to generate the QR-Code}
    370     \begin{columns}
    371       \begin{column}{0.47\textwidth}
    372          \begin{center}
    373       \includegraphics[width=0.4\textwidth]{./screenshots/06_send_money.jpeg}
    374            \end{center}
    375 \end{column}
    376 \begin{column}{0.47\textwidth}
    377   % \begin{block}{Forms informations}
    378   %   \begin{itemize}
    379   %   \item Amount and Currence (if your wallet contains many)
    380   %   \item Purpose (to be able to find it later on)
    381   %   \item Expiry time of the payment.
    382   %   \end{itemize}
    383   % \end{block}
    384          \begin{center}
    385       \includegraphics[width=0.4\textwidth]{./screenshots/07_sending.jpeg}
    386            \end{center}
    387 
    388 \end{column}
    389 \end{columns}
    390 
    391 \end{frame}
    392 
    393 
    394 
    395 \begin{frame}
    396   \frametitle{Request Money from another Wallet}
    397     \begin{columns}
    398       \begin{column}{0.47\textwidth}
    399          \begin{center}
    400       \includegraphics[width=0.4\textwidth]{./screenshots/09_menu_after_sending.jpeg}
    401            \end{center}
    402 \end{column}
    403 \begin{column}{0.47\textwidth}
    404 
    405          \begin{center}
    406       \includegraphics[width=0.8\textwidth]{./screenshots/09_menu_after_sending_with_arrow.jpeg}
    407            \end{center}
    408 
    409 \end{column}
    410 \end{columns}
    411 
    412 \end{frame}
    413 
    414 
    415 
    416 \begin{frame}
    417   \frametitle{Generate a Request for Money and its QR-code}
    418     \begin{columns}
    419       \begin{column}{0.47\textwidth}
    420          \begin{center}
    421       \includegraphics[width=0.35\textwidth]{./screenshots/10_receiving_money.jpeg}
    422            \end{center}
    423 \end{column}
    424 \begin{column}{0.47\textwidth}
    425 
    426          \begin{center}
    427       \includegraphics[width=0.35\textwidth]{./screenshots/11_receiving_money_QRcode.jpeg}
    428            \end{center}
    429 
    430 \end{column}
    431 \end{columns}
    432 
    433 \end{frame}
    434 
    435 
    436 
    437 
    438 \section{Merchant Integration (Rest API for payment)}
    439 
    440 
    441 
    442 % Create an order in a Merchant Backend (simple order)
    443 % Someone pays.
    444 % Check status.
    445 % Web interface + CURL + QR Code generator
    446 
    447 
    448 
    449 \section{Manipulate merchant backend}
    450 \subsection{Using Single Page Application}
    451 
    452 \begin{frame}
    453   \frametitle{Create a merchant account and your first order}
    454 
    455   \begin{columns}
    456     \begin{column}{0.45\textwidth}
    457       \begin{block}{Access the merchant backend}
    458         \url{https://backend.demo.taler.net/instances/sandbox/}
    459         Access Token : \texttt{sandbox}
    460       \end{block}
    461       \begin{center}
    462         \includegraphics[width=0.4\textwidth]{./images/QR-code-backend.demo.taler.net.png}
    463 
    464 
    465 \end{center}
    466 \end{column}
    467 \begin{column}{0.45\textwidth}
    468   \begin{block}{Create your shop / do your first delivery}
    469 
    470     \begin{itemize}
    471     \item Create a product.
    472     \item Create a new \emph{``Order''}.
    473     \item Give the QR-code to your neighbour for them to pay ;-)
    474     \item Wait for confirmation.
    475     \end{itemize}
    476   \end{block}
    477 
    478     \end{column}
    479 \end{columns}
    480 
    481 \end{frame}
    482 
    483 \subsection{Using RESTfull API}
    484 
    485 \begin{frame}[containsverbatim]
    486   \frametitle{Use Rest API}
    487 
    488   \begin{block}{Connect from your program}
    489     \begin{itemize}
    490     \item RESTfull interface
    491     \item CRUD functionalities
    492     \item Interfacable with any system
    493     \end{itemize}
    494   \end{block}
    495 
    496 \begin{verbatim}
    497 curl --request GET \
    498 --url https://backend.demo.taler.net/instances/sandbox/private/products \
    499 --header 'Authorization: Bearer secret-token:sandbox' \
    500 --header 'User-Agent: yourApp/0.0.1'
    501 
    502 \end{verbatim}
    503 \end{frame}
    504 
    505 \begin{frame}[fragile,fragile]
    506   \frametitle{Insert a new order}
    507 
    508 \begin{verbatim}
    509 curl --request POST \
    510   --url https://backend.demo.taler.net/instances/sandbox/private/orders \
    511   --header 'Authorization: Bearer secret-token:sandbox' \
    512   --header 'Content-Type: application/json' \
    513   --header 'User-Agent: yourApp/0.0.1' \
    514   --data '{"order":{
    515            "amount": "KUDOS:10",
    516            "summary": "Test for EuroDIG",
    517            "fulfillment_message": "Thank you"}}'
    518 \end{verbatim}
    519 
    520 
    521 
    522 % curl --request POST \
    523 %   --url https://backend.demo.taler.net/instances/sandbox/private/orders \
    524 %   --header 'Authorization: Bearer secret-token:sandbox' \
    525 %   --header 'Content-Type: application/json' \
    526 %   --header 'User-Agent: yourApp/0.0.1' \
    527 %   --data '{"order":{
    528 %              "amount": "KUDOS:10",
    529 %              "summary": "Test for EuroDIG",
    530 %              "fulfillment_message": "Thank you"},
    531 %             "create_token":false}'
    532 
    533 
    534 
    535 
    536 
    537 % curl --request POST \
    538 %   --url https://backend.demo.taler.net/instances/sandbox/private/products \
    539 %   --header 'Authorization: Bearer secret-token:sandbox' \
    540 %   --header 'Content-Type: application/json' \
    541 %   --header 'User-Agent: yourApp/0.0.1' \
    542 %   --data '{"address":{},"description_i18n":{},
    543 %             "taxes":[],"next_restock":{"t_s":"never"},
    544 %             "price":"KUDOS:5","product_id":"0001-2",
    545 %             "description":"Cryptography course",
    546 %             "unit":"piece","total_stock":-1}'
    547 
    548 
    549 \end{frame}
    550 
    551 \begin{frame}[fragile,fragile]
    552   \frametitle{Insert a new order (Cont.)}
    553 
    554 
    555   Got the message as a response:
    556 \begin{verbatim}
    557 {
    558   "order_id": "2025.112-0080M3T5162RE",
    559   "token": "YTRXG5FQ8WTAC3PWRCMT4GMYA4"
    560 }%
    561 
    562 {
    563   "order_id": "2025.112-02CDQQYASFPPY"
    564 }%
    565 
    566 \end{verbatim}
    567 
    568 \end{frame}
    569 
    570 \begin{frame}[fragile]
    571   \frametitle{Generate the payment URL}
    572 
    573   \begin{block}{URL : "https://"+Host +"/orders/" + payment ID}
    574   \end{block}
    575 
    576     % To get the QR Code
    577 \begin{verbatim}
    578 https://backend.demo.taler.net/instances/sandbox/orders/2025.132-01RCH1C173JC4
    579 \end{verbatim}
    580     % To get the status
    581 \begin{verbatim}
    582 https://backend.demo.taler.net/instances/sandbox/private/orders/2025.132-01RCH1C173JC4
    583 \end{verbatim}
    584 % Should work to
    585 \begin{verbatim}
    586 taler://pay/backend.demo.taler.net/instances/sandbox/2025.132-01RCH1C173JC4
    587 \end{verbatim}
    588 
    589 \end{frame}
    590 
    591 \section{Questions and Answers}
    592 
    593 \begin{frame}
    594   \frametitle{Questions ?}
    595       \begin{columns}
    596       \begin{column}{0.3\textwidth}
    597         \begin{center}
    598           \includegraphics[width=0.9\textwidth]{./images/3d-question-mark}
    599         \end{center}
    600       \end{column}
    601       \begin{column}{0.65\textwidth}
    602 
    603 
    604         \begin{block}{Contacts}
    605           \begin{itemize}
    606           \item \url{https://www.taler.net}
    607           \item christian.grothoff@bfh.ch
    608           \item olivierrappaport.eseniors@gmail.com
    609           \item emmanuel.benoist@bfh.ch
    610           \end{itemize}
    611         \end{block}
    612   \end{column}
    613 \end{columns}
    614 \end{frame}
    615 
    616 
    617 
    618 
    619 
    620 
    621 \begin{frame}{Acknowledgements}
    622 
    623   \begin{minipage}{0.45\textwidth} \ \\
    624     {\tiny Funded by the European Union (Project 101135475).}
    625 
    626     \begin{center}
    627       \includegraphics[width=0.5\textwidth]{./images/bandera.jpg}
    628     \end{center}
    629   \end{minipage}
    630   \hfill
    631   \begin{minipage}{0.45\textwidth}
    632     {\tiny Funded by SERI (HEU-Projekt 101135475-TALER).}
    633 
    634     \begin{center}
    635       \includegraphics[width=0.65\textwidth]{./images/sbfi.jpg}
    636     \end{center}
    637   \end{minipage}
    638 
    639   \vfill
    640 
    641   {\tiny Views and opinions expressed are however those of the author(s) only
    642     and do not necessarily reflect those of the European Union. Neither the
    643     European Union nor the granting authority can be held responsible for
    644     them.}
    645 \end{frame}
    646 
    647 
    648 \end{document}
    649 \begin{frame}
    650   \frametitle{Example}
    651       \begin{columns}
    652       \begin{column}{0.47\textwidth}
    653 \begin{center}
    654       \includegraphics[width=0.8\textwidth]{./images/3d-question-mark.jpg}
    655 
    656 \end{center}
    657 \end{column}
    658       \begin{column}{0.47\textwidth}
    659 
    660         \begin{block}{Title for block}
    661           \begin{itemize}
    662           \item Item number 1
    663           \end{itemize}
    664         \end{block}
    665   \end{column}
    666 \end{columns}
    667 
    668 \end{frame}