commit 325249f53fa958ac369cf7ebee70d0dc8f7bd747
parent ab1cf244064525caa55893750dce871d03b8dcf5
Author: Christian Grothoff <grothoff@gnunet.org>
Date: Mon, 11 Apr 2022 14:42:30 +0200
ca draft
Diffstat:
1 file changed, 238 insertions(+), 0 deletions(-)
diff --git a/presentations/2021-cb/cbc2.tex b/presentations/2021-cb/cbc2.tex
@@ -0,0 +1,238 @@
+\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{tikz,eurosym}
+\usepackage[normalem]{ulem}
+\usepackage{listings}
+\usepackage{adjustbox}
+
+% 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}
+%\subtitle{}
+
+\setbeamertemplate{navigation symbols}{\includegraphics[width=1cm]{inria.pdf} \includegraphics[width=2.3cm]{bfh.png} \includegraphics[width=1.6cm]{fub.pdf} \includegraphics[width=0.4cm]{ashoka.png} \includegraphics[width=0.4cm]{gnu.png} \includegraphics[width=1cm]{logo-2020.jpg} \hfill}
+%\setbeamercovered{transparent=1}
+
+\author{}
+\date{\today}
+\institute{The GNU Project \& Taler Systems SA}
+
+
+\begin{document}
+
+\justifying
+
+\begin{frame}
+ \begin{center}
+ \LARGE {\bf GNU Taler}
+
+ \vfill
+ \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} \\
+ \href{https://taler-systems.com/}{taler-systems.com}}
+\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}
+
+
+
+\begin{frame}{Meta Problems}
+ \begin{itemize}
+ \item Meta proposed that for Libra/Diem they would ``firewall'' the Facebook profile data
+ identifying users (KYC) from the transaction data.
+ \item Only ``authorities'' would be able to link purchases and real-world identities. \pause
+ \item Few believed this would be adequate, as such ``firewalls'' can be torn down, and
+ which ``authorities'' would be trusted to assess the link data is a problem with no easy solution.
+ \end{itemize}
+ \pause
+ \begin{center}
+ {\bf Why should citizens trust central banks implement a design that was not acceptable for Meta?}
+ \end{center}
+\end{frame}
+
+
+\begin{frame}{Work in Progress: Summary}
+\begin{itemize}
+\item Scalability
+\item Programmability
+\item Usability
+\end{itemize}
+\end{frame}
+
+
+\begin{frame}{Taler Scalability}
+On a {\bf single desktop system}, we measured:
+\begin{itemize}
+\item {\bf 1k+} withdraws\&deposits/second (client and server doing 2048-bit RSA)
+\item {\bf 50k+} import inbound wire transfers per second (to RTGS)
+\item {\bf 33k+} transactions aggregated/second
+\item {\bf 62k+} export outbound wire transfers per second (to RTGS)
+\end{itemize}
+{\bf 10k+} transactions using 60 clients, and separate frontend/backend servers
+in distributed deployment on Grid5000.
+\end{frame}
+
+
+\begin{frame}{Taler Scalability: Open Challenges}
+Some say, 10k TPS is enough, but:\footnote{We only had a \EUR{10k} / 6 months EU grant for the Grid5000 experiments.}
+\begin{itemize}
+\item Is the load generation realistic?
+\item What happens if there is a signficant take-up due to micro-transactions?
+\item The experiments do not include adversarial load. What is the worst an attacker can do to performance?
+\item Advanced properties were not evaluated:
+\begin{itemize}
+\item Auditing logic
+\item Dynamic reconfiguration of shards
+\item Fail-over
+\item ...
+\end{itemize}
+\end{itemize}
+
+\end{frame}
+
+
+\begin{frame}{Taler Programmability}
+The Taler core system now includes:
+\begin{itemize}
+\item Contracts with merchant-granted refunds to consumers
+\item Coins with age-restrictions set by KYC'ed bank account holders
+\item General extension mechansism for contracts to make ``conditional'' payments
+\end{itemize} \pause
+We would like to add:
+\begin{itemize}
+\item Currency conversion services (e.g. EUR $\leftrightarrow$ USD $\leftrightarrow$ CHF)
+\item Sealed-bid auctions
+\item Privacy-preserving loyalty programs for merchants (buy 10, 11th is free, etc.)
+\end{itemize}
+\end{frame}
+
+
+\begin{frame}{Taler Usability}
+Extensive work was done with Dr. Pena to streamline:
+\begin{itemize}
+\item withdraw,
+\item payment,
+\item backup and recovery
+\end{itemize}
+processes as well as the merchant ``backoffice''.
+\pause
+
+We would like to add:
+\begin{itemize}
+\item Easy to use P2P payments (pay to e-mail, pay to SMS, pay via NFC/Bluetooth/QR code)
+\item Financial assistance (expense analysis, spending limits, buddy notifications)
+\end{itemize}
+\end{frame}
+
+
+\begin{frame}{}
+\hfill
+\begin{center}
+{\bf What would you like to focus on?}
+\end{center}
+\hfill
+\end{frame}
+
+
+\end{document}
+
+