marketing

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

commit b63d2e10c33548bb5951c797524d07ffa0454d8a
parent 12ff3b9284387cca845e052568d0aa28a914e11b
Author: Christian Grothoff <christian@grothoff.org>
Date:   Sun,  3 Jul 2022 18:58:21 +0200

intro for DZ

Diffstat:
Apresentations/bank/intro.tex | 549+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apresentations/bank/taler-logo-2021-inkscape.pdf | 0
2 files changed, 549 insertions(+), 0 deletions(-)

diff --git a/presentations/bank/intro.tex b/presentations/bank/intro.tex @@ -0,0 +1,549 @@ +\pdfminorversion=3 +\documentclass[fleqn,xcolor={usenames,dvipsnames}]{beamer} +\usepackage{amsmath} +\usepackage{multimedia} +\usepackage[utf8]{inputenc} +\usepackage{framed,color,ragged2e} +\usepackage[absolute,overlay]{textpos} +\usepackage{adjustbox} +\definecolor{shadecolor}{rgb}{0.8,0.8,0.8} +\usetheme{boxes} +\setbeamertemplate{navigation symbols}{} +\usepackage{xcolor} +\usepackage{tikz,eurosym} +\usepackage[normalem]{ulem} +\usepackage{listings} + +% 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]" +} + +\usetikzlibrary{shapes,arrows} +\usetikzlibrary{positioning} +\usetikzlibrary{calc} + +\title{GNU Taler} + +\setbeamertemplate{navigation symbols}{\includegraphics[width=0.5cm]{gnu.png}\hfill} +%\setbeamercovered{transparent=1} + +\author{F. Dold, C. Grothoff, L. Schumacher} +\date{\today} +\institute{Taler Systems SA} + + +\begin{document} + +\justifying + +\begin{frame} + \begin{center} + \LARGE {\bf GNU} + + \vfill + \includegraphics[width=0.66\textwidth]{taler-logo-2021-inkscape.pdf} + \end{center} +\begin{textblock*}{4cm}(.5cm,6.5cm) % {block width} (coords) + {\Large {\bf \url{taler.net}} \\ + IRC{\bf \#taler} \\ + {\small (on freenode)} \\ + twitter@taler \\ + mail@taler.net } +\end{textblock*} + +% Substitute based on who is giving the talk! + \begin{textblock*}{6cm}(6.7cm,7.7cm) % {block width} (coords) + {\hfill {\Large {\bf Florian Dold \&} \\ + \hfill {\bf Christian Grothoff}} \\ + \hfill \{dold,grothoff\}@taler.net } +\end{textblock*} + +\end{frame} + + +\section{Introduction} + +\begin{frame} + \vfill + \begin{center} + {\bf Part I: Introduction} + \end{center} + \vfill +\end{frame} + +\begin{frame}{Three Futures} +\begin{center} +\begin{tikzpicture} + \tikzstyle{def} = [node distance= 4em and 4.5em, inner sep=1em, outer sep=.3em]; + \node (origin) at (0,0) {}; + \node (china) [def, draw, above left=of origin]{Chinese Model}; + \node (defi) [def, draw, above right=of origin] {DeFi / DLT Model}; + \node (taler) [def, draw, below=of origin] {Taler}; + \tikzstyle{C} = [color=black, line width=1pt] + \draw [->, C] (defi) -- (taler) node [midway, above, sloped] (TextNode) {regulate}; + \draw [->, C] (defi) -- (taler) node [midway, below, sloped] (TextNode) {centralize}; + \draw [->, C] (china) -- (taler) node [midway, above, sloped] (TextNode) {privacy}; + \draw [->, C] (china) -- (taler) node [midway, below, sloped] (TextNode) {Free Software}; +\end{tikzpicture} +\end{center} +\end{frame} + + +\begin{frame}{Design goals for the GNU Taler Payment System} +GNU Taler must ... +\begin{enumerate} + \item {... be implemented as {\bf free software}.} + \item {... protect the {\bf privacy of buyers}.} + \item {... must enable the state to {\bf tax income} and crack down on + illegal business activities.} + \item {... prevent payment fraud.} + \item {... only {\bf disclose the minimal amount of information + necessary}.} + \item {... be usable.} + \item {... be efficient.} + \item {... avoid single points of failure.} + \item {... foster {\bf competition}.} +\end{enumerate} +\end{frame} + + +\begin{frame}{How does Taler operate?} + \vfill +\begin{center} +\includegraphics[width=0.8\textwidth]{operations.png} +\end{center} +\end{frame} + + +\begin{frame}{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}; + + \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}; + +\end{tikzpicture} +\end{center} +\end{frame} + + +\begin{frame}{GNU Taler Properties} +\begin{enumerate} + \item Enhanced digital efficiency (usability, convenience, speed) + \item Cash-like features (one-sided privacy, viable microtransactions) + \item Competitive features (age-restrictions, p2p payments, etc.) + \item Enhanced monetary policy options (friendly for central banks) + \item Increased resilience (full-stack replacement) + \item Internationally usable (including unbanked or tourists) + \item Low-cost and thus environmentally friendly + \item Free Software provides provider-neutral infrastructure + \item Compliant with regulation (AML, KYC, CFT) as privacy is one-sided and payments remain intermediated + \item Non-core components to be operated by private entities + \item Protocol is an open standard with freely available reference implementations + \item Possibility to limit amounts withdrawn by non-residents + \item Uses modern cryptography, highly regarded peer-reviewed design and implementation +\end{enumerate} +\end{frame} + + +\begin{frame}{Application Domains} +\begin{itemize} + \item Commercial bank payments + \item Central bank digital currency + \item Tokenization of digital assets + \item Layer-2 solution for crypto-currencies +\end{itemize} +\end{frame} + + +\section{Architecture} + +\begin{frame} + \vfill + \begin{center} + {\bf Part II: Architecture} + \end{center} + \vfill +\end{frame} + + + +\begin{frame}[fragile]{Option 1: Central Bank as Pure Regulator} +\begin{adjustbox}{max totalsize={.9\textwidth}{.7\textheight},center} +\begin{tikzpicture} + \tikzstyle{def} = [node distance= 6em and 6.5em, inner sep=1em, outer sep=.3em]; + \node (origin) at (0,0) {}; + \node (central) [def,above=of origin,draw]{Central Bank}; + \node (banka) [def, draw, below right=of exchange] {Commercial Bank B}; + \node (bankb) [def, draw, below left=of exchange] {Commercial Bank A}; + \node (consumera) [def, draw, below=of banka] {Consumers}; + \node (consumerb) [def, draw, below=of bankb] {Consumers}; + \tikzstyle{C} = [color=black, line width=1pt] + + \draw [->, C] (central) -- (banka) node [midway, above, sloped] (TextNode) {supervision}; + \draw [->, C] (central) -- (bankb) node [midway, above, sloped] (TextNode) {supervision}; + \draw [<->, C] (banka) -- (bankb) node [midway, above, sloped] (TextNode) {settlement}; + \draw [<->, C] (consumera) -- (banka) node [midway, above, sloped] (TextNode) {KYC}; + \draw [<->, C] (consumera) -- (banka) node [midway, below, sloped] (TextNode) {transact}; + \draw [<->, C] (consumerb) -- (bankb) node [midway, above, sloped] (TextNode) {KYC}; + \draw [<->, C] (consumerb) -- (bankb) node [midway, below, sloped] (TextNode) {transact}; +\end{tikzpicture} +\end{adjustbox} +The central bank could leave the operation of the core system to commercial +banks (see Auer, BIS 2021) and focus on (real-time) supervision of the system. +\end{frame} + + +\begin{frame}[fragile]{Option 2: Central Bank as Core System Operator} +\begin{adjustbox}{max totalsize={.9\textwidth}{.7\textheight},center} +\begin{tikzpicture} + \tikzstyle{def} = [node distance= 6em and 6.5em, inner sep=1em, outer sep=.3em]; + \node (origin) at (0,0) {}; + \node (central) [def,above=of origin,draw]{Central Bank}; + \node (banka) [def, draw, below right=of exchange] {Commercial Bank B}; + \node (bankb) [def, draw, below left=of exchange] {Commercial Bank A}; + \node (consumera) [def, draw, below=of banka] {Consumers}; + \node (consumerb) [def, draw, below=of bankb] {Consumers}; + \tikzstyle{C} = [color=black, line width=1pt] + + \draw [<->, C] (central) -- (banka) node [midway, above, sloped] (TextNode) {transact}; + \draw [<->, C] (central) -- (bankb) node [midway, above, sloped] (TextNode) {transact}; + \draw [<-, C] (consumera) -- (banka) node [midway, above, sloped] (TextNode) {KYC}; + \draw [<-, C] (consumera) -- (banka) node [midway, below, sloped] (TextNode) {transact}; + \draw [<-, C] (consumerb) -- (bankb) node [midway, above, sloped] (TextNode) {KYC}; + \draw [<-, C] (consumerb) -- (bankb) node [midway, below, sloped] (TextNode) {transact}; +\end{tikzpicture} +\end{adjustbox} +If the central bank operates the core system, interbank settlements +are no longer required. +\end{frame} + + +\begin{frame}[fragile]{Option 3: Central Bank M.I.A.} +\begin{adjustbox}{max totalsize={.9\textwidth}{.7\textheight},center} +\begin{tikzpicture} + \tikzstyle{def} = [node distance= 6em and 6.5em, inner sep=1em, outer sep=.3em]; + \node (origin) at (0,0) {}; + \node (central) [def,above=of origin,draw]{Regulator / Auditor}; + \node (banka) [def, draw, below right=of exchange] {Commercial Bank C}; + \node (bankb) [def, draw, below left=of exchange] {Commercial Bank A}; + \node (bankc) [def, draw, below =of exchange] {Commercial Bank B}; + \node (consumera) [def, draw, below=of banka] {Consumers}; + \node (consumerb) [def, draw, below=of bankb] {Consumers}; + \node (consumerc) [def, draw, below=of bankc] {Consumers}; + \tikzstyle{C} = [color=black, line width=1pt] + + \draw [->, C] (central) -- (banka) node [midway, above, sloped] (TextNode) {supervision}; + \draw [->, C] (central) -- (bankb) node [midway, above, sloped] (TextNode) {supervision}; + \draw [->, C] (central) -- (bankc) node [midway, above, sloped] (TextNode) {supervision}; + \draw [<->, C] (banka) -- (bankc) node [midway, above, sloped] (TextNode) {settlement}; + \draw [<->, C] (consumerb) -- (bankb) node [midway, above, sloped] (TextNode) {KYC}; + \draw [<->, C] (consumera) -- (banka) node [midway, above, sloped] (TextNode) {KYC}; + \draw [<->, C] (consumera) -- (banka) node [midway, below, sloped] (TextNode) {transact}; + \draw [<->, C] (consumerc) -- (bankc) node [midway, above, sloped] (TextNode) {KYC}; + \draw [<->, C] (consumerc) -- (bankc) node [midway, below, sloped] (TextNode) {transact}; +\end{tikzpicture} +\end{adjustbox} +If participation is voluntary, bank $A$ may not offer GNU Taler, or not +settle with other banks. Its customers may of course choose to be onboarded via +other banks to avoid being excluded. +\end{frame} + + + +\begin{frame}[fragile]{Bank Operator Perspective} +\begin{adjustbox}{max totalsize={.9\textwidth}{.7\textheight},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 (nexus) [def, draw, below right=of exchange] {Nexus}; + \node (corebanking) [def, draw, below left=of nexus] {Core Banking}; + \node (nginx) [def, draw, above=of exchange]{Nginx}; + \node (postgres) [def, draw, below left=of exchange]{Postgres}; + \node (postgres-nexus) [def, draw, below right=of nexus]{Postgres}; + + \tikzstyle{C} = [color=black, line width=1pt] + + \draw [<-, C] (exchange) -- (nginx) node [midway, above, sloped] (TextNode) {REST API}; + \draw [<-, C] (postgres) -- (exchange) node [midway, above, sloped] (TextNode) {SQL}; + \draw [<-, C] (postgres-nexus) -- (nexus) node [midway, above, sloped] (TextNode) {SQL}; + \draw [<-, C] (nexus) -- (exchange) node [midway, above, sloped] (TextNode) {Internal REST API}; + \draw [<-, C] (corebanking) -- (nexus) node [midway, above, sloped] (TextNode) {EBICS/FinTS}; + +\end{tikzpicture} +\end{adjustbox} +\end{frame} + + +\begin{frame} +\frametitle{Regulator 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{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) {}; +\end{tikzpicture} +\end{center} +\end{frame} + + +\begin{frame} +\frametitle{Retailer Perspective} +\begin{center} +\begin{tikzpicture} + \tikzstyle{def} = [node distance= 5em and 4.5em, inner sep=1em, outer sep=.3em]; + \node (origin) at (0,0) {}; + \node (frontend) [def,above=of origin,draw]{merchant-frontend}; + \node (backend) [def,below=of frontend,draw]{taler-backend}; + \node (postgres) [def, draw, below left=of backend] {Postgres}; + \node (sqlite) [def, draw, below=of backend] {Sqlite}; + \node (alt) [def, draw, below right=of backend] {...}; + + \tikzstyle{C} = [color=black, line width=1pt] + + \draw [->, C] (frontend) -- (backend) node [midway, above, sloped] (TextNode) {REST API}; + \draw [<->, C] (backend) -- (postgres) node [midway, above, sloped] (TextNode) {SQL}; + \draw [<->, C] (backend) -- (sqlite) node [midway, above, sloped] (TextNode) {SQL}; + \draw [<->, C] (backend) -- (alt) node [midway, above, sloped] (TextNode) {SQL}; +\end{tikzpicture} +\end{center} +\end{frame} + + +\begin{frame} +\frametitle{Consumer Perspective} +\begin{center} +\begin{tikzpicture} + \tikzstyle{def} = [node distance= 5em and 4.5em, inner sep=1em, outer sep=.3em]; + \node (origin) at (0,0) {}; + \node (android) [def,above right=of origin,draw]{Android App}; + \node (ios) [def,above left=of origin,draw]{iOS App}; + \node (browser) [def,above=of origin,draw]{Browser Extension}; + \node (core) [def,below=of browser,draw]{wallet-core}; + \node (sync) [def, draw, below left=of core] {Sync}; + \node (taler) [def, draw, below=of core] {Taler}; + \node (anastasis) [def, draw, below right=of core] {Anastasis}; + \node (taldir) [def, draw, left=of core] {TalDir}; + \node (mailbox) [def, draw, right=of core] {Mailbox}; + + \tikzstyle{C} = [color=black, line width=1pt] + \draw [->, C] (ios) -- (core) node [midway, above, sloped] (TextNode) {}; + \draw [->, C] (android) -- (core) node [midway, above, sloped] (TextNode) {}; + \draw [->, C] (browser) -- (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}; + \draw [->, C] (core) -- (taldir) node [midway, above, sloped] (TextNode) {Registration}; + \draw [->, C] (core) -- (mailbox) node [midway, above, sloped] (TextNode) {Messaging}; +\end{tikzpicture} +\end{center} +\end{frame} + +\section{Deployment} + +\begin{frame} + \vfill + \begin{center} + {\bf Part III: Deployment} + \end{center} + \vfill +\end{frame} + + +\begin{frame}{Alpha: internal-only} +Objective: +\begin{center} +{\bf Bank staff to gain first operational experience.} +\end{center} +Proposed setup: + \begin{itemize} + \item Nexus with key material for escrow bank account + \item Taler exchange with Nexus banking backend + \item Offline key signing + \end{itemize} +Proposed timeline: Q4-2022. +\end{frame} + + +\begin{frame}{Alpha: internal-only} +Technical tasks in Alpha phase: +\begin{itemize} + \item Setup minimal merchant, run test transactions $\Rightarrow$ Integration test + \item Document and verify procedures (setup, maintenance, disaster recovery) + \item Database synchronization setup with auditor ($\Rightarrow$ generate audit reports) + \item Test KYC integration {\bf (*)} + \item Test system upgrade procedure {\bf (*)} + \item Test system termination (out-of-business) procedure {\bf (*)} +\end{itemize} +Once Alpha is complete and BaFin approved {\bf (*)}, move to Beta phase. +\end{frame} + + +\begin{frame}{Beta: invitation-only} +Objectives: +\begin{center} +{\bf Merchants gain first operational experience.} \\ +{\bf Taler/Bank gain first support experience.} +\end{center} +Changes to setup: + \begin{itemize} + \item Limit access to production system (operational security) + \item Synchronous backup to Auditor and locally + \item Deploy legally binding ToS/PP + \end{itemize} +Proposed timeline: Q1-Q2'2023. +\end{frame} + + +\begin{frame}{Beta: invitation-only} +Technical tasks in Beta phase: +\begin{itemize} + \item Onboard first merchant(s) with limited reach + \item Develop customer support procedures + \item Security audit of operational security + \item Integrate system monitoring (load, disk capacity, etc.) + \item Verify deployment is {\bf reproducibly deterministic} +\end{itemize} +Once everyone is happy with Beta, move to production. +\end{frame} + + +\begin{frame} +\frametitle{Do you have any questions?} +\vfill +References: +{\tiny + \begin{enumerate} + \item{Martin Summer and Hannes Hermanky. + {\em A digital euro and the future of cash}. + {\bf Monetary Policy \& The Economy Q1-Q2/22}, 2022.} + \item{David Chaum, Christian Grothoff and Thomas Moser. + {\em How to issue a central bank digital currency}. + {\bf SNB Working Papers}, 3/2021.} + \item{Antoine d'Aligny, Emmanuel Benoist and Christian Grothoff. + {\em Project Depolymerization: Tokenization of Blockchains}. + {\bf BRAINS'22}, 2022.} + \item{Antoine d'Aligny, Emmanuel Benoist, Florian Dold, Christian Grothoff, \"Ozg\"ur Kesim and Martin Schanzenbach. + {\em Who comes after us? The correct mindset for designing a Central Bank Digital Currency}. + {\bf SUREF Policy Note}, Issue No 279, May 2022.} + \item{Marco Boss. + {\em GNU Taler Scalability}. + {\bf Bachelor Thesis, Bern University of Applied Sciences, 2022}.} + \item{Gian Demarmels and Lucien Heuzeveldt. + {\em Adding Schnorr's Blind Signature in Taler}. + {\bf Bachelor Thesis, Bern University of Applied Sciences, 2021}.} + \item{Florian Dold. + {\em The GNU Taler System: Practical and Provably Secure Electronic Payments}. + {\bf PhD Thesis, University of Rennes, 2019}.} + \item{Christian Grothoff and Alex Pentland. + {\em Digital cash and privacy: What are the alternatives to Libra?}. + {\bf MIT Media Lab}, 2019.} + \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{David Chaum, Amos Fiat and Moni Naor. + {\em Untraceable electronic cash}. + {\bf Proceedings on Advances in Cryptology, 1990}.} +\end{enumerate} +} +\end{frame} + +\end{document} diff --git a/presentations/bank/taler-logo-2021-inkscape.pdf b/presentations/bank/taler-logo-2021-inkscape.pdf Binary files differ.