marketing

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

commit 981e65e16ddff64bad331889e65e514537a04e82
parent a8a5cdf97dd88e2e80e864e215fd6326bae34902
Author: Christian Grothoff <grothoff@gnunet.org>
Date:   Wed, 18 Sep 2024 16:01:09 +0200

spuren

Diffstat:
Apresentations/comprehensive/cashless2ecash.png | 0
Apresentations/comprehensive/datenspuren2024.tex | 743+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mpresentations/comprehensive/main.tex | 48+++++++++++++++++++++++++++++++++---------------
3 files changed, 776 insertions(+), 15 deletions(-)

diff --git a/presentations/comprehensive/cashless2ecash.png b/presentations/comprehensive/cashless2ecash.png Binary files differ. diff --git a/presentations/comprehensive/datenspuren2024.tex b/presentations/comprehensive/datenspuren2024.tex @@ -0,0 +1,743 @@ +\pdfminorversion=3 +\documentclass[fleqn,xcolor={usenames,dvipsnames}]{beamer} +\usepackage{amsmath} +\usepackage{multimedia} +\usepackage[utf8]{inputenc} +\usepackage{framed,color,ragged2e} +\usepackage[absolute,overlay]{textpos} +\definecolor{shadecolor}{rgb}{0.8,0.8,0.8} +\usetheme{boxes} +\setbeamertemplate{navigation symbols}{} +\usepackage{xcolor} +\usepackage[normalem]{ulem} +\usepackage{listings} +\usepackage{adjustbox} +\usepackage{array} +\usepackage{bbding} +\usepackage{relsize} +\usepackage{graphicx} +\usepackage{tikz,eurosym,calc} +\usetikzlibrary{tikzmark} +\usetikzlibrary{shapes,arrows,arrows.meta} +\usetikzlibrary{positioning,fit,patterns} +\usetikzlibrary{calc} +\usepackage{multicol} +\usepackage{pgf-umlsd} +\usepackage{relsize} + + +% CSS +\lstdefinelanguage{CSS}{ + basicstyle=\ttfamily\scriptsize, + keywords={color,background-image:,margin,padding,font,weight,display,position,top,left,right,bottom,list,style,border,size,white,space,min,width, transition:, transform:, transition-property, transition-duration, transition-timing-function}, + sensitive=true, + morecomment=[l]{//}, + morecomment=[s]{/*}{*/}, + morestring=[b]', + morestring=[b]", + alsoletter={:}, + alsodigit={-} +} + +% JavaScript +\lstdefinelanguage{JavaScript}{ + basicstyle=\ttfamily\scriptsize, + morekeywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break}, + morecomment=[s]{/*}{*/}, + morecomment=[l]//, + morestring=[b]", + morestring=[b]' +} + +\lstdefinelanguage{HTML5}{ + basicstyle=\ttfamily\scriptsize, + language=html, + sensitive=true, + alsoletter={<>=-}, + morecomment=[s]{<!-}{-->}, + tag=[s], + otherkeywords={ + % General + >, + % Standard tags + <!DOCTYPE, + </html, <html, <head, <title, </title, <style, </style, <link, </head, <meta, />, + % body + </body, <body, + % Divs + </div, <div, </div>, + % Paragraphs + </p, <p, </p>, + % scripts + </script, <script, + % More tags... + <canvas, /canvas>, <svg, <rect, <animateTransform, </rect>, </svg>, <video, <source, <iframe, </iframe>, </video>, <image, </image> + }, + ndkeywords={ + % General + =, + % HTML attributes + charset=, src=, id=, width=, height=, style=, type=, rel=, href=, + % SVG attributes + fill=, attributeName=, begin=, dur=, from=, to=, poster=, controls=, x=, y=, repeatCount=, xlink:href=, + % CSS properties + margin:, padding:, background-image:, border:, top:, left:, position:, width:, height:, + % CSS3 properties + transform:, -moz-transform:, -webkit-transform:, + animation:, -webkit-animation:, + transition:, transition-duration:, transition-property:, transition-timing-function:, + } +} + +\lstdefinelanguage{JavaScript}{ + basicstyle=\ttfamily\scriptsize, + keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break, for}, + keywordstyle=\color{blue}\bfseries, + ndkeywords={class, export, boolean, throw, implements, import, this}, + ndkeywordstyle=\color{darkgray}\bfseries, + identifierstyle=\color{black}, + sensitive=false, + comment=[l]{//}, + morecomment=[s]{/*}{*/}, + commentstyle=\color{purple}\ttfamily, + stringstyle=\color{red}\ttfamily, + morestring=[b]', + morestring=[b]" +} + +\setbeamersize{description width=1em} + +\definecolor{blue}{rgb}{0,0,0.7} +\newcommand{\orange}[1]{{\color{orange}#1}} +\newcommand{\blue}[1]{{\color{blue}#1}} +\newcommand{\red}[1]{{\color{red}#1}} +\newcommand{\Guardian}{\mathcal{G}} +\newcommand{\Child}{\mathcal{C}} +\newcommand{\Customer}{\mathcal{C}} +\newcommand{\Merchant}{\mathcal{M}} +\newcommand{\Exchange}{\mathcal{E}} + +\newcommand{\Commit}{\mathsf{Commit}} +\newcommand{\Attest}{\mathsf{Attest}} +\newcommand{\Verify}{\mathsf{Verify}} +\newcommand{\Derive}{\mathsf{Derive}} +\newcommand{\DeriveCompare}{\mathsf{DeriveCompare_\kappa}} +\newcommand{\Compare}{\mathsf{Compare}} +\newcommand{\AgeVer}{\mathsf{AgeVer}} + +\newcommand{\HashF}{\mathsf{H}} +\newcommand{\Hash}{\mathsf{H}} +\newcommand{\Block}{\mathbb{B}} +\newcommand{\Pub}{\mathsf{Pub}} +\newcommand{\Sign}{\mathsf{Sig}} +\newcommand{\Ver}{\mathsf{Ver}} +\newcommand{\Encoding}{\mathsf{Encoding}} +\newcommand{\ECDSA}{\mathsf{ECDSA}} +\newcommand{\Null}{\mathcal{O}} +\newcommand{\EC}{\mathrm{ec}} +\newcommand{\Curve}{\mathsf{Curve25519}} +\newcommand{\SHA}{\mathsf{SHA256}} +\newcommand{\SHAF}{\mathsf{SHA252}} +\newcommand{\FDH}{\mathsf{FDH}} + +\newcommand{\negl}{\epsilon} + +\newcommand{\rand}{\mathsf{rand}} +\newcommand{\age}{\mathsf{a}} +\newcommand{\Age}{\mathsf{M}} +\newcommand{\bage}{\mathsf{b}} +\newcommand{\minage}{\mathsf{m}} +\newcommand{\attest}{\mathsf{T}} +\newcommand{\commitment}{\mathsf{Q}} +\newcommand{\pruf}{\mathsf{P}} +\newcommand{\Vcommitment}{\vec{\mathsf{Q}}} +\newcommand{\Vpruf}{\vec{\mathsf{P}}} +\newcommand{\blinding}{\beta} + +\newcommand{\ZN}{\mathbb{Z}_N} +\newcommand{\Z}{\mathbb{Z}} +\newcommand{\N}{\mathbb{N}} +\newcommand{\A}{\mathbb{A}} +\newcommand{\E}{\mathbb{E}} +\newcommand{\F}{\mathbb{F}} +\newcommand{\seck}{\mathsf{s}} +\newcommand{\pubk}{\mathsf{P}} +\renewcommand{\H}{\mathbb{H}} +\newcommand{\K}{\mathbb{K}} +\newcommand{\Proofs}{\mathbb{P}} +\newcommand{\Commitments}{\mathbb{O}} +\newcommand{\Attests}{\mathbb{T}} +\newcommand{\Blindings}{\mathbb{B}} +\newcommand{\Nil}{\perp} + +\newcommand{\p}{\mathsf{p}} +\newcommand{\com}{\mathsf{com}} +\newcommand{\prf}{\mathsf{prf}} + +\newcommand{\Adv}{\mathcal{A}} +\newcommand{\PPT}{\mathfrak{A}} +\newcommand{\Probability}{\mathrm{Pr}} +\newcommand{\Algorithm}{f} +\renewcommand{\Game}[1]{G_\Adv^\mathsf{#1}} + +\DeclareMathOperator{\Image}{Im} +\DeclareMathOperator{\Mod}{mod} + +\newcommand{\Encode}[1]{\overbracket[0.5pt][2pt]{\,#1\,}} +\newcommand{\Decode}[1]{\underbracket[0.5pt][3pt]{\,#1\,}} +\newcommand{\FDHg}[1]{[#1]_g\,} +\newcommand{\logg}{{\breve{g}}} + + +\newcommand{\drawfrom}{\xleftarrow{\$}} +\newcommand\Exists{% + \mathop{\lower0.75ex\hbox{\ensuremath{% + \mathlarger{\mathlarger{\mathlarger{\mathlarger{\exists}}}}}}}% + \limits} + +\newcommand\Forall{% + \mathop{\lower0.75ex\hbox{\ensuremath{% + \mathlarger{\mathlarger{\mathlarger{\mathlarger{\forall}}}}}}}% + \limits} + + +\title{GNU Taler} +%\subtitle{} + +\setbeamertemplate{navigation symbols}{ \includegraphics[width=1cm]{tud-logo.pdf} \includegraphics[width=0.4cm]{logo-esen.pdf} \includegraphics[width=1cm]{logo-GlsBank.pdf} \includegraphics[width=0.6cm]{logo-MagNetBank.pdf} \includegraphics[width=0.4cm]{logo-ps.pdf} \includegraphics[width=0.4cm]{logo-nlnet.pdf} \includegraphics[width=0.4cm]{logo-HomoDigitalis.pdf} \includegraphics[width=0.4cm]{logo-codeblau.pdf} \includegraphics[width=1.4cm]{logo-tue.pdf} \includegraphics[width=0.6cm]{logo-visualvest.pdf} \includegraphics[width=1cm]{inria.pdf} \includegraphics[width=0.4cm]{logo-bfh.pdf} \includegraphics[width=1.6cm]{fub.pdf} \includegraphics[width=0.4cm]{ashoka.png} \includegraphics[width=0.4cm]{gnu.png} \includegraphics[width=1cm]{taler-logo-2021-inkscape.pdf} \hfill} +%\setbeamercovered{transparent=1} + +\author[C. Grothoff]{J. Burdges, F. Dold, {\bf C. Grothoff}, M. Stanisci} +\date{\today} +\institute{The GNU Project} + + +\begin{document} + +\justifying + +\begin{frame} + \begin{center} + \LARGE {\bf GNU} + + \vfill +% \includegraphics[width=0.66\textwidth]{logo-2017-fr.pdf} + \includegraphics[width=0.66\textwidth]{taler-logo-2021-inkscape.pdf} + \end{center} + + \begin{center} + \includegraphics[width=0.15\textwidth]{logo-EU.pdf} + \includegraphics[width=0.15\textwidth]{logo-SBFI.pdf} + \end{center} + +\begin{textblock*}{6cm}(.5cm,7.7cm) % {block width} (coords) + {\Large {\bf \href{https://taler.net/}{taler.net}} \\ + \href{https://twitter.com/taler}{taler@twitter}} +\end{textblock*} + +% Substitute based on who is giving the talk! + \begin{textblock*}{6cm}(6.5cm,7.7cm) % {block width} (coords) + {\hfill {\bf Christian Grothoff} \\ + \hfill {\bf \& Leo Wittmann } } +\end{textblock*} + +\end{frame} + +\setbeamertemplate{navigation symbols}{\hfill \includegraphics[width=1cm]{taler-logo-2021-inkscape.pdf}} + + + +\begin{frame} +\frametitle{Taler Overview} +\begin{center} +\begin{tikzpicture} + \tikzstyle{def} = [node distance= 5em and 6.5em, inner sep=1em, outer sep=.3em]; + \node (origin) at (0,0) {}; + \node (exchange) [def,above=of origin,draw]{Exchange}; + \node (customer) [def, draw, below left=of origin] {Customer}; + \node (merchant) [def, draw, below right=of origin] {Merchant}; + \node (auditor) [def, draw, above right=of origin]{Auditor}; +% \node (regulator) [def, draw, above=of auditor]{CSSF}; + + \tikzstyle{C} = [color=black, line width=1pt] + + \draw [<-, C] (customer) -- (exchange) node [midway, above, sloped] (TextNode) {withdraw coins}; + \draw [<-, C] (exchange) -- (merchant) node [midway, above, sloped] (TextNode) {deposit coins}; + \draw [<-, C] (merchant) -- (customer) node [midway, above, sloped] (TextNode) {spend coins}; + \draw [<-, C] (exchange) -- (auditor) node [midway, above, sloped] (TextNode) {verify}; +% \draw [<-, C] (regulator) -- (auditor) node [midway, above, sloped] (TextNode) {report}; + +\end{tikzpicture} +\end{center} +\end{frame} + +\begin{frame} +\frametitle{Architecture of Taler} +\begin{center} + \includegraphics[width=1\textwidth]{operations.png} +\end{center} +\end{frame} + + +\begin{frame}{Taler Exchange} + The {\bf Exchange} is the core logic of the payment system. + + \begin{itemize} + \item One exchange at minimum must be operated per currency + \item Offers a REST API for merchants and customers + \item Uses several helper processes for configuration and to + interact with RTGS and cryptography + \item KYC support via OAuth 2.0, KycAID or Persona APIs + \item SPAs for AML and KYC processes + \end{itemize} +\end{frame} + + +\begin{frame}{Taler: Exchange Architecture} +\begin{center} +\begin{tikzpicture} + \tikzstyle{def} = [node distance=2em and 2.5em, inner sep=1em, outer sep=.3em]; + \node (origin) at (0,0) {}; + \node (httpd) [def,above=of origin,draw]{httpd}; + \node (secmod-rsa) [def, draw, right=of httpd] {secmod-rsa}; + \node (secmod-eddsa) [def, draw, left=of httpd] {secmod-eddsa}; + \node (postgres) [def, draw, below=of httpd]{Postgres}; + \node (aggregator) [def, draw, right=of postgres]{aggregator}; + \node (transfer) [def, draw, below left=of postgres]{transfer}; + \node (wirewatch) [def, draw, below right=of postgres]{wirewatch}; + \node (nexus) [def, draw, below=of postgres]{Nexus}; + + \tikzstyle{C} = [color=black, line width=1pt] + + \draw [<->, C] (httpd) -- (postgres) node [midway, above, sloped] (TextNode) {}; + \draw [<->, C] (httpd) -- (secmod-rsa) node [midway, above, sloped] (TextNode) {}; + \draw [<->, C] (httpd) -- (secmod-eddsa) node [midway, above, sloped] (TextNode) {}; + \draw [<->, C] (aggregator) -- (postgres) node [midway, above, sloped] (TextNode) {}; + \draw [<->, C] (wirewatch) -- (postgres) node [midway, above, sloped] (TextNode) {}; + \draw [<->, C] (transfer) -- (postgres) node [midway, above, sloped] (TextNode) {}; + \draw [->, C] (transfer) -- (nexus) node [midway, above, sloped] (TextNode) {}; + \draw [<-, C] (wirewatch) -- (nexus) node [midway, above, sloped] (TextNode) {}; +\end{tikzpicture} +\end{center} +\end{frame} + + +\begin{frame}{Taler Wallet} + The {\bf Wallet} is the software run by consumers to store + their digital cash and authorize transactions. + + \begin{minipage}{8cm} + \begin{itemize} + \item {\bf wallet-core} is the logic shared by all interfaces + \item Applications exist for Android, F-Droid, + WebExtension (Chrome, Chromium, Firefox, etc.), iOS + \item Features include: + \begin{itemize} + \item Multi-currency support + \item Wallet-to-wallet payments (NFC or QR code) + \item CRDT-like data model + \end{itemize} + \end{itemize} + Can be integrated into other Apps if desired. + \end{minipage} + \begin{minipage}{3cm} + \includegraphics[width=3cm]{screenshots/Screenshot_20230225-103520.png} + \end{minipage} +\end{frame} + + +\begin{frame}{Taler Auditor} + The {\bf Auditor} is the software run by an independent auditor + to validate the operation of an Exchange. + + \begin{itemize} + \item REST API for additional report inputs by merchants (optional) + \item Secure database replication logic ({\tt taler-auditor-sync}) + \item SPA for viewing results in real-time + \end{itemize} +\begin{center} +\begin{tikzpicture} + \tikzstyle{def} = [node distance=3em and 2.5em, inner sep=1em, outer sep=.3em]; + \node (origin) at (0,0) {Postgres (Auditor)}; + \node (httpd) [def,above=of origin,draw]{auditor-httpd}; + \node (spa) [def,above right=of origin,draw]{auditor-spa}; + \node (merchant) [def,above left=of origin,draw]{merchant}; + \node (report) [def,left=of origin,draw]{a-h-*}; + \node (wirereport) [def,right=of origin,draw]{a-h-wire-*}; + \node (postgres-E) [def, draw, below=of origin] {Exchange}; + \node (postgres-B) [def, draw, right=of postgres-E] {Bank}; + + \tikzstyle{C} = [color=black, line width=1pt] + + \draw [->, C] (postgres-E) -- (origin) node [midway, above, sloped] (TextNode) {sync}; + \draw [<->, C] (httpd) -- (origin) node [midway, above, sloped] (TextNode) {}; + \draw [<->, C] (httpd) -- (spa) node [midway, above, sloped] (TextNode) {}; + \draw [->, C] (merchant) -- (httpd) node [midway, above, sloped] (TextNode) {}; + \draw [<->, C] (report) -- (origin) node [midway, above, sloped] (TextNode) {}; + \draw [<->, C] (wirereport) -- (origin) node [midway, above, sloped] (TextNode) {}; + \draw [<->, C] (wirereport) -- (postgres-B) node [midway, above, sloped] (TextNode) {nexus}; +\end{tikzpicture} +\end{center} +\end{frame} + + +\begin{frame}{libeufin-nexus} + libeufin-nexus allows Taler components to interact with a core banking system. It: + + \begin{itemize} + \item provides an implementation of the Wire Gateway for the exchange + \item supports EBICS 2.5 and 3.0 + \item other APIs such as FinTS or PSD2-style XS2A APIs can be added + without requiring changes to the Exchange + \item was tested with GLS Bank (DE) and Postfinance (CH) accounts and real EUR/CHF + \end{itemize} +\end{frame} + + +\begin{frame}{libeufin-bank} + libeufin-bank implements a standalone bank with a Web interface. It: + + \begin{itemize} + \item provides the Taler Core Bank API for RESTful online banking + using a Web interface (with multi-factor authentication) + \item includes a Taler Wire Gateway for the exchange + \item offers the Taler Bank Integration API to allow wallets + to easily withdraw digital cash + \item optionally provides the Taler Conversion Info API for currency + conversion between fiat and regional currencies + \item optionally integrates with libeufin-nexus to interact with + a core banking system + \end{itemize} +\end{frame} + + +\begin{frame}{Cashier App for Android} +\begin{minipage}{4cm} + \begin{itemize} + \item Enables staff to convert cash to e-cash + \item Staff has special bank accounts with limited funds + \item Visitors can pay staff in cash to receive e-cash + \end{itemize} + \end{minipage} + \begin{minipage}{3cm} + \includegraphics[width=3cm]{screenshots/Screenshot_20230225-103315.png} + \end{minipage} + \begin{minipage}{3cm} + \includegraphics[width=3cm]{screenshots/Screenshot_20230225-103325.png} + \end{minipage} +\end{frame} + + +\begin{frame}{Cashless2ecash by Joel Haeberli} + \begin{center} + \includegraphics[width=\textwidth]{cashless2ecash.png} + \end{center} +\end{frame} + + +\begin{frame}{Challenger} + Challenger allows clients to obtain validated address (KYC) data about + users: + + \begin{itemize} + \item Customizable Web-based process for address validation + \item Can validate phone numbers, e-mail addresses or physical mailing addresses + \item Provides an exchange-compatible OAuth 2.0 API + \end{itemize} +\end{frame} + + +\begin{frame}{Depolymerization} + Depolymerization is a bridge between GNU Taler and blockchains. + + \begin{itemize} + \item Works on top of Bitcoin and Ethereum + crypto-currencies, with the DLTs as the ``RTGS'' + \item Provides same API to Exchange as libeufin-nexus + \end{itemize} + \begin{center} + \begin{tikzpicture}[ + rect/.style={rectangle, draw=black, minimum width=30mm}, + sym/.style={stealth-stealth, shorten >= 2pt, shorten <= 2pt}, + block/.style={rectangle,draw=black,fill=black!10,minimum size=7mm}, + ] + + %% Architecture + \node(Tt){Taler}; + \node[rect,below=0cm of Tt](Tc){Exchange}; + \node[rect,fit={(Tt) (Tc)}](T){}; + + \node[rect,below=7mm of Tc](D) {\textbf{Depolymerization}}; + + \node[rect,below=7mm of D](Bc){Node}; + \node[below=0cm of Bc](Bt){Blockchain}; + \node[rect,fit={(Bt) (Bc)}](B){}; + + \draw[sym] (T) -- (D); + \draw[sym] (D) -- (B); + + %% Blockchain + \node[block,right=8mm of B] (1){}; + \node[block,right=4mm of 1] (2){}; + \node[block,right=4mm of 2] (3){}; + \node[block,right=4mm of 3] (4){}; + \node[block,right=4mm of 4] (5){}; + \node[block,right=4mm of 5] (6){}; + \draw[-stealth] (1) -- (2); + \draw[-stealth] (2) -- (3); + \draw[-stealth] (3) -- (4); + \draw[-stealth] (4) -- (5); + \draw[-stealth] (5) -- (6); + + \node[left=4mm of 1] (S){}; + \node[right=4mm of 6] (E){}; + \draw[-stealth] (S) -- (1); + \draw[-stealth] (6) -- (E); + + %% Taler + \node[block, below right=-7.5mm and 20.5mm of T] (off){Off-chain transactions}; + \node[above=-0.5mm of off] {\includegraphics[height=7mm]{taler-logo-2021-inkscape.pdf}}; + + %% Depolymerization + \node[right=11mm of D] {\small{Credit}}; + \node[right=50mm of D] {\small{Debit}}; + \draw[dashed,-stealth] (1.north) |- (off.west); + \draw[dashed,-stealth] (off.east) -| (6.north); + \end{tikzpicture} + \end{center} +\end{frame} + + + +\begin{frame}{Taler Merchant} + The {\bf Merchant} is the software run by merchants to accept\\ + GNU Taler payments. + + \begin{minipage}{6cm} + \begin{itemize} + \item REST API for integration with e-commerce + \item SPA provides Web interface for administration + \item Features include: + \begin{itemize} + \item Multi-tenant support + \item Refunds + \item Templates + \item Webhooks + \item Inventory management (optional) + \end{itemize} + \end{itemize} + \end{minipage} + \begin{minipage}{5cm} + \includegraphics[width=5cm]{screenshots/merchant-spa-settings} + \end{minipage} +\end{frame} + + +\begin{frame}{Pretix Taler payment plugin} +\begin{center} +\includegraphics[width=0.5\textwidth]{screenshots/pretix.png} +\end{center} + + Pretix is a ticket sales system. + + \begin{itemize} + \item Pretix payment plugin enables payments via GNU Taler + \item Developed by Pretix.eu for \EUR{3,000} on behalf of Taler Systems SA + \end{itemize} +\end{frame} + + +\begin{frame}{WooCommerce Taler payment plugin} +\begin{minipage}{6cm} + \begin{itemize} + \item WooCommerce is an e-commerce plugin for WordPress. + \item WooCommerce payment plugin enables payments via GNU Taler + \item Features include: + \begin{itemize} + \item Trivial configuration + \item Support for refunds + \item Full internationalization + \end{itemize} + \end{itemize} +\end{minipage} +\begin{minipage}{5cm} + \includegraphics[width=4cm]{screenshots/woocommerce-cart.png} + \includegraphics[width=4cm]{screenshots/woocommerce-settings.png} + \end{minipage} +\end{frame} + + +\begin{frame}{Joomla! Taler payment plugin} +\begin{minipage}{6cm} + \begin{itemize} + \item Joomla! is an e-commerce platform + \item Joomla! payment plugin enables payments via GNU Taler + \item Features include: + \begin{itemize} + \item Trivial configuration + \item Support for refunds + \item Full internationalization + \end{itemize} + \end{itemize} +\end{minipage} +% FIXME: add screenshots +%\begin{minipage}{5cm} +% \includegraphics[width=4cm]{screenshots/woocommerce-cart.png} +% \includegraphics[width=4cm]{screenshots/woocommerce-settings.png} +% \end{minipage} +\end{frame} + + +\begin{frame}{Point-of-Sale App for Android} + +\begin{minipage}{7cm} + \begin{itemize} + \item Allows merchant to generate orders against Taler backend + and display QR code to enable customer to pay in person + \item Patterned after ViewTouch restaurant UI + \item Features include: + \begin{itemize} + \item Internet-based configuration + \item Products sorted by categories + \item Easy undo of every operation + \item Manages multiple concurrent orders + \end{itemize} + \end{itemize} +\end{minipage} +\begin{minipage}{4cm} + \includegraphics[width=4cm]{screenshots/Screenshot_20230224-194112.jpg} + \includegraphics[width=4cm]{screenshots/Screenshot_20230224-194119.jpg} + \includegraphics[width=4cm]{screenshots/Screenshot_20230224-195348.jpg} +\end{minipage} +\end{frame} + + +\begin{frame}{Taler-mdb} +\vfill +\begin{center} +\includegraphics[width=1.0\textwidth]{taler-in-use.png} +\end{center} +\vfill +\end{frame} + + +\begin{frame}{Partially Offline Payments with GNU Taler\footnote{Joint work with Emmanuel Benoist, Priscilla Huang and Sebastian Marchano}} + +\begin{center} +\resizebox{8cm}{7cm}{ +\begin{sequencediagram} + \newinst{pos}{\shortstack{PoS \\ + \\ \begin{tikzpicture} + \node [fill=gray!20,draw=black,thick ,align=center] {PoS key \\ PoS ID}; + \end{tikzpicture} + }} + \newinst[2]{customer}{\shortstack{Customer \\ + \\ \begin{tikzpicture} + \node [fill=gray!20,draw=black,thick ,align=center] {Digital \\ Wallet}; + \end{tikzpicture} + }} + \newinst[2]{backend}{\shortstack{Merchant Backend \\ + \\ \begin{tikzpicture}[shape aspect=.5] + \tikzset{every node/.style={cylinder, shape border rotate=90, draw,fill=gray!25}} + \node at (1.5,0) {\shortstack{{\tiny PoS key} \\ {\tiny PoS ID}}}; + \end{tikzpicture} + }} + \postlevel + \mess[0]{pos}{PoS ID}{customer} + \begin{sdblock}{optional}{} + \begin{callself}{customer}{Amount}{} + \end{callself} + \end{sdblock} + \prelevel + \prelevel + \prelevel + \prelevel + \prelevel + \begin{sdblock}{optional}{} + \begin{callself}{pos}{Amount}{} + \end{callself} + \end{sdblock} + \postlevel + \mess[0]{customer}{PoS ID, [Amount]?}{backend} + \mess[0]{backend}{Contract}{customer} + \postlevel + \mess[0]{customer}{Payment}{backend} + \begin{callself}{pos}{OTP(PoS key)}{} + \end{callself} + \prelevel + \prelevel + \begin{callself}{backend}{OTP(PoS key)}{} + \end{callself} + \mess[0]{backend}{OTP code}{customer} + \postlevel + \mess[0]{customer}{OTP code}{pos} +\end{sequencediagram} +} +\end{center} +\end{frame} + + +\begin{frame}{Other ongoing developments} + \begin{itemize} + \item Privacy-preserving auctions (trading, currency exchange) ({\tt oezguer@taler.net}) + \item Hardware and software support for embedded systems ({\tt mikolai@taler.net}) + \item GNU Name System registry with GNU Taler payments ({\tt schanzen@gnunet.org}) + \item Performance improvements for RSA in FLOSS crypto libraries (NLnet project) + \item Tax-deductable receipts for donations to charities (donau.git) + \item Unlinkable anonymous subscriptions and discount tokens (merchant.git, branch) + \item Support for illiterate and innumerate users\footnote{Background: \url{https://myoralvillage.org/}} + \end{itemize} +\end{frame} + + +\begin{frame}{How to support?} + \begin{description} + \item[Join:] { \url{https://lists.gnu.org/mailman/listinfo/taler}} + \item[Test:] \url{https://bugs.taler.net/} + \item[Translate:] \url{https://weblate.taler.net/}\footnote{Contact: \url{translation-volunteer@taler.net}} + \item[Integrate:] \url{https://docs.taler.net/} + \item[Develop:] \url{https://git.taler.net/} + \item[Apply:] \url{https://nlnet.nl/propose}, \url{https://nlnet.nl/taler} + \end{description} +\end{frame} + + +\begin{frame} +\frametitle{Do you have any questions?} +\vfill +References: +{\tiny + \begin{enumerate} + \item{Özgür Kesim, Christian Grothoff, Florian Dold and Martin Schanzenbach. + {\em Zero-Knowledge Age Restriction for GNU Taler}. + {\bf 27th European Symposium on Research in Computer Security (ESORICS), 2022}.} + \item{David Chaum, Christian Grothoff and Thomas Moser. + {\em How to issue a central bank digital currency}. + {\bf SNB Working Papers, 2021}.} + \item{Christian Grothoff, Bart Polot and Carlo von Loesch. + {\em The Internet is broken: Idealistic Ideas for Building a GNU Network}. + {\bf W3C/IAB Workshop on Strengthening the Internet Against Pervasive Monitoring (STRINT)}, 2014.} + \item{Jeffrey Burdges, Florian Dold, Christian Grothoff and Marcello Stanisci. + {\em Enabling Secure Web Payments with GNU Taler}. + {\bf SPACE 2016}.} + \item{Florian Dold, Sree Harsha Totakura, Benedikt M\"uller, Jeffrey Burdges and Christian Grothoff. + {\em Taler: Taxable Anonymous Libre Electronic Reserves}. + Available upon request. 2016.} + \item{Eli Ben-Sasson, Alessandro Chiesa, Christina Garman, Matthew Green, Ian Miers, Eran Tromer and Madars Virza. + {\em Zerocash: Decentralized Anonymous Payments from Bitcoin}. + {\bf IEEE Symposium on Security \& Privacy, 2016}.} + \item{David Chaum, Amos Fiat and Moni Naor. + {\em Untraceable electronic cash}. + {\bf Proceedings on Advances in Cryptology, 1990}.} + \item{Phillip Rogaway. + {\em The Moral Character of Cryptographic Work}. + {\bf Asiacrypt}, 2015.} \label{bib:rogaway} +\end{enumerate} +} +\end{frame} + + +\end{document} + + + diff --git a/presentations/comprehensive/main.tex b/presentations/comprehensive/main.tex @@ -792,7 +792,7 @@ positives in fraud detection \begin{itemize} \item Multi-tenant support \item Refunds - \item Tipping (Website pays visitor) + \item Templates \item Webhooks \item Inventory management (optional) \end{itemize} @@ -839,7 +839,7 @@ positives in fraud detection \begin{itemize} \item {\bf wallet-core} is the logic shared by all interfaces \item Applications exist for Android, F-Droid, - WebExtension (Chrome, Chromium, Firefox, etc.), iOS ({\bf WiP}) + WebExtension (Chrome, Chromium, Firefox, etc.), iOS \item Features include: \begin{itemize} \item Multi-currency support @@ -863,14 +863,18 @@ positives in fraud detection \begin{tikzpicture} \tikzstyle{def} = [node distance= 5em and 4.5em, inner sep=1em, outer sep=.3em]; \node (origin) at (0,0) {}; - \node (gui) [def,above=of origin,draw]{wallet-gui}; - \node (core) [def,below=of gui,draw]{wallet-core}; + \node (guia) [def,above left=of origin,draw]{Android}; + \node (guii) [def,above right=of origin,draw]{iOS}; + \node (guiw) [def,above=of origin,draw]{WebExtension}; + \node (core) [def,below=of guiw,draw]{wallet-core}; \node (sync) [def, draw, below left=of core] {Sync}; \node (taler) [def, draw, below right=of core] {Taler}; \node (anastasis) [def, draw, below=of core] {Anastasis}; \tikzstyle{C} = [color=black, line width=1pt] - \draw [<->, C] (gui) -- (core) node [midway, above, sloped] (TextNode) {}; + \draw [<->, C] (guia) -- (core) node [midway, above, sloped] (TextNode) {}; + \draw [<->, C] (guii) -- (core) node [midway, above, sloped] (TextNode) {}; + \draw [<->, C] (guiw) -- (core) node [midway, above, sloped] (TextNode) {}; \draw [<->, C] (core) -- (sync) node [midway, above, sloped] (TextNode) {Backup}; \draw [<->, C] (core) -- (taler) node [midway, above, sloped] (TextNode) {Payment}; \draw [<->, C] (core) -- (anastasis) node [midway, above, sloped] (TextNode) {Key Escrow}; @@ -928,18 +932,25 @@ positives in fraud detection \frametitle{Taler: Auditor Perspective} \begin{center} \begin{tikzpicture} - \tikzstyle{def} = [node distance=2em and 2.5em, inner sep=1em, outer sep=.3em]; - \node (origin) at (0,0) {}; - \node (httpd) [def,above left=of origin,draw]{auditor-httpd}; - \node (report) [def,above right=of origin,draw]{auditor-report}; - \node (postgres-A) [def, draw, below=of origin] {Postgres (Auditor)}; - \node (postgres-E) [def, draw, below=of postgres-A] {Postgres (Bank)}; + \tikzstyle{def} = [node distance=3em and 2.5em, inner sep=1em, outer sep=.3em]; + \node (origin) at (0,0) {Postgres (Auditor)}; + \node (httpd) [def,above=of origin,draw]{auditor-httpd}; + \node (spa) [def,above right=of origin,draw]{auditor-spa}; + \node (merchant) [def,above left=of origin,draw]{merchant}; + \node (report) [def,left=of origin,draw]{a-h-*}; + \node (wirereport) [def,right=of origin,draw]{a-h-wire-*}; + \node (postgres-E) [def, draw, below=of origin] {Postgres (Exchange)}; + \node (postgres-B) [def, draw, right=of postgres-E] {Postgres (Bank)}; \tikzstyle{C} = [color=black, line width=1pt] - \draw [->, C] (postgres-E) -- (postgres-A) node [midway, above, sloped] (TextNode) {sync}; - \draw [<->, C] (httpd) -- (postgres-A) node [midway, above, sloped] (TextNode) {}; - \draw [<->, C] (report) -- (postgres-A) node [midway, above, sloped] (TextNode) {}; + \draw [->, C] (postgres-E) -- (origin) node [midway, above, sloped] (TextNode) {sync}; + \draw [<->, C] (httpd) -- (origin) node [midway, above, sloped] (TextNode) {}; + \draw [<->, C] (httpd) -- (spa) node [midway, above, sloped] (TextNode) {}; + \draw [->, C] (merchant) -- (httpd) node [midway, above, sloped] (TextNode) {}; + \draw [<->, C] (report) -- (origin) node [midway, above, sloped] (TextNode) {}; + \draw [<->, C] (wirereport) -- (origin) node [midway, above, sloped] (TextNode) {}; + \draw [<->, C] (wirereport) -- (postgres-B) node [midway, above, sloped] (TextNode) {nexus}; \end{tikzpicture} \end{center} \end{frame} @@ -950,7 +961,7 @@ positives in fraud detection \begin{itemize} \item provides an implementation of the Wire Gateway for the exchange - \item supports EBICS 2.5 + \item supports EBICS 2.5 and 3.0 \item other APIs such as FinTS or PSD2-style XS2A APIs can be added without requiring changes to the Exchange \item was tested with GLS Bank (DE) and Postfinance (CH) accounts and real EUR/CHF @@ -1131,6 +1142,13 @@ positives in fraud detection \end{frame} +\begin{frame}{Cashless2ecash by Joel Haeberli} + \begin{center} + \includegraphics[width=\textwidth]{cashless2ecash.png} + \end{center} +\end{frame} + + \begin{frame}{TalDir (WiP)} TalDir is an extension to the existing peer-to-peer payment functionality.