commit 2f1dc1cbf1fdd3e5bb3628b5c6ff3c682cdcd89e parent 55f0d39cd4b6ad95fa3f0a744d2125b784403be9 Author: Emmanuel Benoist <emmanuel.benoist@bfh.ch> Date: Thu, 23 Apr 2026 15:50:08 +0200 Presentation for the Bitcoin Group at P15 in Biel/Bienne Diffstat:
39 files changed, 1418 insertions(+), 0 deletions(-)
diff --git a/presentations/2026-bitcoin-biel/header.tex b/presentations/2026-bitcoin-biel/header.tex @@ -0,0 +1,36 @@ +\graphicspath{{images/},{imagesPresentation/}} + + +\beamertemplateplaintoc + +\usepackage{mytheme} + +\usepackage[utf8]{inputenc} + +\usepackage{listing} +\usepackage{myListings} +\author{Emmanuel Benoist} + + +\lstdefinelanguage + [x64]{Assembler} % add a "x64" dialect of Assembler + [x86masm]{Assembler} % based on the "x86masm" dialect + % with these extra keywords: + {morekeywords={CDQE,CQO,CMPSQ,CMPXCHG16B,JRCXZ,LODSQ,MOVSXD, % + POPFQ,PUSHFQ,SCASQ,STOSQ,IRETQ,RDTSCP,SWAPGS, % + rax,rdx,rcx,rbx,rsi,rdi,rsp,rbp, % + r8,r8d,r8w,r8b,r9,r9d,r9w,r9b}} % etc. + + +\usepackage{color} +\definecolor{dkgreen}{rgb}{0,0.6,0} +\definecolor{gray}{rgb}{0.5,0.5,0.5} +\definecolor{mauve}{rgb}{0.58,0,0.82} +\lstset{ + basicstyle={\small\ttfamily}, + numberstyle=\tiny\color{gray}, + keywordstyle=\color{blue}, + commentstyle=\color{dkgreen}, + stringstyle=\color{mauve} +} + diff --git a/presentations/2026-bitcoin-biel/images/3d-question-mark.jpg b/presentations/2026-bitcoin-biel/images/3d-question-mark.jpg Binary files differ. diff --git a/presentations/2026-bitcoin-biel/images/3d-question-mark.webp b/presentations/2026-bitcoin-biel/images/3d-question-mark.webp Binary files differ. diff --git a/presentations/2026-bitcoin-biel/images/Apple-Store-taler-app.png b/presentations/2026-bitcoin-biel/images/Apple-Store-taler-app.png Binary files differ. diff --git a/presentations/2026-bitcoin-biel/images/QR-Code-Switzerland-bank-withdrawal.jpeg b/presentations/2026-bitcoin-biel/images/QR-Code-Switzerland-bank-withdrawal.jpeg Binary files differ. diff --git a/presentations/2026-bitcoin-biel/images/QR-Code-f-droid.png b/presentations/2026-bitcoin-biel/images/QR-Code-f-droid.png Binary files differ. diff --git a/presentations/2026-bitcoin-biel/images/QR-code-backend.demo.taler.net.png b/presentations/2026-bitcoin-biel/images/QR-code-backend.demo.taler.net.png Binary files differ. diff --git a/presentations/2026-bitcoin-biel/images/QR-code-bank.demo.taler.net.png b/presentations/2026-bitcoin-biel/images/QR-code-bank.demo.taler.net.png Binary files differ. diff --git a/presentations/2026-bitcoin-biel/images/QR-code-benoist.ch.png b/presentations/2026-bitcoin-biel/images/QR-code-benoist.ch.png Binary files differ. diff --git a/presentations/2026-bitcoin-biel/images/QR-code-template-pizza.png b/presentations/2026-bitcoin-biel/images/QR-code-template-pizza.png Binary files differ. diff --git a/presentations/2026-bitcoin-biel/images/bandera.jpg b/presentations/2026-bitcoin-biel/images/bandera.jpg Binary files differ. diff --git a/presentations/2026-bitcoin-biel/images/blinded.pdf b/presentations/2026-bitcoin-biel/images/blinded.pdf Binary files differ. diff --git a/presentations/2026-bitcoin-biel/images/coin.pdf b/presentations/2026-bitcoin-biel/images/coin.pdf Binary files differ. diff --git a/presentations/2026-bitcoin-biel/images/dice.pdf b/presentations/2026-bitcoin-biel/images/dice.pdf Binary files differ. diff --git a/presentations/2026-bitcoin-biel/images/google_play_GNU_Taler.jpg b/presentations/2026-bitcoin-biel/images/google_play_GNU_Taler.jpg Binary files differ. diff --git a/presentations/2026-bitcoin-biel/images/hammer.pdf b/presentations/2026-bitcoin-biel/images/hammer.pdf Binary files differ. diff --git a/presentations/2026-bitcoin-biel/images/ngo-illustration-Artboard-4.png b/presentations/2026-bitcoin-biel/images/ngo-illustration-Artboard-4.png Binary files differ. diff --git a/presentations/2026-bitcoin-biel/images/planchet.pdf b/presentations/2026-bitcoin-biel/images/planchet.pdf Binary files differ. diff --git a/presentations/2026-bitcoin-biel/images/sbfi.jpg b/presentations/2026-bitcoin-biel/images/sbfi.jpg Binary files differ. diff --git a/presentations/2026-bitcoin-biel/images/screenShot-withdraw.jpeg b/presentations/2026-bitcoin-biel/images/screenShot-withdraw.jpeg Binary files differ. diff --git a/presentations/2026-bitcoin-biel/images/screenshot-map-taler-ops-ch.png b/presentations/2026-bitcoin-biel/images/screenshot-map-taler-ops-ch.png Binary files differ. diff --git a/presentations/2026-bitcoin-biel/images/sign.pdf b/presentations/2026-bitcoin-biel/images/sign.pdf Binary files differ. diff --git a/presentations/2026-bitcoin-biel/images/taler-logo-2021-inkscape.pdf b/presentations/2026-bitcoin-biel/images/taler-logo-2021-inkscape.pdf Binary files differ. diff --git a/presentations/2026-bitcoin-biel/images/taler-snack-automat.jpg b/presentations/2026-bitcoin-biel/images/taler-snack-automat.jpg Binary files differ. diff --git a/presentations/2026-bitcoin-biel/images/taler.png b/presentations/2026-bitcoin-biel/images/taler.png Binary files differ. diff --git a/presentations/2026-bitcoin-biel/images/triangle-taler-en.pdf b/presentations/2026-bitcoin-biel/images/triangle-taler-en.pdf Binary files differ. diff --git a/presentations/2026-bitcoin-biel/images/triangle-taler-en.tex b/presentations/2026-bitcoin-biel/images/triangle-taler-en.tex @@ -0,0 +1,48 @@ +\documentclass{standalone} +\usepackage{tikz} +\usepackage{ragged2e} +\usetikzlibrary{positioning,fit,patterns} + +\begin{document} +\begin{tikzpicture}[ + rect/.style={circle, draw=black}, + sym/.style={-stealth, shorten >= 2pt, shorten <= 2pt} + ] + % Taler payment system + \node[rect](1) {Exchange}; + \node[rect,below left=1.5cm and 0.7cm of 1](2) + {\small User}; + \node[rect,below right=1.5cm and 0.7cm of 1](3) {Merchant}; + + \draw[sym] (1) -- node [midway, above, sloped] {\tiny + Withdrawal} (2); + \draw[sym] (2) -- node [midway, above, sloped] {\tiny + Spend money} (3); + \draw[sym] (3) -- node [midway, above, sloped] {\tiny + Transfer money} (1); + + % Settlement layer + \node[left=2cm of 1](E1){}; + \node[right=2cm of 1](E2){}; + \draw[sym] (E1) -- node [midway, above] {\tiny Send BTC/ETH} (1); + \draw[sym] (1) -- node [midway, above] {\tiny Get BTC/ETH} (E2); + + % Auditor + %\node[above= of 1](A){Auditor}; + %\draw[sym] (A) -- node [midway, right] {\tiny Verify} (1); + + % Separator + \node[below=1mm of E1] (S1S) {}; + \node[below=1mm of E2] (S1E) {}; + \node[above=6mm of E1] (S2S) {}; + \node[above=6mm of E2] (S2E) {}; + + \draw[dotted] (S1S) -- (S1E); + \draw[dotted] (S2S) -- (S2E); + + \node[below right=-2mm and -1.5mm of S2S] + {\tiny{\emph{Layer blockchain-connexion}}}; + \node[below right=-2mm and -1.5mm of S1S] + {\tiny{\emph{Taler payment system}}}; + \end{tikzpicture} + \end{document} diff --git a/presentations/2026-bitcoin-biel/images/triangle-taler.pdf b/presentations/2026-bitcoin-biel/images/triangle-taler.pdf Binary files differ. diff --git a/presentations/2026-bitcoin-biel/images/triangle-taler.tex b/presentations/2026-bitcoin-biel/images/triangle-taler.tex @@ -0,0 +1,48 @@ +\documentclass{standalone} +\usepackage{tikz} +\usepackage{ragged2e} +\usetikzlibrary{positioning,fit,patterns} + +\begin{document} +\begin{tikzpicture}[ + rect/.style={circle, draw=black}, + sym/.style={-stealth, shorten >= 2pt, shorten <= 2pt} + ] + % Taler payment system + \node[rect](1) {Exchange}; + \node[rect,below left=1.5cm and 0.7cm of 1](2) + {\small Utilisateur}; + \node[rect,below right=1.5cm and 0.7cm of 1](3) {Marchand}; + + \draw[sym] (1) -- node [midway, above, sloped] {\tiny + Retire des jetons} (2); + \draw[sym] (2) -- node [midway, above, sloped] {\tiny + Dépense des jetons} (3); + \draw[sym] (3) -- node [midway, above, sloped] {\tiny + Dépose des jetons} (1); + + % Settlement layer + \node[left=2cm of 1](E1){}; + \node[right=2cm of 1](E2){}; + \draw[sym] (E1) -- node [midway, above] {\tiny Dépose BTC/ETH} (1); + \draw[sym] (1) -- node [midway, above] {\tiny Retire BTC/ETH} (E2); + + % Auditor + %\node[above= of 1](A){Auditor}; + %\draw[sym] (A) -- node [midway, right] {\tiny Verify} (1); + + % Separator + \node[below=1mm of E1] (S1S) {}; + \node[below=1mm of E2] (S1E) {}; + \node[above=6mm of E1] (S2S) {}; + \node[above=6mm of E2] (S2E) {}; + + \draw[dotted] (S1S) -- (S1E); + \draw[dotted] (S2S) -- (S2E); + + \node[below right=-2mm and -1.5mm of S2S] + {\tiny{\emph{Couche de liaison avec la blockchain}}}; + \node[below right=-2mm and -1.5mm of S1S] + {\tiny{\emph{Système de paiements Taler}}}; + \end{tikzpicture} + \end{document} +\ No newline at end of file diff --git a/presentations/2026-bitcoin-biel/mytheme.sty b/presentations/2026-bitcoin-biel/mytheme.sty @@ -0,0 +1,216 @@ +\ProvidesPackage{mytheme}[2013/06/17 ver 0.5] +\NeedsTeXFormat{LaTeX2e}[1995/12/01] + +% Original theme +% Copyright 2003 by Till Tantau <tantau@cs.tu-berlin.de>. +% +% Modifications, Emmanuel Benoist <emmanuel.benoist@bfh.ch> +% +% This program can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Distributed from CTAN +% archives in directory macros/latex/base/lppl.txt. + +\mode<presentation> + +\definecolor{BFHgrey}{RGB}{105,125,145} + +\usecolortheme[named=BFHgrey]{structure} + +\pgfdeclareimage[width=\paperwidth]{background}{./images/blanc.jpg} +\pgfdeclareimage[width=\paperwidth]{backgroundsection}{./images/background-section-title.bfh.jpg} +\pgfdeclareimage[width=\paperwidth]{backgroundsubsection}{./images/background-subsection-title.bfh.jpg} +\pgfdeclareimage[width=\paperwidth]{backgroundfirstpage}{./images/background-first-page-bfh.jpg} + + + +\institute[BFH]{Berner Fachhochschule $\mid$ Haute école spécialisée + bernoise $\mid$ Berne University of Applied Sciences } + + +\setbeamertemplate{background}{\pgfuseimage{background}} + +% The title should be on top +\useheadtemplate{ + \vbox{% + \vskip-2pt% + }% + } +%} + +% % Footline +% \usefoottemplate{% +% \vbox{% +% \setbox\beamer@tempbox=\hbox{\tiny JJJJJJJJJ\insertshortauthor: \insertshorttitle\hskip1.5cm\insertshortinstitute}% +% \ifdim\wd\beamer@tempbox>\paperwidth% +% \insertvrule{1pt}{structure!50!averagebackgroundcolor}% +% \vskip1.5pt +% \tinyline{\color{structure}\insertshortauthor:\hfill\insertshortinstitute}% +% \tinyline{\color{structure}\insertshorttitle\hfill\lower1pt\hbox{\insertnavigationsymbols}}% +% \else% +% \setbox\beamer@tempbox=\hbox{\beamerline{\hbox to\paperwidth{\hfill\lower1pt\hbox{\insertnavigationsymbols}}}}% +% \ht\beamer@tempbox=0pt% +% \box\beamer@tempbox% +% \insertvrule{14pt}{structure!50!averagebackgroundcolor}% +% \vskip1.5pt +% \tinyline{\color{structure}\insertshortauthor: \insertshorttitle, \insertsubtitle\hfill\insertpagenumber}% +% \fi}% +% } + +%\def\logo#1{% +% \def\insertlogo{#1}% +% \usefoottemplate{% +% \vbox{% +% %\insertvrule{0.4pt}{beamerstructure!50!averagebackgroundcolor}% +% \vskip1.5pt% +% %\setbox\beamer@logobox=\hbox{\lower1pt\hbox{\insertlogo}}% +% % \setbox1=\hbox{\insertsubtitle}% +% % \tinyline{\hbox{\hskip \wd\beamer@logobox\hskip0.2cm\color{beamerstructure}\insertshorttitle\ifdim\wd1>0pt : \fi\insertsubtitle}\hfill\lower1pt\hbox{\insertnavigationsymbols}}% +% \setbox1=\hbox{\inserttitle}% +% \setbox2=\hbox{\insertpart}% +% %\setbox3=\hbox{\insertsubsection}% +% %\tinyline{\hbox{\dp\beamer@logobox=0pt\ht\beamer@logobox=0pt\box\beamer@logobox\hskip0.2cm\color{testcol}\ifdim\wd1>0pt{\hfill\inserttitle}\fi\ifdim\wd2>0pt{{\hspace{1.3cm} \insertpart}\ifdim\wd3>0pt{\insertsubsection}\fi}\fi}\hfill\lower1pt\hbox{\color{testcol}\insertpagenumber}}% +% \tinyline{\hbox{\dp\beamer@logobox=0pt\ht\beamer@logobox=0pt\box\beamer@logobox\hskip0.2cm\color{BFHgrey}\ifdim\wd1>0pt{\hfill}\fi\ifdim\wd2>0pt{{\hspace{1.3cm} }\ifdim\wd3>0pt{\insertsubsection}\fi}\fi}{\color{BFHgrey}\insertinstitute}\hfill\lower1pt\hbox{\color{BFHgrey}\insertpagenumber}}% + +% }% +% }% +% % } + + \usefoottemplate{% + \vbox{% + \vskip1.5pt% + \tinyline{{\color{BFHgrey}\insertinstitute}\hfill\lower1pt\hbox{\color{BFHgrey}\insertpagenumber}}% + + }% + }% +% } + + +\userightsidebartemplate{0cm}{} + +%Modifications start here + +%First kill off navigation symbols, unwanted on transparencies +\beamertemplatenavigationsymbolsempty + +%Now set the proportion of greying out of non-current sections +%in toc with [current]; also choose bullet for toc. +\usetemplatetocsection[65!averagebackgroundcolor]{ + \color{beamerstructure}\raisebox{0.2ex}{\scriptsize{$\blacksquare$}}\quad\large\inserttocsection} +\usetemplatetocsubsection[65!averagebackgroundcolor]{\leavevmode\leftskip=2.5em\color{black}\inserttocsubsection\par} + +%Set subitem marker to be bullet + +%\usesubitemizeitemtemplate{\small\hbox{\color{beamerstructure}$\bullet$}} + + +\pgfdeclareimage[width=0.25cm]{mybullet}{./images/bullet-bfh.jpg} +\pgfdeclareimage[width=0.22cm]{mysmallbullet}{./images/bullet-bfh.jpg} + + +\useitemizeitemtemplate{\pgfuseimage{mybullet}} +\usesubitemizeitemtemplate{\pgfuseimage{mysmallbullet}} + + + +% title page + +% \usetitlepagetemplate{ +% \vbox{} +% \vfill +% \begin{centering} +% \insertinstitute\par\vskip3.0em +% {\huge\structure{XXXXX\inserttitle}}\par +% \ifx\insertsubtitle\@empty\else\vskip1em{\LARGE{\structure{\insertsubtitle}}}\par\fi +% \vskip2.5em\par +% \normalsize\insertauthor\vskip1em\par +% \insertdate\par\vskip2.0em +% \inserttitlegraphic\par +% \end{centering} +% \vfill +% } + +\usetitlepagetemplate{ +%\pgfuseimage{backgroundfirstpage} + \vbox{} + \vfill + \inserttitlegraphic\par\vskip4.5em + {\color{White}\huge\bf\inserttitle}\par\vskip1.5em + \par + \ifx\insertsubtitle\@empty\else\vskip1em{\color{White}\LARGE{\structure{\insertsubtitle}}}\par\fi + \vskip0.2em\par + {\color{White} \bf\it\LARGE\insertauthor}\vskip0.3em\par + {\color{White}\Large{\insertdate}}\par\vskip9.0em + \inserttitlegraphic\par + \vfill + } + +% frame title + + \useframetitletemplate{% + \vskip0.25em% + %\begin{centering} + \color{beamerstructure} + \huge\insertframetitle\par% + {\normalsize\structure{\insertframesubtitle}\par}% + %\end{centering} + } + +% new theorem style for definitions etc. + +\usetheoremtemplate{\begin{my@linedtext}} + {\end{my@linedtext}} + +\newsavebox{\my@algobox} +\newlength{\my@algoheight} +\newlength{\my@algodepth} +\newcommand{\my@algorule}[2]% + {\color{beamerstructure}\rule{#1}{#2}} %Balken! + +\RequirePackage{calc} +\newenvironment{my@linedtext}% + {\begin{block}{\inserttheoremname}~\\[-13pt]% + \begin{lrbox}{\my@algobox}% + \begin{minipage}[b]{\linewidth-7pt}\raggedright} + {\end{minipage}\end{lrbox}% + \settoheight{\my@algoheight}{\usebox{\my@algobox}}% + \settodepth{\my@algodepth}{\usebox{\my@algobox}}% + \addtolength{\my@algoheight}{\my@algodepth}% + \hspace*{1pt}\my@algorule{1pt}{\my@algoheight+5pt}% + \hspace*{5pt}\raise\my@algodepth\hbox{\usebox{\my@algobox}}% + \end{block}} + + +%% BIE1 add a frame for changing section +%% + +\AtBeginSection[] % Do nothing for \section* +{% +\setbeamertemplate{background}{\pgfuseimage{backgroundsection}} % +% +\frame<beamer>% +{% +%\frametitle{Outline} + +{\color{White}\huge \insertsection}% +%\tableofcontents[current] +}% +\setbeamertemplate{background}{\pgfuseimage{background}} % +} + +\AtBeginSubsection[] % Do nothing for \section* +{% +\setbeamertemplate{background}{\pgfuseimage{backgroundsubsection}} % +% +\frame<beamer>% +{% +%\frametitle{Outline} + +{\color{White}\huge \insertsubsection}% +%\tableofcontents[current] +}% +\setbeamertemplate{background}{\pgfuseimage{background}} % +} + + +\mode +<all> diff --git a/presentations/2026-bitcoin-biel/slides-bitcoin-bienne.pdf b/presentations/2026-bitcoin-biel/slides-bitcoin-bienne.pdf Binary files differ. diff --git a/presentations/2026-bitcoin-biel/slides-bitcoin-bienne.tex b/presentations/2026-bitcoin-biel/slides-bitcoin-bienne.tex @@ -0,0 +1,629 @@ +\documentclass[aspectratio=169,t]{beamer} + +\input texinputs/taler-macros + +\usepackage{tikz} +\usepackage{ragged2e} +\usepackage{graphicx} +\usetikzlibrary{positioning,fit,patterns} + +% +% Presentation at "P15 Biel/Bienne le 30 avril 2026" +% Copyright (C) 2026 Emmanuel Benoist, + +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see <http://www.gnu.org/licenses/>. +% + +% *Especially* edit these... +% \setbeameroption{show notes on second screen=right} % Both + +\newcommand{\SPEAKER}{Emmanuel Benoist} +\newcommand{\DATE}{} {} + +\newcommand{\TITLE}{Presentation of GNU Taler} +\newcommand{\SUB}{30.04.26, Bitcoin @ P15 , Biel/Bienne} +\newcommand{\AUTHOR}{Emmanuel Benoist} +\newcommand{\INST}{https://www.taler.net} + +% Do not edit this part +\title{\TITLE} +\subtitle{\SUB} +\date{\DATE} +\author[\SPEAKER]{\AUTHOR} +\institute{\INST} + +\usepackage{amsmath} +\usepackage{multimedia} +\usepackage[percent]{overpic} +\usepackage{url} +\usepackage{pifont} +\usepackage[absolute,overlay]{textpos} +\usepackage{listings} + +\usepackage{tikz, xcolor} +\usetikzlibrary{shapes,arrows,positioning} +\tikzset{ + %Define standard arrow tip + >=stealth', + %Define style for boxes + punkt/.style={ + rectangle, + rounded corners, + draw=black, very thick, + minimum width=3.5em, + minimum height=2em, + text centered}, + % Define arrow style + pull/.style={ + <->, + thick,draw=red, + shorten <=2pt, + shorten >=2pt,}, + % Define arrow style + pil/.style={ + ->, + thick, + shorten <=2pt, + shorten >=2pt,} +} + + +%\usepackage{tikz, xcolor} +%\usetikzlibrary{shapes,arrows} + + +\tikzstyle{decision} = [diamond, draw, text width=4.5em, + text badly centered, node distance=2cm, + inner sep=0pt] +\tikzstyle{block} = [rectangle, draw, text width=5em, + text centered, rounded corners, + minimum height=4em, node distance=3cm] +\tikzstyle{line} = [draw, -latex'] +\tikzstyle{lineeee} = [draw] +\tikzstyle{cloud} = [draw, ellipse, node distance=2.5cm, minimum height=2em] +\tikzstyle{walet} = [draw, rectangle, node distance=0.2cm, minimum height=2em] +\tikzstyle{reseau} = [node distance=0.2cm, minimum height=2em] +\tikzstyle{blank} = [node distance=1cm] + +\usetikzlibrary{shapes,arrows} +\usetikzlibrary{positioning} +\usetikzlibrary{calc} + + + + + +\begin{document} + +\begin{frame}{GNU Taler} + \vfill + \begin{center} + {\huge {L'argent \textbf{numérique} et \textbf{socialement responsable}.}} + \end{center} + \vfill + \begin{center} + \includegraphics[width=0.5\textwidth]{images/taler-logo-2021-inkscape.pdf} + \end{center} + \vfill + \begin{center} + Privacy preserving, useful, taxable, Free/Libre Software, Efficient + \end{center} + \vfill + \vfill +\ % +\end{frame} + + +\frame{\maketitle +} + + +\begin{frame} +\frametitle{GNU - Taler} +\tableofcontents + +\end{frame} + +\section{GNU Taler principles} + + +\begin{frame} +\frametitle{Taler Overview} +\begin{center} +\begin{tikzpicture} + \tikzstyle{def} = [node distance= 4.5em and 5.5em, inner sep=0.8em, 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} + \frametitle{Principle : Planchet generation} + \begin{columns}[t] + \begin{column}{0.4\textwidth} + \begin{block}{Alice withdraws e-cash to her wallet} + \begin{itemize} + \item The wallet generates a planchet (private / public key pair) + \item Planchet is blinded (using a random number) + \end{itemize} + \end{block} + \end{column} + \begin{column}{0.4\textwidth} + \begin{tikzpicture} + [baseline=(b.base)] + \tikzstyle{def} = [node distance= 2em and 0.5em, inner sep=0em, outer sep=.3em]; + \node (origin) at (0,0) {\includegraphics[width=0.2\textwidth]{images/dice.pdf}}; + \node (b) [def, draw=none, below = of origin] at (0,-0.2) {$b$}; + \node (blinded) [def, draw=none, below right=of b]{\includegraphics[width=0.2\textwidth]{images/blinded.pdf}}; + \node (planchet) [def, draw=none, above right=of blinded]{\includegraphics[width=0.15\textwidth]{images/planchet.pdf}}; + \node (exchange) [node distance=4em and 0.5em, draw, below =of blinded]{Exchange}; + \tikzstyle{C} = [color=black, line width=1pt] + + \draw [<-, C] (b) -- (origin) node [midway, above, sloped] (TextNode) {}; + \draw [<-, C] (blinded) -- (planchet) node [midway, above, sloped] (TextNode) {}; + \draw [<-, C] (blinded) -- (b) node [midway, above, sloped] (TextNode) {}; + \draw [<-, C] (exchange) -- (blinded) node [midway, above, sloped] (TextNode) {{\small transmit}}; + \end{tikzpicture} + + \end{column} + \end{columns} +\end{frame} + +\begin{frame} + \frametitle{Principle : Signature of the coin} + \begin{columns}[t] + \begin{column}{0.4\textwidth} + \begin{block}{Exchange signs the anonymized planchet} + \begin{itemize} + \item It generates a valid coin + \item But the exchange can not see the real coin. + \end{itemize} + \end{block} + \end{column} + \begin{column}{0.4\textwidth} + \begin{tikzpicture} + [baseline=(b.base)] + \tikzstyle{def} = [node distance= 2em and 0.5em, inner sep=0em, outer sep=.3em]; + \node (hammer) [def, draw=none] at (0,0) {\includegraphics[width=0.15\textwidth]{images/hammer.pdf}}; + \node (signed) [def, draw=none, below left=of hammer]{\includegraphics[width=0.2\textwidth]{images/sign.pdf}}; + \node (blinded) [def, draw=none, above left=of signed]{\includegraphics[width=0.15\textwidth]{images/blinded.pdf}}; + \node (customer) [node distance=4em and 0.5em, draw, below =of signed]{Customer}; + \tikzstyle{C} = [color=black, line width=1pt] + + \draw [<-, C] (signed) -- (hammer) node [midway, above, sloped] (TextNode) {}; + \draw [<-, C] (signed) -- (blinded) node [midway, above, sloped] (TextNode) {}; + \draw [<-, C] (customer) -- (signed) node [midway, above, sloped] (TextNode) {{\small transmit}}; + \end{tikzpicture} + \end{column} + \end{columns} + +\end{frame} + +\begin{frame} + \frametitle{Principle : Unblind the coin} + \begin{columns}[t] + \begin{column}{0.4\textwidth} + \begin{block}{Alice unblinds the coin} + \begin{itemize} + \item She becomes a valid coin that is untraceable. + \item The coin is signed by the exchange, but the exchange does not know which coin it is. + \end{itemize} + \end{block} + \end{column} + \begin{column}{0.4\textwidth} + \begin{tikzpicture} + [baseline=(b.base)] + \tikzstyle{def} = [node distance= 2em and 0.5em, inner sep=0em, outer sep=.3em]; + \node (b) [def, draw=none] at (0,0) {$b$}; + \node (coin) [def, draw=none, below left=of b]{\includegraphics[width=0.2\textwidth]{images/coin.pdf}}; + \node (signed) [def, draw=none, above left=of coin]{\includegraphics[width=0.15\textwidth]{images/sign.pdf}}; + \tikzstyle{C} = [color=black, line width=1pt] + + \draw [<-, C] (coin) -- (b) node [midway, above, sloped] (TextNode) {}; + \draw [<-, C] (coin) -- (signed) node [midway, above, sloped] (TextNode) {}; + \end{tikzpicture} + \end{column} + \end{columns} +\end{frame} + + +\begin{frame} + \frametitle{Blind Signature implementations} + \begin{block}{RSA} + \begin{itemize} + \item Chaum e-cash + \end{itemize} + \end{block} + \begin{block}{Eliptic curves} + \begin{itemize} + \item Clause Schnorr + \item Shorter + \end{itemize} + \end{block} + \begin{block}{Post quantic cryptography} + \begin{itemize} + \item New protocol designed in NGI-Taler + \item Implementation : work in progress + \end{itemize} + \end{block} + +\end{frame} + +\section{Taler in Switzerland} +\begin{frame} + \frametitle{Use Taler in Switzerland} + \begin{block}{Exchange = Taler Operations SA} + \begin{itemize} + \item {Operates since 2025 in Switzerland} + \item Any person with a Swiss phone number and bank account can have a wallet. + \item Any swiss account owner can be a merchant + \end{itemize} + \end{block} + \begin{block}{Sandbox regulation} + \begin{itemize} + \item Withdraw limited to CHF 200 / month for normal users + \item Payments to merchants limited to CHF 3'000 / month and 15'000 / year. + \end{itemize} + \end{block} +\end{frame} + +\subsection{Install Taler Wallet} +\begin{frame} + \frametitle{Install the Wallet} + \begin{columns} + \begin{column}{0.35\textwidth} + \begin{block}{Google Play Store} + \end{block} + \begin{center} +\includegraphics[width=0.5\textwidth]{./images/google_play_GNU_Taler.jpg} +\end{center} +\end{column} +\begin{column}{0.35\textwidth} + \begin{block}{Apple Store} + \end{block} + \begin{center} + \includegraphics[width=0.5\textwidth]{./images/Apple-Store-taler-app.png} + \end{center} + \end{column} +\begin{column}{0.35\textwidth} + \begin{block}{F-Droid} + \end{block} + \begin{center} + \includegraphics[width=0.5\textwidth]{./images/QR-Code-f-droid.png} + \end{center} + +\end{column} + + \end{columns} +\end{frame} + + + +\subsection{Pay with Taler} +\begin{frame} + \frametitle{Pay with Taler I} + \begin{columns} + \begin{column}{0.4\textwidth} + \begin{block}{Withdraw e-cash} + \begin{itemize} + \item Withdraw in the app + \item Transfer money to the Exchange + \item Wait until the transfer is finalized + \end{itemize} + \end{block} + + \end{column} + \begin{column}{0.5\textwidth} +\begin{center} + \includegraphics[width=0.4\textwidth]{./images/screenShot-withdraw.jpeg} +\end{center} +\end{column} + + \end{columns} + +\end{frame} + +\begin{frame} + \frametitle{Pay with Taler II} + \begin{columns} + \begin{column}{0.4\textwidth} + \begin{block}{Scan the QR code presented by the merchand} + \begin{itemize} + \item Validate the payment in the app + \item DONE + \end{itemize} + \end{block} + + \end{column} + \begin{column}{0.5\textwidth} +\begin{center} + \includegraphics[width=0.4\textwidth]{./images/taler-snack-automat.jpg} +\end{center} + \end{column} + + \end{columns} + +\end{frame} + + +\begin{frame} + \frametitle{Where can you pay?} + \begin{columns} + \begin{column}{0.4\textwidth} + \begin{block}{Map of the merchants accepting Taler} + \begin{itemize} + \item \url{https://taler-ops.ch/en/map.html} + \end{itemize} + \end{block} + \end{column} + \begin{column}{0.5\textwidth} + + \includegraphics[width=1.1\textwidth]{./images/screenshot-map-taler-ops-ch.png} + \end{column} + + \end{columns} + +\end{frame} + + +\subsection{Merchant Backend} +\begin{frame} + \frametitle{Merchant Backend} + + \begin{block}{Directly installed on-site by interested merchants} + \begin{itemize} + \item Control 100\% of everything + \item available as source + \item available as binary for Linux, Windows and OSX. + \end{itemize} + \end{block} + + \begin{block}{For small merchants} + \begin{itemize} + \item One central server + \item Each user has an account + \item Can see all the transactions + \end{itemize} + \end{block} + +\end{frame} + +\section{Demo} + +\begin{frame}{Demonstration: Merchant Backend} + + \begin{block}{Merchant creates an account} + \begin{itemize} + \item \url{https://my.taler-ops.ch} + \item Must accept terms of service. + \item Must generate a mini transaction from a CH account (for KYC procedure). + \end{itemize} + \end{block} + \begin{block}{Merchants can manage their inventar} + \begin{itemize} + \item Create items in the inventory + \item Create orders selling items + \item Create templates (to sell without dealing with inventory) + \end{itemize} + \end{block} +\end{frame} + +\begin{frame}{Demonstration: Test Playground} + \begin{block}{Play with demo money} + \begin{itemize} + \item In the wallet, you can get ``demo money'' (KUDOS) + \item Get and send money (peer to peer) to your neighbour(s). + \item Create a merchant account on \url{https://my.demo.taler.net} + \item Buy / Sell / Transfer money as you want + \item To get your money back to a bank, generate a bank account at: \url{https://bank.demo.taler.net} + \end{itemize} + \end{block} +\end{frame} + + +\section{Deploymerizer} + +\begin{frame}{Depolymerizer}{Taler for paying in BTC or ETH} + % \begin{tikzpicture}[remember picture,overlay] + % \node (N1)[above right=22mm and 56mm of current page.center] {\includegraphics[width=18mm]{./images/google_play_GNU_Taler.jpg}}; + % \node [below=-2mm of N1]{wallet.taler.net}; + % \end{tikzpicture} + \begin{center} + \begin{tikzpicture}[ + rect/.style={rectangle, draw=black, minimum width=30mm}, + sym/.style={stealth-stealth, shorten >= 2pt, shorten <= 2pt}, + block/.style={rectangle,draw=black,fill=black!10,minimum size=7mm}, + ] + + %% Architecture + \node(Tt){Taler}; + \node[rect,below=0cm of Tt](Tc){Exchange}; + \node[rect,fit={(Tt) (Tc)}](T){}; + + \node[rect,below=7mm of Tc](D) {\textbf{Depolymerizer}}; + + \node[rect,below=7mm of D](Bc){Node}; + \node[below=0cm of Bc](Bt){Blockchain}; + \node[rect,fit={(Bt) (Bc)}](B){}; + + \draw[sym] (T) -- (D); + \draw[sym] (D) -- (B); + + %% Blockchain + \node[block,right=8mm of B] (1){}; + \node[block,right=4mm of 1] (2){}; + \node[block,right=4mm of 2] (3){}; + \node[block,right=4mm of 3] (4){}; + \node[block,right=4mm of 4] (5){}; + \node[block,right=4mm of 5] (6){}; + \draw[-stealth] (1) -- (2); + \draw[-stealth] (2) -- (3); + \draw[-stealth] (3) -- (4); + \draw[-stealth] (4) -- (5); + \draw[-stealth] (5) -- (6); + + \node[left=4mm of 1] (S){}; + \node[right=4mm of 6] (E){}; + \draw[-stealth] (S) -- (1); + \draw[-stealth] (6) -- (E); + + %% Taler + \node[block, below right=-7.5mm and 20.5mm of T] (off){Off-chain transactions}; + \node[above=-0.5mm of off] {\includegraphics[height=7mm]{./images/taler.png}}; + + %% Depolymerization + \node[right=12mm of D] {\small{Credit}}; + \node[right=55mm of D] {\small{Debit}}; + \draw[dashed,-stealth] (1.north) |- (off.west); + \draw[dashed,-stealth] (off.east) -| (6.north); + + %% Separation + \draw[dotted] (-2.1,-1.3) -- (9,-1.3); + \draw[dotted] (-2.1,-2.5) -- (9,-2.5); + \end{tikzpicture} + \end{center} +\end{frame} + +\begin{frame} +\frametitle{Overview of the Depolymerizer} +\begin{center} + \includegraphics[width=8.5cm]{images/triangle-taler-en.pdf} +% \begin{tikzpicture} +% \tikzstyle{def} = [node distance= 4.5em and 6em, inner sep=1em, outer sep=.3em]; +% \node (origin) at (0,0) {}; +% \node (exchange) [def,above=of origin,draw]{Service d'échange}; +% \node (customer) [def, draw, below left=of origin] {Portefeuille}; +% \node (merchant) [def, draw, below right=of origin] {Backend commerçant}; +% % \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) {retire des jetons}; +% \draw [<-, C] (exchange) -- (merchant) node [midway, above, sloped] +% (TextNode) {dépose les jetons}; +% \draw [<-, C] (merchant) -- (customer) node [midway, above, sloped] +% (TextNode) {dépense les jetons}; +% % \draw [<-, C] (exchange) -- (auditor) node [midway, above, sloped] (TextNode) {verify}; +% \end{tikzpicture} +\end{center} +\end{frame} + +\begin{frame}{Difference Depolymerizer / Lightening} + + \begin{block}{Main difference: Centralized / Decentralized} + \begin{itemize} + \item One deploymerizer + \item Many lightening networks + \end{itemize} + \end{block} + \begin{block}{Anonymity} + \begin{itemize} + \item Full anonymity of the payer, + \item no anonymity of the payee. + \item Goal : no money laundering, no crime financing, no tax evasion. + \end{itemize} + \end{block} +\end{frame} + +\section{Q \& A} + +\begin{frame} + \frametitle{Questions ?} + \begin{columns} + \begin{column}{0.3\textwidth} + \begin{center} + \includegraphics[width=0.9\textwidth]{./images/3d-question-mark} + \end{center} + \end{column} + \begin{column}{0.65\textwidth} + + + \begin{block}{Contacts} + \begin{itemize} + \item \url{https://www.taler.net} + \item emmanuel.benoist@bfh.ch + \item christian.grothoff@bfh.ch + \end{itemize} + \end{block} + \end{column} +\end{columns} +\end{frame} + + +\begin{frame}{Acknowledgements} + + \begin{minipage}{0.45\textwidth} \ \\ + {\tiny Funded by the European Union (Project 101135475).} + + \begin{center} + \includegraphics[width=0.5\textwidth]{./images/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]{./images/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} +\begin{frame} + \frametitle{Example} + \begin{columns} + \begin{column}{0.47\textwidth} +\begin{center} + \includegraphics[width=0.8\textwidth]{./images/3d-question-mark.jpg} + +\end{center} +\end{column} + \begin{column}{0.47\textwidth} + + \begin{block}{Title for block} + \begin{itemize} + \item Item number 1 + \end{itemize} + \end{block} + \end{column} +\end{columns} +\end{frame} + + + diff --git a/presentations/2026-bitcoin-biel/texinputs/header-slides.tex b/presentations/2026-bitcoin-biel/texinputs/header-slides.tex @@ -0,0 +1,34 @@ +\documentclass[ + authorontitle=true, + aspectratio=169 + ]{beamer} + + +%\usepackage[main=ngerman]{babel} + +% The following is only necessary for compatibility with versions of pdftex older than April 2018 +\usepackage{iftex} +\ifPDFTeX +\usepackage[utf8]{inputenc} +\fi + + +%Makros für Formatierungen der Doku +%Im Allgemeinen nicht notwendig! +\let\code\texttt + +\usepackage{graphicx} + +\usepackage{listings} + +%\subtitle{Version 0.4} +\author[E. Benoist]{Emmanuel Benoist} +\institute{GNU-Taler} + +%Activate the output of a frame number: +\setbeamertemplate{page number in head/foot}[framenumber] + + +%\AtBeginSection{\sectionpage} +\author{Emmanuel Benoist} +\date{Fall Term 2023/2024} diff --git a/presentations/2026-bitcoin-biel/texinputs/images/bandera.jpg b/presentations/2026-bitcoin-biel/texinputs/images/bandera.jpg Binary files differ. diff --git a/presentations/2026-bitcoin-biel/texinputs/images/logo-NGI_TALER.ai b/presentations/2026-bitcoin-biel/texinputs/images/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/presentations/2026-bitcoin-biel/texinputs/images/logo-NGI_TALER_Bold.png b/presentations/2026-bitcoin-biel/texinputs/images/logo-NGI_TALER_Bold.png Binary files differ. diff --git a/presentations/2026-bitcoin-biel/texinputs/images/logo-NGI_TALER_Bold.svg b/presentations/2026-bitcoin-biel/texinputs/images/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/presentations/2026-bitcoin-biel/texinputs/images/sbfi.jpg b/presentations/2026-bitcoin-biel/texinputs/images/sbfi.jpg Binary files differ. diff --git a/presentations/2026-bitcoin-biel/texinputs/taler-macros.tex b/presentations/2026-bitcoin-biel/texinputs/taler-macros.tex @@ -0,0 +1,103 @@ +\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]{texinputs/images/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} +}