irgc.tex (16148B)
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 % 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 as a Retail CBDC} 101 %\subtitle{} 102 103 \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-2021.pdf} \hfill} 104 %\setbeamercovered{transparent=1} 105 106 \author[C. Grothoff]{{\bf C. Grothoff}} 107 \date{25.10.2022} 108 \institute{Bern University of Applied Sciences} 109 110 111 \begin{document} 112 113 \justifying 114 115 \begin{frame} 116 \begin{center} 117 \LARGE {\bf GNU} 118 119 \vfill 120 % \includegraphics[width=0.66\textwidth]{logo-2017-fr.pdf} 121 \includegraphics[width=0.66\textwidth]{logo-2021.pdf} 122 123 as a Retail CBDC 124 \vfill 125 \end{center} 126 \begin{textblock*}{6cm}(.5cm,7.7cm) % {block width} (coords) 127 {\Large {\bf \href{https://taler.net/}{taler.net}} \\ 128 \href{https://twitter.com/taler}{taler@twitter} \\ 129 \href{https://taler-systems.com/}{taler-systems.com}} 130 \end{textblock*} 131 132 % Substitute based on who is giving the talk! 133 \begin{textblock*}{6cm}(6.7cm,7.7cm) % {block width} (coords) 134 {%\hfill {\Large {\bf Florian Dold \&} \\ 135 \hfill {\bf Christian Grothoff} \\ 136 \hfill grothoff@taler.net } 137 \end{textblock*} 138 139 \end{frame} 140 141 \section{Introduction} 142 143 \begin{frame}{Payment Systems: Accounts vs. Tokens} 144 Two types of payment systems: 145 \begin{enumerate} 146 \item {\bf account-based system}: transfer occurs by charging the payer’s account and crediting 147 the payee’s account (e.g., bank deposits) 148 \item {\bf token-based (value-based) system}: transfer occurs by transferring the value itself, or a 149 token that represents the monetary asset (e.g., banknotes) 150 \end{enumerate} 151 Key Difference is the information carried by the information asset: 152 \begin{itemize} 153 \item account (assets): associated with a transaction history 154 \item token (assets): carry information about value and entity that issued the token 155 \end{itemize} 156 Bitcoin, and Distributed Ledger Technologies (DLTs) in general, are account-based systems! 157 Novelty is that the ledger is distributed (decentralized). 158 \end{frame} 159 160 161 \section{What is Taler?} 162 \begin{frame}{What is Taler?} 163 \noindent 164 Taler is an electronic instant payment system based on tokens. 165 \begin{itemize} 166 \item Uses electronic coins stored in wallets on customer's device 167 \item Like cash 168 \item Pay in existing currencies (i.e. CHF, EUR, USD) 169 \end{itemize} 170 \vfill 171 \pause 172 \noindent 173 However, Taler is 174 \begin{itemize} 175 \item \emph{not} a currency 176 \item \emph{not} suitable for long-term store of value 177 \item \emph{not} a network or instance of a system 178 \item \emph{not} decentralized 179 \item \emph{not} based on proof-of-work or proof-of-stake 180 \end{itemize} 181 \end{frame} 182 183 184 \begin{frame}{Design Principles} 185 \framesubtitle{https://taler.net/en/principles.html} 186 GNU Taler must ... 187 \begin{enumerate} 188 \item {... be implemented as {\bf free software}.} 189 \item {... protect the {\bf privacy of buyers}.} 190 \item {... must enable the state to {\bf tax income} and crack down on 191 illegal business activities.} 192 \item {... prevent payment fraud.} 193 \item {... only disclose the minimal amount of information necessary.} 194 \item {... be usable.} 195 \item {... be efficient.} 196 \item {... avoid single points of failure.} 197 \item {... foster competition.} 198 \end{enumerate} 199 \end{frame} 200 201 202 \begin{frame}{The Big Picture} 203 \begin{center} 204 \includegraphics[width=0.8\textwidth]{bp.png} 205 \end{center} 206 \end{frame} 207 208 209 \begin{frame}{Taler: Unique Regulatory Features for CBs} 210 \framesubtitle{\url{https://www.snb.ch/en/mmr/papers/id/working_paper_2021_03}} 211 \begin{itemize} 212 \item Central bank issues digital coins equivalent to issuing cash \\ 213 $\Rightarrow$ monetary policy remains under CB control 214 \item Architecture with consumer accounts at commercial banks \\ 215 $\Rightarrow$ no competition for commercial banking (S\&L) \\ 216 $\Rightarrow$ CB does not have to manage KYC, customer support 217 \item Withdrawal limits and denomination expiration \\ 218 $\Rightarrow$ protects against bank runs and hoarding 219 \item Income transparency and possibility to set fees \\ 220 $\Rightarrow$ additional insights into economy and new policy options 221 \item Revocation protocols and loss limitations \\ 222 $\Rightarrow$ exit strategy and handles catastrophic security incidents 223 \item Privacy by cryptographic design not organizational compliance \\ 224 $\Rightarrow$ CB cannot be forced to facilitate mass-surveillance 225 \end{itemize} 226 \end{frame} 227 228 229 \begin{frame} 230 \frametitle{Do you have any questions?} 231 \vfill 232 References: 233 {\tiny 234 \begin{enumerate} 235 \item{David Chaum, Christian Grothoff and Thomas Moser. 236 {\em How to issue a central bank digital currency}. 237 {\bf SNB Working Papers, 2021}.} 238 \item{Christian Grothoff, Bart Polot and Carlo von Loesch. 239 {\em The Internet is broken: Idealistic Ideas for Building a GNU Network}. 240 {\bf W3C/IAB Workshop on Strengthening the Internet Against Pervasive Monitoring (STRINT)}, 2014.} 241 \item{Jeffrey Burdges, Florian Dold, Christian Grothoff and Marcello Stanisci. 242 {\em Enabling Secure Web Payments with GNU Taler}. 243 {\bf SPACE 2016}.} 244 \item{Florian Dold, Sree Harsha Totakura, Benedikt M\"uller, Jeffrey Burdges and Christian Grothoff. 245 {\em Taler: Taxable Anonymous Libre Electronic Reserves}. 246 Available upon request. 2016.} 247 \item{Eli Ben-Sasson, Alessandro Chiesa, Christina Garman, Matthew Green, Ian Miers, Eran Tromer and Madars Virza. 248 {\em Zerocash: Decentralized Anonymous Payments from Bitcoin}. 249 {\bf IEEE Symposium on Security \& Privacy, 2016}.} 250 \item{David Chaum, Amos Fiat and Moni Naor. 251 {\em Untraceable electronic cash}. 252 {\bf Proceedings on Advances in Cryptology, 1990}.} 253 \item{Phillip Rogaway. 254 {\em The Moral Character of Cryptographic Work}. 255 {\bf Asiacrypt}, 2015.} \label{bib:rogaway} 256 \end{enumerate} 257 } 258 \end{frame} 259 260 261 \begin{frame}{Feature Summary (some are still WiP)} 262 \begin{itemize} 263 \item Wallets for Firefox, Chrome, Android, CLI, iOS 264 \item Merchant integrations for MDB, WooCommerce, Joomla!, Pretix, PoS App 265 \item Payment via NFC, QR code or integrated in browser 266 \item Peer-to-peer payments (with KYC for receiver), invoicing 267 \item External KYC providers with configurable KYC trigger rules 268 \item Age-restricted payments, accessible design 269 \item Escrow functionality (``smart contracts''), i.e. auctions 270 \item Privacy-preserving backup and recovery of wallet state 271 \item RTGS integrations with libeufin over EBICS or Depolymerization over Bitcoin/Ethereum 272 \end{itemize} 273 \end{frame} 274 275 276 \begin{frame}{How does it work?} 277 \framesubtitle{\url{https://taler.net/papers/thesis-dold-phd-2019.pdf}} 278 We use a few ancient constructions: 279 \begin{itemize} 280 \item Cryptographic hash function (1989) 281 \item Blind signature (1983) 282 \item Schnorr signature (1989) 283 \item Diffie-Hellman key exchange (1976) 284 \item Cut-and-choose zero-knowledge proof (1985) 285 \end{itemize} 286 But of course we use modern instantiations. 287 \end{frame} 288 289 290 \begin{frame}{Definition: Taxability} 291 We say Taler is taxable because: 292 \begin{itemize} 293 \item Merchant's income is visible from deposits. 294 \item Hash of contract is part of deposit data. 295 \item State can trace income and enforce taxation. 296 \end{itemize}\pause 297 Limitations: 298 \begin{itemize} 299 \item withdraw loophole 300 \item {\em sharing} coins among family and friends 301 \end{itemize} 302 \end{frame} 303 304 305 \begin{frame}{Giving change} 306 It would be inefficient to pay EUR 100 with 1 cent coins! 307 \begin{itemize} 308 \item Denomination key represents value of a coin. 309 \item Exchange may offer various denominations for coins. 310 \item Wallet may not have exact change! 311 \item Usability requires ability to pay given sufficient total funds. 312 \end{itemize}\pause 313 Key goals: 314 \begin{itemize} 315 \item maintain unlinkability 316 \item maintain taxability of transactions 317 \end{itemize}\pause 318 Method: 319 \begin{itemize} 320 \item Contract can specify to only pay {\em partial value} of a coin. 321 \item Exchange allows wallet to obtain {\em unlinkable change} 322 for remaining coin value. 323 \end{itemize} 324 \end{frame} 325 326 327 \begin{frame}{Refresh protocol summary} 328 \begin{itemize} 329 \item Customer asks exchange to convert old coin to new coin 330 \item Protocol ensures new coins can be recovered from old coin 331 \item[$\Rightarrow$] New coins are owned by the same entity! 332 \end{itemize} 333 Thus, the refresh protocol allows: 334 \begin{itemize} 335 \item To give unlinkable change. 336 \item To give refunds to an anonymous customer. 337 \item To expire old keys and migrate coins to new ones. 338 \item To handle protocol aborts. 339 \end{itemize} 340 % \noindent 341 % \begin{center} 342 % \bf 343 % Transactions via refresh are equivalent to {\em sharing} a wallet. 344 %\end{center} 345 \end{frame} 346 347 348 \begin{frame}{Scalability} 349 On paper, the design scales linearly with computing resources: 350 \begin{itemize} 351 \item Front-end logic at the central bank only needs to perform a few signature operations, a 352 single CPU core can typically do a few thousands per second. 353 \item Front-end servers need to talk to a database to prevent double-spending. A single database server can handle tens of thousands of such operations per second. 354 \item All operations are easily split across multiple database servers by simply assigning 355 each database server a range of values. 356 \item The frontends need to talk to the backends using an interconnect. The size of an 357 individual transaction is typically about 1–10 kilobytes. Modern interconnects 358 can support millions of such transactions per second. 359 \item To securely store 1-10 kilobytes per transaction, using AWS pricing, the cost of the 360 system (storage, bandwidth, computation) at scale would be 0.0001 USD per transaction. 361 \end{itemize} 362 \end{frame} 363 364 365 \begin{frame} \frametitle{Performance} \framesubtitle{Other Payment Systems} 366 \centering 367 \begin{minipage}{0.32\textwidth} 368 \centering 369 \visible<1->{Bitcoin}\\\vspace{1em} 370 {4 TPS}\\ 371 { 372 \vspace{2em} 373 \includegraphics[width=0.2\linewidth]{performance.pdf}\hspace{1em} 374 \includegraphics[width=0.2\linewidth]{mining.pdf} 375 } 376 \end{minipage} 377 \begin{minipage}{0.32\textwidth} 378 \centering 379 {PayPal\\\vspace{1em}193 TPS}\\ 380 { 381 \vspace{2em} 382 \includegraphics[width=0.2\linewidth]{privacy.pdf} 383 } 384 \end{minipage} 385 \begin{minipage}{0.32\textwidth} 386 \centering 387 {Visa\\\vspace{1em}1'667 TPS}\\ 388 { 389 \vspace{2em} 390 \includegraphics[width=0.2\textwidth]{privacy.pdf} 391 } 392 \end{minipage} 393 \let\thefootnote\relax\footnote{ 394 \tiny 395 [06.22]\hspace{3em} 396 - \href{https://www.researchgate.net/publication/330585021_Analysis_of_the_Possibilities_for_Improvement_of_BlockChain_Technology}{Researchgate} 397 } 398 \end{frame} 399 400 \begin{frame} \frametitle{Performance} \framesubtitle{CBDC Projects} 401 \centering 402 \begin{minipage}{0.28\textwidth} 403 \centering 404 {e-Krona (Sweden)\\\vspace{1em}100 TPS}\\ 405 { 406 \vspace{2em} 407 \includegraphics[width=0.2\linewidth]{performance.pdf}\hspace{1em} 408 \includegraphics[width=0.2\linewidth]{privacy.pdf} 409 } 410 \end{minipage} 411 \begin{minipage}{0.28\textwidth} 412 \centering 413 {e-CNY (China)\\\vspace{1em}10'000 TPS}\\ 414 { 415 \vspace{2em} 416 \includegraphics[width=0.2\linewidth]{privacy.pdf} 417 } 418 \end{minipage} 419 \begin{minipage}{0.38\textwidth} 420 \centering 421 \visible<2->{GNU Taler (Grid5000)\\\vspace{1em}28'500 TPS}\\ 422 { 423 \vspace{2em} 424 \visible<2->{\includegraphics[width=0.4\linewidth]{logo-2021.pdf}} 425 } 426 \end{minipage} 427 \let\thefootnote\relax\footnote{ 428 \tiny 429 [06.22]\hspace{3em} 430 \hspace{3em}- \href{https://www.atlanticcouncil.org/blogs/econographics/a-report-card-on-chinas-central-bank-digital-currency-the-e-cny/}{Atlatic Council} 431 \hspace{3em}- \href{https://www.riksbank.se/globalassets/media/rapporter/e-krona/2022/e-krona-pilot-phase-2.pdf}{Riksbank} 432 } 433 \end{frame} 434 435 436 \section{Competitor comparison} 437 \begin{frame}{Competitor comparison} 438 \begin{center} \small 439 \begin{tabular}{l||c|c|c|c|c} 440 & Cash & DLT & HW-Token & CB-Account & GNU Taler \\ \hline \hline 441 Online &$-$$-$$-$ & + & $-$ & ++ & +++ \\ \hline 442 Offline & +++ & $-$$-$$-$ & $+$ & $-$$-$ & $-$$-$ \\ \hline 443 Cost & $-$ & $-$$-$$-$ & $-$ & + & ++ \\ \hline 444 Speed & + & $-$$-$$-$ & $+$ & o & ++ \\ \hline 445 Taxation & $-$ & +++ & $-$$-$ & +++ & +++ \\ \hline 446 Payer-anon & ++ & $-$$-$ & ??? & $-$$-$ & +++ \\ \hline 447 Payee-anon & ++ & $-$$-$ & ??? & $-$$-$ & $-$$-$$-$ \\ \hline 448 Security & $-$ & ??? & $-$$-$ & o & ++ \\ \hline 449 Migration & +++ & $-$$-$$-$ & $-$$-$$-$& o & + \\ \hline 450 Libre & $-$ & ??? & $-$$-$$-$& N/A & +++ \\ 451 \end{tabular} 452 \end{center} 453 \end{frame} 454 455 456 457 \end{document}