main.tex (7583B)
1 \documentclass[fleqn,xcolor={usenames,dvipsnames}]{beamer} 2 \usepackage{amsmath} 3 \usepackage{multimedia} 4 \usepackage[utf8]{inputenc} 5 \usepackage{framed,color,ragged2e} 6 \usepackage[absolute,overlay]{textpos} 7 \definecolor{shadecolor}{rgb}{0.8,0.8,0.8} 8 \usetheme{boxes} 9 \setbeamertemplate{navigation symbols}{} 10 \usepackage{xcolor} 11 \usepackage{tikz,eurosym} 12 \usepackage[normalem]{ulem} 13 \usepackage{listings} 14 15 % CSS 16 \lstdefinelanguage{CSS}{ 17 basicstyle=\ttfamily\scriptsize, 18 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}, 19 sensitive=true, 20 morecomment=[l]{//}, 21 morecomment=[s]{/*}{*/}, 22 morestring=[b]', 23 morestring=[b]", 24 alsoletter={:}, 25 alsodigit={-} 26 } 27 28 % JavaScript 29 \lstdefinelanguage{JavaScript}{ 30 basicstyle=\ttfamily\scriptsize, 31 morekeywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break}, 32 morecomment=[s]{/*}{*/}, 33 morecomment=[l]//, 34 morestring=[b]", 35 morestring=[b]' 36 } 37 38 \lstdefinelanguage{HTML5}{ 39 basicstyle=\ttfamily\scriptsize, 40 language=html, 41 sensitive=true, 42 alsoletter={<>=-}, 43 morecomment=[s]{<!-}{-->}, 44 tag=[s], 45 otherkeywords={ 46 % General 47 >, 48 % Standard tags 49 <!DOCTYPE, 50 </html, <html, <head, <title, </title, <style, </style, <link, </head, <meta, />, 51 % body 52 </body, <body, 53 % Divs 54 </div, <div, </div>, 55 % Paragraphs 56 </p, <p, </p>, 57 % scripts 58 </script, <script, 59 % More tags... 60 <canvas, /canvas>, <svg, <rect, <animateTransform, </rect>, </svg>, <video, <source, <iframe, </iframe>, </video>, <image, </image> 61 }, 62 ndkeywords={ 63 % General 64 =, 65 % HTML attributes 66 charset=, src=, id=, width=, height=, style=, type=, rel=, href=, 67 % SVG attributes 68 fill=, attributeName=, begin=, dur=, from=, to=, poster=, controls=, x=, y=, repeatCount=, xlink:href=, 69 % CSS properties 70 margin:, padding:, background-image:, border:, top:, left:, position:, width:, height:, 71 % CSS3 properties 72 transform:, -moz-transform:, -webkit-transform:, 73 animation:, -webkit-animation:, 74 transition:, transition-duration:, transition-property:, transition-timing-function:, 75 } 76 } 77 78 \lstdefinelanguage{JavaScript}{ 79 basicstyle=\ttfamily\scriptsize, 80 keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break, for}, 81 keywordstyle=\color{blue}\bfseries, 82 ndkeywords={class, export, boolean, throw, implements, import, this}, 83 ndkeywordstyle=\color{darkgray}\bfseries, 84 identifierstyle=\color{black}, 85 sensitive=false, 86 comment=[l]{//}, 87 morecomment=[s]{/*}{*/}, 88 commentstyle=\color{purple}\ttfamily, 89 stringstyle=\color{red}\ttfamily, 90 morestring=[b]', 91 morestring=[b]" 92 } 93 94 \usetikzlibrary{shapes,arrows} 95 \usetikzlibrary{positioning} 96 \usetikzlibrary{calc} 97 98 \title{Enabling Secure Web Payments with GNU Taler} 99 %\subtitle{} 100 101 \setbeamertemplate{navigation symbols}{\includegraphics[width=1cm]{inria.pdf} \includegraphics[width=0.5cm]{gnu.png} \includegraphics[width=0.5cm]{ashoka.png}\hfill} 102 %\setbeamercovered{transparent=1} 103 104 \author[C. Grothoff]{J. Burdges, F. Dold, {\bf C. Grothoff}, M. Stanisci} 105 \date{\today} 106 \institute{The GNU Project} 107 108 109 \begin{document} 110 111 \justifying 112 \begin{frame}[plain] 113 \titlepage 114 115 \vfill 116 \begin{center} 117 \tiny 118 ``I think one of the big things that we need to do, is we need 119 to get a way from true-name payments on the Internet. The credit 120 card payment system is one of the worst things that happened for the 121 user, in terms of being able to divorce their access from their 122 identity.'' \hfill --Edward Snowden, IETF 93 (2015) 123 \end{center} 124 \end{frame} 125 126 127 128 \begin{frame} 129 \frametitle{Architecture of GNU Taler} 130 \begin{center} 131 \includegraphics[width=0.9\textwidth]{illustrations/taler-arch-full.pdf} 132 \end{center} 133 \end{frame} 134 135 136 \begin{frame}{Taler.net Services} 137 \vfill 138 \begin{enumerate} 139 \item \url{https://api.taler.net/} 140 \item \url{https://www.git.taler.net/} 141 \item \url{https://bank.demo.taler.net/} 142 \item \url{https://exchange.demo.taler.net/} 143 \item \url{http://backend.demo.taler.net/} 144 \item \url{https://shop.demo.taler.net/} 145 \item {\tt demo} $\Rightarrow$ {\tt test} 146 \end{enumerate} 147 \vfill 148 \end{frame} 149 150 151 \begin{frame}{Merchant Integration: Wallet Detection} 152 \lstset{language=JavaScript} 153 \lstinputlisting{figs/taler-presence-js.html} 154 % \caption{Sample code to detect the Taler wallet. Allowing the 155 % Web site to detect the presence of the wallet leaks one bit 156 % of information about the user. The above logic also works 157 % if the wallet is installed while the page is open.} 158 % \label{listing:presence} 159 \end{frame} 160 161 162 \begin{frame}{Merchant Integration: Payment Request} 163 % \begin{figure}[p!] 164 \lstset{language=HTML5} 165 \lstinputlisting{figs/taler-402.html} 166 % \caption{Sample HTTP response to prompt the wallet to show an offer.} 167 % \label{listing:http-contract} 168 % \end{figure} 169 170 % \begin{figure*}[p!] 171 % \lstset{language=HTML5} 172 % \lstinputlisting{figs/taler-contract.html} 173 % \caption{Sample JavaScript code to prompt the wallet to show an offer. 174 % Here, the contract is fetched on-demand from the server. 175 % The {\tt taler\_pay()} function needs to be invoked 176 % when the user triggers the checkout.} 177 % \label{listing:contract} 178 % \end{figure*} 179 \end{frame} 180 181 182 \begin{frame}{Merchant Integration: Contract} 183 % \begin{figure*}[t!] 184 {\tiny 185 \lstset{language=JavaScript} 186 \lstinputlisting{figs/taler-contract.json} 187 % \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.} 188 % \label{listing:json-contract} 189 % \end{figure*} 190 } 191 \end{frame} 192 193 194 \begin{frame}{Payment processing with Taler} 195 \begin{center} 196 \includegraphics[height=0.9\textheight]{figs/taler-pay.pdf} 197 \end{center} 198 \end{frame} 199 200 201 \begin{frame}{Business considerations} 202 \begin{itemize} 203 \item Exchange needs to be a legal (!) business to operate. 204 \item Exchange operator income is from {\em transaction fees}. 205 \item Now trying to find partners and financing for startup. 206 \end{itemize} 207 \end{frame} 208 209 210 \begin{frame} 211 \frametitle{Do you have any questions?} 212 \vfill 213 References: 214 {\tiny 215 \begin{enumerate} 216 \item{Christian Grothoff, Bart Polot and Carlo von Loesch. 217 {\em The Internet is broken: Idealistic Ideas for Building a GNU Network}. 218 {\bf W3C/IAB Workshop on Strengthening the Internet Against Pervasive Monitoring (STRINT)}, 2014.} 219 \item{Jeffrey Burdges, Florian Dold, Christian Grothoff and Marcello Stanisci. 220 {\em Enabling Secure Web Payments with GNU Taler}. 221 {\bf SPACE 2016}.} 222 \item{Florian Dold, Sree Harsha Totakura, Benedikt M\"uller, Jeffrey Burdges and Christian Grothoff. 223 {\em Taler: Taxable Anonymous Libre Electronic Reserves}. 224 Available upon request. 2016.} 225 \item{Eli Ben-Sasson, Alessandro Chiesa, Christina Garman, Matthew Green, Ian Miers, Eran Tromer and Madars Virza. 226 {\em Zerocash: Decentralized Anonymous Payments from Bitcoin}. 227 {\bf IEEE Symposium on Security \& Privacy, 2016}.} 228 \item{David Chaum, Amos Fiat and Moni Naor. 229 {\em Untraceable electronic cash}. 230 {\bf Proceedings on Advances in Cryptology, 1990}.} 231 \item{Phillip Rogaway. 232 {\em The Moral Character of Cryptographic Work}. 233 {\bf Asiacrypt}, 2015.} \label{bib:rogaway} 234 \end{enumerate} 235 } 236 \end{frame} 237 238 239 \end{document}