marketing

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

commit bd2fd7fbde28b0eec7f5e848ca13cf4b43bf5f8b
parent ba8058bf52ae565e7b5d68379e4e8af4fff7cf71
Author: Christian Grothoff <christian@grothoff.org>
Date:   Sun, 16 Jul 2017 22:25:30 +0200

update presentation, merging in good parts of RMLL

Diffstat:
Mpresentations/comprehensive/main.tex | 450+++++++++++++++++++++++++++++++++++++++++++++++--------------------------------
1 file changed, 269 insertions(+), 181 deletions(-)

diff --git a/presentations/comprehensive/main.tex b/presentations/comprehensive/main.tex @@ -95,7 +95,7 @@ \usetikzlibrary{positioning} \usetikzlibrary{calc} -\title{Enabling Secure Web Payments with GNU Taler} +\title{GNU Taler} %\subtitle{} \setbeamertemplate{navigation symbols}{\includegraphics[width=1cm]{inria.pdf} \includegraphics[width=0.5cm]{gnu.png} \includegraphics[width=0.5cm]{ashoka.png}\hfill} @@ -109,23 +109,34 @@ \begin{document} \justifying -\begin{frame}[plain] -\titlepage -\vfill -\begin{center} -\tiny -``I think one of the big things that we need to do, is we need -to get a way from true-name payments on the Internet. The credit -card payment system is one of the worst things that happened for the -user, in terms of being able to divorce their access from their -identity.'' \hfill --Edward Snowden, IETF 93 (2015) -\end{center} -\end{frame} +\begin{frame} + \begin{center} + \LARGE {\bf GNU} + \vfill +% \includegraphics[width=0.66\textwidth]{logo-2017-fr.pdf} + \includegraphics[width=0.66\textwidth]{../investors/taler-logo-2017.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*}{4cm}(8cm,7.5cm) % {block width} (coords) +% {\hfill {\Large {\bf jeff \&} \\ +% \hfill {\bf grothoff}} \\ +% \hfill \{jeff,grothoff\}@taler.net } +%\end{textblock*} + +\end{frame} -\begin{frame}%[t] +\begin{frame}{A Social Problem} % \vfill This was a question posed to RAND researchers in 1971: @@ -138,10 +149,75 @@ identity.'' \hfill --Edward Snowden, IETF 93 (2015) \begin{center} \Large \textbf{Mastercard/Visa are too transparent.} \end{center} +\vfill + \begin{center} +``I think one of the big things that we need to do, is we need +to get a way from true-name payments on the Internet. The credit +card payment system is one of the worst things that happened for the +user, in terms of being able to divorce their access from their +identity.'' \hfill --Edward Snowden, IETF 93 (2015) +\end{center} + +\end{frame} + + + +\section{The Bank's Problem} +\begin{frame}{The Bank's Problem} + + 3D secure (``verified by visa'') is a nightmare: + + \begin{minipage}{5cm} + \begin{itemize} + \item Complicated process + \item Shifts liability to consumer + \item Significant latency + \item Can refuse valid requests + \item Legal vendors excluded + \item No privacy for buyers + \end{itemize} + \end{minipage} + \begin{minipage}{5cm} + \includegraphics[width=\textwidth]{illustrations/cc3ds.pdf} + \end{minipage} + \vfill + Online credit card payments will be replaced, but with what? +\end{frame} + + +\begin{frame}{The Bank's Problem} +\vfill + \begin{textblock*}{12cm}(0.5cm,1cm) % {block width} (coords) + \begin{itemize} + \item Global tech companies push oligopolies + \item Privacy and federated finance are at risk +% \item 30\% fees are conceivable + \item Economic sovereingity is in danger + \end{itemize} +\end{textblock*} +\begin{textblock*}{4cm}(3.5cm,5.2cm) % {block width} (coords) + {\includegraphics[width=\textwidth]{../investors/competitor-logos/amazon.png}} +\end{textblock*} +\begin{textblock*}{2cm}(7cm,3cm) % {block width} (coords) + {\includegraphics[width=\textwidth]{../investors/competitor-logos/alipay.jpeg}} +\end{textblock*} +\begin{textblock*}{2cm}(3cm,3.5cm) % {block width} (coords) + {\includegraphics[width=\textwidth]{../investors/competitor-logos/paypal.jpeg}} +\end{textblock*} +\begin{textblock*}{2cm}(9cm,5cm) % {block width} (coords) + {\includegraphics[width=\textwidth]{../investors/competitor-logos/applepay.jpeg}} +\end{textblock*} +\begin{textblock*}{2cm}(7.5cm,5.9cm) % {block width} (coords) + {\includegraphics[width=\textwidth]{../investors/competitor-logos/samsungpay.jpeg}} +\end{textblock*} +\begin{textblock*}{1cm}(9.5cm,6.3cm) % {block width} (coords) + {\includegraphics[width=\textwidth]{../investors/competitor-logos/android_pay.png}} +\end{textblock*} +\vfill \end{frame} -\begin{frame}{Bitcoin} +\begin{frame}{The Distraction: Bitcoin} \begin{itemize} \item Unregulated payment system and currency: @@ -185,7 +261,11 @@ ZeroCoin, CryptoNote (Monero) and ZeroCash (ZCash) offer anonymity. \begin{frame} \vfill \begin{center} -{\bf Is society ready for an anarchistic economy?} +{\bf Do you want to have a libertarian economy?} +\end{center} + \vfill +\begin{center} +{\bf Do you want to live under total surveillance?} \end{center} \vfill \end{frame} @@ -210,22 +290,48 @@ ZeroCoin, CryptoNote (Monero) and ZeroCash (ZCash) offer anonymity. \end{frame} +\section{What is Taler?} \begin{frame}{What is Taler?} \vfill \begin{center} -Taler is an electronic payment system. +Taler is an electronic instant payment system. \end{center} \begin{itemize} - \item Pay in existing currencies (i.e. EUR, USD) - \item Uses electronic coins stored in wallets on customer's device + \item Uses electronic coins stored in {\bf wallets} on customer's device + \item Like {\bf cash} + \item Pay in {\bf existing currencies} (i.e. EUR, USD, BTC), \\ + or use it to create new {\bf regional currencies} \end{itemize} \vfill \end{frame} \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}; + + \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} % TODO: replace with simplified NEW architecture picture! -\frametitle{Architecture of GNU Taler} +\frametitle{Architecture of Taler} \begin{center} \includegraphics[width=0.9\textwidth]{illustrations/taler-arch-full.pdf} @@ -248,41 +354,65 @@ Taler is an electronic payment system. \end{frame} -\begin{frame}{Value proposition: Customer} +\begin{frame}{Social Impact of Taler} + \begin{center} + \includegraphics[height=0.8\textheight]{../../social-impact.pdf} + \end{center} +\end{frame} + + +\begin{frame}{Use Case: Journalism} + Today: \begin{itemize} - \item Convenient: pay with one click - \item Guaranteed: never fear being rejected by false-positives in the fraud detection - \item Secure: like cash, except no worries about counterfeit - \item Privacy-preserving: payment requires no personal information - \item Stable: no currency fluctuations, pay in traditional currencies - \item Free software: no hidden ``gadgets'', third parties can verify + \item Corporate structure % ($\Rightarrow$ filter) + \item Advertising primary revenue % ($\Rightarrow$ dependence) + \item Tracking readers critical for business success + \item Journalism and marketing hard to distinguish + \end{itemize}\vfill\pause + With GNU Taler: + \begin{itemize} + \item One-click micropayments per article + \item Hosting requires no expertise % (no PCI DSS) + \item Reader-funded reporting separated from marketing + \item Readers can remain anonymous \end{itemize} \end{frame} -\begin{frame}{Value proposition: Merchant} +\begin{frame}{Use Cases: Refugee Camps} + Today: + \begin{itemize} + \item Non-bankable + \item Direct distribution of goods to population + \item Limited economic activity in camps + \item High level of economic dependence + \end{itemize}\vfill\pause + With GNU Taler: \begin{itemize} - \item Fast: transactions at Web-speed - \item Secure: signed contracts, no legitimate customer rejected by fraud decection - \item Free software: competitive pricing and support - \item Low fees: efficient protocol + no fraud $=$ low costs - \item Flexible: any currency, any amount - \item Ethical: no fluctuation risk, no pyramid scheme, not suitable for illegal business - \item Legal: complies with Regulation (EU) 2016/679 (GDPR)\footnote{Requires privacy by design and data minimization for all data processing in Europe after 25.5.2018.} + \item Local currency issued as basic income backed by aid + \item Taxation possible based on economic status + \item Local governance enabled by local taxes + \item Increased economic independence and political participation \end{itemize} \end{frame} -\begin{frame}{Value proposition: Government} +\begin{frame}{Use Case: Anti-Spam} + Today, p$\equiv$p provides authenticated encryption for e-mail: \begin{itemize} - \item Libre $=$ commons: no monopoly, preserve independence - \item Taxable: reduces black markets - \item Efficient: high transaction costs hurt the economy - \item Secure: signed contracts, no counterfeit - \item Audited: no bad banks - \item Private: protection against foreign espionage + \item Free software + \item Easy to use opportunistic encryption + \item Available for Outlook, Android, Enigmail + \item Spies \& spam filters can no longer inspect content + \end{itemize}\vfill\pause + With GNU Taler: + \begin{itemize} + \item Peer-to-peer payments via e-mail + \item If unsolicited sender, hide messages from user \& + automatically request payment from sender + \item Sender can attach payment to be moved to inbox + \item Receiver may grant refund to sender \end{itemize} - \hfill \includegraphics[width=4cm]{pics/blog_nsa_swift.jpg} \end{frame} @@ -301,50 +431,6 @@ Taler is an electronic payment system. \end{frame} - -\begin{frame}{Merchant Integration: Wallet Detection} - \lstset{language=JavaScript} - \lstinputlisting{figs/taler-presence-js.html} -% \caption{Sample code to detect the Taler wallet. Allowing the -% Web site to detect the presence of the wallet leaks one bit -% of information about the user. The above logic also works -% if the wallet is installed while the page is open.} -% \label{listing:presence} -\end{frame} - - -\begin{frame}{Merchant Integration: Payment Request} -% \begin{figure}[p!] - \lstset{language=HTML5} - \lstinputlisting{figs/taler-402.html} -% \caption{Sample HTTP response to prompt the wallet to show an offer.} -% \label{listing:http-contract} -% \end{figure} - -% \begin{figure*}[p!] -% \lstset{language=HTML5} -% \lstinputlisting{figs/taler-contract.html} -% \caption{Sample JavaScript code to prompt the wallet to show an offer. -% Here, the contract is fetched on-demand from the server. -% The {\tt taler\_pay()} function needs to be invoked -% when the user triggers the checkout.} -% \label{listing:contract} -% \end{figure*} -\end{frame} - - -\begin{frame}{Merchant Integration: Contract} - % \begin{figure*}[t!] - {\tiny - \lstset{language=JavaScript} - \lstinputlisting{figs/taler-contract.json} -% \caption{Minimal Taler contract over a digital article with a value of \EUR{0.10}. The merchant will pay transaction fees up to \EUR{0.01}. The hash over the wire transfer information was truncated to make it fit to the page.} -% \label{listing:json-contract} - % \end{figure*} - } -\end{frame} - - \begin{frame}{How does it work?} We use a few ancient constructions: \begin{itemize} @@ -358,28 +444,6 @@ But of course we use modern instantiations. \end{frame} -\begin{frame}{Global setup: Pick an Elliptic curve} -Need: -\begin{description} -\item[$G$]{generator in ECC curve, a point} -\item[$o$]{size of ECC group, $o := |G|$, $o$ prime} -\end{description} -Now we can, for example, compute: -\begin{align*} - A &= G + G \\ - &= 2 G \\ - B &= A + G \\ - &= 3 G \\ - C &= c G \texttt { for } c \in {\mathbb Z} -\end{align*} -Note: -\begin{align*} -% 0 &= n G \\ - G &= (o + 1) G -\end{align*} -\end{frame} - - \begin{frame}{Exchange setup: Create a denomination key (RSA)} \begin{minipage}{6cm} \begin{enumerate} @@ -537,6 +601,7 @@ Note: \end{center} \end{frame} + \begin{frame}{Customer: Build shopping cart} \begin{center} \begin{tikzpicture} @@ -552,6 +617,49 @@ Note: \end{frame} +\begin{frame}{Merchant Integration: Wallet Detection} + \lstset{language=JavaScript} + \lstinputlisting{figs/taler-presence-js.html} +% \caption{Sample code to detect the Taler wallet. Allowing the +% Web site to detect the presence of the wallet leaks one bit +% of information about the user. The above logic also works +% if the wallet is installed while the page is open.} +% \label{listing:presence} +\end{frame} + + +\begin{frame}{Merchant Integration: Payment Request} +% \begin{figure}[p!] + \lstset{language=HTML5} + \lstinputlisting{figs/taler-402.html} +% \caption{Sample HTTP response to prompt the wallet to show an offer.} +% \label{listing:http-contract} +% \end{figure} + +% \begin{figure*}[p!] +% \lstset{language=HTML5} +% \lstinputlisting{figs/taler-contract.html} +% \caption{Sample JavaScript code to prompt the wallet to show an offer. +% Here, the contract is fetched on-demand from the server. +% The {\tt taler\_pay()} function needs to be invoked +% when the user triggers the checkout.} +% \label{listing:contract} +% \end{figure*} +\end{frame} + + +\begin{frame}{Merchant Integration: Contract} + % \begin{figure*}[t!] + {\tiny + \lstset{language=JavaScript} + \lstinputlisting{figs/taler-contract.json} +% \caption{Minimal Taler contract over a digital article with a value of \EUR{0.10}. The merchant will pay transaction fees up to \EUR{0.01}. The hash over the wire transfer information was truncated to make it fit to the page.} +% \label{listing:json-contract} + % \end{figure*} + } +\end{frame} + + \begin{frame}{Merchant: Propose contract (EdDSA)} \begin{minipage}{6cm} \begin{enumerate} @@ -1021,6 +1129,7 @@ Note: \item To give unlinkable change. \item To give refunds to an anonymous customer. \item To expire old keys and migrate coins to new ones. + \item To handle protocol aborts. \end{itemize} \noindent \begin{center} @@ -1031,45 +1140,6 @@ Note: -\begin{frame}{Operational security} - \begin{center} - \resizebox{\textwidth}{!}{ -\begin{tikzpicture}[ - font=\sffamily, - every matrix/.style={ampersand replacement=\&,column sep=2cm,row sep=2cm}, - source/.style={draw,thick,rounded corners,fill=green!20,inner sep=.3cm}, - process/.style={draw,thick,circle,fill=blue!20}, - sink/.style={source,fill=green!20}, - datastore/.style={draw,very thick,shape=datastore,inner sep=.3cm}, - dots/.style={gray,scale=2}, - to/.style={->,>=stealth',shorten >=1pt,semithick,font=\sffamily\footnotesize}, - every node/.style={align=center}] - - % Position the nodes using a matrix layout - \matrix{ - \node[source] (wallet) {Wallet}; - \& \node[process] (browser) {Browser}; - \& \node[process] (shop) {Web shop}; - \& \node[sink] (backend) {Taler backend}; \\ - }; - - % Draw the arrows between the nodes and label them. - \draw[to] (browser) to[bend right=50] node[midway,above] {(4) signed contract} - node[midway,below] {(signal)} (wallet); - \draw[to] (wallet) to[bend right=50] node[midway,above] {(signal)} - node[midway,below] {(5) signed coins} (browser); - \draw[<->] (browser) -- node[midway,above] {(3,6) custom} - node[midway,below] {(HTTPS)} (shop); - \draw[to] (shop) to[bend right=50] node[midway,above] {(HTTPS)} - node[midway,below] {(1) proposed contract / (7) signed coins} (backend); - \draw[to] (backend) to[bend right=50] node[midway,above] {(2) signed contract / (8) confirmation} - node[midway,below] {(HTTPS)} (shop); -\end{tikzpicture} -} -\end{center} -\end{frame} - - \section{Competitor analysis} \begin{frame}{Competitor comparison} \begin{center} \small @@ -1090,43 +1160,18 @@ Note: \end{frame} -\begin{frame}{Current technical developments} - \begin{itemize} - \item Improving wallet (error handling, features, browser support) - \item Ongoing work on exchange auditing - \item Tutorial for merchants - \item Tutorial for Web shop integration - \end{itemize} - \vfill - \begin{center} - \url{https://api.taler.net/} - \end{center} -\end{frame} - - -\begin{frame}{Business considerations} +\begin{frame}{How to support?} \begin{itemize} - \item Exchange needs to be a legal (!) business to operate. - \item Exchange operator income is from {\em transaction fees}. - \item Created Taler Systems S.A. in Luxembourg. - \item Now trying to find partners and financing for startup. + \item Join: \href{https://lists.gnu.org/mailman/listinfo/taler}{taler@gnu.org}, \href{irc://irc.freenode.net/\#taler}{\#taler} + \item Coding \& design: \url{https://gnunet.org/bugs/} + \item Translation: \url{https://git.taler.net/www.git/tree/locale/fr/LC_MESSAGES/messages.po} + \item Integration: \url{https://docs.taler.net/} + \item Donations: \url{https://gnunet.org/ev} + \item Funding: \url{https://taler.net/en/investors.html} \end{itemize} \end{frame} -%\begin{frame}{Community considerations} -% \begin{itemize} -% \item Initial accumulation: Who gets to mint currency? -% \item Speculation: Who controls the money supply? -% \item Social welfare: -% \begin{itemize} -% \item Who gets to set tax rules and rates? -% \item Who gets to allocate tax revenue? -% \end{itemize} -% \end{itemize} -%\end{frame} - - \begin{frame}{Conclusion} \begin{center} {\bf What can we do?} @@ -1182,6 +1227,13 @@ References: \end{frame} + + +\end{document} + + + + \begin{frame}{Taler {\tt /withdraw/sign}} % Customer withdrawing coins with blind signatures % \bigskip @@ -1520,5 +1572,41 @@ Merchant and exchange see only the public coin $\langle C, S_{DK}(C) \rangle$. \end{frame} +\begin{frame}{Operational security} + \begin{center} + \resizebox{\textwidth}{!}{ +\begin{tikzpicture}[ + font=\sffamily, + every matrix/.style={ampersand replacement=\&,column sep=2cm,row sep=2cm}, + source/.style={draw,thick,rounded corners,fill=green!20,inner sep=.3cm}, + process/.style={draw,thick,circle,fill=blue!20}, + sink/.style={source,fill=green!20}, + datastore/.style={draw,very thick,shape=datastore,inner sep=.3cm}, + dots/.style={gray,scale=2}, + to/.style={->,>=stealth',shorten >=1pt,semithick,font=\sffamily\footnotesize}, + every node/.style={align=center}] + + % Position the nodes using a matrix layout + \matrix{ + \node[source] (wallet) {Wallet}; + \& \node[process] (browser) {Browser}; + \& \node[process] (shop) {Web shop}; + \& \node[sink] (backend) {Taler backend}; \\ + }; + + % Draw the arrows between the nodes and label them. + \draw[to] (browser) to[bend right=50] node[midway,above] {(4) signed contract} + node[midway,below] {(signal)} (wallet); + \draw[to] (wallet) to[bend right=50] node[midway,above] {(signal)} + node[midway,below] {(5) signed coins} (browser); + \draw[<->] (browser) -- node[midway,above] {(3,6) custom} + node[midway,below] {(HTTPS)} (shop); + \draw[to] (shop) to[bend right=50] node[midway,above] {(HTTPS)} + node[midway,below] {(1) proposed contract / (7) signed coins} (backend); + \draw[to] (backend) to[bend right=50] node[midway,above] {(2) signed contract / (8) confirmation} + node[midway,below] {(HTTPS)} (shop); +\end{tikzpicture} +} +\end{center} +\end{frame} -\end{document}