gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-marketing] branch master updated: update comprehensive presentati


From: gnunet
Subject: [taler-marketing] branch master updated: update comprehensive presentation
Date: Tue, 11 May 2021 23:53:32 +0200

This is an automated email from the git hooks/post-receive script.

grothoff pushed a commit to branch master
in repository marketing.

The following commit(s) were added to refs/heads/master by this push:
     new 3e5367a  update comprehensive presentation
3e5367a is described below

commit 3e5367a2c554c330347a4788b1445a7326655aa0
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Tue May 11 23:53:28 2021 +0200

    update comprehensive presentation
---
 illiterate/illiterate.tex                    |  39 +-
 presentations/2021-cb/slides.tex             |   2 +-
 presentations/comprehensive/main.pdf         | Bin 5096817 -> 7121949 bytes
 presentations/comprehensive/main.tex         | 732 +++++++++++++++++++++++++--
 presentations/comprehensive/taler-in-use.png | Bin 0 -> 759551 bytes
 5 files changed, 707 insertions(+), 66 deletions(-)

diff --git a/illiterate/illiterate.tex b/illiterate/illiterate.tex
index 30ccb59..e181d42 100644
--- a/illiterate/illiterate.tex
+++ b/illiterate/illiterate.tex
@@ -35,11 +35,11 @@
   executed in fiat currency with privacy and regulatory compliance, which
   makes Taler suitable for a Central Bank Digital Currency (CBDC).
 
-  My Oral Village has been developing user interfaces for electronic
+  My Oral Village (MOVE) has been developing user interfaces for electronic
   payment systems that can be used by illiterate and innumerate groups,
   with field experience from Kenya and Pakistan where substantial
-  portions of the population cannot read or comprehend multi-digit
-  numbers.
+  portions of the population cannot read multi-digit
+  numbers or text.
 
   We propose to integrate the user interface work of My Oral Village
   with the Taler payment system to create an inclusive payment solution
@@ -82,12 +82,14 @@ The unique sales propositions of Taler as it exists today 
are:
 \item Ease of use (one-click, instant, no authentication during payment, again 
like cash)
 \end{itemize}
 
-The last point is crucial for the proposed CBDC implementation: because
-payments with Taler only require authorization and not authentication, we
-believe the payment process with Taler is easy enough to be made accessible to
-illiterate or innumerate people.  The proposed work will extend this list
-by making Taler {\bf suitable for illiterate and innumerate adults}.  We also
-have plans to make Taler suitable for (numerate) children.
+The proposed work will extend this list by making Taler {\bf suitable for
+illiterate and innumerate adults}. After consultation with My Oral Village, we
+believe the payment process with Taler can be made safe and convenient for
+their use. Based on years of direct field research, MOVE develops
+locally-validated solutions that blend graphical representations of money,
+iconographic navigation cues and metaphors, and experimental insights from
+cognitive psychology. We also have plans to make Taler suitable for (numerate)
+children.
 
 \subsection{Taler architecture}
 
@@ -172,13 +174,16 @@ transition into financial inclusion.
 
 Our suite of ``oral information management'' (OIM) tools and solutions enable
 poorly schooled individuals to safely and confidently engage in formal
