offline.tex (8373B)
1 \section{Offline payments} 2 3 \begin{frame} 4 \vfill 5 \begin{center} 6 {\bf Offline payments} 7 \end{center} 8 \vfill 9 \end{frame} 10 11 12 \begin{frame}[fragile]{Digitaler Euro --- Offline?} 13 Many central banks today demand offline capabilities for CBDCs. 14 \vfill \pause 15 \begin{figure} 16 \def\svgwidth{0.8\textwidth} 17 18 \begingroup% 19 \makeatletter% 20 \providecommand\color[2][]{% 21 \errmessage{(Inkscape) Color is used for the text in Inkscape, but the package 'color.sty' is not loaded}% 22 \renewcommand\color[2][]{}% 23 }% 24 \providecommand\transparent[1]{% 25 \errmessage{(Inkscape) Transparency is used (non-zero) for the text in Inkscape, but the package 'transparent.sty' is not loaded}% 26 \renewcommand\transparent[1]{}% 27 }% 28 \providecommand\rotatebox[2]{#2}% 29 \newcommand*\fsize{\dimexpr\f@size pt\relax}% 30 \newcommand*\lineheight[1]{\fontsize{\fsize}{#1\fsize}\selectfont}% 31 \ifx\svgwidth\undefined% 32 \setlength{\unitlength}{345bp}% 33 \ifx\svgscale\undefined% 34 \relax% 35 \else% 36 \setlength{\unitlength}{\unitlength * \real{\svgscale}}% 37 \fi% 38 \else% 39 \setlength{\unitlength}{\svgwidth}% 40 \fi% 41 \global\let\svgwidth\undefined% 42 \global\let\svgscale\undefined% 43 \makeatother% 44 \begin{picture}(1,0.53623188)% 45 \lineheight{1}% 46 \setlength\tabcolsep{0pt}% 47 \put(0,0){\includegraphics[width=\unitlength,page=1]{offline-timeline.pdf}}% 48 \put(0.10624514,0.04914349){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny Feb 2017 \cite{arm2017boomerang}\end{tabular}}}}% 49 \put(0,0){\includegraphics[width=\unitlength,page=2]{offline-timeline.pdf}}% 50 \put(0.28309276,0.44884928){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny Mar, Jun 2020 \cite{intel2020lvi,intel2020sgaxe}\end{tabular}}}}% 51 \put(0,0){\includegraphics[width=\unitlength,page=3]{offline-timeline.pdf}}% 52 \put(0.18177392,0.17262607){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny Aug 2017 \cite{arm2017clkscrew}\end{tabular}}}}% 53 \put(0,0){\includegraphics[width=\unitlength,page=4]{offline-timeline.pdf}}% 54 \put(0.08024638,0.44884927){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny Dec 2017 \cite{samsung2017knox}\end{tabular}}}}% 55 \put(0,0){\includegraphics[width=\unitlength,page=5]{offline-timeline.pdf}}% 56 \put(0.02512174,0.36103189){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny May, Aug 2016 \cite{arm2016alias,arm2016cache,zhang2016truspy}\end{tabular}}}}% 57 \put(0,0){\includegraphics[width=\unitlength,page=6]{offline-timeline.pdf}}% 58 \put(0.34119422,0.08566952){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny Aug 2019 \cite{amd2019}\end{tabular}}}}% 59 \put(0,0){\includegraphics[width=\unitlength,page=7]{offline-timeline.pdf}}% 60 \put(0.3956406,0.36131883){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny Oct 2019 \cite{sim2019}\end{tabular}}}}% 61 \put(0,0){\includegraphics[width=\unitlength,page=8]{offline-timeline.pdf}}% 62 \put(0.38164733,0.17343635){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny Jun 2020 \cite{smartcard2020}\end{tabular}}}}% 63 \put(0,0){\includegraphics[width=\unitlength,page=9]{offline-timeline.pdf}}% 64 \put(0.59564059,0.44827535){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny Sep 2022 \cite{atecc2022}\end{tabular}}}}% 65 \put(0,0){\includegraphics[width=\unitlength,page=10]{offline-timeline.pdf}}% 66 \put(0.55650392,0.05335936){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny Mar 2023 \cite{tpm2023}\end{tabular}}}}% 67 \put(0,0){\includegraphics[width=\unitlength,page=11]{offline-timeline.pdf}}% 68 \put(0.80271684,0.06728262){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny Sep 2024 \cite{infineon2024}\end{tabular}}}}% 69 \put(0,0){\includegraphics[width=\unitlength,page=12]{offline-timeline.pdf}}% 70 \put(0.59062556,0.17319998){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny Feb 2023 \cite{intel2023sgx}\end{tabular}}}}% 71 \put(0,0){\includegraphics[width=\unitlength,page=13]{offline-timeline.pdf}}% 72 \put(0.78984349,0.17291304){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny Oct 2024 \cite{amd2025}\end{tabular}}}}% 73 \put(0,0){\includegraphics[width=\unitlength,page=14]{offline-timeline.pdf}}% 74 \put(0.7963995,0.44796104){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny Aug 2023 \cite{arm2023}\end{tabular}}}}% 75 \put(0,0){\includegraphics[width=\unitlength,page=15]{offline-timeline.pdf}}% 76 \put(0.59916521,0.36103188){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny Apr 2023 \cite{amd2023}\end{tabular}}}}% 77 \put(0,0){\includegraphics[width=\unitlength,page=16]{offline-timeline.pdf}}% 78 \put(0.79631301,0.36103188){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny Aug 2024 \cite{intel2024}\end{tabular}}}}% 79 \put(0,0){\includegraphics[width=\unitlength,page=17]{offline-timeline.pdf}}% 80 \put(0.123203,0.24410952){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny 2015\end{tabular}}}}% 81 \put(0.5000146,0.24410952){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny 2020\end{tabular}}}}% 82 \put(0.87682623,0.24410952){\color[rgb]{0,0,0}\makebox(0,0)[lt]{\lineheight{1.25}\smash{\begin{tabular}[t]{l}\tiny 2025\end{tabular}}}}% 83 \put(0,0){\includegraphics[width=\unitlength,page=18]{offline-timeline.pdf}}% 84 \end{picture}% 85 \endgroup% 86 \end{figure} 87 \end{frame} 88 89 90 \begin{frame}{A Scenario} 91 {God is offline, but customer pays online} 92 \begin{center} 93 \includegraphics[height=0.4\textwidth]{shrine.jpg} 94 \end{center} 95 \end{frame} 96 97 \begin{frame}{Typical Payment Process}{All equivalent: Twint, PayPal, AliPay, PayTM} 98 \begin{center} 99 \movie[%scale=0.6, 100 autostart, 101 poster] 102 { 103 \includegraphics[height=0.3\textwidth,width=0.4\textwidth]{white.png} 104 } 105 {twint.mkv} 106 107 {\tiny (C) Twint, 2023} 108 \end{center} 109 \end{frame} 110 111 112 \begin{frame}{Secure Payment ...}{Everything green?} 113 \begin{center} 114 \includegraphics[height=0.3\textwidth]{paymentTwint-screen_25.png} 115 \end{center} 116 \end{frame} 117 118 \begin{frame}{Exploit ``Code''}{Programming optional} 119 \begin{center} 120 \includegraphics[height=0.3\textwidth]{paymentTwint-screen.png} 121 \end{center} 122 \end{frame} 123 124 \begin{frame}{``Customers'' {\em love} Twint ...}{Daily non-business for shops} 125 \begin{center} 126 \includegraphics[height=0.3\textwidth]{paymentTwint-screen_50.png} 127 \end{center} 128 \end{frame} 129 130 131 \begin{frame}{Partially Offline Payments with GNU Taler~\cite{suerf2023huang}} 132 133 \begin{center} 134 \resizebox{8cm}{6cm}{ 135 \begin{sequencediagram} 136 \newinst{pos}{\shortstack{PoS \\ 137 \\ \begin{tikzpicture} 138 \node [fill=gray!20,draw=black,thick ,align=center] {PoS key \\ PoS ID}; 139 \end{tikzpicture} 140 }} 141 \newinst[2]{customer}{\shortstack{Customer \\ 142 \\ \begin{tikzpicture} 143 \node [fill=gray!20,draw=black,thick ,align=center] {Digital \\ Wallet}; 144 \end{tikzpicture} 145 }} 146 \newinst[2]{backend}{\shortstack{Merchant Backend \\ 147 \\ \begin{tikzpicture}[shape aspect=.5] 148 \tikzset{every node/.style={cylinder, shape border rotate=90, draw,fill=gray!25}} 149 \node at (1.5,0) {\shortstack{{\tiny PoS key} \\ {\tiny PoS ID}}}; 150 \end{tikzpicture} 151 }} 152 \postlevel 153 \mess[0]{pos}{PoS ID}{customer} 154 \begin{sdblock}{optional}{} 155 \begin{callself}{customer}{Amount}{} 156 \end{callself} 157 \end{sdblock} 158 \prelevel 159 \prelevel 160 \prelevel 161 \prelevel 162 \prelevel 163 \begin{sdblock}{optional}{} 164 \begin{callself}{pos}{Amount}{} 165 \end{callself} 166 \end{sdblock} 167 \postlevel 168 \mess[0]{customer}{PoS ID, [Amount]?}{backend} 169 \mess[0]{backend}{Contract}{customer} 170 \postlevel 171 \mess[0]{customer}{Payment}{backend} 172 \begin{callself}{pos}{OTP(PoS key)}{} 173 \end{callself} 174 \prelevel 175 \prelevel 176 \begin{callself}{backend}{OTP(PoS key)}{} 177 \end{callself} 178 \mess[0]{backend}{OTP code}{customer} 179 \postlevel 180 \mess[0]{customer}{OTP code}{pos} 181 \end{sequencediagram} 182 } 183 \end{center} 184 \end{frame}