boh-reg.tex (20169B)
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 \definecolor{shadecolor}{rgb}{0.8,0.8,0.8} 9 \usetheme{boxes} 10 \setbeamertemplate{navigation symbols}{} 11 \usepackage{xcolor} 12 \usepackage{tikz,eurosym} 13 \usepackage[normalem]{ulem} 14 \usepackage{listings} 15 \usepackage{adjustbox} 16 17 \usepackage{pgf-umlsd} 18 \usepackage{tikz} 19 \usetikzlibrary{shapes,arrows} 20 \usetikzlibrary{positioning} 21 \usetikzlibrary{calc} 22 \usetikzlibrary{quotes} 23 24 % CSS 25 \lstdefinelanguage{CSS}{ 26 basicstyle=\ttfamily\scriptsize, 27 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}, 28 sensitive=true, 29 morecomment=[l]{//}, 30 morecomment=[s]{/*}{*/}, 31 morestring=[b]', 32 morestring=[b]", 33 alsoletter={:}, 34 alsodigit={-} 35 } 36 37 % JavaScript 38 \lstdefinelanguage{JavaScript}{ 39 basicstyle=\ttfamily\scriptsize, 40 morekeywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break}, 41 morecomment=[s]{/*}{*/}, 42 morecomment=[l]//, 43 morestring=[b]", 44 morestring=[b]' 45 } 46 47 \lstdefinelanguage{HTML5}{ 48 basicstyle=\ttfamily\scriptsize, 49 language=html, 50 sensitive=true, 51 alsoletter={<>=-}, 52 morecomment=[s]{<!-}{-->}, 53 tag=[s], 54 otherkeywords={ 55 % General 56 >, 57 % Standard tags 58 <!DOCTYPE, 59 </html, <html, <head, <title, </title, <style, </style, <link, </head, <meta, />, 60 % body 61 </body, <body, 62 % Divs 63 </div, <div, </div>, 64 % Paragraphs 65 </p, <p, </p>, 66 % scripts 67 </script, <script, 68 % More tags... 69 <canvas, /canvas>, <svg, <rect, <animateTransform, </rect>, </svg>, <video, <source, <iframe, </iframe>, </video>, <image, </image> 70 }, 71 ndkeywords={ 72 % General 73 =, 74 % HTML attributes 75 charset=, src=, id=, width=, height=, style=, type=, rel=, href=, 76 % SVG attributes 77 fill=, attributeName=, begin=, dur=, from=, to=, poster=, controls=, x=, y=, repeatCount=, xlink:href=, 78 % CSS properties 79 margin:, padding:, background-image:, border:, top:, left:, position:, width:, height:, 80 % CSS3 properties 81 transform:, -moz-transform:, -webkit-transform:, 82 animation:, -webkit-animation:, 83 transition:, transition-duration:, transition-property:, transition-timing-function:, 84 } 85 } 86 87 \lstdefinelanguage{JavaScript}{ 88 basicstyle=\ttfamily\scriptsize, 89 keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break, for}, 90 keywordstyle=\color{blue}\bfseries, 91 ndkeywords={class, export, boolean, throw, implements, import, this}, 92 ndkeywordstyle=\color{darkgray}\bfseries, 93 identifierstyle=\color{black}, 94 sensitive=false, 95 comment=[l]{//}, 96 morecomment=[s]{/*}{*/}, 97 commentstyle=\color{purple}\ttfamily, 98 stringstyle=\color{red}\ttfamily, 99 morestring=[b]', 100 morestring=[b]" 101 } 102 103 \usetikzlibrary{shapes,arrows} 104 \usetikzlibrary{positioning} 105 \usetikzlibrary{calc} 106 107 \title{GNU Taler Digital Cash Payment System} 108 %\subtitle{} 109 110 \setbeamertemplate{navigation symbols}{\includegraphics[width=1cm]{inria.pdf} \includegraphics[width=2.3cm]{bfh.png} \includegraphics[width=1.6cm]{fub.pdf} \includegraphics[width=0.4cm]{ashoka.png} \includegraphics[width=0.4cm]{gnu.png} \includegraphics[width=1cm]{logo-2020.jpg} \hfill} 111 %\setbeamercovered{transparent=1} 112 113 \author[C. Grothoff]{{\bf C. Grothoff}} 114 \date{10.09.2023} 115 \institute{Bern University of Applied Sciences} 116 117 118 \begin{document} 119 120 \justifying 121 122 \begin{frame} 123 \begin{center} 124 \LARGE {\bf GNU} 125 126 \vfill 127 % \includegraphics[width=0.66\textwidth]{logo-2017-fr.pdf} 128 \includegraphics[width=0.66\textwidth]{logo-2021.pdf} 129 130 Digital Cash Payment System 131 \vfill 132 \end{center} 133 \begin{textblock*}{6cm}(.5cm,7.7cm) % {block width} (coords) 134 {\Large {\bf \href{https://taler.net/}{taler.net}} \\ 135 \href{https://taler-systems.com/}{taler-systems.com}} 136 \end{textblock*} 137 138 % Substitute based on who is giving the talk! 139 \begin{textblock*}{6cm}(6.7cm,7.7cm) % {block width} (coords) 140 {%\hfill {\Large {\bf Florian Dold \&} \\ 141 \hfill {\bf Christian Grothoff} \\ 142 \hfill grothoff@taler.net } 143 \end{textblock*} 144 145 \end{frame} 146 147 \section{Introduction} 148 149 150 \section{What is Taler?} 151 \begin{frame}{What is Taler?} 152 \begin{center} 153 Taler is an electronic instant payment system based on tokens. 154 \end{center} 155 \begin{itemize} 156 \item Uses electronic coins stored in {\bf wallets} on customer's device 157 \item Like {\bf cash} 158 \item Pay in {\bf existing currencies} (i.e. CHF, EUR, USD) 159 \end{itemize} 160 \vfill 161 \pause 162 \noindent 163 However, Taler is 164 \begin{itemize} 165 \item \emph{not} a currency 166 \item \emph{not} a long-term store of value 167 \item \emph{not} a network or instance of a system 168 \item \emph{not} decentralized 169 \item \emph{not} based on proof-of-work or proof-of-stake 170 \item \emph{not} a speculative asset / ``get-rich-quick scheme'' 171 \end{itemize} 172 \end{frame} 173 174 175 \begin{frame}{Design Principles} 176 \framesubtitle{https://taler.net/en/principles.html} 177 GNU Taler must ... 178 \begin{enumerate} 179 \item {... be implemented as {\bf free software}.} 180 \item {... protect the {\bf privacy of buyers}.} 181 \item {... must enable the state to {\bf tax income} and crack down on 182 illegal business activities.} 183 \item {... prevent payment fraud.} 184 \item {... only {\bf disclose the minimal amount of information 185 necessary}.} 186 \item {... be usable.} 187 \item {... be efficient.} 188 \item {... avoid single points of failure.} 189 \item {... foster {\bf competition}.} 190 \end{enumerate} 191 \end{frame} 192 193 194 \begin{frame}{The Big Picture (Taler Pilot)} 195 \begin{center} 196 \includegraphics[width=0.8\textwidth]{operations.png} 197 \end{center} 198 \end{frame} 199 200 201 \begin{frame}[fragile]{Business Process: Withdraw} 202 \begin{figure}[h!] 203 \tiny 204 \begin{sequencediagram} 205 \newinst{wallet}{Customer wallet} 206 \newinst[2]{exchange}{Taler (exchange)} 207 \newinst[2]{bank}{Customer bank} 208 % \postlevel 209 % \mess[0]{wallet}{Withdraw {(Amount)}}{exchange} 210 \mess[0]{exchange}{{Configuration (ToS, Fees)}}{wallet} 211 \mess[0]{wallet}{{Initiate transfer (Amount, Credit account, Wallet ID)}}{bank} 212 \mess[0]{bank}{{Credit (Wallet ID)}}{exchange} 213 214 \begin{sdblock}{Acceptable transfer?}{} 215 \prelevel 216 \mess[0]{exchange}{{Bounce funds}}{bank} 217 \end{sdblock} 218 % \postlevel 219 \mess[0]{exchange}{Confirm wire transfer}{wallet} 220 \mess[0]{wallet}{Request digital cash}{exchange} 221 \mess[0]{exchange}{Distribute digital cash}{wallet} 222 % \postlevel 223 \begin{sdblock}{Withdraw period expired?}{} 224 \prelevel 225 \mess[0]{exchange}{{Return remaining funds}}{bank} 226 \end{sdblock} 227 \end{sequencediagram} 228 \end{figure} 229 \end{frame} 230 231 232 \begin{frame}[fragile]{Business Process: Pay} 233 \begin{figure}[h!] 234 \tiny 235 \begin{sequencediagram} 236 \newinst{wallet}{%\shortstack{ 237 Customer wallet% \\ 238 % \\ \begin{tikzpicture} 239 % \node [fill=gray!20,draw=black,thick,align=center] { Unique \\ Wallet ID}; 240 % \end{tikzpicture} 241 %} 242 } 243 \newinst[1]{merchant}{%\shortstack{ 244 Merchant %\\ 245 % \\ \begin{tikzpicture}[shape aspect=.5] 246 % \tikzset{every node/.style={cylinder,shape border rotate=90, draw,fill=gray!25}} 247 % \node at (1.5,0) {\shortstack{{{\tiny Database}}}}; 248 % \end{tikzpicture} 249 %} 250 } 251 \newinst[1]{exchange}{%\shortstack{ 252 Taler (exchange) %\\ 253 % \\ \begin{tikzpicture}[shape aspect=.5] 254 % \tikzset{every node/.style={cylinder,shape border rotate=90, draw,fill=gray!25}} 255 % \node at (1.5,0) {\shortstack{{{\tiny Database}}}}; 256 % \end{tikzpicture} 257 % } 258 } 259 260 \newinst[1]{bank}{%\shortstack{ 261 Merchant bank %\\ 262 % \\ \begin{tikzpicture} 263 % \node [fill=gray!20,draw=black,thick,align=center] {Commercial \\ Accounts}; 264 % \end{tikzpicture} 265 % } 266 } 267 % \postlevel 268 \mess[0]{wallet}{Browse catalog}{merchant} 269 \mess[0]{merchant}{Commercial offer}{wallet} 270 % \begin{callself}{wallet}{Review offer}{} 271 % \end{callself} 272 \mess[0]{wallet}{Pay {(Coins)}}{merchant} 273 \mess[0]{merchant}{Deposit {(Coins)}}{exchange} 274 \begin{sdblock}{Acceptable account?}{} 275 \prelevel 276 \mess[0]{exchange}{{Refuse deposit}}{merchant} 277 \mess[0]{merchant}{{Refund purchase}}{wallet} 278 \end{sdblock} 279 \mess[0]{exchange}{{Confirm deposit}}{merchant} 280 \mess[0]{merchant}{Fulfill order}{wallet} 281 \end{sequencediagram} 282 \end{figure} 283 \end{frame} 284 285 286 \begin{frame}[fragile]{Business Process: Aggregation} 287 \begin{figure}[h!] 288 \tiny 289 \begin{sequencediagram} 290 \newinst{wallet}{Customer wallet} 291 \newinst[1]{merchant}{Merchant} 292 \newinst[1]{exchange}{Taler (exchange)} 293 \newinst[1]{bank}{Merchant bank} 294 \begin{callself}{exchange}{Aggregate transactions}{} 295 \end{callself} 296 \begin{sdblock}{KYC/AML required?}{} 297 \prelevel 298 \begin{callself}{exchange}{KYC/AML process}{} 299 \end{callself} 300 \end{sdblock} 301 \mess[0]{exchange}{{Initiate transfer}}{bank} 302 \end{sequencediagram} 303 \end{figure} 304 \end{frame} 305 306 307 308 \begin{frame}[fragile]{Business Process: Deposit} 309 310 \begin{figure}[h!] 311 \tiny 312 \begin{sequencediagram} 313 \newinst{wallet}{Customer wallet} 314 \newinst[2]{exchange}{Taler (exchange)} 315 \newinst[2]{bank}{Retail bank} 316 \begin{callself}{wallet}{Review deposit fees}{} 317 \end{callself} 318 \mess[0]{wallet}{Deposit {(Coins)}}{exchange} 319 \begin{sdblock}{Acceptable account?}{} 320 \prelevel 321 \mess[0]{exchange}{{Refuse deposit}}{wallet} 322 \end{sdblock} 323 \begin{sdblock}{KYC/AML required?}{} 324 \prelevel 325 \begin{callself}{exchange}{KYC/AML process}{} 326 \end{callself} 327 \end{sdblock} 328 \mess[0]{exchange}{{Initiate transfer}}{bank} 329 \end{sequencediagram} 330 \end{figure} 331 \end{frame} 332 333 \begin{frame}[fragile]{Business Process: Push Payment} 334 \begin{figure}[h!] 335 \tiny 336 \begin{sequencediagram} 337 \newinst{payer}{Payer} 338 \newinst[2]{exchange}{Taler (exchange)} 339 \newinst[2]{payee}{Payee} 340 \mess[0]{payer}{{Push funds (Coins)}}{exchange} 341 \mess[0]{payer}{{Offer payment (e.g. via QR code)}}{payee} 342 \mess[0]{payee}{{Request funds (Wallet ID)}}{exchange} 343 \begin{sdblock}{KYC/AML required?}{} 344 \prelevel 345 \begin{callself}{exchange}{KYC/AML process}{} 346 \end{callself} 347 \end{sdblock} 348 \mess[0]{exchange}{{Distribute digital cash}}{payee} 349 \begin{sdblock}{Payment offer expired?}{} 350 \mess[0]{exchange}{{Return funds}}{payer} 351 \end{sdblock} 352 353 \end{sequencediagram} 354 \caption{Interactions between wallets and Taler exchange 355 in a push payment. KYC/AML checks apply.} 356 \label{fig:int:push} 357 \end{figure} 358 \end{frame} 359 360 \begin{frame}[fragile]{Business Process: Pull Payment} 361 \begin{figure}[h!] 362 \tiny 363 \begin{sequencediagram} 364 \newinst{payer}{Payer} 365 \newinst[2]{exchange}{Taler (exchange)} 366 \newinst[2]{payee}{Payee} 367 \mess[0]{payee}{{Create invoice (Wallet ID)}}{exchange} 368 \mess[0]{exchange}{{Invoice ready}}{payee} 369 \mess[0]{payee}{{Send invoice (e.g. via QR code)}}{payer} 370 \mess[0]{payer}{{Make payment (Coins)}}{exchange} 371 \begin{sdblock}{KYC/AML required?}{} 372 \prelevel 373 \begin{callself}{exchange}{AML/KYC process}{} 374 \end{callself} 375 \end{sdblock} 376 \mess[0]{exchange}{{Distribute digital cash}}{payee} 377 \end{sequencediagram} 378 \end{figure} 379 \end{frame} 380 381 \begin{frame}[fragile]{Business Processes: Shutdown} 382 \begin{figure}[h!] 383 \tiny 384 \begin{sequencediagram} 385 \newinst{wallet}{Customer wallet} 386 \newinst[2]{exchange}{Taler (exchange)} 387 \newinst[2]{bank}{Customer bank} 388 \mess[0]{exchange}{{Shutdown alert}}{wallet} 389 \begin{sdblock}{Bank account known?}{} 390 \prelevel 391 \begin{callself}{wallet}{Designate bank account}{} 392 \end{callself} 393 \end{sdblock} 394 \mess[0]{wallet}{{Deposit (Coins)}}{exchange} 395 \begin{sdblock}{KYC/AML required?}{} 396 \prelevel 397 \begin{callself}{exchange}{}{} 398 \end{callself} 399 \end{sdblock} 400 \mess[0]{exchange}{{Initiate transfer}}{bank} 401 \end{sequencediagram} 402 \end{figure} 403 \end{frame} 404 405 \begin{frame}[fragile]{Compliance Processes: Withdraw} 406 \begin{center} 407 \scalebox{0.3}{ 408 \begin{tikzpicture}[node distance=1cm,font=\sffamily, 409 start/.style={rectangle, rounded corners, minimum width=3cm, minimum height=1cm,text centered, draw=black, fill=yellow!30}, 410 end/.style={rectangle, rounded corners, minimum width=3cm, minimum height=1cm,text centered, draw=black, fill=red!30}, 411 process/.style={rectangle, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=orange!30}, 412 failed/.style={rectangle, rounded corners, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=red!30}, 413 io/.style={trapezium, trapezium left angle=70, trapezium right angle=110, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=blue!30}, 414 decision/.style={diamond, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=green!30}, 415 arr/.style={very thick,-latex}, 416 every edge quotes/.style = {auto, font=\footnotesize, sloped} 417 ] 418 \node (start) [start] {Start}; 419 \node (country) [decision,below=of start,text width=3cm] {Wire transfer originates from allowed country?}; 420 \node (amount) [decision, below=of country,text width=3cm] {Transferred less than maximum amount from origin account over last month?}; 421 \node (allow) [end, below=of amount] {Allow}; 422 \node (deny) [failed, right=of allow] {Deny}; 423 \draw[arr] (start) -> (country) {}; 424 \draw[arr] (country) -> (amount); 425 \draw (country) edge["Yes"] (amount); 426 \draw[arr] (country.east) -> (deny); 427 \draw (country.east) edge["No"] (deny); 428 \draw[arr] (amount) -> (allow); 429 \draw (amount) edge["Yes"] (allow); 430 \draw[arr] (amount.east) -> (deny); 431 \draw (amount.east) edge["No"] (deny); 432 \end{tikzpicture} 433 } 434 \end{center} 435 \end{frame} 436 437 \begin{frame}[fragile]{Compliance Processes: Deposit} 438 \begin{center} 439 \scalebox{0.3}{ 440 \begin{tikzpicture}[node distance=1cm,font=\sffamily, 441 start/.style={rectangle, rounded corners, minimum width=3cm, minimum height=1cm,text centered, draw=black, fill=yellow!30}, 442 end/.style={rectangle, rounded corners, minimum width=3cm, minimum height=1cm,text centered, draw=black, fill=red!30}, 443 process/.style={rectangle, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=orange!30}, 444 failed/.style={rectangle, rounded corners, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=red!30}, 445 io/.style={trapezium, trapezium left angle=70, trapezium right angle=110, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=blue!30}, 446 decision/.style={diamond, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=green!30}, 447 arr/.style={very thick,-latex}, 448 every edge quotes/.style = {auto, font=\footnotesize, sloped} 449 ] 450 \node (start) [start] {Start}; 451 \node (country) [decision,below=of start,text width=2.5cm] {Target account in allowed country?}; 452 \node (amount) [decision, below=of country,text width=2.5cm] {Target account received less than KYB threshold?}; 453 \node (kyc) [process, right=of amount] {KYB process}; 454 \node (high) [decision, below=of amount,text width=2.5cm] {Target account received more than its AML threshold?}; 455 \node (aml) [process, right=of high] {AML process}; 456 \node (dummy) [below right=of aml] {}; 457 \node (allow) [end, below right=of dummy] {Allow}; 458 \node (deny) [failed, right=of kyc] {Deny}; 459 \draw[arr] (start) -> (country) {}; 460 461 \draw[arr] (country) -> (amount); 462 \draw (country) edge["Yes"] (amount); 463 464 \draw[arr] (country.east) -> (deny); 465 \draw (country.east) edge["No"] (deny); 466 467 \draw[arr] (amount) -> (high); 468 \draw (amount) edge["Yes"] (high); 469 470 \draw[arr] (amount.east) -> (kyc); 471 \draw (amount.east) edge["No"] (kyc); 472 473 \draw[arr] (kyc) -> (deny); 474 \draw (kyc) edge["Failed"] (deny); 475 476 \draw[arr] (kyc) -> (high); 477 \draw (kyc) edge["Succeeded"] (high); 478 479 \draw[arr] (high.south) -> (allow); 480 \draw (high.south) edge["Yes"] (allow); 481 482 \draw[arr] (high.east) -> (aml); 483 \draw (high.east) edge["No"] (aml); 484 485 \draw[arr] (aml) -> (deny); 486 \draw (aml) edge["Violation"] (deny); 487 488 \draw[arr] (aml) -> (allow); 489 \draw (aml) edge["Ok"] (allow); 490 \end{tikzpicture} 491 } 492 \end{center} 493 \end{frame} 494 495 496 \begin{frame}[fragile]{Compliance Processes: KYC} 497 \begin{figure}[h!] 498 \tiny 499 \begin{sequencediagram} 500 \newinst{wallet}{Customer} 501 \newinst[2]{exchange}{Taler (exchange)} 502 \newinst[2]{kyc}{KYC provider} 503 \mess[0]{wallet}{{Initial action}}{exchange} 504 \prelevel 505 \begin{callself}{exchange}{Establish KYC requirement}{} 506 \end{callself} 507 \mess[0]{exchange}{Request new KYC process}{kyc} 508 \mess[0]{kyc}{{Process identifier (PI)}}{exchange} 509 \prelevel 510 \mess[0]{exchange}{{KYC required (PI)}}{wallet} 511 \mess[0]{wallet}{{KYC start (PI)}}{kyc} 512 \mess[0]{kyc}{{Request identity documentation}}{wallet} 513 \mess[0]{wallet}{{Upload identity documentation}}{kyc} 514 \prelevel 515 \begin{callself}{kyc}{Validate documentation}{} 516 \end{callself} 517 \mess[0]{kyc}{{Share documentation (PI)}}{exchange} 518 \mess[0]{kyc}{{Confirm completion}}{wallet} 519 \mess[0]{wallet}{{Retry action}}{exchange} 520 \end{sequencediagram} 521 \end{figure} 522 \end{frame} 523 524 525 \begin{frame}[fragile]{Compliance Processes: AML} 526 \begin{figure}[h!] 527 \tiny 528 \begin{sequencediagram} 529 \newinst{wallet}{Customer} 530 \newinst[2]{exchange}{Taler (exchange)} 531 \newinst[2]{staff}{AML staff} 532 \mess[0]{wallet}{{Initial action}}{exchange} 533 \prelevel 534 \begin{callself}{exchange}{Establish AML requirement}{} 535 \end{callself} 536 \mess[0]{exchange}{Wait for AML}{wallet} 537 \mess[0]{staff}{Request AML work}{exchange} 538 \mess[0]{exchange}{KYC/AML data}{staff} 539 \prelevel 540 \begin{callself}{staff}{Review and decide}{} 541 \end{callself} 542 \mess[0]{staff}{{Decision documentation}}{exchange} 543 \mess[0]{exchange}{AML decision}{wallet} 544 \mess[0]{wallet}{{Retry action}}{exchange} 545 \end{sequencediagram} 546 \end{figure} 547 \end{frame} 548 549 550 551 552 553 \begin{frame}{The Future: Taler PILOT} 554 First deployments with retail banks 2024--2026: 555 \begin{itemize} 556 \item Integration with respective core banking systems 557 \item Integration with compliance (KYC/KYB/AML/CFT processes) 558 \item Development of legal framework (ToS/PP/regulatory oversight) 559 \item Integration with merchants (E-commerce, publishers, public transportation, e-health, ...) 560 \item Usability studies and accessibility improvement 561 \item Organized events with discussions on the future of money 562 \item Technical enhancement (donations, tax deductions, subscriptions, programmable money, 563 hardware development, ...) 564 \end{itemize} 565 \begin{center} 566 $\Rightarrow$ EU-wide activities (+non-EU partners) 567 \end{center} 568 \end{frame} 569 570 571 \begin{frame} 572 \frametitle{Do you have any questions?} 573 \vfill 574 References: 575 {\tiny 576 \begin{enumerate} 577 \item{Martin Summer and Hannes Hermanky. 578 {\em A digital euro and the future of cash}. 579 {\bf Monetary Policy \& The Economy Q1-Q2/22}, 2022.} 580 \item{David Chaum, Christian Grothoff and Thomas Moser. 581 {\em How to issue a central bank digital currency}. 582 {\bf SNB Working Papers, 2021}.} 583 \item{Priscilla Huang, Emmanuel Benoist, and Sebastian Javier Marchano. 584 {\em Practical Offline Payments Using One-Time Passcodes}. 585 {\bf SUREF Policy Note}, Issue No 622, June 2023.} 586 \item{Antoine d'Aligny, Emmanuel Benoist, Florian Dold, Christian Grothoff, \"Ozg\"ur Kesim and Martin Schanzenbach. 587 {\em Who comes after us? The correct mindset for designing a Central Bank Digital Currency}. 588 {\bf SUREF Policy Note}, Issue No 279, May 2022.} 589 \item{Christian Grothoff and Alex Pentland. 590 {\em Digital cash and privacy: What are the alternatives to Libra?}. 591 {\bf MIT Media Lab}, 2019.} 592 \item{Christian Grothoff, Bart Polot and Carlo von Loesch. 593 {\em The Internet is broken: Idealistic Ideas for Building a GNU Network}. 594 {\bf W3C/IAB Workshop on Strengthening the Internet Against Pervasive Monitoring (STRINT)}, 2014.} 595 \end{enumerate} 596 } 597 \end{frame} 598 599 600 \end{document}