-financial transactions. We are currently designing a mixed (digital and
+financial transactions. We are currently piloting a hybrid (digital and
 paper-based) solution for entrepreneurial pastoralists in northern Kenya, and
-our testing our ``cash calculator'' for Android in Pakistan. We recently
-designed a passbook for new credit union members in Sierra Leone. With
-MicroSave, we wireframed a full 'concept-level' mobile money app for northern
-India. Our solution for savings groups in the Solomon Islands has been adopted
-by the Ministry of Women two local NGOs.
+testing our ``cash calculator'' for Android in Pakistan. We recently designed
+a passbook for new credit union members in Sierra Leone. With MicroSave, we
+wireframed a full 'concept-level' mobile money app for northern India. Our OIM
+solution for savings groups in the Solomon Islands has been adopted by the
+Ministry of Women and the Anglican Church of Melanesia. We are also developing
+a field experiment in Kenya with a team of numerical cognition researchers at
+the Universities of Tuebingen and Western Ontario.
+
 
 \subsection{Company profile: Taler Systems SA}
 
@@ -259,8 +264,8 @@ available on all relevant platforms.  However, consumer 
systems are
 much less diverse and hence this effort is significantly smaller.
 
 Deploying Taler at scale should have no major impact on monetary
-policy because the issued CBDC would be 1:1 backed by rand
-in the escrow account at the SARB.  However, if there is a
+policy because the issued CBDC would be 1:1 backed by fiat currency
+in the escrow account at the central bank.  However, if there is a
 significant shift from the use of credit-cards to CBDC, there might
 be a reduction in M2 from fractional reserve banking as CBDC is
 debit-based while credit-cards are credit-based.  Thus, instead of
diff --git a/presentations/2021-cb/slides.tex b/presentations/2021-cb/slides.tex
index 2246b4d..b837612 100644
--- a/presentations/2021-cb/slides.tex
+++ b/presentations/2021-cb/slides.tex
@@ -273,7 +273,7 @@ However, Taler is
 
 \begin{frame}{Area II: Development/Research Extensions}
   \framesubtitle{\url{https://myoralvillage.org/}}
-We have ideas for protocol extensions and ``smart money'':
+We have ideas for protocol extensions and ``programmable money'':
   \begin{itemize}
     \item Mediated wallet-to-wallet payments (instead of customer-to-merchant)
     \item Privacy-preserving auctions (trading, currency exchange)
diff --git a/presentations/comprehensive/main.pdf 
b/presentations/comprehensive/main.pdf
index 531ccdf..7658df7 100644
Binary files a/presentations/comprehensive/main.pdf and 
b/presentations/comprehensive/main.pdf differ
diff --git a/presentations/comprehensive/main.tex 
b/presentations/comprehensive/main.tex
index 3d55926..8d854c2 100644
--- a/presentations/comprehensive/main.tex
+++ b/presentations/comprehensive/main.tex
@@ -12,6 +12,7 @@
 \usepackage{tikz,eurosym}
 \usepackage[normalem]{ulem}
 \usepackage{listings}
+\usepackage{adjustbox}
 
 % CSS
 \lstdefinelanguage{CSS}{
@@ -117,14 +118,12 @@
 
     \vfill
 %    \includegraphics[width=0.66\textwidth]{logo-2017-fr.pdf}
-    \includegraphics[width=0.66\textwidth]{taler-logo-2018.pdf}
+    \includegraphics[width=0.66\textwidth]{logo-2020.jpg}
   \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 }
+\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!
@@ -235,6 +234,7 @@ identity.'' \hfill --Edward Snowden, IETF 93 (2015)
 
 \begin{frame}
   \frametitle{\includegraphics[height=0.5cm]{pics/bitcoin.jpeg}?}
+  \framesubtitle{Background: \url{https://blockchain.com/charts/}}
   \centering
 \noindent
 \includegraphics[width=\textwidth]{pics/btc-transaction-cost.png}
@@ -279,7 +279,7 @@ ZeroCoin, CryptoNote (Monero) and ZeroCash (ZCash) offer 
anonymity.
   \end{center}
   \vfill
   \begin{center}
-  \includegraphics[scale=1.5]{taler-logo-2018.pdf}
+  \includegraphics[scale=1]{logo-2020.jpg}
   \end{center}
   \vfill
   \begin{center}
@@ -293,7 +293,6 @@ ZeroCoin, CryptoNote (Monero) and ZeroCash (ZCash) offer 
anonymity.
 
 \section{What is Taler?}
 \begin{frame}{What is Taler?}
-  \vfill
   \begin{center}
 Taler is an electronic instant payment system.
   \end{center}
@@ -304,6 +303,36 @@ Taler is an electronic instant payment system.
     or use it to create new {\bf regional currencies}
   \end{itemize}
   \vfill
+  \pause
+ \noindent
+ However, Taler is
+  \begin{itemize}
+    \item \emph{not} a currency
+    \item \emph{not} a long-term store of value
+    \item \emph{not} a network or instance of a system
+    \item \emph{not} decentralized
+    \item \emph{not} based on proof-of-work or proof-of-stake
+    \item \emph{not} a speculative asset / ``get-rich-quick scheme''
+  \end{itemize}
+\end{frame}
+
+
+\begin{frame}{Design principles}
+  \framesubtitle{https://taler.net/en/principles.html}
+GNU Taler must ...
+\begin{enumerate}
+  \item {... be implemented as {\bf free software}.}
+  \item {... protect the {\bf privacy of buyers}.}
+  \item {... must enable the state to {\bf tax income} and crack down on
+    illegal business activities.}
+  \item {... prevent payment fraud.}
+  \item {... only {\bf disclose the minimal amount of information
+    necessary}.}
+  \item {... be usable.}
+  \item {... be efficient.}
+  \item {... avoid single points of failure.}
+  \item {... foster {\bf competition}.}
+\end{enumerate}
 \end{frame}
 
 
@@ -317,7 +346,7 @@ Taler is an electronic instant payment system.
  \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};
- \node (regulator) [def, draw, above=of auditor]{CSSF};
+% \node (regulator) [def, draw, above=of auditor]{CSSF};
 
  \tikzstyle{C} = [color=black, line width=1pt]
 
@@ -325,24 +354,190 @@ Taler is an electronic instant payment system.
  \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};
- \draw [<-, C] (regulator) -- (auditor) node [midway, above, sloped] 
(TextNode) {report};
+% \draw [<-, C] (regulator) -- (auditor) node [midway, above, sloped] 
(TextNode) {report};
 
 \end{tikzpicture}
 \end{center}
 \end{frame}
 
+\begin{frame}{The Taler Software Ecosystem}
+  \framesubtitle{\url{https://taler.net/en/docs.html}}
+  Taler is based on modular components that work together to provide a
+  complete payment system:
+  \vfill
+  \begin{itemize}
+    \item {\bf Exchange:} Service provider for digital cash
+      \begin{itemize}
+        \item Core exchange software (cryptography, database)
+        \item Air-gapped key management, real-time {\bf auditing}
+        \item LibEuFin: Modular integration with banking systems
+      \end{itemize}
+    \item {\bf Merchant:} Integration service for existing businesses
+      \begin{itemize}
+        \item Core merchant backend software (cryptography, database)
+        \item Back-office interface for staff
+        \item Frontend integration (E-commerce, Point-of-sale)
+      \end{itemize}
+    \item {\bf Wallet:} Consumer-controlled applications for e-cash
+      \begin{itemize}
+        \item Multi-platform wallet software (for browsers \& mobile phones)
+        \item Wallet backup storage providers
+        \item {\bf Anastasis}: Recovery of lost wallets based on secret 
splitting
+      \end{itemize}
+  \end{itemize}
+\end{frame}
+
 
 \begin{frame}
   % TODO: replace with simplified NEW architecture picture!
 \frametitle{Architecture of Taler}
 \begin{center}
-  \includegraphics[width=0.9\textwidth]{illustrations/taler-arch-full.pdf}
+  \includegraphics[width=1\textwidth]{operations.png}
+\end{center}
+\end{frame}
+
+
+\begin{frame}[fragile]{Taler: Bank Perspective}
+\begin{adjustbox}{max totalsize={.9\textwidth}{.7\textheight},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 (nexus) [def, draw, below right=of exchange] {Nexus};
+ \node (corebanking) [def, draw, below left=of nexus] {Core Banking};
+ \node (nginx) [def, draw, above=of exchange]{Nginx};
+ \node (postgres) [def, draw, below left=of exchange]{Postgres};
+ \node (postgres-nexus) [def, draw, below right=of nexus]{Postgres};
+
+ \tikzstyle{C} = [color=black, line width=1pt]
+
+ \draw [<-, C] (exchange) -- (nginx) node [midway, above, sloped] (TextNode) 
{REST API};
+ \draw [<-, C] (postgres) -- (exchange) node [midway, above, sloped] 
(TextNode) {SQL};
+ \draw [<-, C] (postgres-nexus) -- (nexus) node [midway, above, sloped] 
(TextNode) {SQL};
+ \draw [<-, C] (nexus) -- (exchange) node [midway, above, sloped] (TextNode) 
{Internal REST API};
+ \draw [<-, C] (corebanking) -- (nexus) node [midway, above, sloped] 
(TextNode) {EBICS/FinTS};
+
+\end{tikzpicture}
+\end{adjustbox}
+\end{frame}
+
+
+\begin{frame}{Taler: Exchange Architecture}
+\begin{center}
+\begin{tikzpicture}
+ \tikzstyle{def} = [node distance=2em and 2.5em, inner sep=1em, outer 
sep=.3em];
+ \node (origin) at (0,0) {};
+ \node (httpd) [def,above=of origin,draw]{httpd};
+ \node (secmod-rsa) [def, draw, right=of httpd] {secmod-rsa};
+ \node (secmod-eddsa) [def, draw, left=of httpd] {secmod-eddsa};
+ \node (postgres) [def, draw, below=of httpd]{Postgres};
+ \node (aggregator) [def, draw, right=of postgres]{aggregator};
+ \node (transfer) [def, draw, below left=of postgres]{transfer};
+ \node (wirewatch) [def, draw, below right=of postgres]{wirewatch};
+ \node (nexus) [def, draw, below=of postgres]{Nexus};
+
+ \tikzstyle{C} = [color=black, line width=1pt]
 
-  $\Rightarrow$ Convenient, taxable, privacy-enhancing, \& resource friendly!
+ \draw [<->, C] (httpd) -- (postgres) node [midway, above, sloped] (TextNode) 
{};
+ \draw [<->, C] (httpd) -- (secmod-rsa) node [midway, above, sloped] 
(TextNode) {};
+ \draw [<->, C] (httpd) -- (secmod-eddsa) node [midway, above, sloped] 
(TextNode) {};
+ \draw [<->, C] (aggregator) -- (postgres) node [midway, above, sloped] 
(TextNode) {};
+ \draw [<->, C] (wirewatch) -- (postgres) node [midway, above, sloped] 
(TextNode) {};
+ \draw [<->, C] (transfer) -- (postgres) node [midway, above, sloped] 
(TextNode) {};
+ \draw [->, C] (transfer) -- (nexus) node [midway, above, sloped] (TextNode) 
{};
+ \draw [<-, C] (wirewatch) -- (nexus) node [midway, above, sloped] (TextNode) 
{};
+\end{tikzpicture}
 \end{center}
 \end{frame}
 
 
+\begin{frame}
+\frametitle{Taler: Auditor Perspective}
+\begin{center}
+\begin{tikzpicture}
+ \tikzstyle{def} = [node distance=2em and 2.5em, inner sep=1em, outer 
sep=.3em];
+ \node (origin) at (0,0) {};
+ \node (httpd) [def,above left=of origin,draw]{auditor-httpd};
+ \node (report) [def,above right=of origin,draw]{auditor-report};
+ \node (postgres-A) [def, draw, below=of origin] {Postgres (Auditor)};
+ \node (postgres-E) [def, draw, below=of postgres-A] {Postgres (Bank)};
+
+ \tikzstyle{C} = [color=black, line width=1pt]
+
+ \draw [->, C] (postgres-E) -- (postgres-A) node [midway, above, sloped] 
(TextNode) {sync};
+ \draw [<->, C] (httpd) -- (postgres-A) node [midway, above, sloped] 
(TextNode) {};
+ \draw [<->, C] (report) -- (postgres-A) node [midway, above, sloped] 
(TextNode) {};
+\end{tikzpicture}
+\end{center}
+\end{frame}
+
+
+\begin{frame}
+\frametitle{Taler: Merchant Perspective}
+\begin{center}
+\begin{tikzpicture}
+ \tikzstyle{def} = [node distance= 5em and 4.5em, inner sep=1em, outer 
sep=.3em];
+ \node (origin) at (0,0) {};
+ \node (frontend) [def,above=of origin,draw]{merchant-frontend};
+ \node (backend) [def,below=of frontend,draw]{taler-backend};
+ \node (postgres) [def, draw, below left=of backend] {Postgres};
+ \node (sqlite) [def, draw, below=of backend] {Sqlite};
+ \node (alt) [def, draw, below right=of backend] {...};
+
+ \tikzstyle{C} = [color=black, line width=1pt]
+
+ \draw [->, C] (frontend) -- (backend) node [midway, above, sloped] (TextNode) 
{REST API};
+ \draw [<->, C] (backend) -- (postgres) node [midway, above, sloped] 
(TextNode) {SQL};
+ \draw [<->, C] (backend) -- (sqlite) node [midway, above, sloped] (TextNode) 
{SQL};
+ \draw [<->, C] (backend) -- (alt) node [midway, above, sloped] (TextNode) 
{SQL};
+\end{tikzpicture}
+\end{center}
+\end{frame}
+
+
+\begin{frame}
+\frametitle{Taler: Wallet Architecture}
+  \framesubtitle{Background: \url{https://anastasis.lu/}}
+\begin{center}
+\begin{tikzpicture}
+ \tikzstyle{def} = [node distance= 5em and 4.5em, inner sep=1em, outer 
sep=.3em];
+ \node (origin) at (0,0) {};
+ \node (gui) [def,above=of origin,draw]{wallet-gui};
+ \node (core) [def,below=of gui,draw]{wallet-core};
+ \node (sync) [def, draw, below left=of core] {Sync};
+ \node (taler) [def, draw, below right=of core] {Taler};
+ \node (anastasis) [def, draw, below=of core] {Anastasis};
+
+ \tikzstyle{C} = [color=black, line width=1pt]
+ \draw [<->, C] (gui) -- (core) node [midway, above, sloped] (TextNode) {};
+ \draw [<->, C] (core) -- (sync) node [midway, above, sloped] (TextNode) 
{Backup};
+ \draw [<->, C] (core) -- (taler) node [midway, above, sloped] (TextNode) 
{Payment};
+ \draw [<->, C] (core) -- (anastasis) node [midway, above, sloped] (TextNode) 
{Key Escrow};
+\end{tikzpicture}
+\end{center}
+\end{frame}
+
+
+\begin{frame}{Taler: Unique Regulatory Features for Central Banks}
+  
\framesubtitle{\url{https://www.snb.ch/en/mmr/papers/id/working_paper_2021_03}}
+  \begin{itemize}
+    \item Central bank issues digital coins equivalent to issuing cash \\
+          $\Rightarrow$ monetary policy remains under CB control
+    \item Architecture with consumer accounts at commercial banks \\
+          $\Rightarrow$ no competition for commercial banking (S\&L) \\
+          $\Rightarrow$ CB does not have to manage KYC, customer support
+    \item Withdrawal limits and denomination expiration \\
+          $\Rightarrow$ protects against bank runs and hoarding
+    \item Income transparency and possibility to set fees \\
+          $\Rightarrow$ additional insights into economy and new policy options
+    \item Revocation protocols and loss limitations \\
+          $\Rightarrow$ exit strategy and handles catastrophic security 
incidents
+    \item Privacy by cryptographic design not organizational compliance \\
+          $\Rightarrow$ CB cannot be forced to facilitate mass-surveillance
+  \end{itemize}
+\end{frame}
+
+
 \begin{frame}{Usability of Taler}
   \vfill
   \begin{center}
@@ -401,6 +596,7 @@ Taler is an electronic instant payment system.
 
 
 \begin{frame}{Use Case: Anti-Spam}
+  \framesubtitle{Background: \url{https://pep.security/}}
   Today, p$\equiv$p provides authenticated encryption for e-mail:
   \begin{itemize}
     \item Free software
@@ -458,7 +654,20 @@ Taler is an electronic instant payment system.
 \end{frame}
 
 
-\begin{frame}{Taxability}
+\begin{frame}{How does it work?}
+We use a few ancient constructions:
+  \begin{itemize}
+  \item Cryptographic hash function (1989)
+  \item Blind signature (1983)
+  \item Schnorr signature (1989)
+  \item Diffie-Hellman key exchange (1976)
+  \item Cut-and-choose zero-knowledge proof (1985)
+  \end{itemize}
+But of course we use modern instantiations.
+\end{frame}
+
+
+\begin{frame}{Definition: Taxability}
   We say Taler is taxable because:
   \begin{itemize}
   \item Merchant's income is visible from deposits.
@@ -473,19 +682,6 @@ Taler is an electronic instant payment system.
 \end{frame}
 
 
-\begin{frame}{How does it work?}
-We use a few ancient constructions:
-  \begin{itemize}
-  \item Cryptographic hash function (1989)
-  \item Blind signature (1983)
-  \item Schnorr signature (1989)
-  \item Diffie-Hellman key exchange (1976)
-  \item Cut-and-choose zero-knowledge proof (1985)
-  \end{itemize}
-But of course we use modern instantiations.
-\end{frame}
-
-
 \begin{frame}{Exchange setup: Create a denomination key (RSA)}
    \begin{minipage}{6cm}
     \begin{enumerate}
@@ -660,17 +856,6 @@ But of course we use modern instantiations.
 \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}
@@ -769,6 +954,33 @@ But of course we use modern instantiations.
     \includegraphics[width=\textwidth]{seal.pdf}
   \end{minipage}
   \end{minipage}
+  \vfill
+  The exchange does not only verify the signature, but also
+  checks that the coin was not double-spent.
+  \vfill
+  \pause
+  \begin{center}
+  {\bf Taler is an online payment system.}
+  \end{center}
+  \vfill
+\end{frame}
+
+
+\begin{frame}{Requirements: Online vs. Offline Digital Currencies}
+\framesubtitle{\url{https://taler.net/papers/euro-bearer-online-2021.pdf}}
+\begin{itemize}
+    \item Offline capabilities are sometimes cited as a requirement for 
digital payment solutions
+    \item All implementations must either use restrictive hardware elements 
and/or introduce
+      counterparty risk.
+    \item[$\Rightarrow$] Permanent offline features weaken a digital payment 
solution (privacy, security)
+    \item[$\Rightarrow$] Introduces unwarranted competition for physical cash 
(endangers emergency-preparedness).
+  \end{itemize}
+  We recommend a tiered approach:
+      \begin{enumerate}
+        \item Online-first, bearer-based digital currency with Taler
+        \item (Optional:) Limited offline mode for network outages
+        \item Physical cash for emergencies (power outage, catastrophic cyber 
incidents)
+      \end{enumerate}
 \end{frame}
 
 
@@ -1190,6 +1402,7 @@ But of course we use modern instantiations.
   \end{center}
   This signature means that $M$ was the {\em first} to deposit
   $C$ and that the exchange thus must pay $M$.
+  \vfill
   \begin{center}
      Without this, an evil exchange could renege on the deposit
      confirmation and claim double-spending if a coin were
@@ -1291,18 +1504,79 @@ and (likely) would presume an evil exchange, forcing it 
to pay both merchants.
 \end{frame}
 
 
-\begin{frame}{How to support?}
+\begin{frame}{Taler: Project Status}
+\framesubtitle{\url{https://docs.taler.net/}}
+\begin{itemize}
+    \item Cryptographic protocols and core exchange component are stable
+    \item Current focus: Merchant integration, settlement integration, wallet 
backup
+    \item Pilot project at Bern University of Applied Sciences cafeteria
+    \item Internal alpha deployment with a commercial bank in progress
+  \end{itemize}
+\end{frame}
+
+
+\begin{frame}{Next Steps: Possible Projects and Collaborations}
+  \vfill
+\begin{center}
+\includegraphics[width=1.0\textwidth]{taler-in-use.png}
+\end{center}
+\end{frame}
+
+
+\begin{frame}{Area I: System Integration and Partnerships}
+  \framesubtitle{\url{https://lists.gnu.org/mailman/listinfo/taler}}
+  Pilots with banking organizations could:
   \begin{itemize}
-    \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}
+    \item Study integration with the underlying RTGS layer:
+  \begin{itemize}
+    \item Develop standardized operational procedures
+    \item Assess transaction performance at scale
+    \item Perform cost analysis in banking environment
+    \item Assess effort for integration with commercial banks
+  \end{itemize}
+    \item Analyze regulatory considerations for different legislations
+%    \item Building awareness of Taler as a bearer-based retail CBDC
+    \item Perform independent security audits of Taler components
+    \item Determine and possibly close gaps in the existing solution
   \end{itemize}
 \end{frame}
 
 
+\begin{frame}{Area II: Development/Research Extensions}
+  \framesubtitle{Background: \url{https://myoralvillage.org/}}
+We have ideas for protocol extensions and ``programmable money'':
+  \begin{itemize}
+    \item Mediated wallet-to-wallet payments (instead of customer-to-merchant)
+    \item Privacy-preserving auctions (trading, currency exchange)
+    \item Age-restricted private payments for children (youth protection)
+  \end{itemize}
+Central banks should also consider funding research to improve:
+  \begin{itemize}
+    \item General digital wallet usability and availability
+    \item Accessibility features for illiterate and innumerate users
+    \item Projects that facilitate integration at retailers
+  \begin{itemize}
+    \item Hardware and software support for embedded systems
+    \item Integration into off-the-self E-commerce systems
+  \end{itemize}
+    \item Protocol extensions for automated tax reporting
+  \end{itemize}
+\end{frame}
+
+
+\begin{frame}{How to support?}
+  \begin{description}
+    \item[Join:] {\small \url{https://lists.gnu.org/mailman/listinfo/taler}}, 
\\
+                 \url{irc://irc.freenode.net/\#taler}
+    \item[Develop:] \url{https://bugs.taler.net/}, \url{https://git.taler.net/}
+    \item[Translate:] \url{https://weblate.taler.net/}, 
\url{translation-volunteer@taler.net}
+    \item[Integrate:] \url{https://docs.taler.net/}
+    \item[Donate:] \url{https://gnunet.org/ev}
+    \item[Invest:] \url{https://taler-systems.com/}
+  \end{description}
+\end{frame}
+
+
 \begin{frame}{Conclusion}
   \begin{center}
     {\bf  What can we do?}
@@ -1310,9 +1584,9 @@ and (likely) would presume an evil exchange, forcing it 
to pay both merchants.
   \vfill
 \begin{itemize}
  \item{Suffer mass-surveillance enabled by credit card oligopolies with high 
fees, and}
- \item{Engage in arms race with deliberately unregulatable blockchains, and}
- \item{Enjoy the ``benefits'' of cash \\
-  \hfill  \includegraphics[height=0.3\textheight]{atm-rupee.jpg} \hfill}
+ \item{Engage in arms race with deliberately unregulatable blockchains}
+% \item{Enjoy the ``benefits'' of cash \\
+%  \hfill  \includegraphics[height=0.3\textheight]{atm-rupee.jpg} \hfill}
 \end{itemize}
 \vfill
 \begin{center}
@@ -1332,6 +1606,9 @@ and (likely) would presume an evil exchange, forcing it 
to pay both merchants.
 References:
 {\tiny
   \begin{enumerate}
+ \item{David Chaum, Christian Grothoff and Thomas Moser.
+       {\em How to issue a central bank digital currency}.
+       {\bf SNB Working Papers, 2021}.}
  \item{Christian Grothoff, Bart Polot and Carlo von Loesch.
        {\em The Internet is broken: Idealistic Ideas for Building a GNU 
Network}.
        {\bf W3C/IAB Workshop on Strengthening the Internet Against Pervasive 
Monitoring (STRINT)}, 2014.}
@@ -1358,6 +1635,365 @@ References:
 \end{frame}
 
 
+\section{Integration with the core banking system}
+
+\begin{frame}
+  \vfill
+  \begin{center}
+    {\bf Part II: Integration with the core banking system}
+  \end{center}
+  \vfill
+\end{frame}
+
+
+\begin{frame}
+\frametitle{High-level Deployment Recipe}
+\dots as a bank
+\begin{enumerate}
+  \item Create an escrow bank account for the exchange with EBICS access
+  \item Provision offline signing machine (or account during testing)
+  \item Provision two PostgreSQL databases (for LibEuFin Nexus and exchange)
+  \item Provision user-facing exchange service and secmod processes
+  \item Provision LibEuFin Nexus (connected to escrow account and providing
+    an internal API to the exchange)
+  \item Test using the ``taler-wallet-cli``
+\end{enumerate}
+\end{frame}
+
+
+\begin{frame}{Exchange escrow account access}
+The Taler exchange needs to communicate with the core banking system \dots
+\begin{itemize}
+  \item to query for transactions into the exchange's escrow account
+  \item to initiate payments of aggregated Taler deposits to merchants
+\end{itemize}
+
+In a Taler deployment, the \emph{Taler Wire Gateway} provides an API to the 
exchange
+for Taler-specific access to the Exchange's escrow account.  Multiple 
implementations
+of the Taler Wire Gateway exist:
+
+\begin{itemize}
+  \item a self-contained play money demo bank
+  \item LibEuFin, an adapter to EBICS and other protocols
+\end{itemize}
+
+\end{frame}
+
+\begin{frame}{LibEuFin}
+  LibEuFin is a standalone project that provides adapters to bank account
+  access APIs.
+
+  \begin{itemize}
+    \item LibEuFin provides both a generic access layer and an
+      implementation of the Taler Wire Gateway API for the exchange
+    \item currently, only EBICS 2.5 is supported
+    \item other APIs such as FinTS or PSD2-style XS2A APIs can be added
+      without requiring changes to the Exchange
+    \item tested with a GLS business account
+  \end{itemize}
+\end{frame}
+
+\begin{frame}{LibEuFin Concepts}
+  \begin{itemize}
+    \item A LibEuFin \emph{bank connection} is a set of credentials and 
parameters
+      to talk to the bank's account access API.
+    \item A LibEuFin \emph{bank account} is the information about a bank
+      account (balances, transactions, payment initiations) stored locally
+      within the LibEuFin service.  A LibEuFin bank account has a default Bank
+      Connection that is used to communicate with the bank's API.
+    \item A \emph{facade} provides a domain-specific access layer to bank 
accounts
+      and connections.  The \emph{Taler Wire Gateway Facade} implements the
+      API required by the Taler exchange and translates it to operations on the
+      underlying account/connection.
+  \end{itemize}
+\end{frame}
+
+\begin{frame}{LibEuFin Tooling}
+  \begin{itemize}
+    \item \texttt{libeufin-nexus} is the main service
+    \item Almost all configuration (except DB credentials)
+      is stored in the database and managed via a RESTful HTTP API
+    \item \texttt{libeufin-sandbox} implements a toy EBICS host for protocol
+      testing
+    \item \texttt{libeufin-cli} is client for the HTTP API (only implements a 
subset
+      of available functionality)
+  \end{itemize}
+\end{frame}
+
+\begin{frame}{LibEuFin Setup Overview}
+  \begin{itemize}
+    \item Obtain EBICS subscriber configuration (host URL, host ID, user ID,
+      partner ID) for the Exchange's escrow account
+    \item Deploy the LibEuFin Nexus service
+    \item Create a new LibEuFin bank connection (of type \texttt{ebics})
+    \item Export and back up the key material for the bank connection (contains
+      EBICS subscriber configuration and private keys)
+    \item Send subscriber initialization to the EBICS host (electronically)
+    \item Export key letter and activate subscriber in the EBICS host 
(manually)
+    \item Synchronize the bank connection
+    \item Import the account into LibEuFin
+    \item Create a Taler Wire Gateway facade
+    \item Set up scheduled tasks for ingesting new transactions / sending 
payment
+      initiations
+  \end{itemize}
+\end{frame}
+
+
+
+\begin{frame}{LibEuFin Implementation Limitations}
+  \begin{itemize}
+    \item LibEuFin is less stable than other Taler components, and future
+      updates might contain breaking changes (tooling, APIs and database
+      schema)
+    \item Error handling and recovery is still rather primitive
+    \item The Taler Wire Gateway does not yet implement automatic return
+      transactions when transactions with a malformed subject (i.e.  no reserve
+      public key) are received
+  \end{itemize}
+\end{frame}
+
+\begin{frame}{LibEuFin EBICS Limitations}
+  The GLS accounts with EBICS access that we have access to have some 
limitations:
+  \begin{itemize}
+    \item SEPA Instant Credit Transfers aren't supported yet
+    \item Erroneous payment initiations are accepted by the GLS EBICS host,
+      but an error message is later sent only by paper mail (and not reported
+      by the CRZ download request)
+    \item Limited access to transaction history (3 months)
+  \end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]{LibEuFin Setup Guide}
+\vfill
+\begin{center}
+\url{https://docs.taler.net/libeufin/nexus-tutorial.html}
+\end{center}
+\vfill
+\end{frame}
+
+
+\section{Operator security considerations}
+
+\begin{frame}
+  \vfill
+  \begin{center}
+    {\bf Part III: Operator security considerations}
+  \end{center}
+  \vfill
+\end{frame}
+
+
+\begin{frame}{Key management}
+Taler has many types of keys:
+\begin{itemize}
+\item Coin keys
+\item Denomination keys
+\item Online message signing keys
+\item Offline key signing keys
+\item Merchant keys
+\item Auditor key
+\item Security module keys
+\item Transfer keys
+\item Wallet keys
+\item {\em TLS keys, DNSSEC keys}
+\end{itemize}
+\end{frame}
+
+
+\begin{frame}{Offline keys}
+Both exchange and auditor use offline keys.
+\begin{itemize}
+\item Those keys must be backed up and remain highly confidential!
+\item We recommend that computers that have ever had access to those
+      keys to NEVER again go online.
+\item We recommend using a Raspberry Pi for offline key operations.
+      Store it in a safe under multiple locks and keys.
+\item Apply full-disk encryption on offline-key signing systems.
+\item Have 3--5 full-disk backups of offline-key signing systems.
+\end{itemize}
+\begin{center}
+\includegraphics[scale=0.1]{pi.png}
+\end{center}
+\end{frame}
+
+
+\begin{frame}{Online keys}
+The exchange needs RSA and EdDSA keys to be available for online signing.
+\begin{itemize}
+\item Knowledge of these private keys will allow an adversary to
+      mint digital cash, possibly resulting in huge financial losses
+      (eventually, this will be detected by the auditor, but only
+       after some financial losses have been irrevocably incurred).
+\item The corresponding public keys are certified using
+      Taler's public key infrastructure (which uses offline-only keys).
+\end{itemize}
+\begin{center}
+\includegraphics[width=0.5\textwidth]{taler-diagram-signatures.png}
+\end{center}
+\vfill
+{\tt taler-exchange-offline} can also be used to {\bf revoke} the
+online signing keys, if we find they have been compromised.
+\vfill
+\end{frame}
+
+
+\begin{frame}{Protecting online keys}
+The exchange needs RSA and EdDSA keys to be available for online signing.
+\begin{itemize}
+\item {\tt taler-exchange-secmod-rsa} and {\tt taler-exchange-secmod-eddsa}
+      are the only processes that must have access to the private keys.
+\item The secmod processes should run under a different UID, but share
+      the same GID with the exchange.
+\item The secmods generate the keys, allow {\tt taler-exchange-httpd} to sign 
with
+      them, and eventually delete the private keys.
+\item Communication between secmods and {\tt taler-exchange-httpd} is via
+      a UNIX domain socket.
+\item Online private keys are stored on disk (not in database!) and should
+      NOT be backed up (RAID should suffice). If disk is lost, we can always
+      create fresh replacement keys!
+\end{itemize}
+\end{frame}
+
+
+\begin{frame}{Database}
+The exchange needs the database to detect double spending.
+\begin{itemize}
+\item Loss of the database will allow technically skilled people
+      to double-spend their digital cash, possibly resulting in
+      significant financial losses.
+\item The database contains total amounts customers withdrew and
+      merchants received, so sensitive private banking data. It
+      must also not become public.
+\item The auditor must have a (current) copy. Asynchronous replication
+      is considered sufficient.  This copy could also be used as an
+      additional (off-site?) backup.
+\end{itemize}
+\end{frame}
+
+
+\begin{frame}{taler-exchange-wirewatch}
+{\tt taler-exchange-wirewatch} needs credentials to access data about
+incoming wire transfers from the Nexus.
+\begin{itemize}
+\item This tool should run as a separate UID and GID (from
+      {\tt taler-exchange-httpd}).
+\item It must have access to the Postgres database (SELECT + INSERT).
+\item Its configuration file contains the credentials to talk to Nexus.
+\item[$\Rightarrow$] Configuration should be separate from {\tt 
taler-exchange-httpd}.
+\end{itemize}
+\end{frame}
+
+
+\begin{frame}{taler-exchange-transfer}
+Only {\tt taler-exchange-transfer} needs credentials to initiate wire
+transfers using the Nexus.
+\begin{itemize}
+\item This tool should run as a separate UID and GID (from
+      {\tt taler-exchange-httpd}).
+\item It must have access to the Postgres database (SELECT + INSERT).
+\item Its configuration file contains the credentials to talk to Nexus.
+\item[$\Rightarrow$] Configuration should be separate from {\tt 
taler-exchange-httpd}.
+\end{itemize}
+\end{frame}
+
+
+\begin{frame}{Nexus}
+The Nexus has to be able to interact with the escrow account of the bank.
+\begin{itemize}
+\item It must have the private keys to sign EBICS/FinTS messages.
+\item It also has its own local database.
+\item The Nexus user and database should be kept separate from
+      the other exchange users and the Taler exchange database.
+\end{itemize}
+\end{frame}
+
+
+\begin{frame}{Hardware}
+General notions:
+\begin{itemize}
+\item Platforms with disabled Intel ME \& disabled remote administration are 
safer.
+\item VMs are not a security mechanism. Side-channel attacks abound. Avoid 
running any
+      Taler component in a virtual machine ``for security''.
+\end{itemize}
+\end{frame}
+
+
+\begin{frame}{Operating system}
+General notions:
+\begin{itemize}
+\item It should be safe to run the different Taler components (including 
Nginx, Nexus
+      and Postgres) all on the same physical hardware (under different 
UIDs/GIDs).
+      We would separate them onto different physical machines during 
scale-out, but not
+      necessarily for ``basic'' security.
+\item Limiting and auditing system administrator access will be crucial.
+\item We recommend to {\bf not} use any anti-virus.
+\item We recommend using a well-supported GNU/Linux operating system (such as
+      Debian or Ubuntu).
+\end{itemize}
+\end{frame}
+
+
+\begin{frame}{Network}
+\begin{itemize}
+\item We recommend to {\bf not} use any host-based firewall.
+      Taler components can use UNIX domain sockets (or bind to localhost).
+\item A network-based
+      firewall is not required, but as long as TCP 80/443 are open Taler should
+      work fine.
+\item Any firewall must be configured to permit connection to Auditor
+      for database synchronization.
+\item We recommend running the Taler exchange behind an Nginx or Apache
+      proxy for TLS termination.
+\item We recommend using static IP address configurations (IPv4 and IPv6).
+\item We recommend using DNSSEC with DANE in addition to TLS certificates.
+\item We recommend auditing the TLS setup using 
\url{https://observatory.mozilla.org}.
+\end{itemize}
+\end{frame}
+
+
+\section{Integration considerations}
+
+\begin{frame}
+  \vfill
+  \begin{center}
+    {\bf Part IV: Integration considerations}
+  \end{center}
+  \vfill
+\end{frame}
+
+
+\begin{frame}[fragile]{RFC 8905: \texttt{payto:} Uniform Identifiers for 
Payments and Accounts}
+  \vfill
+  Like \texttt{mailto:}, but for bank accounts instead of email accounts!
+  \vfill
+  \begin{verbatim}
+    payto://<PAYMENT-METHOD>/<ACCOUNT-NR>
+      ?subject=InvoiceNr42
+      &amount=EUR:12.50
+  \end{verbatim}
+  \vfill
+  Default action:  Open app to review and confirm payment.
+  \vfill
+\includegraphics[width=0.25\textwidth]{einzahlschein-ch.jpeg}
+\hfill
+\includegraphics[width=0.2\textwidth]{de-ueberweisungsformular.png}
+  \vfill
+\end{frame}
+
+
+\begin{frame}[fragile]{Benefits of {\tt payto://}}
+  \begin{itemize}
+    \item Standardized way to represent financial resources (bank account, 
bitcoin wallet)
+      and payments to them
+    \item Useful on the client-side on the Web and for FinTech backend 
applications
+    \item Payment methods (such as IBAN, ACH, Bitcoin) are registered with
+          IANA and allow extra options
+  \end{itemize}
+  \begin{center}
+  {\bf Taler wallet can generate payto://-URI for withdraw!}
+  \end{center}
+\end{frame}
+
 
 
 \end{document}
diff --git a/presentations/comprehensive/taler-in-use.png 
b/presentations/comprehensive/taler-in-use.png
new file mode 100644
index 0000000..f9d698a
Binary files /dev/null and b/presentations/comprehensive/taler-in-use.png differ

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]