[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-cashless2ecash] branch master updated: poster: draft
From: |
gnunet |
Subject: |
[taler-cashless2ecash] branch master updated: poster: draft |
Date: |
Thu, 23 May 2024 01:01:40 +0200 |
This is an automated email from the git hooks/post-receive script.
joel-haeberli pushed a commit to branch master
in repository cashless2ecash.
The following commit(s) were added to refs/heads/master by this push:
new 25b6c32 poster: draft
25b6c32 is described below
commit 25b6c32ff66c3c46eeceb55f037e69b392277a92
Author: Joel-Haeberli <haebu@rubigen.ch>
AuthorDate: Thu May 23 01:01:24 2024 +0200
poster: draft
---
c2ec/api-wire-gateway.go | 4 +-
poster/accept_tos.jpg | Bin 0 -> 124332 bytes
poster/cashless2ecash_poster.pdf | Bin 942659 -> 829032 bytes
poster/cashless2ecash_poster.tex | 109 ++++++++++++++++++++++++---------------
poster/enter_amount.jpg | Bin 175862 -> 74999 bytes
poster/register_param.jpg | Bin 187656 -> 115206 bytes
poster/summary.jpg | Bin 164652 -> 89505 bytes
7 files changed, 70 insertions(+), 43 deletions(-)
diff --git a/c2ec/api-wire-gateway.go b/c2ec/api-wire-gateway.go
index a0ed175..10bc49a 100644
--- a/c2ec/api-wire-gateway.go
+++ b/c2ec/api-wire-gateway.go
@@ -327,7 +327,7 @@ func historyIncoming(res http.ResponseWriter, req
*http.Request) {
}
if len(withdrawals) < 1 {
- res.WriteHeader(HTTP_NOT_FOUND)
+ res.WriteHeader(HTTP_NO_CONTENT)
return
}
@@ -429,7 +429,7 @@ func historyOutgoing(res http.ResponseWriter, req
*http.Request) {
}
if len(filtered) < 1 {
- res.WriteHeader(HTTP_NOT_FOUND)
+ res.WriteHeader(HTTP_NO_CONTENT)
return
}
diff --git a/poster/accept_tos.jpg b/poster/accept_tos.jpg
new file mode 100644
index 0000000..85229d5
Binary files /dev/null and b/poster/accept_tos.jpg differ
diff --git a/poster/cashless2ecash_poster.pdf b/poster/cashless2ecash_poster.pdf
index 088cd2a..4b2dddd 100644
Binary files a/poster/cashless2ecash_poster.pdf and
b/poster/cashless2ecash_poster.pdf differ
diff --git a/poster/cashless2ecash_poster.tex b/poster/cashless2ecash_poster.tex
index 8fc8ca9..b39d8b1 100644
--- a/poster/cashless2ecash_poster.tex
+++ b/poster/cashless2ecash_poster.tex
@@ -6,11 +6,14 @@
%% Sprache
\usepackage[nswissgerman]{babel}
\usepackage[autostyle]{csquotes}
+\usepackage{enumitem}
+
+\setlist[enumerate]{itemsep=0mm}
\begin{document}
\title{Cashless to e-Cash}
- \author{Joel Häberli\inst{*}\thanks{habej2@bfh.ch}}
+ \author{Joel Häberli\inst{*}\thanks{joel.haeberli@taler.net}}
\institute{Berner Fachhochschule, Departement Technik und Informatik,
\inst{*}Institute for Cybersecurity and Engineering ICE}
%% \inst kann in den Autor und Institutsfeldern genutzt werden um eine
Zuordnung zu ermöglichen. Bei Nummerierung ist der Nutzer dafür verantwortlich
Konflikte mit \thanks zu vermeiden.
% \titlegraphic{
@@ -23,95 +26,119 @@
\begin{tcbposter}[
poster={
- columns=4,
- rows=7,
+ columns=5,
+ rows=8,
spacing=1cm,
%showframe, %Gitter einblenden. Für Platzierung häufig
hilfreich
}]
-
\begin{posterboxenv}[title=Motivation]{name=intro,column=1,row=1,span=2,rowspan=2}
+
\begin{posterboxenv}[title=Motivation]{name=intro,column=1,row=1,span=3,rowspan=2}
- This thesis realizes a framework to enable withdrawal
of digital cash for GNU Taler through a trusted third party. It addresses a
report commissioned by the European Central Bank (ECB), which identified an
easy onboarding as one of the most important aspects of a Digital Euro. This
will lead to a higher acceptance of GNU Taler and leads to a better integrating
into the existing systems.
+ This thesis realizes a framework to enable withdrawal
of digital cash for GNU Taler through a established payment service provider.
It addresses a report commissioned by the European Central Bank (ECB), which
identified easy onboarding as one of the most important aspects of a Digital
Euro. Our objective is to improve the uptake of GNU Taler.
- The C2EC components implements the structures required
to fulfill the following properties:
+ Our key design objectives were:
\begin{enumerate}
- \item Finality: Liability for the money lies on
the provider
- \item Convenience: The UX for the customer is
convenient
+ \item Finality: Liability for the money is not
on the side of the Excahnge
+ \item Convenience: The user-experience follows
established patterns
+ \item Abort: Failures are handled without loss
of money
\end{enumerate}
- The liability of the provider is achieved by only
allowing withdrawals of strictly finale transactions. This keeps the Exchange
out of legal issues. Due to the convenient process, a broader group of people
is motivated to use the Taler payment system for their payments. Eventually
this helps the payment system Taler to be taken up faster by the society.
+ Additionally our design minimizes changes to the
existing Taler system and works with a broad range of established payment
methods such as credit cards, debit card, Paypal or Twint.
\end{posterboxenv}
-
\begin{posterboxenv}{name=flow-diagram,column=3,row=1,span=2,rowspan=2}
+
\begin{posterboxenv}{name=flow-diagram,column=4,row=1,span=2,rowspan=2}
\includegraphics[width=\linewidth]{components_images.png}
\end{posterboxenv}
- \begin{posterboxenv}[title=Terminals API design
requirements]{name=api,column=2,row=3,span=3}
+ \begin{posterboxenv}{name=taler-news,column=1,row=3,span=1,
rowspan=1}
- To allow the withdrawal of digital cash using Taler,
the newly introduced Terminals API must be implemented. The Terminals API is
responsible to setup a withdrawal operation identifier and to cover the needs
of a terminal, concerning the withdrawal process:
+ Bachelor thesis and further material:
+
+
\includegraphics[width=\linewidth]{taler_news_terminals_api.png}
+
+ https://taler.net/en/news/2024-08.html
- \begin{enumerate}
- \item Setup withdrawal process and Taler wallet
withdrawal operation
- \item Seek a secure confirmation of the payment
at the provider's backend
- \item Confirm or abort the withdrawal
- \end{enumerate}
\end{posterboxenv}
- \begin{posterboxenv}{name=taler-news,column=1,row=3,span=1,
rowspan=1}
+ \begin{posterboxenv}[title=Terminals API design
requirements]{name=api,column=2,row=3,span=4, rowspan=2}
- Link to bachelor thesis and
- further material (QR-Code):
-
- https://taler.net/en/news/2024-08.html
+ To allow the withdrawal of digital cash using Taler we
designed the \textit{Terminals API}. It is responsible for:
-
\includegraphics[width=\linewidth]{taler_news_terminals_api.png}
+ \begin{enumerate}
+ \item Associate Taler wallet with the financial
transaction
+ \item Expose transaction confirmations to the
Taler operator
+ \item Allow the Taler operator to reverse
transactions if wallet fails to withdraw digital cash
+ \item Inform Taler wallet about transaction
stated
+ \end{enumerate}
+
+ We implemented the Terminals API using Go under a Free
Software license.
\end{posterboxenv}
- \begin{posterboxenv}[title=PayDroid POS Terminal App (Wallee
A50)]{name=wallee, column=2, row=4, span=3, span=3}
- To show that the specification is able to capture the
needs for third party withdrawals and allow the integration for theoretically
any means of payment, an integration was done for the payment provider Wallee.
Wallee supplies a PayDroid platform (Android based) which allows to write
custom terminal applications enabling strong authentication of the customer.
The newly created withdrawal application sets up the withdrawal and awaits the
registration at the Terminals API by the Taler w [...]
+ \begin{posterboxenv}[title=PayDroid POS Terminal App (Wallee
A50)]{name=wallee, column=2, row=5, span=4, rowspan=1}
+
+ We implemented a payment service terminal on top of the
Paydroid platform. Paydroid allows writing custom terminal applications with
strong authentication of the customer. In combination with the Wallee payment
provider this allows us to accept various payment instruments, including credit
and debit cards. Our app asks the user to (1) enter the amount, (2) associate a
wallet by scanning a QR code, (3) wait for the wallet to confirm, (4) to
authorize the payment and (5) view a summary [...]
+
\end{posterboxenv}
- \begin{posterboxenv}[title=Enter
Amount]{name=flow-diagram,column=1,row=5,span=1, rowspan=1}
+ \begin{posterboxenv}[title=Enter Amount
(1)]{name=flow-diagram,column=1,row=6,span=1, rowspan=1}
- \includegraphics[width=\linewidth]{enter_amount.jpg}
+ \begin{center}
+ \includegraphics[height=17cm]{enter_amount.jpg}
+ \end{center}
\end{posterboxenv}
- \begin{posterboxenv}[title=Use Taler
Wallet]{name=flow-diagram,column=2,row=5,span=1, rowspan=1}
+ \begin{posterboxenv}[title=Associate wallet
(2)]{name=flow-diagram,column=2,row=6,span=1, rowspan=1}
- \includegraphics[width=\linewidth]{register_param.jpg}
+ \begin{center}
+
\includegraphics[height=17cm]{register_param.jpg}
+ \end{center}
\end{posterboxenv}
+ \begin{posterboxenv}[title=Confirm withdrawal
(3)]{name=flow-diagram,column=3,row=6,span=1, rowspan=1}
- \begin{posterboxenv}[title=Authorize
Payment]{name=flow-diagram,column=3,row=5,span=1, rowspan=1}
+ \begin{center}
+ \includegraphics[height=17cm]{accept_tos.jpg}
+ \end{center}
+
+ \end{posterboxenv}
-
\includegraphics[width=\linewidth]{auth_transaction.jpg}
+
+ \begin{posterboxenv}[title=Authorize Payment
(4)]{name=flow-diagram,column=4,row=6,span=1, rowspan=1}
+
+ \begin{center}
+
\includegraphics[height=17cm]{auth_transaction.jpg}
+ \end{center}
\end{posterboxenv}
- \begin{posterboxenv}[title=View
Summary]{name=flow-diagram,column=4,row=5,span=1, rowspan=1}
+ \begin{posterboxenv}[title=View Summary
(5)]{name=flow-diagram,column=5,row=6,span=1, rowspan=1}
- \includegraphics[width=\linewidth]{summary.jpg}
+ \begin{center}
+ \includegraphics[height=17cm]{summary.jpg}
+ \end{center}
\end{posterboxenv}
- \begin{posterboxenv}[title=Integrate your
platform!]{name=Integrate your platform, column=1,row=7,span=4,rowspan=1}
- C2EC is extensible. The C2EC backend component defines
two interfaces which can be implemented by any provider. This also includes
cash to e-cash cases like vending machines or any POS installation.
-
- \begin{enumerate}
- \item Provider-Client Interface: defines the
operations needed to communicate with the provider's backend
- \item Provider-Transaction Interface: defines
the operations to check the finality of the transaction
- \end{enumerate}
+\space
+
+ \begin{posterboxenv}[title=C2EC is extensible]{name=Integrate
your platform, column=1,row=8,span=5,rowspan=1}
+
+ The established payment service provider must ensure
the customer has irrevokably authorized the transaction. This is typically done
using two factor authentication, issued by the bank. The Taler Exchange
operator is ensured in realtime, that they will receive the wire transfer.
+
+ The Wallee integration is the C2EC backend is an
example. In principle it should be easy to adapt to other acquirers. The
architecture also supports other use cases, such as cash to e-cash.
- The implementation must guarantee the finality of the
transaction and like this provides the Exchange with the securities it needs to
allow the withdrawal of the digital cash. The operations also define a refund
operation. The refund operation is used, when the Exchange closes reserves due
to inactivities or in case the Exchange manually triggers a refund (perhaps
because the customer asked to do so).
+ The key limitation is that the provider must guarantee
finality of the transaction. The Taler operator cannot efficiently recoup
digital cash it issued to a Taler wallet.
+
+ Help us to support more payment providers and add an
additional integration!
\end{posterboxenv}
\end{tcbposter}
diff --git a/poster/enter_amount.jpg b/poster/enter_amount.jpg
index 2bc032a..a2a3eae 100644
Binary files a/poster/enter_amount.jpg and b/poster/enter_amount.jpg differ
diff --git a/poster/register_param.jpg b/poster/register_param.jpg
index 086332d..a3046fc 100644
Binary files a/poster/register_param.jpg and b/poster/register_param.jpg differ
diff --git a/poster/summary.jpg b/poster/summary.jpg
index 7e261b2..bb4f198 100644
Binary files a/poster/summary.jpg and b/poster/summary.jpg differ
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.