marketing

Marketing materials (presentations, posters, flyers)
Log | Files | Refs

commit d456bd738bc0f1f49054ca32750c65c935de2a10
parent 310b8871d453281e3fd1f634624e44198e9d0a5a
Author: Christian Grothoff <grothoff@gnunet.org>
Date:   Tue, 18 Nov 2025 17:09:24 +0100

refactor TeX structure

Diffstat:
Mpresentations/comprehensive/2025-ethz.tex | 506+------------------------------------------------------------------------------
Rpresentations/comprehensive/detsig.pdf -> presentations/comprehensive/unisig.pdf | 0
Rpresentations/comprehensive/detsig.svg -> presentations/comprehensive/unisig.svg | 0
Rpresentations/comprehensive/detverify.pdf -> presentations/comprehensive/univerify.pdf | 0
Rpresentations/comprehensive/detverify.svg -> presentations/comprehensive/univerify.svg | 0
5 files changed, 1 insertion(+), 505 deletions(-)

diff --git a/presentations/comprehensive/2025-ethz.tex b/presentations/comprehensive/2025-ethz.tex @@ -789,511 +789,7 @@ But of course we use modern instantiations. \vfill \end{frame} - -\begin{frame}{Giving change} - It would be inefficient to pay EUR 100 with 1 cent coins! - \begin{itemize} - \item Denomination key represents value of a coin. - \item Exchange may offer various denominations for coins. - \item Wallet may not have exact change! - \item Usability requires ability to pay given sufficient total funds. - \end{itemize}\pause - Key goals: - \begin{itemize} - \item maintain unlinkability - \item maintain taxability of transactions - \end{itemize}\pause - Method: - \begin{itemize} - \item Contract can specify to only pay {\em partial value} of a coin. - \item Exchange allows wallet to obtain {\em unlinkable change} - for remaining coin value. - \end{itemize} -\end{frame} - - -\begin{frame}{Deterministic Signatures} - \vfill - \begin{minipage}{8cm} - \begin{itemize} - \item Some public key operations depend on a nonce or ``random'' value - \begin{itemize} - \item Example: ElGamal (encryption), DSA/ECDSA (signing) - \item[+] same plaintext, different ciphertext - \item[-] security may break on nonce-reuse - \end{itemize} - \item Generating the nonce deterministically by hashing all inputs - (see also: Fiat-Shamir transformation) can make these algorithms - {\bf deterministic} - \begin{itemize} - \item Example: EdDSA - \end{itemize} - \end{itemize} - \end{minipage} - \begin{minipage}{5cm} - Deterministic signatures: - \begin{center} - \includegraphics[width=0.6\textwidth]{ecollect.jpeg} - - $=$ - - \includegraphics[width=0.6\textwidth]{detsig.pdf} - \end{center} - \end{minipage} - \vfill - \note[item]{Before we can introduce the change protocol, we need to consider that - not all cryptographic signatures are deterministic.} - \note[item]{Following modern approach to e-collecting, we will use the image on - the right to illustrate {\bf deterministic} signatures.} - \note[item]{Replacing random inputs or nonces with hashes is a common trick to - make signature algorithms deterministic.} -\end{frame} - - -\begin{frame}{Strawman solution} - \begin{minipage}{8cm} - Given partially spent private coin key $c_{old}$: - \begin{enumerate} -% \item Let $C_{old} := c_{old}G$ (as before) - \item Generate random $c_{new} \mod o$ as private key - \item Compute public key $C_{new} = c_{new}G$ - \item Generate random $b_{new}$ - \item Compute $f_{new} := FDH(C_{new})$, $m < n$. - \item Transmit $f'_{new} := f_{new} b_{new}^e \mod n$ - \end{enumerate} - ... and sign request for change with $c_{old}$. - \end{minipage} - \begin{minipage}{4cm} - \begin{tikzpicture} - \tikzstyle{def} = [node distance= 1.5em and 0.5em, inner sep=0em, outer sep=.3em]; - \node (blinded) [def, draw=none]{\includegraphics[width=0.15\textwidth]{blinded.pdf}}; - \node (planchet) [def, draw=none, above left= of blinded] {\includegraphics[width=0.15\textwidth]{planchet.pdf}}; - \node (cnew) [def, draw=none, above= of planchet] {$c_{new}$}; - \node (bnew) [def, draw=none, above right= of blinded] {$b_{new}$}; - \node (dice1) [def, draw=none, above = of cnew]{\includegraphics[width=0.2\textwidth]{dice.pdf}}; - \node (dice2) [def, draw=none, above = of bnew]{\includegraphics[width=0.2\textwidth]{dice.pdf}}; - \node (exchange) [node distance=4em and 0.5em, draw, below =of blinded]{Exchange}; - - \tikzstyle{C} = [color=black, line width=1pt] - - \draw [<-, C] (cnew) -- (dice1) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (planchet) -- (cnew) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (bnew) -- (dice2) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (blinded) -- (planchet) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (blinded) -- (bnew) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (exchange) -- (blinded) node [midway, right] (TextNode) {{\small transmit}}; - \end{tikzpicture} - \end{minipage} -\end{frame} - - -\begin{frame}{Problem} -\vfill -\begin{center} - Owner of $c_{new}$ may differ from owner of $c_{old}$! -\end{center} -\vfill -\end{frame} - - -\begin{frame}{Customer: Transfer setup (DETSIG)} - \begin{minipage}{10cm} - Given partially spent private coin key $c_{old}$: - \begin{enumerate} - \item Let $C_{old} := c_{old}G$ (as before) - \item Create random nonce $t$ - \item Compute deterministic signature $X := DETSIG_{c_{old}}(t)$ - \item Derive $c_{new}$ and $b_{new}$ from $X$ using HKDF - \item Compute $C_{new} := c_{new}G$ - \item Compute $f_{new} := FDH(C_{new})$ - \item Transmit $f_{new}' := f_{new} b_{new}^e$ - \end{enumerate} - \end{minipage} - \begin{minipage}{3cm} - \begin{tikzpicture} - \tikzstyle{def} = [node distance= 1.5em and 0.5em, inner sep=0em, outer sep=.3em]; - \node (t) [def, draw=none] at (0,0) {$t$}; - \node (dice) [def, draw=none, above = of t]{\includegraphics[width=0.2\textwidth]{dice.pdf}}; - \node (X) [def, draw=none, below left=of t]{\includegraphics[width=0.2\textwidth]{detsig.pdf}}; - \node (d) [def, draw=none, above left= of X] {$c_{old}$}; - \node (cp) [def, draw=none, below left= of X] {$c_{new}$}; - \node (bp) [def, draw=none, below right= of X] {$b_{new}$}; - \node (blinded) [def, draw=none, below right=of cp]{\includegraphics[width=0.15\textwidth]{blinded.pdf}}; - \node (exchange) [def, draw, below =of blinded]{Exchange}; - - \tikzstyle{C} = [color=black, line width=1pt] - - \draw [<-, C] (X) -- (d) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (X) -- (t) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (t) -- (dice) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (cp) -- (X) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (bp) -- (X) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (blinded) -- (cp) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (blinded) -- (bp) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (exchange) -- (blinded) node [midway, right] (TextNode) {{\small transmit}}; - \end{tikzpicture} - \end{minipage} - \note[item]{In this construction, we {\em derive} the blinding factor $b_{new}$ and - the private key of the new coin $c_{new}$ from the DH of the $c_{old}$ and a newly - created transfer key $t$. Note that it is a bit unusual but perfectly find that - we here have {\bf both} private keys to compute the DH.} - \note[item]{The resulting blinded public key of the new coin - (public key derivation and blinding are elided to keep the diagram concise) is - then signed with $c_{old}$ to request change.} - \note[item]{This approach has an obvious problem: from the perspective of the - Exchange, we cannot even tell that the user followed this procedure as the - resulting request with the blinded coin is indistinguishable from the previous - construction.} -\end{frame} - - -\begin{frame}{Cut-and-Choose} - \begin{minipage}{3cm} - \begin{tikzpicture} - \tikzstyle{def} = [node distance= 1.5em and 0.5em, inner sep=0em, outer sep=.3em]; - \node (t) [def, draw=none] at (0,0) {$t_1$}; - \node (dice) [def, draw=none, above = of t]{\includegraphics[width=0.2\textwidth]{dice.pdf}}; - \node (dh) [def, draw=none, below left=of t]{\includegraphics[width=0.2\textwidth]{detsig.pdf} ($X_1$)}; - \node (d) [def, draw=none, above left= of dh] {$c_{old}$}; - \node (cp) [def, draw=none, below left= of dh] {$c_{new,1}$}; - \node (bp) [def, draw=none, below right= of dh] {$b_{new,1}$}; - \node (blinded) [def, draw=none, below right=of cp]{\includegraphics[width=0.15\textwidth]{blinded.pdf}}; - \node (exchange) [def, draw, below =of blinded]{Exchange}; - - \tikzstyle{C} = [color=black, line width=1pt] - - \draw [<-, C] (t) -- (dice) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (dh) -- (d) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (dh) -- (t) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (cp) -- (dh) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (bp) -- (dh) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (blinded) -- (cp) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (blinded) -- (bp) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (exchange) -- (blinded) node [midway, right] (TextNode) {{\small transmit}}; - \end{tikzpicture} - \end{minipage} - \hfill - \begin{minipage}{3cm} - \begin{tikzpicture} - \tikzstyle{def} = [node distance= 1.5em and 0.5em, inner sep=0em, outer sep=.3em]; - \node (t) [def, draw=none] at (0,0) {$t_2$}; - \node (dice) [def, draw=none, above = of t]{\includegraphics[width=0.2\textwidth]{dice.pdf}}; - \node (dh) [def, draw=none, below left=of t]{\includegraphics[width=0.2\textwidth]{detsig.pdf} ($X_2$)}; - \node (d) [def, draw=none, above left= of dh] {$c_{old}$}; - \node (cp) [def, draw=none, below left= of dh] {$c_{new,2}$}; - \node (bp) [def, draw=none, below right= of dh] {$b_{new,2}$}; - \node (blinded) [def, draw=none, below right=of cp]{\includegraphics[width=0.15\textwidth]{blinded.pdf}}; - \node (exchange) [def, draw, below =of blinded]{Exchange}; - - \tikzstyle{C} = [color=black, line width=1pt] - - \draw [<-, C] (t) -- (dice) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (dh) -- (d) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (dh) -- (t) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (cp) -- (dh) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (bp) -- (dh) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (blinded) -- (cp) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (blinded) -- (bp) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (exchange) -- (blinded) node [midway, right] (TextNode) {{\small transmit}}; - \end{tikzpicture} - \end{minipage} - \hfill - \begin{minipage}{3cm} - \begin{tikzpicture} - \tikzstyle{def} = [node distance= 1.5em and 0.5em, inner sep=0em, outer sep=.3em]; - \node (t) [def, draw=none] at (0,0) {$t_3$}; - \node (dice) [def, draw=none, above = of t]{\includegraphics[width=0.2\textwidth]{dice.pdf}}; - \node (dh) [def, draw=none, below left=of t]{\includegraphics[width=0.2\textwidth]{detsig.pdf} ($X_3$)}; - \node (d) [def, draw=none, above left= of dh] {$c_{old}$}; - \node (cp) [def, draw=none, below left= of dh] {$c_{new,3}$}; - \node (bp) [def, draw=none, below right= of dh] {$b_{new,3}$}; - \node (blinded) [def, draw=none, below right=of cp]{\includegraphics[width=0.15\textwidth]{blinded.pdf}}; - \node (exchange) [def, draw, below =of blinded]{Exchange}; - - \tikzstyle{C} = [color=black, line width=1pt] - - \draw [<-, C] (t) -- (dice) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (dh) -- (d) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (dh) -- (t) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (cp) -- (dh) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (bp) -- (dh) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (blinded) -- (cp) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (blinded) -- (bp) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (exchange) -- (blinded) node [midway, right] (TextNode) {{\small transmit}}; - \end{tikzpicture} - \end{minipage} - \note[item]{This DH-construction thus obviously does not work, so in the usual - approach of an insane person, we don't just do it once, but three times - using three different transfer keys $t_1$, $t_2$, and $t_3$ instead of just $t$.} - \note[item]{Now, before you decide that we have just gone mad, this is actually - a well-known technique called {\bf cut-and-choose}. Here, we do a protocol - step multiple times to basically be able to {\bf burn} some of these iterations - to {\bf prove} our honesty.} - \note[item]{There are also {\bf non-interactive} cut-and-choose protocols, but - this one is a simple interactive one.} -\end{frame} - - -\begin{frame}{Exchange: Choose!} - \begin{center} - \item Exchange sends back random $\gamma \in \{ 1, 2, 3 \}$ to the customer. - \end{center} - \note[item]{This is the typical interaction: the Exchange picks one of the - three at random, basically deciding on which iterations to challenge the - wallet's honesty.} - \note[item]{$\gamma$ primarily needs to be {\bf unpredictable} for the wallet.} - \note[item]{Note that the protocol has a security parameter $\kappa=3$, and - so the wallet could guess correctly in $\frac{1}{3}$ of the cases. Usually - in security we would think of this to be way too low, and you will see much - higher values in other cut-and-choose protocols. But, we will see why - $\kappa=3$ is actually enough for GNU Taler!} -\end{frame} - - -\begin{frame}{Customer: Reveal} - \vfill - \begin{enumerate} - \item If $\gamma = 1$, send $\langle t_2, X_2 \rangle$, $\langle t_3, X_3 \rangle$ to exchange - \item If $\gamma = 2$, send $\langle t_1, X_1 \rangle$, $\langle t_3, X_3 \rangle$ to exchange - \item If $\gamma = 3$, send $\langle t_1, X_1 \rangle$, $\langle t_2, X_2 \rangle$ to exchange - \end{enumerate} - \vfill - \note[item]{So given the $\gamma$ challenge value, the wallet - has to send back the $t_i$ values for $i\not=\gamma$.} -\end{frame} - - -\begin{frame}{Exchange: Verify ($\gamma = 2$)} - \begin{minipage}{3cm} - \begin{tikzpicture} - \tikzstyle{def} = [node distance= 1.5em and 0.5em, inner sep=0em, outer sep=.3em]; - \node (h) [def, draw=none] at (0,0) {$t_1$}; - \node (dh) [def, draw=none, below left=of h]{\includegraphics[width=0.2\textwidth]{detverify.pdf}}; - \node (d) [def, draw=none, above left= of dh] {$C_{old}$}; - \node (cp) [def, draw=none, below left= of dh] {$c_{new,1}$}; - \node (bp) [def, draw=none, below right= of dh] {$b_{new,1}$}; - \node (blinded) [def, draw=none, below right=of cp]{\includegraphics[width=0.15\textwidth]{blinded.pdf}}; - - \tikzstyle{C} = [color=black, line width=1pt] - - \draw [<-, C] (dh) -- (d) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (dh) -- (h) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (cp) -- (dh) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (bp) -- (dh) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (blinded) -- (cp) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (blinded) -- (bp) node [midway, above, sloped] (TextNode) {}; - \end{tikzpicture} - \end{minipage} - \hfill - \begin{minipage}{3cm} - \ - \end{minipage} - \hfill - \begin{minipage}{3cm} - \begin{tikzpicture} - \tikzstyle{def} = [node distance= 1.5em and 0.5em, inner sep=0em, outer sep=.3em]; - \node (h) [def, draw=none] at (0,0) {$t_3$}; - \node (dh) [def, draw=none, below left=of h]{\includegraphics[width=0.2\textwidth]{detverify.pdf}}; - \node (d) [def, draw=none, above left= of dh] {$C_{old}$}; - \node (cp) [def, draw=none, below left= of dh] {$c_{new,3}$}; - \node (bp) [def, draw=none, below right= of dh] {$b_{new,3}$}; - \node (blinded) [def, draw=none, below right=of cp]{\includegraphics[width=0.15\textwidth]{blinded.pdf}}; - - \tikzstyle{C} = [color=black, line width=1pt] - - \draw [<-, C] (dh) -- (d) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (dh) -- (h) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (cp) -- (dh) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (bp) -- (dh) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (blinded) -- (cp) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (blinded) -- (bp) node [midway, above, sloped] (TextNode) {}; - \end{tikzpicture} - \end{minipage} - \note[item]{Given those two values the exchange can {\bf validate} the - construction as it can compute the DH from the {\bf transfer private keys} $t_i$ - and the {\bf coin public key} $C_{old}$.} - \note[item]{If the result matches with the original request from the wallet, - the exchange has established that with $\frac{2}{3}$ probability the wallet - made an honest request for change following the prescribed construction.} - \note[item]{If the wallet is unable (or unwilling) to produce the required - $t_i$ values, or if the resulting blinded values do not match, the entire - change is forfeit, and the customer looses their money.} - \note[item]{Thus, trying to cheat on income-transparency is punished with - what amounts to a {\bf 66.67\% tax}. Thus, a security level of $\kappa$ - is sufficient as long as the {\em effective} income tax (after deductions, - on the full income) is below $\frac{\kappa - 1}{\kappa}$. - Taler always uses $\kappa=3$.} -\end{frame} - - -\begin{frame}{Exchange: Blind sign change (RSA)} - \begin{minipage}{5cm} - \begin{enumerate} - \item Take $f_{new,\gamma}'$. - \item Compute \\ - $s' := f_{new,\gamma}'^d \mod n$. - \item Return signature $s'$. - \end{enumerate} - \end{minipage} - \begin{minipage}{5cm} - \begin{tikzpicture} - \tikzstyle{def} = [node distance= 2em and 0.5em, inner sep=0em, outer sep=.3em]; - \node (hammer) [def, draw=none] at (0,0) {\includegraphics[width=0.15\textwidth]{hammer.pdf}}; - \node (signed) [def, draw=none, below left=of hammer]{\includegraphics[width=0.2\textwidth]{sign.pdf}}; - \node (blinded) [def, draw=none, above left=of signed]{\includegraphics[width=0.15\textwidth]{blinded.pdf}}; - \node (customer) [node distance=4em and 0.5em, draw, below =of signed]{Customer}; - \tikzstyle{C} = [color=black, line width=1pt] - - \draw [<-, C] (signed) -- (hammer) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (signed) -- (blinded) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (customer) -- (signed) node [midway, right] (TextNode) {{\small transmit}}; - \end{tikzpicture} - \end{minipage} - \note[item]{If the customer's request did follow the DH-construction, the exchange takes the - third envelope, the one where $t_\gamma$ was not disclosed, and signs this one to issue the - change.} -\end{frame} - - -\begin{frame}{Customer: Unblind change (RSA)} - \vfill - \begin{minipage}{8cm} - \begin{enumerate} - \item Receive $s'$. - \item Compute $s := s' b_{new,\gamma}^{-1} \mod n$. - \end{enumerate} - \end{minipage} - \begin{minipage}{5cm} - \begin{tikzpicture} - \tikzstyle{def} = [node distance= 2em and 0.5em, inner sep=0em, outer sep=.3em]; - \node (b) [def, draw=none] at (0,0) {$b_{new,\gamma}$}; - \node (coin) [def, draw=none, below left=of b]{\includegraphics[width=0.2\textwidth]{coin.pdf}}; - \node (signed) [def, draw=none, above left=of coin]{\includegraphics[width=0.15\textwidth]{sign.pdf}}; - \tikzstyle{C} = [color=black, line width=1pt] - - \draw [<-, C] (coin) -- (b) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (coin) -- (signed) node [midway, above, sloped] (TextNode) {}; - \end{tikzpicture} - \end{minipage} - \vfill - \note[item]{As with the ordinary blind-signature based withdraw, the customer can - then unblind the signature and has a valid coin.} - \note[item]{Without knowledge of $c_{old}$ or $t_\gamma$, the coins derived from this - process are indistinguishable from coins that were withdrawn directly from an account.} - \note[item]{Most importantly, without knowledge of $t_\gamma$ or $c_{old}$, - the $c_{new}$ is unlinkable to $c_{old}$.} -\end{frame} - -\begin{frame}{Exchange: Allow linking change} - \begin{minipage}{5cm} - \begin{center} - Given $C_{old}$ - - \vspace{1cm} - - return $t_\gamma$ and - \begin{equation*} - s := s' b_{new,\gamma}^{-1} \mod n. - \end{equation*} - \end{center} - \end{minipage} - \begin{minipage}{5cm} - \begin{tikzpicture} - \tikzstyle{def} = [node distance= 3em and 0.5em, inner sep=0.5em, outer sep=.3em]; - \node (co) [def, draw=none] at (0,0) {$C_{old}$}; - \node (T) [def, draw=none, below left=of co]{$t_\gamma$}; - \node (sign) [def, draw=none, below right=of co]{\includegraphics[width=0.15\textwidth]{sign.pdf}}; - \node (customer) [def, draw, below right=of T] {Customer}; - - \tikzstyle{C} = [color=black, line width=1pt] - - \draw [<-, C] (T) -- (co) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (sign) -- (co) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (customer) -- (T) node [midway, above, sloped] (TextNode) {link}; - \draw [<-, C] (customer) -- (sign) node [midway, above, sloped] (TextNode) {link}; - \end{tikzpicture} - \end{minipage} - \note[item]{But, how does this address the issue that $c_{old}$ may have a different - owner from $c_{new,\gamma}$? Well, so far it does not! In principle, the envelope can - easily be constructed by someone who was not the original owner of $c_{old}$.} - \note[item]{So how does this help? Well, the exchange has one more sub-protocol, - which is the {\bf link} protocol. Given the old coin's public key, $C_{old}$, - it returns $t_\gamma$, the {\bf public transfer key}, and the blind signature - over the new coin that was rendered as change.} - \note[item]{Note that this is a request that the owner of $c_{old}$ can always - trivially make, as they know $C_{old}$.} - \note[item]{So how does that help?} -\end{frame} - - -\begin{frame}{Customer: Link (threat!)} - \begin{minipage}{6.5cm} - \begin{enumerate} - \item Have $c_{old}$. - \item Obtain $T_\gamma$, $s$ from exchange - \item Compute $X_\gamma = DETSIG_{c_{old}}(t_\gamma)$ - \item Derive $c_{new,\gamma}$ and $b_{new,\gamma}$ from $X_\gamma$ - \item Unblind $s := s' b_{new,\gamma}^{-1} \mod n$ - \end{enumerate} - \end{minipage} - \begin{minipage}{6.5cm} - \begin{tikzpicture} - \tikzstyle{def} = [node distance= 0.75em and 1em, inner sep=0em, outer sep=.3em]; - \node (T) [def, draw=none] at (0,0) {$t_\gamma$}; - \node (exchange) [def, inner sep=0.5em, draw, above left=of T] {Exchange}; - \node (signed) [def, draw=none, below left=of T]{\includegraphics[width=0.15\textwidth]{sign.pdf}}; - \node (dh) [def, draw=none, below right=of T]{\includegraphics[width=0.2\textwidth]{detsig.pdf} ($X_\gamma$)}; - \node (bp) [def, draw=none, below left= of dh] {$b_{new,\gamma}$}; - \node (co) [def, draw=none, above right= of dh] {$c_{old}$}; - \node (cp) [def, draw=none, below right= of dh] {$c_{new,\gamma}$}; - \node (coin) [def, draw=none, below left = of bp]{\includegraphics[width=0.2\textwidth]{coin.pdf}}; - \node (psign) [def, node distance=1.5em and 0em, draw=none, below = of cp]{\includegraphics[width=0.2\textwidth]{planchet-sign.pdf}}; - - \tikzstyle{C} = [color=black, line width=1pt] - - \draw [<-, C] (dh) -- (co) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (dh) -- (T) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (cp) -- (dh) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (bp) -- (dh) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (coin) -- (signed) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (coin) -- (bp) node [midway, above, sloped] (TextNode) {}; - \draw [<-, C] (T) -- (exchange) node [midway, above, sloped] (TextNode) {link}; - \draw [<-, C] (signed) -- (exchange) node [midway, below, sloped] (TextNode) {link}; - \draw [<-, C, double] (psign) -- (cp) node [midway, below, sloped] (TextNode) {}; - \end{tikzpicture} - \end{minipage} - \note[item]{Well, given these two values, the owner of the original $c_{old}$ can - {\bf again} compute the DETSIG (from $c_{old}$ and $t_\gamma$), and then - also derive $c_{new,\gamma}$ and also unblind the exchange's signature using $b_{new,\gamma}$.} - \note[item]{As a result, the owner of the old coin can always compute the change, - and thus is effectively {\bf also} always an owner of the change rendered!} - \note[item]{Thus, we have {\bf reduced} the possibility of abusing the change - protocol for a transaction that would result in a {\bf mutually exclusive transfer - of ownership} to the case where the ownership of the change is {\bf shared}.} - \note[item]{But, we previously explained that {\bf sharing} is not something we can - or would care to prevent, so the change protocol does not weaken income transparency.} -\end{frame} - - -\begin{frame}{Refresh protocol summary} - \begin{itemize} - \item Customer asks exchange to convert old coin to new coin - \item Protocol ensures new coins can be recovered from old coin - \item[$\Rightarrow$] New coins are owned by the same entity! - \end{itemize} - Thus, the refresh protocol allows: - \begin{itemize} - \item To give unlinkable change. - \item To give refunds to an anonymous customer. - \item To expire old keys and migrate coins to new ones. - \item To handle protocol aborts. - \end{itemize} - \noindent - \begin{center} - \bf - Transactions via refresh are equivalent to {\em sharing} a wallet. -\end{center} -\end{frame} +\input refresh.tex \section{Component Zoo} diff --git a/presentations/comprehensive/detsig.pdf b/presentations/comprehensive/unisig.pdf Binary files differ. diff --git a/presentations/comprehensive/detsig.svg b/presentations/comprehensive/unisig.svg diff --git a/presentations/comprehensive/detverify.pdf b/presentations/comprehensive/univerify.pdf Binary files differ. diff --git a/presentations/comprehensive/detverify.svg b/presentations/comprehensive/univerify.svg