aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2016-05-14 00:01:00 +0200
committerFlorian Dold <florian.dold@gmail.com>2016-05-14 00:01:00 +0200
commitcfa33adadd8cf2d5133d134e4249e42ccf0383da (patch)
treeb69fe8ceeb0f98d4ebfe7695e2b777e2d5c0fd34
parentcd4a79eaa1e745c50551bb20c08d9425885172b1 (diff)
downloadwallet-core-cfa33adadd8cf2d5133d134e4249e42ccf0383da.tar.xz
minor fixes
-rw-r--r--articles/ui/btc.bib10
-rw-r--r--articles/ui/ui.pdfbin725667 -> 708288 bytes
-rw-r--r--articles/ui/ui.tex182
3 files changed, 101 insertions, 91 deletions
diff --git a/articles/ui/btc.bib b/articles/ui/btc.bib
index ac8de4048..c42db9bee 100644
--- a/articles/ui/btc.bib
+++ b/articles/ui/btc.bib
@@ -160,3 +160,13 @@
}
+
+@article{BTC:demise,
+ title={Virtual Currencies; Bitcoin \& What Now after Liberty Reserve, Silk Road, and Mt. Gox?},
+ author={Trautman, Lawrence J},
+ journal={Richmond Journal of Law and Technology},
+ volume={20},
+ number={4},
+ year={2014}
+}
+
diff --git a/articles/ui/ui.pdf b/articles/ui/ui.pdf
index 08e9aba4e..31118ab6d 100644
--- a/articles/ui/ui.pdf
+++ b/articles/ui/ui.pdf
Binary files differ
diff --git a/articles/ui/ui.tex b/articles/ui/ui.tex
index 9c63e2b5f..d05f6adcb 100644
--- a/articles/ui/ui.tex
+++ b/articles/ui/ui.tex
@@ -1,6 +1,8 @@
\title{Taler: \\ Usable, privacy-preserving payments for the Web}
+% Not sure how to do authors with the
+% IEEEtran template correctly ...
\author{%
Jeffrey Burdges\and \\
Florian Dold\and \\
@@ -10,7 +12,8 @@ Marcello Stanisci
\date{\today}
-\documentclass[twoside,letterpaper]{IEEEtran}
+%\documentclass[twoside,letterpaper]{IEEEtran}
+\documentclass{IEEEtran}
\usepackage[margin=1in]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{url}
@@ -18,10 +21,11 @@ Marcello Stanisci
\usepackage{eurosym}
\usepackage{listings}
\usepackage{graphicx}
-\usepackage{wrapfig}
+%\usepackage{wrapfig}
%\usepackage{caption}
\usepackage{subcaption}
\usepackage{url}
+%\usepackage{stfloats}
\usetikzlibrary{shapes,arrows}
\usetikzlibrary{positioning}
@@ -84,7 +88,7 @@ signatures~\cite{chaum1983blind} to create digital coins, and a new
maintaining unlinkability.
This paper will not consider the details of Taler's cryptographic
-protocols\footnote{No citation given due to anonymous submission.}, as
+protocols\footnote{Details of the protocol are documented at \url{https://api.taler.net/}}, as
for usability one needs to completely hide the cryptography from the
users. Thus, this paper will focus on an analytical description of
how to achieve usable and secure electronic payments. Our focus is to
@@ -168,14 +172,6 @@ bank of the customer.
% \smallskip
\subsection{Credit and debit cards}
-\begin{figure*}[h!]
-\begin{center}
-\includegraphics[width=0.95\textwidth]{figs/cc3ds.pdf}
-\end{center}
-\caption{Card payment processing with 3DS. (From: W3c Web Payments IG.)}
-\label{fig:cc3ds}
-\end{figure*}
-
Credit and debit card payments operate by the customer providing their
credentials to the merchant. Many different
authentication and authorization schemes are in use in various
@@ -219,7 +215,7 @@ may then shift it to the customer.
%
Even in cases where the issuer or the merchant remain legally first in
line, there are still risks customers incur from the card dispute
-procedures, such as neither they not the payment processor noticing
+procedures, such as neither them nor the payment processor noticing
fraudulent transactions, or them noticing fraudulent transactions past
the date at which their bank will refund them. The customer also
typically only has a merchant-generated comment and the amount paid in
@@ -254,13 +250,6 @@ their online shopping~\cite[p. 50]{ibi2014}.
% \smallskip
\subsection{Bitcoin}
-
-\begin{figure}[h!]
-\includegraphics[width=0.45\textwidth]{figs/bitcoin.pdf}
-\caption{Bitcoin payment processing. (From: W3c Web Payments IG.)}
-\label{fig:bitcoin}
-\end{figure}
-
Bitcoin operates by recording all transactions in a pseu\-do\-ny\-mous
public {\em ledger}. A Bitcoin account is identified by its public
key and the owner(s) must know the corresponding private key, which in
@@ -281,8 +270,7 @@ and to other currencies incurs substantial fees~\cite{BTCfees}.
There is now an extreme diversity of Bitcoin-related payment
technologies, but usability improvements are usually achieved by
adding a ``trusted'' third party, and there have been many incidents
-% FIXME: citation for embezzlement
-where such parties then embezzled funds from their customers. The
+where such parties then embezzled funds from their customers \cite{BTC:demise}. The
classical Bitcoin payment workflow consisted of entering payment
details into a peer-to-peer application. The user would access his
Bitcoin {\em wallet} and instruct it to transfer a particular amount
@@ -340,12 +328,6 @@ appear more legitimate.
\subsection{Walled garden payment systems}
-\begin{figure}[b!]
-\includegraphics[width=0.45\textwidth]{figs/paypal.pdf}
-\caption{Payment processing with Paypal. (From: W3c Web Payments IG.)}
-\label{fig:paypal}
-\end{figure}
-
Walled garden payment systems offer ease of use by processing payments
using a trusted payment service provider. Here, the customer
authenticates to the trusted service and instructs the payment
@@ -450,11 +432,11 @@ setting. For a traditional store, a near field communication (NFC) protocol mig
between a point-of-sale system and a mobile application. In this
paper, we focus on Web payments for an online shop.
-\begin{figure}[b!]
-\includegraphics[width=0.45\textwidth]{figs/taler-withdraw.pdf}
-\caption{Withdrawing coins with Taler.}
-\label{fig:taler-withdraw}
-\end{figure}
+%\begin{figure}[b!]
+%\includegraphics[width=0.45\textwidth]{figs/taler-withdraw.pdf}
+%\caption{Withdrawing coins with Taler.}
+%\label{fig:taler-withdraw}
+%\end{figure}
% \smallskip
@@ -473,24 +455,30 @@ Restarting the browser is not required.
\paragraph{Withdrawing coins}
-\begin{figure}[p!]
-\begin{subfigure}[H]{0.5\textwidth}
-\includegraphics[width=\textwidth]{figs/bank0a.png}
+As with cash, the customer must first withdraw digital coins
+(Figure~\ref{fig:taler-withdraw}). For this, the customer must first
+visit the online banking portal of his bank. Here, the bank will
+typically require some form of authentication, the specific method
+used depends on the bank (Figure~\ref{subfig:login}).
+
+\begin{figure}
+\begin{subfigure}{\linewidth}
+\includegraphics[width=\linewidth]{figs/bank0a.png}
\caption{Bank login. (Simplified for demonstration.)}
\label{subfig:login}
\end{subfigure}
-\begin{subfigure}{0.5\textwidth}
-\includegraphics[width=\textwidth]{figs/bank1a.png}
+\begin{subfigure}{\linewidth}
+\includegraphics[width=\linewidth]{figs/bank1a.png}
\caption{Specify amount to withdraw. (Integrated bank support.)}
\label{subfig:withdraw}
\end{subfigure}
-\begin{subfigure}{0.5\textwidth}
-\includegraphics[width=\textwidth]{figs/bank2a.png}
+\begin{subfigure}{\linewidth}
+\includegraphics[width=\linewidth]{figs/bank2a.png}
\caption{Select exchange provider. (Generated by wallet.)}
\label{subfig:exchange}
\end{subfigure}
-\begin{subfigure}{0.5\textwidth}
-\includegraphics[width=\textwidth]{figs/bank3a.png}
+\begin{subfigure}{\linewidth}
+\includegraphics[width=\linewidth]{figs/bank3a.png}
\caption{Confirm transaction with a PIN. (Generated by bank.)}
\label{subfig:pin}
\end{subfigure}
@@ -498,14 +486,7 @@ Restarting the browser is not required.
\label{fig:withdrawal}
\end{figure}
-As with cash, the customer must first withdraw digital coins
-(Figure~\ref{fig:taler-withdraw}). For this, the customer must first
-visit the online banking portal of his bank. Here, the bank will
-typically require some form of authentication, the specific method
-used depends on the bank (Figure~\ref{subfig:login}).
-\clearpage
-%\newpage
The next step depends on the Taler support offered by the bank:
\begin{itemize}
\item If the bank does not properly integrate with Taler, the
@@ -553,7 +534,7 @@ customers and may help create a competitive market.
\label{fig:taler-pay}
\end{figure}
-\begin{figure}[p!]
+\begin{figure}[b!]
\begin{subfigure}[H]{0.5\textwidth}
\includegraphics[width=\textwidth]{figs/cart.png}
\caption{Select article. (Generated by Web shop.)}
@@ -573,33 +554,6 @@ customers and may help create a competitive market.
\label{fig:shopping}
\end{figure}
-% \tinyskip
-\lstdefinelanguage{JavaScript}{
- 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]"
-}
-
-\begin{figure*}[h!]
- \lstset{language=JavaScript}
- \lstinputlisting{figs/taler-presence.js}
- \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{figure*}
-
-
At a later point in time, the customer can spend his coins by
visiting a merchant that accepts digital coins in the respective
@@ -614,16 +568,6 @@ exchanges to operate with transaction fees acceptable to most
merchants. If transaction fees are higher than what is covered by the
merchant, the customer may choose to cover them.
-\begin{figure*}[h!]
- \lstset{language=JavaScript}
- \lstinputlisting{figs/taler-contract.js}
- \caption{Sample code to pass a contract to the Taler wallet.
- 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*}
-
As with traditional Web transactions, the customer first selects which
items he wishes to buy. This can involve building a traditional
shopping cart, or simply clicking on a particular link for the
@@ -1103,8 +1047,6 @@ double spend coins, as the wallet does not know when coins are spent
between backup and recovery. In this case, the exchange provides
cryptographic proof that the coins were previously spent, so the
wallet can verify that the exchange and merchant are behaving honestly.
-However, this gives rise to another subsequent failure mode,
-namely that ...
% FIXME FIXME: the following paragraph seems to describe a scenario where the
% wallet lost coins due to a restore from backup and then ask for refresh
@@ -1264,17 +1206,75 @@ simultaneously using a modern payment protocol.
Removed for anonymous submission.
-%\newpage
-
\bibliographystyle{abbrv}
\bibliography{ui,btc,taler,rfc}
-\end{document}
+\appendix
+\section{Interation Diagrams}
+
+\begin{figure*}[h!]
+\begin{center}
+\includegraphics[width=0.95\textwidth]{figs/cc3ds.pdf}
+\end{center}
+\caption{Card payment processing with 3DS. (From: W3c Web Payments IG.)}
+\label{fig:cc3ds}
+\end{figure*}
+
+
+
+\begin{figure}[h!]
+\includegraphics[width=0.45\textwidth]{figs/bitcoin.pdf}
+\caption{Bitcoin payment processing. (From: W3c Web Payments IG.)}
+\label{fig:bitcoin}
+\end{figure}
+
+\section{Code Samples}
+
+% \tinyskip
+\lstdefinelanguage{JavaScript}{
+ 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]"
+}
+
+\begin{figure*}[h!]
+ \lstset{language=JavaScript}
+ \lstinputlisting{figs/taler-presence.js}
+ \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{figure*}
+\begin{figure*}[h!]
+ \lstset{language=JavaScript}
+ \lstinputlisting{figs/taler-contract.js}
+ \caption{Sample code to pass a contract to the Taler wallet.
+ 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*}
+\begin{figure}[b!]
+\includegraphics[width=0.45\textwidth]{figs/paypal.pdf}
+\caption{Payment processing with Paypal. (From: W3c Web Payments IG.)}
+\label{fig:paypal}
+\end{figure}
+\end{document}