commit c92cd5e16c1de5ffe254568241822605b3b65017
parent 5c5e76426281ebbf3ee7c6c4d51586d207bdeae8
Author: Christian Grothoff <grothoff@gnunet.org>
Date: Sat, 1 Jun 2024 21:34:49 +0200
workshop draft
Diffstat:
9 files changed, 694 insertions(+), 364 deletions(-)
diff --git a/presentations/comprehensive/moztw-ecommerce.tex b/presentations/comprehensive/moztw-ecommerce.tex
@@ -7,7 +7,6 @@
\usepackage[absolute,overlay]{textpos}
\definecolor{shadecolor}{rgb}{0.8,0.8,0.8}
\usetheme{boxes}
-\setbeamertemplate{navigation symbols}{}
\usepackage{xcolor}
\usepackage[normalem]{ulem}
\usepackage{listings}
@@ -204,8 +203,24 @@
\title{GNU Taler}
%\subtitle{}
-\setbeamertemplate{navigation symbols}{ \includegraphics[width=0.4cm]{logo-esen.pdf} \includegraphics[width=1cm]{logo-GlsBank.pdf} \includegraphics[width=0.6cm]{logo-MagNetBank.pdf} \includegraphics[width=0.4cm]{logo-ps.pdf} \includegraphics[width=0.4cm]{logo-nlnet.pdf} \includegraphics[width=0.4cm]{logo-HomoDigitalis.pdf} \includegraphics[width=0.4cm]{logo-codeblau.pdf} \includegraphics[width=1.4cm]{logo-tue.pdf} \includegraphics[width=0.6cm]{logo-visualvest.pdf} \includegraphics[width=1cm]{inria.pdf} \includegraphics[width=0.4cm]{logo-bfh.pdf} \includegraphics[width=1.6cm]{fub.pdf} \includegraphics[width=0.4cm]{ashoka.png} \includegraphics[width=0.4cm]{gnu.png} \includegraphics[width=1cm]{taler-logo-2021-inkscape.pdf} \hfill}
-%\setbeamercovered{transparent=1}
+\setbeamertemplate{navigation symbols}{
+ \includegraphics[width=0.4cm]{logo-bfh.pdf}
+ \includegraphics[width=1.6cm]{fub.pdf}
+ \includegraphics[width=1cm]{tud-logo.pdf}
+ \includegraphics[width=1.4cm]{logo-tue.pdf}
+ \includegraphics[width=1cm]{inria.pdf}
+ \includegraphics[width=1cm]{logo-GlsBank.pdf}
+ \includegraphics[width=0.6cm]{logo-MagNetBank.pdf} \
+ \includegraphics[width=0.6cm]{logo-visualvest.pdf}
+ \includegraphics[width=0.4cm]{ashoka.png}
+ \includegraphics[width=0.4cm]{logo-esen.pdf}
+ \includegraphics[width=0.4cm]{gnu.png}
+ \includegraphics[width=0.4cm]{logo-HomoDigitalis.pdf}
+ \includegraphics[width=0.4cm]{logo-nlnet.pdf}
+ \includegraphics[width=0.4cm]{logo-codeblau.pdf}
+ \includegraphics[width=0.4cm]{logo-ps.pdf}
+ \includegraphics[width=1cm]{taler-logo-2021-inkscape.pdf}
+ \hfill}
\author[C. Grothoff]{J. Burdges, F. Dold, {\bf C. Grothoff}, M. Stanisci}
\date{\today}
@@ -236,218 +251,12 @@
% Substitute based on who is giving the talk!
\begin{textblock*}{6cm}(6.7cm,7.7cm) % {block width} (coords)
- {\hfill {\bf Christian Grothoff}} \\
+ {\hfill {\bf Christian Grothoff} \\
\hfill grothoff@taler.net }
\end{textblock*}
\end{frame}
-
-\begin{frame}{Agenda}
- \tableofcontents
-\end{frame}
-
-\section{Motivation \& Background}
-
-
-\begin{frame}{Surveilance concerns}
-\begin{itemize}
-\item Everybody knows about Internet surveilance.
-\item But is it {\bf that} bad?\pause
- \begin{itemize}
- \item You can choose when and where to use the Internet
- \item You can anonymously access the Web using Tor
- \item You can find open access points that do not require authentication
- \item IP packets do not include your precise location or name
- \item ISPs typically store this meta data for days, weeks or months
- \end{itemize}
-\end{itemize}
-\end{frame}
-
-
-\begin{frame}{What is worse:}
- \begin{itemize}
- \item When you pay by CC, the information includes your name
- \item When you pay in person with CC, your location is also known
- \item You often have no alternative payment methods available
- \item You hardly ever can use someone else's CC
- \item Anonymous prepaid cards are difficult to get and expensive
- \item Payment information is typically stored for at least 6 years
- \end{itemize}
-\end{frame}
-
-
-\begin{frame}{Banks have Problems, too!}
-
- 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 sovereignty 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}{Predicting the Future}
- \begin{itemize}
- \item Google and Apple will be your bank and run your payment system
- \item They can target advertising based on your purchase history, location and
- your ability to pay
- \item They will provide more usable, faster and broadly available
- payment solutions; our federated banking system will be history
-% just like SMTP is now Gmail.
- \item After they dominate the payment sector, they will start to charge fees
- befitting their oligopoly size
- \item Competitors and vendors not aligning with their corporate ``values''
- will be excluded by policy and go bankrupt
- \item The imperium will have another major tool for its financial warfare
- \end{itemize}
-\end{frame}
-
-
-\begin{frame}{The Distraction: Bitcoin}
-
-\begin{itemize}
-\item Unregulated payment system and currency:
-\item[] $\Rightarrow$ lack of regulation is a feature!
-\item Implemented in free software
-\item Decentralised peer-to-peer system \pause
-\item Decentralised banking requires solving Byzantine consensus
-\item Creative solution: tie initial accumulation to solving consensus \pause
-\item[] $\Rightarrow$ Proof-of-work advances ledger
-\item[] $\Rightarrow$ Very expensive banking
-\end{itemize}
-\end{frame}
-
-
-\begin{frame}
- \frametitle{\includegraphics[height=0.5cm]{pics/bitcoin.png}?}
- \framesubtitle{Background: \url{https://blockchain.com/charts/}}
- \centering
-\noindent
-\includegraphics[width=\textwidth]{pics/btc-transaction-cost.png}
-
-Current average transaction value: $\approx$ 1000 USD
-\end{frame}
-
-
-\begin{frame}
- \frametitle{\includegraphics[height=0.5cm]{pics/zerocoin.png}?}
-
-Cryptography is rather primitive:
-\begin{center}
- {\bf All Bitcoin transactions are public and linkable!}
-\end{center}
-
-\begin{itemize}
-\item[] $\Rightarrow$ no privacy guarantees
-\item[] $\Rightarrow$ enhanced with ``laundering'' services
-\end{itemize}
-ZeroCoin, CryptoNote (Monero) and ZeroCash (ZCash) offer anonymity.
-\end{frame}
-
-
-\begin{frame}
- \vfill
-\begin{center}
-{\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}
-
-
-\begin{frame}{The Emergency Act of Canada\footnote{Speech by Premier Kenney, Alberta, February 2022}}
- \begin{center}
- \movie[%scale=0.6,
- autostart,
- poster]
- {
- \includegraphics[height=0.6\textwidth,width=0.8\textwidth]{ca.png}
- }
- {emergencyact.mp4}
-
- {\tiny \url{https://www.youtube.com/watch?v=NehMAj492SA} (2'2022)}
- \end{center}
-\end{frame}
-
-
-\section{GNU Taler: Introduction}
-
-\begin{frame}
- \vfill
- \begin{center}
- {\bf GNU Taler: Introduction}
- \end{center}
- \vfill
-\end{frame}
-
-
-\begin{frame}{GNU Taler}
- \vfill
- \begin{center}
- {\huge {\bf Digital} cash, made \textbf{socially responsible}.}
- \end{center}
- \vfill
- \begin{center}
- \includegraphics[scale=0.3]{taler-logo-2021-inkscape.pdf}
- \end{center}
- \vfill
- \begin{center}
- Privacy-Preserving, Practical, Taxable, Free Software, Efficient
- \end{center}
- \vfill
- \vfill
-\ %
-\end{frame}
-
-
\begin{frame}{What is Taler?}
\framesubtitle{\url{https://taler.net/en/features.html}} \noindent
Taler is
@@ -491,33 +300,6 @@ GNU Taler must ...
\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};
-% \node (regulator) [def, draw, above=of auditor]{CSSF};
-
- \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};
-% \draw [<-, C] (regulator) -- (auditor) node [midway, above, sloped] (TextNode) {report};
-
-\end{tikzpicture}
-\end{center}
-\end{frame}
-
-
-
-\begin{frame}
- % TODO: replace with simplified NEW architecture picture!
\frametitle{Architecture of Taler}
\begin{center}
\includegraphics[width=1\textwidth]{operations.png}
@@ -525,29 +307,6 @@ GNU Taler must ...
\end{frame}
-\begin{frame}{Consumer Impact of Taler}
-\begin{itemize}
-\item {\bf Convenient:} pay with one click instantly --– in Euro,
-Dollar, Yen or Bitcoin
-\item {\bf Friction-free security:} Payments do not require sign-up,
-login or multi-factor authentication
-\item {\bf Privacy-preserving:} payment requires/shares no personal information
-\item {\bf Bank account:} not required
-\end{itemize}
-\end{frame}
-
-
-\begin{frame}{Merchant Impact of Taler}
-\begin{itemize}
-\item {\bf Instant clearance:} one-click transactions and instant clearance at par
-\item {\bf Easy \& compliant:} GDPR \& PCI-DSS compliance-free and without any effort
-\item {\bf Major profit increase:} efficient protocol $+$ no fraud $=$ extremely low costs
-\item {\bf 1-click checkout:} without Amazon and without false
-positives in fraud detection
-\end{itemize}
-\end{frame}
-
-
\begin{frame}{Usability of Taler}
\vfill
\begin{center}
@@ -562,45 +321,6 @@ positives in fraud detection
\end{frame}
-\begin{frame}[c]{Example: The Taler Snack Machine\footnote{by M. Boss and D. Hofer}}
- \framesubtitle{Integration of a MDB/ICP to Taler gateway.\\Implementation of a NFC or QR-Code to Taler wallet interface.}
- \vfill
- \begin{figure}
- \centering
- \includegraphics[width=1.0\textwidth]{design}
- \end{figure}
-\end{frame}
-
-
-\begin{frame}[t]{Software architecture for the Taler Snack Machine}
- \framesubtitle{Code at \url{https://git.taler.net/taler-mdb}}
-\begin{figure}
- \centering
- \includegraphics[width=.9\textwidth]{software_stack}
- \end{figure}
-\end{frame}
-
-
-\begin{frame}[c]{User story: Install App on Android}
-\framesubtitle{\url{https://wallet.taler.net/}}
- \begin{figure}
- \includegraphics[width=0.9\textwidth]{download_wallet.png}
- \end{figure}
-\end{frame}
-
-\begin{frame}{User story: Withdraw e-cash}
- \begin{figure}
- \includegraphics[width=0.9\textwidth]{get_taler_coins.png}
- \end{figure}
-\end{frame}
-
-\begin{frame}{User story: Use machine!}
- \begin{figure}
- \includegraphics[width=0.9\textwidth]{get_snacks.png}
- \end{figure}
-\end{frame}
-
-
\begin{frame}{Real-world use}
\vfill
\begin{center}
@@ -642,37 +362,6 @@ positives in fraud detection
\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 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}{Payment processing with Taler}
\begin{center}
@@ -692,40 +381,7 @@ positives in fraud detection
\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}
-
-
-\begin{frame}{Fully Offline Payments {\bf (WiP)}}
-\framesubtitle{\url{https://docs.taler.net/design-documents/030-offline-payments.html}}
-Many central banks today demand offline capabilities for digital payment solutions.
-\vfill
-\noindent
-Three possible approaches:
-\begin{enumerate}
- \item Trust-based offline payments (has counterparty and/or privacy risks)
- \item Full HSM Taler wallet (has hardware costs)
- \item Light-weight HSM balance register
-\end{enumerate}
-\vfill
-\end{frame}
-
-
-\begin{frame}{Partially Offline Payments with GNU Taler\footnote{Joint work with Emmanuel Benoist, Priscilla Huang and Sebastian Marchano}}
+\begin{frame}{Partially Offline Payments with GNU Taler}
\begin{center}
\resizebox{8cm}{7cm}{
diff --git a/workshops/bandera.jpg b/workshops/bandera.jpg
Binary files differ.
diff --git a/workshops/logo-NGI_TALER.ai b/workshops/logo-NGI_TALER.ai
@@ -0,0 +1,168 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ version="1.1"
+ id="svg2137"
+ width="553.96533"
+ height="170.64532"
+ viewBox="0 0 553.96533 170.64532"
+ sodipodi:docname="logo_NGI_TALER.ai"
+ inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2141">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4636">
+ <stop
+ style="stop-color:#0042b3;stop-opacity:1;"
+ offset="0"
+ id="stop4632" />
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="1"
+ id="stop4634" />
+ </linearGradient>
+ <linearGradient
+ x1="0"
+ y1="0"
+ x2="1"
+ y2="0"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-139.45511,-135.52185,-135.52185,139.45511,177.4727,131.75308)"
+ spreadMethod="pad"
+ id="linearGradient2163">
+ <stop
+ style="stop-opacity:1;stop-color:#00afbc"
+ offset="0"
+ id="stop2159" />
+ <stop
+ style="stop-opacity:1;stop-color:#205374"
+ offset="1"
+ id="stop2161" />
+ </linearGradient>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2173">
+ <path
+ d="M 0,127.984 H 415.474 V 0 H 0 Z"
+ id="path2171" />
+ </clipPath>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4636"
+ id="linearGradient4654"
+ x1="14.72319"
+ y1="14.33813"
+ x2="213.9493"
+ y2="113.96497"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="namedview2139"
+ pagecolor="#ffffff"
+ bordercolor="#000000"
+ borderopacity="0.25"
+ inkscape:showpageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ inkscape:deskcolor="#d1d1d1"
+ showgrid="false"
+ inkscape:zoom="2.6373491"
+ inkscape:cx="250.63045"
+ inkscape:cy="85.312938"
+ inkscape:window-width="1920"
+ inkscape:window-height="1015"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="g2145">
+ <inkscape:page
+ x="0"
+ y="0"
+ id="page2143"
+ width="553.96533"
+ height="170.64532"
+ inkscape:export-filename="logo-NGI_TALER_Bold_.svg"
+ inkscape:export-xdpi="96"
+ inkscape:export-ydpi="96" />
+ </sodipodi:namedview>
+ <g
+ id="g2145"
+ inkscape:groupmode="layer"
+ inkscape:label="Page 1"
+ transform="matrix(1.3333333,0,0,-1.3333333,0,170.64533)">
+ <g
+ id="g2147"
+ style="mix-blend-mode:difference;fill:url(#linearGradient4654);fill-opacity:1;stroke:none;stroke-width:0;stroke-dasharray:none">
+ <g
+ id="g2149"
+ style="fill:url(#linearGradient4654);fill-opacity:1;stroke:none;stroke-width:0;stroke-dasharray:none">
+ <g
+ id="g2155"
+ style="fill:url(#linearGradient4654);fill-opacity:1;stroke:none;stroke-width:0;stroke-dasharray:none">
+ <g
+ id="g2157"
+ style="fill:url(#linearGradient4654);fill-opacity:1;stroke:none;stroke-width:0;stroke-dasharray:none">
+ <path
+ d="m 25.228,113.805 c -6.079,0 -11.051,-4.973 -11.051,-11.051 v 0 -77.523 c 0,-6.079 4.972,-11.051 11.051,-11.051 v 0 h 165.035 c 6.078,0 11.051,4.973 11.051,11.051 v 0 18.26 c 0,2.022 0.803,3.962 2.234,5.393 v 0 l 9.096,9.096 c 2.54,2.539 2.533,6.657 -0.013,9.188 v 0 l -9.067,9.017 c -1.44,1.431 -2.25,3.379 -2.25,5.409 v 0 21.16 c 0,6.078 -4.973,11.051 -11.051,11.051 v 0 z"
+ style="fill:url(#linearGradient4654);fill-opacity:1;stroke:none;stroke-width:0;stroke-dasharray:none"
+ id="path2165" />
+ </g>
+ </g>
+ </g>
+ </g>
+ <g
+ id="g2167">
+ <g
+ id="g2169"
+ clip-path="url(#clipPath2173)">
+ <g
+ id="g2175"
+ transform="translate(175.9982,95.8645)">
+ <path
+ d="m 0,0 v 0 c 4.074,0 7.376,-3.302 7.376,-7.376 v -48.993 c 0,-4.074 -3.302,-7.376 -7.376,-7.376 -4.074,0 -7.376,3.302 -7.376,7.376 V -7.376 C -7.376,-3.302 -4.074,0 0,0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path2177" />
+ </g>
+ <g
+ id="g2179"
+ transform="translate(152.1193,64.9934)">
+ <path
+ d="M 0,0 H -0.506 C -0.57,0 -0.633,-0.008 -0.698,-0.01 -0.762,-0.008 -0.825,0 -0.89,0 h -7.283 c -3.929,0 -7.359,-2.965 -7.613,-6.885 -0.278,-4.296 3.124,-7.867 7.361,-7.867 0.776,0 1.343,-0.754 1.111,-1.494 -0.658,-2.088 -2.341,-3.751 -4.547,-4.333 -2.074,-0.547 -4.276,-0.821 -6.605,-0.821 -4.007,0 -7.574,0.865 -10.7,2.595 -3.127,1.73 -5.57,4.144 -7.331,7.24 -1.761,3.096 -2.641,6.617 -2.641,10.564 0,4.006 0.88,7.558 2.641,10.654 1.761,3.097 4.219,5.493 7.377,7.195 3.156,1.698 6.768,2.549 10.836,2.549 4.681,0 8.865,-1.269 12.55,-3.807 2.341,-1.612 5.524,-1.588 7.757,0.171 3.48,2.741 3.289,8.045 -0.315,10.452 -1.7,1.136 -3.538,2.112 -5.512,2.928 -4.553,1.881 -9.623,2.823 -15.208,2.823 -6.679,0 -12.69,-1.412 -18.03,-4.235 -5.344,-2.822 -9.517,-6.738 -12.522,-11.747 -3.005,-5.008 -4.508,-10.67 -4.508,-16.983 0,-6.315 1.503,-11.975 4.508,-16.984 3.005,-5.009 7.148,-8.924 12.43,-11.747 5.282,-2.824 11.231,-4.235 17.849,-4.235 4.613,0 9.197,0.699 13.751,2.095 0.045,0.014 0.091,0.028 0.136,0.042 7.104,2.202 11.884,8.86 11.884,16.297 v 9.047 C 6.486,-2.904 3.583,0 0,0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path2181" />
+ </g>
+ <g
+ id="g2183"
+ transform="translate(90.5807,88.5798)">
+ <path
+ d="m 0,0 v -49.176 c 0,-4.023 -3.262,-7.285 -7.286,-7.285 h -1.381 c -2.181,0 -4.247,0.977 -5.631,2.662 l -24.229,29.505 c -1.804,2.197 -5.368,0.921 -5.368,-1.922 v -22.96 c 0,-4.023 -3.261,-7.285 -7.285,-7.285 -4.023,0 -7.285,3.262 -7.285,7.285 V 0 c 0,4.024 3.262,7.285 7.285,7.285 h 1.468 c 2.184,0 4.253,-0.979 5.636,-2.669 l 24.135,-29.475 c 1.802,-2.202 5.37,-0.927 5.37,1.918 V 0 c 0,4.024 3.261,7.285 7.285,7.285 C -3.262,7.285 0,4.024 0,0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path2185" />
+ </g>
+ </g>
+ </g>
+ <text
+ xml:space="preserve"
+ transform="scale(1,-1)"
+ style="font-variant:normal;font-weight:600;font-stretch:normal;font-size:31.76px;font-family:'Montserrat SemiBold';-inkscape-font-specification:Montserrat-SemiBold;writing-mode:lr-tb;fill:#6f9aa8;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="text2191"
+ x="237.90379"
+ y="-51.030296"><tspan
+ x="237.90379"
+ sodipodi:role="line"
+ id="tspan2187"
+ y="-51.030296"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:31.76px;font-family:Montserrat;-inkscape-font-specification:'Montserrat, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">T A L E R</tspan><tspan
+ x="237.90379"
+ y="-11.330296"
+ sodipodi:role="line"
+ id="tspan2189" /></text>
+ </g>
+</svg>
diff --git a/workshops/logo-NGI_TALER_Bold.png b/workshops/logo-NGI_TALER_Bold.png
Binary files differ.
diff --git a/workshops/logo-NGI_TALER_Bold.svg b/workshops/logo-NGI_TALER_Bold.svg
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ version="1.1"
+ id="svg2137"
+ width="553.96533"
+ height="170.64532"
+ viewBox="0 0 553.96533 170.64532"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2141">
+ <linearGradient
+ id="linearGradient4636">
+ <stop
+ style="stop-color:#0042b3;stop-opacity:1;"
+ offset="0"
+ id="stop4632" />
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="1"
+ id="stop4634" />
+ </linearGradient>
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath2173">
+ <path
+ d="M 0,127.984 H 415.474 V 0 H 0 Z"
+ id="path2171" />
+ </clipPath>
+ <linearGradient
+ xlink:href="#linearGradient4636"
+ id="linearGradient4654"
+ x1="14.72319"
+ y1="14.33813"
+ x2="213.9493"
+ y2="113.96497"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ xlink:href="#linearGradient4636"
+ id="linearGradient491"
+ gradientUnits="userSpaceOnUse"
+ x1="14.72319"
+ y1="14.33813"
+ x2="213.9493"
+ y2="113.96497" />
+ <linearGradient
+ xlink:href="#linearGradient4636"
+ id="linearGradient493"
+ gradientUnits="userSpaceOnUse"
+ x1="14.72319"
+ y1="14.33813"
+ x2="213.9493"
+ y2="113.96497" />
+ <linearGradient
+ xlink:href="#linearGradient4636"
+ id="linearGradient495"
+ gradientUnits="userSpaceOnUse"
+ x1="14.72319"
+ y1="14.33813"
+ x2="213.9493"
+ y2="113.96497" />
+ <linearGradient
+ xlink:href="#linearGradient4636"
+ id="linearGradient497"
+ gradientUnits="userSpaceOnUse"
+ x1="14.72319"
+ y1="14.33813"
+ x2="213.9493"
+ y2="113.96497" />
+ </defs>
+ <g
+ id="g2145"
+ transform="matrix(1.3333333,0,0,-1.3333333,0,170.64533)">
+ <g
+ id="g2147"
+ style="mix-blend-mode:difference;fill:url(#linearGradient4654);fill-opacity:1;stroke:none;stroke-width:0;stroke-dasharray:none">
+ <g
+ id="g2149"
+ style="fill:url(#linearGradient497);fill-opacity:1;stroke:none;stroke-width:0;stroke-dasharray:none">
+ <g
+ id="g2155"
+ style="fill:url(#linearGradient495);fill-opacity:1;stroke:none;stroke-width:0;stroke-dasharray:none">
+ <g
+ id="g2157"
+ style="fill:url(#linearGradient493);fill-opacity:1;stroke:none;stroke-width:0;stroke-dasharray:none">
+ <path
+ d="m 25.228,113.805 c -6.079,0 -11.051,-4.973 -11.051,-11.051 v 0 -77.523 c 0,-6.079 4.972,-11.051 11.051,-11.051 v 0 h 165.035 c 6.078,0 11.051,4.973 11.051,11.051 v 0 18.26 c 0,2.022 0.803,3.962 2.234,5.393 v 0 l 9.096,9.096 c 2.54,2.539 2.533,6.657 -0.013,9.188 v 0 l -9.067,9.017 c -1.44,1.431 -2.25,3.379 -2.25,5.409 v 0 21.16 c 0,6.078 -4.973,11.051 -11.051,11.051 v 0 z"
+ style="fill:url(#linearGradient491);fill-opacity:1;stroke:none;stroke-width:0;stroke-dasharray:none"
+ id="path2165" />
+ </g>
+ </g>
+ </g>
+ </g>
+ <g
+ id="g2167">
+ <g
+ id="g2169"
+ clip-path="url(#clipPath2173)">
+ <g
+ id="g2175"
+ transform="translate(175.9982,95.8645)">
+ <path
+ d="m 0,0 v 0 c 4.074,0 7.376,-3.302 7.376,-7.376 v -48.993 c 0,-4.074 -3.302,-7.376 -7.376,-7.376 -4.074,0 -7.376,3.302 -7.376,7.376 V -7.376 C -7.376,-3.302 -4.074,0 0,0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path2177" />
+ </g>
+ <g
+ id="g2179"
+ transform="translate(152.1193,64.9934)">
+ <path
+ d="M 0,0 H -0.506 C -0.57,0 -0.633,-0.008 -0.698,-0.01 -0.762,-0.008 -0.825,0 -0.89,0 h -7.283 c -3.929,0 -7.359,-2.965 -7.613,-6.885 -0.278,-4.296 3.124,-7.867 7.361,-7.867 0.776,0 1.343,-0.754 1.111,-1.494 -0.658,-2.088 -2.341,-3.751 -4.547,-4.333 -2.074,-0.547 -4.276,-0.821 -6.605,-0.821 -4.007,0 -7.574,0.865 -10.7,2.595 -3.127,1.73 -5.57,4.144 -7.331,7.24 -1.761,3.096 -2.641,6.617 -2.641,10.564 0,4.006 0.88,7.558 2.641,10.654 1.761,3.097 4.219,5.493 7.377,7.195 3.156,1.698 6.768,2.549 10.836,2.549 4.681,0 8.865,-1.269 12.55,-3.807 2.341,-1.612 5.524,-1.588 7.757,0.171 3.48,2.741 3.289,8.045 -0.315,10.452 -1.7,1.136 -3.538,2.112 -5.512,2.928 -4.553,1.881 -9.623,2.823 -15.208,2.823 -6.679,0 -12.69,-1.412 -18.03,-4.235 -5.344,-2.822 -9.517,-6.738 -12.522,-11.747 -3.005,-5.008 -4.508,-10.67 -4.508,-16.983 0,-6.315 1.503,-11.975 4.508,-16.984 3.005,-5.009 7.148,-8.924 12.43,-11.747 5.282,-2.824 11.231,-4.235 17.849,-4.235 4.613,0 9.197,0.699 13.751,2.095 0.045,0.014 0.091,0.028 0.136,0.042 7.104,2.202 11.884,8.86 11.884,16.297 v 9.047 C 6.486,-2.904 3.583,0 0,0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path2181" />
+ </g>
+ <g
+ id="g2183"
+ transform="translate(90.5807,88.5798)">
+ <path
+ d="m 0,0 v -49.176 c 0,-4.023 -3.262,-7.285 -7.286,-7.285 h -1.381 c -2.181,0 -4.247,0.977 -5.631,2.662 l -24.229,29.505 c -1.804,2.197 -5.368,0.921 -5.368,-1.922 v -22.96 c 0,-4.023 -3.261,-7.285 -7.285,-7.285 -4.023,0 -7.285,3.262 -7.285,7.285 V 0 c 0,4.024 3.262,7.285 7.285,7.285 h 1.468 c 2.184,0 4.253,-0.979 5.636,-2.669 l 24.135,-29.475 c 1.802,-2.202 5.37,-0.927 5.37,1.918 V 0 c 0,4.024 3.261,7.285 7.285,7.285 C -3.262,7.285 0,4.024 0,0"
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path2185" />
+ </g>
+ </g>
+ </g>
+ <path
+ style="font-weight:bold;font-size:31.76px;font-family:Montserrat;-inkscape-font-specification:'Montserrat, Bold';fill:#6f9aa8"
+ d="m 245.14507,-51.030296 v -18.03968 h -7.11424 v -4.19232 h 19.3736 v 4.19232 h -7.11424 v 18.03968 z m 21.08867,0 9.90912,-22.232 h 5.0816 l 9.94088,22.232 h -5.3992 l -8.13056,-19.62768 h 2.03264 l -8.16232,19.62768 z m 4.95456,-4.764 1.36568,-3.90648 h 11.4336 l 1.39744,3.90648 z m 31.28366,4.764 v -22.232 h 5.14512 v 18.03968 h 11.14776 v 4.19232 z m 32.90339,-13.27568 h 10.70312 v 4.00176 h -10.70312 z m 0.38112,9.14688 h 12.10056 v 4.1288 h -17.21392 v -22.232 h 16.80104 v 4.1288 h -11.68768 z m 25.1857,4.1288 v -22.232 h 9.62328 q 2.98544,0 5.14512,0.98456 2.15968,0.9528 3.3348,2.76312 1.17512,1.81032 1.17512,4.31936 0,2.47728 -1.17512,4.2876 -1.17512,1.77856 -3.3348,2.73136 -2.15968,0.9528 -5.14512,0.9528 h -6.76488 l 2.28672,-2.25496 v 8.44816 z m 14.1332,0 -5.558,-8.06704 h 5.49448 l 5.62152,8.06704 z m -8.98808,-7.87648 -2.28672,-2.41376 h 6.47904 q 2.382,0 3.55712,-1.01632 1.17512,-1.04808 1.17512,-2.8584 0,-1.84208 -1.17512,-2.8584 -1.17512,-1.01632 -3.55712,-1.01632 h -6.47904 l 2.28672,-2.44552 z"
+ id="text2191"
+ transform="scale(1,-1)"
+ aria-label="T A L E R " />
+ </g>
+</svg>
diff --git a/workshops/merchant.tex b/workshops/merchant.tex
@@ -0,0 +1,267 @@
+\documentclass[aspectratio=169,t]{beamer}
+\input taler-macros
+
+\newcommand{\TITLE}{NEXT \\ GENERATION \\ INTERNET}
+\newcommand{\SUB}{GNU Taler for Developers}
+\newcommand{\AUTHOR}{Christian Grothoff}
+\newcommand{\SPEAKER}{Christian Grothoff}
+\newcommand{\INST}{Bern University of Applied Sciences}
+\newcommand{\DATE}{COSIN'24}
+
+% Do not edit this part
+\title{\TITLE}
+\subtitle{\SUB}
+\date{\DATE}
+\author[\SPEAKER]{\AUTHOR}
+\institute{\INST}
+
+\begin{document}
+
+\begin{frame}[plain]
+\maketitle
+\end{frame}
+
+
+\begin{frame}{What is Taler?}
+ \framesubtitle{\url{https://taler.net/en/features.html}}
+ \noindent
+Taler is
+ \vfill
+ \begin{itemize}
+ \item a Free/Libre software \emph{payment system} infrastructure project
+ \item ... with a surrounding software ecosystem
+ \item ... and a company (Taler Systems S.A.) and community that wants to deploy it
+ as widely as possible.
+ \end{itemize}
+ \vfill
+\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}
+ \vfill
+\end{frame}
+
+
+\begin{frame}{Taler overview}
+\begin{center}
+\begin{tikzpicture}
+ \tikzstyle{def} = [node distance= 4em and 7em, 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}{Architecture of Taler}
+\begin{center}
+ \includegraphics[width=0.8\textwidth]{operations.png}
+\end{center}
+\end{frame}
+
+
+\begin{frame}{Merchant architecture}
+\begin{center}
+\begin{tikzpicture}
+ \tikzstyle{def} = [node distance= 3.5em and 2em, inner sep=1em, outer sep=.3em];
+ \node (origin) at (0,0) {};
+ \node (backend) [def,above=of origin,draw]{{\tiny taler-merchant-httpd}};
+ \node (frontend) [def,above left=of backend,draw]{{\tiny E-commerce Frontend}};
+ \node (backoffice) [def,above right=of backend,draw]{Backoffice};
+ \node (postgres) [def, draw, below=of backend] {Postgres};
+
+ \tikzstyle{C} = [color=black, line width=1pt]
+ \draw [->, C] (frontend) -- (backend) node [midway, above, sloped] (TextNode) {REST API};
+ \draw [->, C] (backoffice) -- (backend) node [midway, above, sloped] (TextNode) {REST API};
+ \draw [<->, C] (backend) -- (postgres) node [midway, right] (TextNode) {SQL};
+\end{tikzpicture}
+\end{center}
+\end{frame}
+
+
+\begin{frame}[fragile]{GNU Taler Merchant Backend}{Installation}
+Add a file {\tt /etc/apt/sources.list.d/taler.list}:
+\begin{verbatim}
+deb [signed-by=/etc/apt/keyrings/taler-systems.gpg] \
+ https://deb.taler.net/apt/debian bookworm main
+deb [signed-by=/etc/apt/keyrings/taler-systems.gpg] \
+ https://deb.taler.net/apt/ubuntu/ noble taler-noble
+\end{verbatim}
+And import the key and install the package:
+\begin{verbatim}
+# wget -O /etc/apt/keyrings/taler-systems.gpg \
+ https://taler.net/taler-systems.gpg
+# apt update; apt install taler-merchant
+\end{verbatim}
+\end{frame}
+
+
+\begin{frame}[fragile]{GNU Taler Merchant Backend}{Configuration}
+Setup database and start the service:
+\begin{verbatim}
+# taler-merchant-dbconfig
+# systemctl enable --now taler-merchant.target
+\end{verbatim}
+\begin{itemize}
+\item Listens by default on 9966
+\item Change ``[merchant] SERVE=unix'' to listen on
+ UNIX domain socket
+\item Reverse proxy configuration templates are in
+ {\tt /etc/\{nginx,apache\}/sites-available/}.
+\end{itemize}
+\end{frame}
+
+
+\begin{frame}[fragile]{GNU Taler Merchant Backend}{Authentication}
+ Initially, the service will have no password!
+ \begin{itemize}
+ \item Visit {\tt http://localhost:9966/} with a browser.
+ \item Setup default (admin) account and credentials!
+ \end{itemize}
+ In the REST API, the bearer token is always sent as:
+\begin{verbatim}
+Authorization: Bearer secret-token:$TOKEN
+\end{verbatim}
+See also:
+\begin{center}
+ \url{https://www.rfc-editor.org/rfc/rfc8959.pdf}
+\end{center}
+\end{frame}
+
+
+\begin{frame}[fragile]{GNU Taler Merchant Backend}{Test}
+\vfill
+\begin{verbatim}
+$ wget http://localhost:9966/config
+\end{verbatim}
+\vfill
+\end{frame}
+
+
+\begin{frame}{GNU Taler Merchant Backend}{REST API}
+\vfill
+\begin{center}
+\url{https://docs.taler.net/core/api-merchant.html}
+\end{center}
+\vfill
+\end{frame}
+
+
+\begin{frame}{GNU Taler Merchant Backend}{Key concepts}
+ \begin{itemize}
+ \item Instances
+ \item Orders
+ \item Inventory
+ \item Templates
+ \item Bank accounts
+ \item OTP devices
+ \item Webhooks
+ \end{itemize}
+\end{frame}
+
+
+\begin{frame}{GNU Taler Merchant Backend}{Ongoing developments}
+ \begin{itemize}
+ \item Token families
+ \begin{itemize}
+ \item Subscription
+ \item Discount
+ \end{itemize}
+ \item Donation receipts
+ \end{itemize}
+\end{frame}
+
+
+\begin{frame}{Other components for merchants}
+ \begin{itemize}
+ \item Point of sale app
+ \item {\tt taler-mdb}
+ \item WooCommerce (WordPress) plugin
+ \item Joomla! plugin
+ \item Adobe E-commerce (Magento) plugin
+ \end{itemize}
+\end{frame}
+
+
+\begin{frame}{Other components}
+ \begin{itemize}
+ \item Wallet app(s)
+ \item Auditor
+ \item Challenger
+ \item Sync
+ \item GNU Anastasis
+ \item Twister
+ \item libeufin
+ \end{itemize}
+\end{frame}
+
+
+\begin{frame}{Tutorials}
+ \begin{itemize}
+ \item Merchant payment processing: \url{https://docs.taler.net/taler-merchant-api-tutorial.html}
+ \item Regional/event currency setup: \url{https://docs.taler.net/libeufin/regional-automated-manual.html}
+ \item Video tutorials: \url{https://tutorials.taler.net/}
+ \item Support forum: \url{https://ich.taler.net/}
+ \end{itemize}
+\end{frame}
+
+
+\begin{frame}{Funding}
+ \vfill
+ \begin{center}
+ \url{https://nlnet.nl/propose}
+ \end{center}
+ \vfill
+ Candidates that passed 1st round from April 1st submission proposed:
+ \begin{itemize}
+ \item Some more integrations (frameworks, ERP)
+ \item Merchant implementation (?)
+ \item Improvements to wallet usability
+ \end{itemize}
+ \vfill
+\end{frame}
+
+
+
+% This should be last...
+\begin{frame}{Acknowledgements}
+
+ \begin{minipage}{0.45\textwidth} \ \\
+ {\tiny Funded by the European Union (Project 101135475).}
+
+ \begin{center}
+ \includegraphics[width=0.5\textwidth]{bandera.jpg}
+ \end{center}
+ \end{minipage}
+ \hfill
+ \begin{minipage}{0.45\textwidth}
+ {\tiny Funded by SERI (HEU-Projekt 101135475-TALER).}
+
+ \begin{center}
+ \includegraphics[width=0.65\textwidth]{sbfi.jpg}
+ \end{center}
+ \end{minipage}
+
+ \vfill
+
+ {\tiny Views and opinions expressed are however those of the author(s) only
+ and do not necessarily reflect those of the European Union. Neither the
+ European Union nor the granting authority can be held responsible for
+ them.}
+\end{frame}
+
+\end{document}
diff --git a/workshops/operations.png b/workshops/operations.png
Binary files differ.
diff --git a/workshops/sbfi.jpg b/workshops/sbfi.jpg
Binary files differ.
diff --git a/workshops/taler-macros.tex b/workshops/taler-macros.tex
@@ -0,0 +1,104 @@
+\usepackage[utf8]{inputenc}
+
+% fonts and colors
+\usepackage[defaultfam,tabular,lining]{montserrat}
+
+\setbeamercolor{normal text}{fg=black,bg=white}
+\setbeamercolor{alerted text}{fg=red!50!black}
+\setbeamercolor{example text}{fg=green!50!black}
+
+\setbeamercolor{title}{fg=white}
+\setbeamerfont{title}{size=\Huge}
+\setbeamerfont{title}{series=\bfseries}
+
+\setbeamercolor{subtitle}{fg=white}
+\setbeamerfont{subtitle}{size=\Large}
+
+\setbeamercolor{author}{fg=white}
+\setbeamerfont{author}{size=\Large}
+
+\setbeamercolor{institute}{fg=white}
+\setbeamerfont{institute}{size=\large}
+
+\setbeamercolor{date}{fg=black}
+\setbeamerfont{date}{size=\large}
+
+\setbeamercolor{frametitle}{fg=white}
+\setbeamerfont{frametitle}{size=\LARGE}
+\setbeamerfont{framesubtitle}{size=\large}
+
+\makeatletter
+\setbeamertemplate{frametitle}{%
+ \vbox{}\vskip-0.5em%
+ \begin{beamercolorbox}[wd=.7\paperwidth]{frametitle}
+ \usebeamerfont{frametitle}%
+ \strut\insertframetitle\strut\par%
+ \end{beamercolorbox}
+ \ifx\insertframesubtitle\@empty%
+ \vskip.9em
+ \else%
+ \vskip-0.3em
+ \begin{beamercolorbox}[wd=.68\paperwidth]{frametitle}
+ \usebeamerfont{framesubtitle}%
+ \strut\insertframesubtitle\strut\par%
+ \end{beamercolorbox}
+ \fi
+}
+\makeatother
+
+\usepackage{tikz}
+\usetikzlibrary{calc,intersections,positioning,fadings,through}
+
+% footline
+\setbeamertemplate{navigation symbols}{}
+\setbeamertemplate{footline}{%
+ \leavevmode%
+ \includegraphics[height=0.7cm]{logo-NGI_TALER_Bold.png}
+ \hfill
+ \SPEAKER
+ \hfill
+ \TITLE
+ \hfill
+ \insertframenumber
+ \vskip0pt%
+}
+
+% background
+
+\usepackage{xcolor}
+\definecolor{left}{RGB}{0,66,179}
+
+\setbeamertemplate{title page}
+{%\leavemode%
+ \begin{beamercolorbox}[wd=\the\paperwidth, ht=\the\paperheight,ignorebg,center]{}
+ \begin{tikzpicture}[overlay, remember picture]
+ \fill [left color=left, right color=left!50!black] (current page.north west) -- (current page.north east) -- ($(current page.north east)+(0,-6.5)$) -- ($(current page.north west)+(5,-6.5)$) -- ($(current page.north west)+(4.5,-6.8)$) -- ($(current page.north west)+(4,-6.5)$) -- ($(current page.north west)+(0,-6.5)$);
+ \end{tikzpicture}
+ \end{beamercolorbox}%
+ \vspace*{-8cm}
+
+ \begin{beamercolorbox}[sep=8pt,left]{title}
+ {\usebeamerfont{title}\inserttitle\par}%
+ {\usebeamerfont{subtitle}\insertsubtitle\par}%
+ \end{beamercolorbox}%
+ \vskip1em\par
+ \begin{beamercolorbox}[sep=8pt,left]{author}
+ \usebeamerfont{author}\insertauthor
+ \end{beamercolorbox}
+ \begin{beamercolorbox}[sep=8pt,left]{institute}
+ \usebeamerfont{inst}\insertinstitute\\
+ \end{beamercolorbox}%
+
+ \begin{beamercolorbox}[sep=5pt,left]{date}
+ \usebeamerfont{date}\insertdate
+ \end{beamercolorbox}
+ \vspace*{2.5cm}
+}
+
+\setbeamertemplate{background canvas}
+{%\leavemode%
+ \begin{tikzpicture}[overlay, remember picture]
+ \fill [left color=left, right color=left!50!black] (current page.north west) -- (current page.north east) -- ($(current page.north east)+(0,-2)$) -- ($(current page.north west)+(5,-2)$) -- ($(current page.north west)+(4.5,-2.3)$) -- ($(current page.north west)+(4,-2)$) -- ($(current page.north west)+(0,-2)$);
+ \end{tikzpicture}
+}
+