slides-KrypoTour-Lyon.tex (16238B)
1 \documentclass[aspectratio=169,t]{beamer} 2 3 \input texinputs/taler-macros 4 5 \usepackage{tikz} 6 \usepackage{ragged2e} 7 \usetikzlibrary{positioning,fit,patterns} 8 9 % 10 % Presentation to the Kryptotour Lyon 19 Oct. 2024 in Lyon. 11 % Copyright (C) 2024 Emmanuel Benoist 12 % 13 % This program is free software: you can redistribute it and/or modify 14 % it under the terms of the GNU General Public License as published by 15 % the Free Software Foundation, either version 3 of the License, or 16 % (at your option) any later version. 17 % 18 % This program is distributed in the hope that it will be useful, 19 % but WITHOUT ANY WARRANTY; without even the implied warranty of 20 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 % GNU General Public License for more details. 22 % 23 % You should have received a copy of the GNU General Public License 24 % along with this program. If not, see <http://www.gnu.org/licenses/>. 25 % 26 27 % *Especially* edit these... 28 % \setbeameroption{show notes on second screen=right} % Both 29 30 \newcommand{\SPEAKER}{Emmanuel Benoist} 31 \newcommand{\DATE}{19 octobre 2024} 32 \title{} 33 \date{19 octobre 2024} 34 35 36 \newcommand{\TITLE}{Workshop : vendre du pain en Bitcoin} 37 \newcommand{\SUB}{Kryptotour Lyon } 38 \newcommand{\AUTHOR}{Emmanuel Benoist} 39 \newcommand{\INST}{ https://www.benoist.ch/taler} 40 41 % Do not edit this part 42 \title{\TITLE} 43 \subtitle{\SUB} 44 \date{\DATE} 45 \author[\SPEAKER]{\AUTHOR} 46 \institute{\INST} 47 48 \usepackage{amsmath} 49 \usepackage{multimedia} 50 \usepackage[percent]{overpic} 51 \usepackage{url} 52 \usepackage{pifont} 53 \usepackage[absolute,overlay]{textpos} 54 \usepackage{listings} 55 56 \usepackage{tikz, xcolor} 57 \usetikzlibrary{shapes,arrows,positioning} 58 \tikzset{ 59 %Define standard arrow tip 60 >=stealth', 61 %Define style for boxes 62 punkt/.style={ 63 rectangle, 64 rounded corners, 65 draw=black, very thick, 66 minimum width=3.5em, 67 minimum height=2em, 68 text centered}, 69 % Define arrow style 70 pull/.style={ 71 <->, 72 thick,draw=red, 73 shorten <=2pt, 74 shorten >=2pt,}, 75 % Define arrow style 76 pil/.style={ 77 ->, 78 thick, 79 shorten <=2pt, 80 shorten >=2pt,} 81 } 82 83 84 %\usepackage{tikz, xcolor} 85 %\usetikzlibrary{shapes,arrows} 86 87 88 \tikzstyle{decision} = [diamond, draw, text width=4.5em, 89 text badly centered, node distance=2cm, 90 inner sep=0pt] 91 \tikzstyle{block} = [rectangle, draw, text width=5em, 92 text centered, rounded corners, 93 minimum height=4em, node distance=3cm] 94 \tikzstyle{line} = [draw, -latex'] 95 \tikzstyle{lineeee} = [draw] 96 \tikzstyle{cloud} = [draw, ellipse, node distance=2.5cm, minimum height=2em] 97 \tikzstyle{walet} = [draw, rectangle, node distance=0.2cm, minimum height=2em] 98 \tikzstyle{reseau} = [node distance=0.2cm, minimum height=2em] 99 \tikzstyle{blank} = [node distance=1cm] 100 101 \usetikzlibrary{shapes,arrows} 102 \usetikzlibrary{positioning} 103 \usetikzlibrary{calc} 104 105 106 107 108 109 \begin{document} 110 111 112 \frame{\maketitle 113 } 114 115 \begin{frame} 116 \frametitle{Télécharger ce workshop} 117 118 \begin{center} 119 \includegraphics[width=0.3\textwidth]{./images/QR-code-benoist.ch.png} 120 121 122 \url{https://www.benoist.ch/taler} 123 \end{center} 124 125 \end{frame} 126 127 128 129 130 131 132 133 134 \begin{frame} 135 \frametitle{Workshop : Vendre du pain en Bitcoin} 136 \tableofcontents 137 138 \end{frame} 139 140 \section{Limites des Cryptomonnaies} 141 142 \begin{frame} 143 \frametitle{Les Cryptomonnaies (I)} 144 \begin{block}{Comment fonctionne une cryptomonnaie} 145 \begin{itemize} 146 \item Une transaction est ordonnée par un utilisateur 147 \item La transaction est transmise à tous les noeuds du réseau 148 \item Les transactions sont vérifiées 149 \item Les mineurs trouvent un consensus pour ajouter un ensemble 150 de transactions (un bloc) dans la Blockchain. 151 \end{itemize} 152 \end{block} 153 \end{frame} 154 155 \begin{frame} 156 \frametitle{Les Cryptomonnaies (II)} 157 \begin{block}{Differences} 158 \begin{itemize} 159 \item Taille du réseau des noeuds (Bitcoin et Ethereum environ 160 13~000 noeuds, Monero 2700); 161 \item Preuve de travail ou preuve d'enjeu; 162 \item Capitalisation : BTC 458 Mrd de dolars, ETH 216 Mrd de 163 dolars, Tether USDT 66 Mrd de dolars, USD Coin USDC 54 Mrd de 164 dolars, ... 165 \item Nombre de blocs par heure, 166 \item taille des blocs, 167 \item nombre maxi de 168 transaction à la seconde, etc. 169 \end{itemize} 170 \end{block} 171 \end{frame} 172 173 \begin{frame} 174 \frametitle{Pro/Contra Blockchain} 175 \begin{block}{Avantages : la thésaurisation} 176 \begin{itemize} 177 \item Les blockchains sont prévues pour stocker à long terme 178 \item Cours stable (par rapport à beaucoup de monnaies) 179 \item Pas d'inflation (mecanisme anti-inflation implanté dans l'algorithme) 180 \end{itemize} 181 \end{block} 182 \begin{block}{Désavantage : paiements} 183 \begin{itemize} 184 \item Visa = 10~000 paiements à la seconde, Bitcoin= 10; 185 \item Temps d'ancrage dans la blockchain (de 186 quelques minutes pour ETH à 15mn pour BTC); 187 \item Temps de validation (de 1h pour quelques euros à 1 jour pour 1 million) 188 \end{itemize} 189 \end{block} 190 \end{frame} 191 192 \begin{frame}{Les jetons} 193 \begin{block}{Solution : Jetonisation (tokenization)} 194 \begin{itemize} 195 \item Des jetons émis par une sorte de \emph{``banque centrale''}, 196 \item Echanges immédiats (validation par la banque) 197 \item Coûts de transaction minimes (dépend de la politique de la banque / banque 198 centrale). 199 \item Possibilité de micro-paiements. 200 \item Possible avec toutes les monnaies : CHF, EUR, Bitcoin, etc. 201 \end{itemize} 202 \end{block} 203 \end{frame} 204 205 206 % \section{Taler} 207 208 % \begin{frame}{GNU-Taler } 209 210 % \begin{block}{Cash-électronique} 211 % \begin{itemize} 212 % \item Le consommateurs retirent de l'argent électronique 213 % (anonymisé) depuis leur banque, 214 % \item Ils peuvent s'échanger librement cet argent, 215 % \item Ils peuvent payer à un commerçant, 216 % \item Le commerçant dépose l'argent électronique à sa banque et 217 % son compte est crédité. 218 % \end{itemize} 219 % \end{block} 220 % \begin{block}{Pas une cryptomonnaie} 221 % \begin{itemize} 222 % \item Pas de block chain, 223 % \item La banque est responsable des billets émis. 224 % \end{itemize} 225 % \end{block} 226 % \end{frame} 227 228 % \begin{frame}{Taler : Vue d'ensemble} 229 % \begin{center} 230 % \begin{tikzpicture} 231 % \tikzstyle{def} = [node distance= 4.5em and 6em, inner sep=1em, outer sep=.3em]; 232 % \node (origin) at (0,0) {}; 233 % \node (exchange) [def,above=of origin,draw]{Banque}; 234 % \node (customer) [def, draw, below left=of origin] {Consommateur}; 235 % \node (merchant) [def, draw, below right=of origin] {Marchand}; 236 % \node (auditor) [def, draw, above right=of origin]{Auditeur}; 237 238 % \tikzstyle{C} = [color=black, line width=1pt] 239 240 % \draw [<-, C] (customer) -- (exchange) node [midway, above, sloped] 241 % (TextNode) {retire des jetons}; 242 % \draw [<-, C] (exchange) -- (merchant) node [midway, above, sloped] 243 % (TextNode) {depose les jetons}; 244 % \draw [<-, C] (merchant) -- (customer) node [midway, above, sloped] 245 % (TextNode) {dépense les jetons}; 246 % \draw [<-, C] (exchange) -- (auditor) node [midway, above, sloped] (TextNode) {vérifie}; 247 248 % \end{tikzpicture} 249 % \end{center} 250 % \end{frame} 251 252 % \begin{frame}{Comment ça marche? (I)} 253 % \begin{block}{Signature à l'aveugle (lors du retrait des jetons)} 254 % \begin{itemize} 255 % \item Le consommateur génère un jeton, 256 % \item Il anonymize le jeton, 257 % \item Il envoie le jeton anonymizé à la banque pour signature, 258 % \item La banque signe le jeton anonymizé, 259 % \item Le consommateur récupère son jeton dé-anonymizé et signé 260 % \end{itemize} 261 % \end{block} 262 263 % \begin{block}{2 versions} 264 % \begin{itemize} 265 % \item Pour RSA : David Chaum 266 % \item Pour les courbes éliptiques : Clause Schnorr 267 % \end{itemize} 268 % \end{block} 269 % \end{frame} 270 271 % \begin{frame}{Comment ça marche? (II)} 272 % \begin{block}{Protection de la sphère privée} 273 % \begin{itemize} 274 % \item La banque sait exactement quel marchand a reçu combien : 275 % taxable, pas de trafic, pas de blanchiement d'argent. 276 % \item Personne ne sait comment le client dépense son argent qui est 277 % intraçable (grâce à la signature à l'aveugle). 278 % \end{itemize} 279 % \end{block} 280 % \end{frame} 281 282 283 284 \begin{frame}{GNU Taler}{Une sur-couche pour les transactions} 285 % \begin{tikzpicture}[remember picture,overlay] 286 % \node (N1)[above right=22mm and 56mm of current page.center] {\includegraphics[width=18mm]{./images/google_play_GNU_Taler.jpg}}; 287 % \node [below=-2mm of N1]{wallet.taler.net}; 288 % \end{tikzpicture} 289 \begin{center} 290 \begin{tikzpicture}[ 291 rect/.style={rectangle, draw=black, minimum width=30mm}, 292 sym/.style={stealth-stealth, shorten >= 2pt, shorten <= 2pt}, 293 block/.style={rectangle,draw=black,fill=black!10,minimum size=7mm}, 294 ] 295 296 %% Architecture 297 \node(Tt){Taler}; 298 \node[rect,below=0cm of Tt](Tc){Exchange}; 299 \node[rect,fit={(Tt) (Tc)}](T){}; 300 301 \node[rect,below=7mm of Tc](D) {\textbf{Depolymerizer}}; 302 303 \node[rect,below=7mm of D](Bc){Node}; 304 \node[below=0cm of Bc](Bt){Blockchain}; 305 \node[rect,fit={(Bt) (Bc)}](B){}; 306 307 \draw[sym] (T) -- (D); 308 \draw[sym] (D) -- (B); 309 310 %% Blockchain 311 \node[block,right=8mm of B] (1){}; 312 \node[block,right=4mm of 1] (2){}; 313 \node[block,right=4mm of 2] (3){}; 314 \node[block,right=4mm of 3] (4){}; 315 \node[block,right=4mm of 4] (5){}; 316 \node[block,right=4mm of 5] (6){}; 317 \draw[-stealth] (1) -- (2); 318 \draw[-stealth] (2) -- (3); 319 \draw[-stealth] (3) -- (4); 320 \draw[-stealth] (4) -- (5); 321 \draw[-stealth] (5) -- (6); 322 323 \node[left=4mm of 1] (S){}; 324 \node[right=4mm of 6] (E){}; 325 \draw[-stealth] (S) -- (1); 326 \draw[-stealth] (6) -- (E); 327 328 %% Taler 329 \node[block, below right=-7.5mm and 20.5mm of T] (off){Off-chain transactions}; 330 \node[above=-0.5mm of off] {\includegraphics[height=7mm]{./images/taler.png}}; 331 332 %% Depolymerization 333 \node[right=12mm of D] {\small{Credit}}; 334 \node[right=55mm of D] {\small{Debit}}; 335 \draw[dashed,-stealth] (1.north) |- (off.west); 336 \draw[dashed,-stealth] (off.east) -| (6.north); 337 338 %% Separation 339 \draw[dotted] (-2.1,-1.3) -- (9,-1.3); 340 \draw[dotted] (-2.1,-2.5) -- (9,-2.5); 341 \end{tikzpicture} 342 \end{center} 343 \end{frame} 344 345 \begin{frame}{GNU Taler}{Overview} 346 \begin{columns} 347 \begin{column}{0.45\textwidth} 348 \begin{center} 349 \includegraphics[width=\textwidth]{./images/triangle-taler} 350 \end{center} 351 \end{column} 352 \begin{column}{0.45\textwidth} 353 354 \begin{block}{Système de paiement Taler} 355 \begin{itemize} 356 \item Tokenization 357 \item Signatures à l'aveugle : anonymat du payeur, 358 connaissance du marchand 359 \end{itemize} 360 \end{block} 361 \begin{block}{Implémentations} 362 \begin{itemize} 363 \item Monnaies scriptures (CHF, EUR, HUF), 364 \item BTC et ETH 365 \end{itemize} 366 \end{block} 367 368 \end{column} 369 \end{columns} 370 \end{frame} 371 372 \begin{frame}{Taler : plan de déploiement} 373 374 \begin{block}{En Suisse} 375 \begin{itemize} 376 \item \textit{Netzbon} : Monnaie locale à Bâle, en cours de 377 déploiement 378 \item \textit{Interne à la BFH} : Automate à snacks (bientôt 379 aussi automate à café). 380 \item \textit{CHF dans toute le Suisse} : en cours de déploiement 381 \end{itemize} 382 \end{block} 383 \begin{block}{Reste du monde} 384 \begin{itemize} 385 \item \textit{Projet NGI-Taler} avec une banque allemande (pour un 386 déploiement en 2025 dans la zone euro), et une banque hongroise. 387 \item \textit{Depolymerizer} Paiements en Bitcoins à travers 388 Taler (serveur beta, novembre 2024). 389 \end{itemize} 390 \end{block} 391 \end{frame} 392 393 \section{Installer l'application client} 394 \begin{frame} 395 \frametitle{Installer l'application client} 396 \begin{columns} 397 \begin{column}{0.45\textwidth} 398 \begin{block}{Google Play Store} 399 \end{block} 400 \begin{center} 401 \includegraphics[width=0.7\textwidth]{./images/google_play_GNU_Taler.jpg} 402 \end{center} 403 \end{column} 404 \begin{column}{0.45\textwidth} 405 \begin{block}{Apple Store} 406 \end{block} 407 \begin{center} 408 \includegraphics[width=0.7\textwidth]{./images/Apple-Store-taler-app.png} 409 \end{center} 410 \end{column} 411 \end{columns} 412 \end{frame} 413 414 \section{Retirer des pieces} 415 \begin{frame} 416 \frametitle{Retirer des pièces} 417 \begin{columns} 418 \begin{column}{0.45\textwidth} 419 \begin{block}{Creez un compte dans notre banque} 420 \end{block} 421 \begin{center} 422 \includegraphics[width=0.5\textwidth]{./images/QR-code-bank.demo.taler.net.png} 423 \url{https://bank.demo.taler.net/} 424 425 \end{center} 426 \end{column} 427 \begin{column}{0.45\textwidth} 428 \begin{block}{Transférez de l'argent vers le portefeuille} 429 430 \begin{itemize} 431 \item Générez un retrait \texttt{``to a Taler wallet''} 432 \item Scannez le QRCode dans votre application. 433 \end{itemize} 434 \end{block} 435 \end{column} 436 \end{columns} 437 \end{frame} 438 439 440 \section{Transfert de pair à pair} 441 \begin{frame} 442 \frametitle{Transfert de pair à pair} 443 \begin{block}{Dans l'application : Envoyer de l'argent} 444 \begin{itemize} 445 \item Cliquez sur le solde de votre portemonnaie, 446 \item Ensuite \texttt{``Envoyer des fonds''}, 447 \item Tapez un montant puis \texttt{``Vers un autre 448 portefeuille''}, 449 \item Demandez à votre voisin de scanner ce QR-code. 450 \end{itemize} 451 \end{block} 452 \begin{block}{Dans l'application : Demandez de l'argent} 453 \begin{itemize} 454 \item Cliquez sur le solde de votre portemonnaie, 455 \item Ensuite \texttt{``Recevoir des fonds''}, 456 \item Tapez un montant puis \texttt{``Facture d'un autre 457 portefeuille''}, 458 \item Demandez à votre voisin de scanner ce QR-code. 459 \end{itemize} 460 \end{block} 461 \end{frame} 462 463 \section{Créer un compte vendeur} 464 \begin{frame} 465 \frametitle{Créer un compte vendeur} 466 467 \begin{columns} 468 \begin{column}{0.45\textwidth} 469 \begin{block}{Sur le site Merchant backend} 470 \end{block} 471 \begin{center} 472 \includegraphics[width=0.5\textwidth]{./images/QR-code-backend.demo.taler.net.png} 473 \url{https://backend.demo.taler.net/instances/sandbox/} 474 475 Access Token : \texttt{sandbox} 476 \end{center} 477 \end{column} 478 \begin{column}{0.45\textwidth} 479 \begin{block}{Initialisez votre magasin / faire une première livraison} 480 481 \begin{itemize} 482 \item Créez un produit dans l'inventaire 483 \item Créez une nouvelle ``\emph{Order}'' (Commande) 484 \item Faites payer votre voisin (il scanne le QRCode) 485 \item Attendez la confirmation 486 \end{itemize} 487 \end{block} 488 \begin{block}{Faire de la vente à emporter} 489 490 \begin{itemize} 491 \item Créez une nouvelle ``\emph{template}'' 492 \item Imprimez cette template sur une feuille. 493 \item Scannez le QRCode dans votre application. 494 \end{itemize} 495 \end{block} 496 497 \end{column} 498 \end{columns} 499 500 \end{frame} 501 502 503 504 \begin{frame} 505 \frametitle{Questions?} 506 \begin{block}{Contact: emmanuel.benoist@bfh.ch} 507 \end{block} 508 \begin{block}{Web : https://www.benoist.ch} 509 \end{block} 510 \end{frame} 511 512 \begin{frame}{Acknowledgements} 513 514 \begin{minipage}{0.45\textwidth} \ \\ 515 {\tiny Funded by the European Union (Project 101135475).} 516 517 \begin{center} 518 \includegraphics[width=0.5\textwidth]{./images/bandera.jpg} 519 \end{center} 520 \end{minipage} 521 \hfill 522 \begin{minipage}{0.45\textwidth} 523 {\tiny Funded by SERI (HEU-Projekt 101135475-TALER).} 524 525 \begin{center} 526 \includegraphics[width=0.65\textwidth]{./images/sbfi.jpg} 527 \end{center} 528 \end{minipage} 529 530 \vfill 531 532 {\tiny Views and opinions expressed are however those of the author(s) only 533 and do not necessarily reflect those of the European Union. Neither the 534 European Union nor the granting authority can be held responsible for 535 them.} 536 \end{frame} 537 538 539 \end{document}