intro.tex (26505B)
1 \pdfminorversion=3 2 \documentclass[fleqn,xcolor={usenames,dvipsnames}]{beamer} 3 \usepackage{amsmath} 4 \usepackage{multimedia} 5 \usepackage[utf8]{inputenc} 6 \usepackage{framed,color,ragged2e} 7 \usepackage[absolute,overlay]{textpos} 8 \usepackage{adjustbox} 9 \definecolor{shadecolor}{rgb}{0.8,0.8,0.8} 10 \usetheme{boxes} 11 \setbeamertemplate{navigation symbols}{} 12 \usepackage{xcolor} 13 \usepackage{tikz,eurosym} 14 \usepackage[normalem]{ulem} 15 \usepackage{listings} 16 17 % CSS 18 \lstdefinelanguage{CSS}{ 19 basicstyle=\ttfamily\scriptsize, 20 keywords={color,background-image:,margin,padding,font,weight,display,position,top,left,right,bottom,list,style,border,size,white,space,min,width, transition:, transform:, transition-property, transition-duration, transition-timing-function}, 21 sensitive=true, 22 morecomment=[l]{//}, 23 morecomment=[s]{/*}{*/}, 24 morestring=[b]', 25 morestring=[b]", 26 alsoletter={:}, 27 alsodigit={-} 28 } 29 30 % JavaScript 31 \lstdefinelanguage{JavaScript}{ 32 basicstyle=\ttfamily\scriptsize, 33 morekeywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break}, 34 morecomment=[s]{/*}{*/}, 35 morecomment=[l]//, 36 morestring=[b]", 37 morestring=[b]' 38 } 39 40 \lstdefinelanguage{HTML5}{ 41 basicstyle=\ttfamily\scriptsize, 42 language=html, 43 sensitive=true, 44 alsoletter={<>=-}, 45 morecomment=[s]{<!-}{-->}, 46 tag=[s], 47 otherkeywords={ 48 % General 49 >, 50 % Standard tags 51 <!DOCTYPE, 52 </html, <html, <head, <title, </title, <style, </style, <link, </head, <meta, />, 53 % body 54 </body, <body, 55 % Divs 56 </div, <div, </div>, 57 % Paragraphs 58 </p, <p, </p>, 59 % scripts 60 </script, <script, 61 % More tags... 62 <canvas, /canvas>, <svg, <rect, <animateTransform, </rect>, </svg>, <video, <source, <iframe, </iframe>, </video>, <image, </image> 63 }, 64 ndkeywords={ 65 % General 66 =, 67 % HTML attributes 68 charset=, src=, id=, width=, height=, style=, type=, rel=, href=, 69 % SVG attributes 70 fill=, attributeName=, begin=, dur=, from=, to=, poster=, controls=, x=, y=, repeatCount=, xlink:href=, 71 % CSS properties 72 margin:, padding:, background-image:, border:, top:, left:, position:, width:, height:, 73 % CSS3 properties 74 transform:, -moz-transform:, -webkit-transform:, 75 animation:, -webkit-animation:, 76 transition:, transition-duration:, transition-property:, transition-timing-function:, 77 } 78 } 79 80 \lstdefinelanguage{JavaScript}{ 81 basicstyle=\ttfamily\scriptsize, 82 keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break, for}, 83 keywordstyle=\color{blue}\bfseries, 84 ndkeywords={class, export, boolean, throw, implements, import, this}, 85 ndkeywordstyle=\color{darkgray}\bfseries, 86 identifierstyle=\color{black}, 87 sensitive=false, 88 comment=[l]{//}, 89 morecomment=[s]{/*}{*/}, 90 commentstyle=\color{purple}\ttfamily, 91 stringstyle=\color{red}\ttfamily, 92 morestring=[b]', 93 morestring=[b]" 94 } 95 96 \usetikzlibrary{shapes,arrows} 97 \usetikzlibrary{positioning} 98 \usetikzlibrary{calc} 99 100 \title{GNU Taler} 101 102 \setbeamertemplate{navigation symbols}{\includegraphics[width=0.5cm]{gnu.png}\hfill} 103 %\setbeamercovered{transparent=1} 104 105 \author{F. Dold, C. Grothoff, L. Schumacher} 106 \date{\today} 107 \institute{Taler Systems SA} 108 109 110 \begin{document} 111 112 \justifying 113 114 \begin{frame} 115 \begin{center} 116 \LARGE {\bf GNU} 117 118 \vfill 119 \includegraphics[width=0.66\textwidth]{taler-logo-2021-inkscape.pdf} 120 \end{center} 121 \begin{textblock*}{4cm}(.5cm,6.5cm) % {block width} (coords) 122 {\Large {\bf \url{taler.net}} \\ 123 IRC{\bf \#taler} \\ 124 {\small (on freenode)} \\ 125 twitter@taler \\ 126 mail@taler.net } 127 \end{textblock*} 128 129 % Substitute based on who is giving the talk! 130 \begin{textblock*}{6cm}(6.7cm,7.7cm) % {block width} (coords) 131 {\hfill {\Large {\bf Leon Schumacher \&} \\ 132 \hfill {\bf Christian Grothoff}} \\ 133 \hfill \{schumacher,grothoff\}@taler.net } 134 \end{textblock*} 135 136 \end{frame} 137 138 139 %\section{Introduction} 140 141 %\begin{frame} 142 % \vfill 143 % \begin{center} 144 % {\bf Part I: Introduction} 145 % \end{center} 146 % \vfill 147 %\end{frame} 148 149 %\begin{frame}{Three Futures} 150 %\begin{center} 151 %\begin{tikzpicture} 152 % \tikzstyle{def} = [node distance= 4em and 4.5em, inner sep=1em, outer sep=.3em]; 153 % \node (origin) at (0,0) {}; 154 % \node (china) [def, draw, above left=of origin]{Chinese Model}; 155 % \node (defi) [def, draw, above right=of origin] {Libertarian Model}; 156 % \pause 157 %\node (taler) [def, draw, below=of origin] {European Model}; 158 % \tikzstyle{C} = [color=black, line width=1pt] 159 % \draw [->, C] (defi) -- (taler) node [midway, above, sloped] (TextNode) {+regulate}; 160 % \draw [->, C] (defi) -- (taler) node [midway, below, sloped] (TextNode) {+centralize}; 161 % \draw [->, C] (china) -- (taler) node [midway, above, sloped] (TextNode) {+privacy}; 162 % \draw [->, C] (china) -- (taler) node [midway, below, sloped] (TextNode) {+Free Software}; 163 %\end{tikzpicture} 164 %\end{center} 165 %\end{frame} 166 167 168 \begin{frame}{Design goals for the GNU Taler Payment System} 169 GNU Taler must (in this order) ... 170 \begin{enumerate} 171 \item {... be implemented as {\bf free software}.} 172 \item {... protect the {\bf privacy of buyers}.} 173 \item {... must enable the state to {\bf tax income} and crack down on 174 illegal business activities.} 175 \item {... prevent payment fraud.} 176 \item {... only {\bf disclose the minimal amount of information 177 necessary}.} 178 \item {... be usable.} 179 \item {... be efficient.} 180 \item {... avoid single points of failure.} 181 \item {... foster {\bf competition}.} 182 \end{enumerate} 183 \end{frame} 184 185 186 \begin{frame}{How does Taler operate?} 187 \vfill 188 \begin{center} 189 \includegraphics[width=0.8\textwidth]{operations.png} 190 \end{center} 191 \end{frame} 192 193 194 %\begin{frame}{Taler Overview} 195 %\begin{center} 196 %\begin{tikzpicture} 197 % \tikzstyle{def} = [node distance= 5em and 6.5em, inner sep=1em, outer sep=.3em]; 198 % \node (origin) at (0,0) {}; 199 % \node (exchange) [def,above=of origin,draw]{Exchange}; 200 % \node (customer) [def, draw, below left=of origin] {Customer}; 201 % \node (merchant) [def, draw, below right=of origin] {Merchant}; 202 % \node (auditor) [def, draw, above right=of origin]{Auditor}; 203 % 204 % \tikzstyle{C} = [color=black, line width=1pt] 205 % 206 % \draw [<-, C] (customer) -- (exchange) node [midway, above, sloped] (TextNode) {withdraw coins}; 207 % \draw [<-, C] (exchange) -- (merchant) node [midway, above, sloped] (TextNode) {deposit coins}; 208 % \draw [<-, C] (merchant) -- (customer) node [midway, above, sloped] (TextNode) {spend coins}; 209 % \draw [<-, C] (exchange) -- (auditor) node [midway, above, sloped] (TextNode) {verify}; 210 % 211 %\end{tikzpicture} 212 %\end{center} 213 %\end{frame} 214 215 216 \begin{frame}{GNU Taler Properties Today} 217 \begin{enumerate} 218 \item Enhanced digital efficiency (usability, convenience, speed) 219 \item Cash-like features (one-sided privacy, viable microtransactions) 220 \item Competitive features (age-restrictions, p2p payments, etc.) 221 % \item Enhanced monetary policy options (friendly for central banks) 222 \item Increased resilience (full-stack replacement) 223 \item Internationally usable (including unbanked or tourists) 224 \item Low-cost and thus protecting creation % environmentally friendly 225 \item Free/Libre Software provides provider-neutral infrastructure 226 \item Compliant with regulation (AML, KYC, CFT) as privacy is one-sided and payments remain intermediated 227 % \item Non-core components to be operated by private entities 228 \item Protocol is an open standard with freely available reference implementations 229 % \item Possibility to limit amounts withdrawn by non-residents 230 \item Uses modern cryptography, peer-reviewed design and implementation 231 \end{enumerate} 232 \end{frame} 233 234 235 %\begin{frame}{Application Domains} 236 %\begin{itemize} 237 % \item Commercial bank payments 238 % \item Central bank digital currency 239 % \item Tokenization of assets 240 % \item Layer-2 solution for crypto-currencies 241 %\end{itemize} 242 %\end{frame} 243 244 245 \begin{frame}{GNU Taler Properties Tomorrow} 246 \begin{itemize} 247 \item Privacy-preserving age-restricted payments aligned 248 with principle of subsidiarity from Catholic social theory 249 \item Anonymous, yet unshareable subscriptions 250 \item Coupons, discounts, upselling, loyalty programs 251 \item Unforgeable privacy-preserving donation receipts for tax deductions 252 \item Certified for blind users 253 \item Read for post-quantum cryptography 254 % \item Certified for age-restriction 255 \end{itemize} 256 \end{frame} 257 258 259 \begin{frame}{GNU Taler Integrations} 260 \begin{itemize} 261 \item WooCommerce (Wordpress) 262 \item Drupal Commerce 263 \item Joomla! E-commerce 264 \item Multi-drop-bus (vending machines) 265 \item Static QR codes (incl. for offline merchants) 266 \item Point-of-sale ``restaurant'' App 267 \item Peer-to-peer payments between wallets 268 \item Wallets for Firefox, Chromium, Chrome, Android 269 \end{itemize} 270 \end{frame} 271 272 273 %\begin{frame}{GNU Taler Integrations Tomorrow} 274 %\begin{itemize} 275 % \item Wallets for iOS, Brave, Opera, ... 276 % \item Adobe E-commerce 277 % \item Public transport ticket vending machines 278 % \item Coin- and cash acceptors 279 % \item Embedded wallet 280 %\end{itemize} 281 %\end{frame} 282 283 284 \begin{frame}{Taler benefits} 285 \begin{itemize} 286 \item Stewardship through radically lower fees 287 \item Security that prevents most common fraud (skimming, ID theft,…) and reduces significant compliance efforts 288 \item Privacy that protects users, donors and congregants 289 \item Open-source ethics with no Big-Tech/Big-Fin lock-ins 290 \item Making it viral through merchants 291 \end{itemize} 292 \end{frame} 293 294 295 \begin{frame}{Reasons to adopt Taler} 296 \begin{itemize} 297 \item Cutting member merchants' biggest non-labor cost --- the payment fees\footnote{NACS data} 298 \item Shielding member merchants from fraud liabilities 299 \item New revenue streams 300 \item Float on Taler tokens in circulation 301 \item Fees on transaction (make it win/win for bank \& merchants) 302 \item Increase number of SME accounts (to gain access to Taler payments) 303 \end{itemize} 304 \end{frame} 305 306 307 \begin{frame}{Opportunities for a bank} 308 309 New payment solution that lifts the bar on privacy, security, costs and fraud 310 prevention: 311 312 \begin{itemize} 313 \item New revenue streams via transaction fees 314 \item Interest income (float) on reserve account 315 \item New customer attraction (individuals \& businesses) 316 \item Lower operational costs compared to card-based systems 317 \item Improved customer experience with fast, secure transactions 318 \end{itemize} 319 \end{frame} 320 321 322 \begin{frame}{Speed Junky} 323 28'500 Coin-transactions/second in 2022 in test across France. Ongoing work: 324 \begin{enumerate} 325 \item Specific optimizations (DB, code, protocol) 326 % \item GPU integration for signature validation 327 \item Optimized cryptographic routines (expected 10x speed-up) 328 \end{enumerate} 329 %\pause 330 %\begin{center} 331 % Can settle all transactions of Hungary on 2 servers! 332 %\end{center} 333 \end{frame} 334 335 336 \section{Competitor analysis} 337 \begin{frame}{Competitor comparison} 338 \begin{center} \small 339 \begin{tabular}{l||c|c|c|c|c} 340 & Cash & Bitcoin & Zelle & Stripe & GNU Taler \\ \hline \hline 341 Online &$-$$-$$-$ & ++ & ++ & ++ & +++ \\ \hline 342 Offline & +++ & $-$$-$ & $-$$-$ & - & ++ \\ \hline 343 Trans. cost & + & $-$$-$$-$ & $-$$-$ & $-$ $-$ & ++ \\ \hline 344 Speed & + & $-$$-$$-$ & o & o & ++ \\ \hline 345 Taxation & $-$ & $-$$-$ & +++ & +++ & +++ \\ \hline 346 Payer-anon & ++ & o &$-$$-$$-$ & $-$$-$$-$ & +++ \\ \hline 347 Payee-anon & ++ & o &$-$$-$$-$ & $-$$-$$-$ & $-$$-$$-$ \\ \hline 348 Security & $-$ & o &$-$$-$ & $-$$-$ & ++ \\ \hline 349 Conversion & +++ & $-$$-$$-$& +++ & +++ & +++ \\ \hline 350 Libre & $-$ & +++ &$-$$-$$-$ & $-$ $-$ $-$& +++ \\ 351 \end{tabular} 352 \end{center} 353 \end{frame} 354 355 356 \begin{frame}{Competition} 357 Fees associated with paying for a \$35 gas-station visit \\ 358 (based on a 0.33\% Taler fees): 359 \begin{center} 360 \includegraphics[width=\textwidth]{fees.png} 361 \end{center} 362 \end{frame} 363 364 \begin{frame} 365 \frametitle{Do you have any questions?} 366 \vfill 367 References: 368 {\tiny 369 \begin{enumerate} 370 \item{Özgür Kesim, Christian Grothoff, Florian Dold and Martin Schanzenbach. 371 {\em Zero-Knowledge Age Restriction for GNU Taler}. 372 {\bf 27th European Symposium on Research in Computer Security (ESORICS), 2022}.} 373 \item{Martin Summer and Hannes Hermanky. 374 {\em A digital euro and the future of cash}. 375 {\bf Monetary Policy \& The Economy Q1-Q2/22}, 2022.} 376 \item{David Chaum, Christian Grothoff and Thomas Moser. 377 {\em How to issue a central bank digital currency}. 378 {\bf SNB Working Papers}, 3/2021.} 379 \item{Antoine d'Aligny, Emmanuel Benoist, Florian Dold, Christian Grothoff, \"Ozg\"ur Kesim and Martin Schanzenbach. 380 {\em Who comes after us? The correct mindset for designing a Central Bank Digital Currency}. 381 {\bf SUREF Policy Note}, Issue No 279, May 2022.} 382 \item{Marco Boss. 383 {\em GNU Taler Scalability}. 384 {\bf Bachelor Thesis, Bern University of Applied Sciences, 2022}.} 385 \item{Florian Dold. 386 {\em The GNU Taler System: Practical and Provably Secure Electronic Payments}. 387 {\bf PhD Thesis, University of Rennes, 2019}.} 388 \item{Christian Grothoff and Alex Pentland. 389 {\em Digital cash and privacy: What are the alternatives to Libra?}. 390 {\bf MIT Media Lab}, 2019.} 391 \end{enumerate} 392 } 393 \end{frame} 394 395 \end{document} 396 397 398 399 \section{Architecture} 400 401 \begin{frame} 402 \vfill 403 \begin{center} 404 {\bf Part II: Architecture} 405 \end{center} 406 \vfill 407 \end{frame} 408 409 410 411 \begin{frame}[fragile]{Bank Operator Perspective} 412 \begin{adjustbox}{max totalsize={.9\textwidth}{.7\textheight},center} 413 \begin{tikzpicture} 414 \tikzstyle{def} = [node distance= 5em and 6.5em, inner sep=1em, outer sep=.3em]; 415 \node (origin) at (0,0) {}; 416 \node (exchange) [def,above=of origin,draw]{Exchange}; 417 \node (nexus) [def, draw, below right=of exchange] {Nexus}; 418 \node (corebanking) [def, draw, below left=of nexus] {Core Banking}; 419 \node (nginx) [def, draw, above=of exchange]{Nginx}; 420 \node (postgres) [def, draw, below left=of exchange]{Postgres}; 421 \node (postgres-nexus) [def, draw, below right=of nexus]{Postgres}; 422 423 \tikzstyle{C} = [color=black, line width=1pt] 424 425 \draw [<-, C] (exchange) -- (nginx) node [midway, above, sloped] (TextNode) {REST API}; 426 \draw [<-, C] (postgres) -- (exchange) node [midway, above, sloped] (TextNode) {SQL}; 427 \draw [<-, C] (postgres-nexus) -- (nexus) node [midway, above, sloped] (TextNode) {SQL}; 428 \draw [<-, C] (nexus) -- (exchange) node [midway, above, sloped] (TextNode) {Internal REST API}; 429 \draw [<-, C] (corebanking) -- (nexus) node [midway, above, sloped] (TextNode) {EBICS/FinTS}; 430 431 \end{tikzpicture} 432 \end{adjustbox} 433 \end{frame} 434 435 436 \begin{frame} 437 \frametitle{Auditor Perspective} 438 \begin{center} 439 \begin{tikzpicture} 440 \tikzstyle{def} = [node distance=2em and 2.5em, inner sep=1em, outer sep=.3em]; 441 \node (origin) at (0,0) {}; 442 \node (httpd) [def,above left=of origin,draw]{auditor-httpd}; 443 \node (report) [def,above right=of origin,draw]{auditor-report}; 444 \node (postgres-A) [def, draw, below=of origin] {Postgres (Auditor)}; 445 \node (postgres-E) [def, draw, below=of postgres-A] {Postgres (Bank)}; 446 447 \tikzstyle{C} = [color=black, line width=1pt] 448 449 \draw [->, C] (postgres-E) -- (postgres-A) node [midway, above, sloped] (TextNode) {sync}; 450 \draw [<->, C] (httpd) -- (postgres-A) node [midway, above, sloped] (TextNode) {}; 451 \draw [<->, C] (report) -- (postgres-A) node [midway, above, sloped] (TextNode) {}; 452 \end{tikzpicture} 453 \end{center} 454 \end{frame} 455 456 457 \begin{frame} 458 \frametitle{Retailer Perspective} 459 \begin{center} 460 \begin{tikzpicture} 461 \tikzstyle{def} = [node distance= 5em and 4.5em, inner sep=1em, outer sep=.3em]; 462 \node (origin) at (0,0) {}; 463 \node (frontend) [def,above=of origin,draw]{merchant-frontend}; 464 \node (backend) [def,below=of frontend,draw]{taler-backend}; 465 \node (postgres) [def, draw, below left=of backend] {Postgres}; 466 \node (sqlite) [def, draw, below=of backend] {Sqlite}; 467 \node (alt) [def, draw, below right=of backend] {...}; 468 469 \tikzstyle{C} = [color=black, line width=1pt] 470 471 \draw [->, C] (frontend) -- (backend) node [midway, above, sloped] (TextNode) {REST API}; 472 \draw [<->, C] (backend) -- (postgres) node [midway, above, sloped] (TextNode) {SQL}; 473 \draw [<->, C] (backend) -- (sqlite) node [midway, above, sloped] (TextNode) {SQL}; 474 \draw [<->, C] (backend) -- (alt) node [midway, above, sloped] (TextNode) {SQL}; 475 \end{tikzpicture} 476 \end{center} 477 \end{frame} 478 479 480 \begin{frame} 481 \frametitle{Consumer Perspective} 482 \begin{center} 483 \begin{tikzpicture} 484 \tikzstyle{def} = [node distance= 5em and 4.5em, inner sep=1em, outer sep=.3em]; 485 \node (origin) at (0,0) {}; 486 \node (android) [def,above right=of origin,draw]{Android App}; 487 \node (ios) [def,above left=of origin,draw]{iOS App}; 488 \node (browser) [def,above=of origin,draw]{Browser Extension}; 489 \node (core) [def,below=of browser,draw]{wallet-core}; 490 \node (sync) [def, draw, below left=of core] {Sync}; 491 \node (taler) [def, draw, below=of core] {Taler}; 492 \node (anastasis) [def, draw, below right=of core] {Anastasis}; 493 \node (taldir) [def, draw, left=of core] {TalDir}; 494 \node (mailbox) [def, draw, right=of core] {Mailbox}; 495 496 \tikzstyle{C} = [color=black, line width=1pt] 497 \draw [->, C] (ios) -- (core) node [midway, above, sloped] (TextNode) {}; 498 \draw [->, C] (android) -- (core) node [midway, above, sloped] (TextNode) {}; 499 \draw [->, C] (browser) -- (core) node [midway, above, sloped] (TextNode) {}; 500 \draw [->, C] (core) -- (sync) node [midway, above, sloped] (TextNode) {Backup}; 501 \draw [->, C] (core) -- (taler) node [midway, above, sloped] (TextNode) {Payment}; 502 \draw [->, C] (core) -- (anastasis) node [midway, above, sloped] (TextNode) {Key Escrow}; 503 \draw [->, C] (core) -- (taldir) node [midway, above, sloped] (TextNode) {Registration}; 504 \draw [->, C] (core) -- (mailbox) node [midway, above, sloped] (TextNode) {Messaging}; 505 \end{tikzpicture} 506 \end{center} 507 \end{frame} 508 509 510 \section{Pilot Deployment} 511 512 \begin{frame} 513 \vfill 514 \begin{center} 515 {\bf Part III: Pilot Deployment} 516 \end{center} 517 \vfill 518 \end{frame} 519 520 521 \begin{frame}{Alpha: internal-only} 522 Objective: 523 \begin{center} 524 {\bf Bank staff to gain first operational experience.} 525 \end{center} 526 Proposed setup: 527 \begin{itemize} 528 \item Nexus with key material for escrow bank account 529 \item Taler exchange with Nexus banking backend 530 \item Offline key signing 531 \end{itemize} 532 %Proposed timeline: Q4-2024. 533 \end{frame} 534 535 536 \begin{frame}{Alpha: internal-only} 537 Technical tasks in Alpha phase: 538 \begin{itemize} 539 \item Setup minimal merchant, run test transactions $\Rightarrow$ Integration test 540 \item Document and verify procedures (setup, maintenance, disaster recovery) 541 \item Database synchronization setup with auditor ($\Rightarrow$ generate audit reports) 542 \item Test KYC integration 543 \item Test system upgrade procedure 544 \item Test system termination (out-of-business) procedure 545 \end{itemize} 546 \end{frame} 547 548 549 \begin{frame}{Beta: invitation-only} 550 Objectives: 551 \begin{center} 552 {\bf Merchants gain first operational experience.} \\ 553 {\bf Taler/Bank gain first support experience.} 554 \end{center} 555 Changes to setup: 556 \begin{itemize} 557 \item Limit access to production system (operational security) 558 \item Synchronous backup to Auditor and locally 559 \item Deploy legally binding ToS/PP 560 \end{itemize} 561 Proposed timeline: Q1-Q2'2025. 562 \end{frame} 563 564 565 \begin{frame}{Beta: invitation-only} 566 Technical tasks in Beta phase: 567 \begin{itemize} 568 \item Onboard first merchant(s) with limited reach 569 \item Develop customer support procedures 570 \item Security audit of operational security 571 \item Integrate system monitoring (load, disk capacity, etc.) 572 \item Verify deployment is {\bf reproducibly deterministic} 573 \end{itemize} 574 Once everyone is happy with Beta, move to production. 575 \end{frame} 576 577 578 \section{Discussions} 579 580 \begin{frame} 581 \vfill 582 \begin{center} 583 {\bf Part IV: Discussions} 584 \end{center} 585 \vfill 586 \end{frame} 587 588 589 \begin{frame}{Discussion topics} 590 \begin{itemize} 591 \item Technology: GNU Taler components, APIs and cryptography 592 \item Bank Integration: Taler wire gateway \& {\bf bank integration API} 593 vs. your core banking API 594 \item App Integration: Taler Apps vs. your customer-facing Apps 595 \item Compliance: Taler compliance APIs vs. your compliance processes 596 \item Business development: Taler USPs vs. your customers 597 \end{itemize} 598 \end{frame} 599 600 601 602 \begin{frame} 603 \frametitle{Do you have any questions?} 604 \vfill 605 References: 606 {\tiny 607 \begin{enumerate} 608 \item{Martin Summer and Hannes Hermanky. 609 {\em A digital euro and the future of cash}. 610 {\bf Monetary Policy \& The Economy Q1-Q2/22}, 2022.} 611 \item{David Chaum, Christian Grothoff and Thomas Moser. 612 {\em How to issue a central bank digital currency}. 613 {\bf SNB Working Papers}, 3/2021.} 614 \item{Antoine d'Aligny, Emmanuel Benoist, Florian Dold, Christian Grothoff, \"Ozg\"ur Kesim and Martin Schanzenbach. 615 {\em Who comes after us? The correct mindset for designing a Central Bank Digital Currency}. 616 {\bf SUREF Policy Note}, Issue No 279, May 2022.} 617 \item{Marco Boss. 618 {\em GNU Taler Scalability}. 619 {\bf Bachelor Thesis, Bern University of Applied Sciences, 2022}.} 620 \item{Gian Demarmels and Lucien Heuzeveldt. 621 {\em Adding Schnorr's Blind Signature in Taler}. 622 {\bf Bachelor Thesis, Bern University of Applied Sciences, 2021}.} 623 \item{Florian Dold. 624 {\em The GNU Taler System: Practical and Provably Secure Electronic Payments}. 625 {\bf PhD Thesis, University of Rennes, 2019}.} 626 \item{Christian Grothoff and Alex Pentland. 627 {\em Digital cash and privacy: What are the alternatives to Libra?}. 628 {\bf MIT Media Lab}, 2019.} 629 \item{Jeffrey Burdges, Florian Dold, Christian Grothoff and Marcello Stanisci. 630 {\em Enabling Secure Web Payments with GNU Taler}. 631 {\bf SPACE 2016}.} 632 \end{enumerate} 633 } 634 \end{frame} 635 636 \end{document} 637 638 639 \begin{frame}[fragile]{Option 1: Central Bank as Pure Regulator} 640 \begin{adjustbox}{max totalsize={.9\textwidth}{.7\textheight},center} 641 \begin{tikzpicture} 642 \tikzstyle{def} = [node distance= 6em and 6.5em, inner sep=1em, outer sep=.3em]; 643 \node (origin) at (0,0) {}; 644 \node (central) [def,above=of origin,draw]{Central Bank}; 645 \node (banka) [def, draw, below right=of exchange] {Commercial Bank B}; 646 \node (bankb) [def, draw, below left=of exchange] {Commercial Bank A}; 647 \node (consumera) [def, draw, below=of banka] {Consumers}; 648 \node (consumerb) [def, draw, below=of bankb] {Consumers}; 649 \tikzstyle{C} = [color=black, line width=1pt] 650 651 \draw [->, C] (central) -- (banka) node [midway, above, sloped] (TextNode) {supervision}; 652 \draw [->, C] (central) -- (bankb) node [midway, above, sloped] (TextNode) {supervision}; 653 \draw [<->, C] (banka) -- (bankb) node [midway, above, sloped] (TextNode) {settlement}; 654 \draw [<->, C] (consumera) -- (banka) node [midway, above, sloped] (TextNode) {KYC}; 655 \draw [<->, C] (consumera) -- (banka) node [midway, below, sloped] (TextNode) {transact}; 656 \draw [<->, C] (consumerb) -- (bankb) node [midway, above, sloped] (TextNode) {KYC}; 657 \draw [<->, C] (consumerb) -- (bankb) node [midway, below, sloped] (TextNode) {transact}; 658 \end{tikzpicture} 659 \end{adjustbox} 660 The central bank could leave the operation of the core system to commercial 661 banks (see Auer, BIS 2021) and focus on (real-time) supervision of the system. 662 \end{frame} 663 664 665 \begin{frame}[fragile]{Option 2: Central Bank as Core System Operator} 666 \begin{adjustbox}{max totalsize={.9\textwidth}{.7\textheight},center} 667 \begin{tikzpicture} 668 \tikzstyle{def} = [node distance= 6em and 6.5em, inner sep=1em, outer sep=.3em]; 669 \node (origin) at (0,0) {}; 670 \node (central) [def,above=of origin,draw]{Central Bank}; 671 \node (banka) [def, draw, below right=of exchange] {Commercial Bank B}; 672 \node (bankb) [def, draw, below left=of exchange] {Commercial Bank A}; 673 \node (consumera) [def, draw, below=of banka] {Consumers}; 674 \node (consumerb) [def, draw, below=of bankb] {Consumers}; 675 \tikzstyle{C} = [color=black, line width=1pt] 676 677 \draw [<->, C] (central) -- (banka) node [midway, above, sloped] (TextNode) {transact}; 678 \draw [<->, C] (central) -- (bankb) node [midway, above, sloped] (TextNode) {transact}; 679 \draw [<-, C] (consumera) -- (banka) node [midway, above, sloped] (TextNode) {KYC}; 680 \draw [<-, C] (consumera) -- (banka) node [midway, below, sloped] (TextNode) {transact}; 681 \draw [<-, C] (consumerb) -- (bankb) node [midway, above, sloped] (TextNode) {KYC}; 682 \draw [<-, C] (consumerb) -- (bankb) node [midway, below, sloped] (TextNode) {transact}; 683 \end{tikzpicture} 684 \end{adjustbox} 685 If the central bank operates the core system, interbank settlements 686 are no longer required. 687 \end{frame} 688 689 690 \begin{frame}[fragile]{Option 3: Central Bank M.I.A.} 691 \begin{adjustbox}{max totalsize={.9\textwidth}{.7\textheight},center} 692 \begin{tikzpicture} 693 \tikzstyle{def} = [node distance= 6em and 6.5em, inner sep=1em, outer sep=.3em]; 694 \node (origin) at (0,0) {}; 695 \node (central) [def,above=of origin,draw]{Regulator / Auditor}; 696 \node (banka) [def, draw, below right=of exchange] {Commercial Bank C}; 697 \node (bankb) [def, draw, below left=of exchange] {Commercial Bank A}; 698 \node (bankc) [def, draw, below =of exchange] {Commercial Bank B}; 699 \node (consumera) [def, draw, below=of banka] {Consumers}; 700 \node (consumerb) [def, draw, below=of bankb] {Consumers}; 701 \node (consumerc) [def, draw, below=of bankc] {Consumers}; 702 \tikzstyle{C} = [color=black, line width=1pt] 703 704 \draw [->, C] (central) -- (banka) node [midway, above, sloped] (TextNode) {supervision}; 705 \draw [->, C] (central) -- (bankb) node [midway, above, sloped] (TextNode) {supervision}; 706 \draw [->, C] (central) -- (bankc) node [midway, above, sloped] (TextNode) {supervision}; 707 \draw [<->, C] (banka) -- (bankc) node [midway, above, sloped] (TextNode) {settlement}; 708 \draw [<->, C] (consumerb) -- (bankb) node [midway, above, sloped] (TextNode) {KYC}; 709 \draw [<->, C] (consumera) -- (banka) node [midway, above, sloped] (TextNode) {KYC}; 710 \draw [<->, C] (consumera) -- (banka) node [midway, below, sloped] (TextNode) {transact}; 711 \draw [<->, C] (consumerc) -- (bankc) node [midway, above, sloped] (TextNode) {KYC}; 712 \draw [<->, C] (consumerc) -- (bankc) node [midway, below, sloped] (TextNode) {transact}; 713 \end{tikzpicture} 714 \end{adjustbox} 715 If participation is voluntary, bank $A$ may not offer GNU Taler, or not 716 settle with other banks. Its customers may of course choose to be onboarded via 717 other banks to avoid being excluded. 718 \end{frame} 719 720 721