exchange

Base system with REST service to issue digital coins, run by the payment service provider
Log | Files | Refs | Submodules | README | LICENSE

postquantum.tex (21751B)


      1 \documentclass{llncs}
      2 %\usepackage[margin=1in,a4paper]{geometry}
      3 \usepackage[T1]{fontenc}
      4 \usepackage{palatino}
      5 \usepackage{xspace}
      6 \usepackage{microtype}
      7 \usepackage{tikz,eurosym}
      8 \usepackage{amsmath,amssymb}
      9 \usepackage{enumitem}
     10 \usetikzlibrary{shapes,arrows}
     11 \usetikzlibrary{positioning}
     12 \usetikzlibrary{calc}
     13 
     14 % Relate to:
     15 % http://fc14.ifca.ai/papers/fc14_submission_124.pdf
     16 
     17 % Terminology:
     18 % - SEPA-transfer -- avoid 'SEPA transaction' as we use
     19 %       'transaction' already when we talk about taxable
     20 %        transfers of Taler coins and database 'transactions'.
     21 % - wallet = coins at customer
     22 % - reserve = currency entrusted to exchange waiting for withdrawal
     23 % - deposit = SEPA to exchange
     24 % - withdrawal = exchange to customer
     25 % - spending = customer to merchant
     26 % - redeeming = merchant to exchange (and then exchange SEPA to merchant)
     27 % - refreshing = customer-exchange-customer
     28 % - dirty coin = coin with exposed public key
     29 % - fresh coin = coin that was refreshed or is new
     30 % - coin signing key = exchange's online key used to (blindly) sign coin
     31 % - message signing key = exchange's online key to sign exchange messages
     32 % - exchange master key = exchange's key used to sign other exchange keys
     33 % - owner = entity that knows coin private key
     34 % - transaction = coin ownership transfer that should be taxed
     35 % - sharing = coin copying that should not be taxed
     36 
     37 
     38 \title{Post-quantum anonymity in Taler}
     39 
     40 \begin{document}
     41 \mainmatter
     42 
     43 \author{Jeffrey Burdges}
     44 \institute{Inria / GNUnet / Taler}
     45 
     46 
     47 \maketitle
     48 
     49 \begin{abstract}
     50 David Chaum's original RSA blind sgnatures provide information theoretic
     51 anonymity for customers' purchases.  In practice, there are many schemes
     52 that weaken this to provide properties, such as offline transactions or
     53 taxability in Taler.  We describe a refresh protocol for Taler that
     54 provides customers with post-quantum anonymity.  It replaces an elliptic
     55 curve Diffe-Hellman operation with a hash-based encryption scheme for
     56 the proof-of-trust via key knoledge property that Taler requires to
     57 distinguish untaxable operations from taxable purchases. 
     58 \end{abstract}
     59 
     60 
     61 \section{Introduction}
     62 
     63 David Chaum's RSA blind sgnatures \cite{} can provide financial
     64 security for the exchange, or traditionally mint,
     65  assuming RSA-CTI \cite{,}. 
     66 
     67 A typical exchange deployment must record all spent coins to prevent
     68 double spending.  It would therefore rotate ``denomination'' signing
     69 keys every few weeks or months to keep this database from expanding
     70 indefinitely \cite{Taler??}.  As a consequence, our exchange has
     71 ample time to respond to advances in cryptgraphy by increasing their
     72 key sizes, updating wallet software with new algorithms, or
     73 even shutting down.
     74 
     75 In particular, there is no chance that quantum computers will emerge
     76 and become inexpensive within the lifetime of a demonination key.
     77 Indeed, even a quantum computer that existed only in secret posses
     78 little threat because the risk of exposing that secret probably exceeds
     79 the exchange's value. 
     80 
     81 \smallskip
     82 
     83 We cannot make the same bold pronouncement for the customers' anonymity
     84 however.  We must additionally ask if customers' transactions can be
     85 deanonymized in the future by the invention of quantum computes, or
     86 mathematical advances. 
     87 
     88 David Chaum's original RSA blind sgnatures provide even information
     89 theoretic anonymity for customers, giving the desired negative answer.
     90 There are however many related schemes that add desirable properties
     91 at the expense of customers' anonymity.  In particular, any scheme
     92 that supports offline merchants must add a deanonymization attack
     93 when coins are double spent \cite{B??}.  
     94 
     95 Importantly, there are reasons why exchanges must replace coins that
     96 do not involve actual financial transactons, like to reissue a coin
     97 before the exchange rotates the denomination key that signed it, or
     98 protect users' anonymity after a merchant receives a coin, but fails
     99 to process it or deliver good.
    100 
    101 In Taler, coins can be partially spent by signing with the coin's key
    102 for only a portion of the value determined by the coin's denomination
    103 key.  This allows precise payments but taints the coin with a
    104 transaction,  which frequently entail user data like a shipng address.  
    105 To correct this, a customer does a second transaction with the exchange
    106 where they sign over the partially spent coin's risidual balance
    107 in exchange for new freshly anonymized coins.  
    108 Taler employs this {\em refresh} or {\em melt protocol} for
    109 both for coins tainted through partial spending or merchant failures,
    110 as well as for coin replacement due to denomination key roration.
    111 
    112 If this protocol were simply a second transaction, then customers
    113 would retain information theoreticaly secure anonymity.  
    114 In Taler however, we require that the exchange learns accurate income
    115 information for merchants.  If we use a regular transaction, then
    116 a customer could conspire to help the merchant hide their income
    117 \cite[]{Taler??}.
    118 To prevent this, the refresh protocol requires that a customer prove
    119 that they could learn the private key of the resulting new coins.
    120 
    121 At this point, Taler employs an elliptic curve Diffie-Hellman key
    122 exchange between the coin's signing key and a new linking key 
    123 \cite[??]{Taler??}.  As the public linking key is exposed,
    124 an adversary with a quantum computer could trace any coins involved
    125 in either partial spending operations or aborted transactions.
    126 A refresh prompted by denomination key rotation incurs no anonymity
    127 risks regardless.
    128 
    129 \smallskip
    130 
    131 We propose two variations on Taler's refresh protocol that offer
    132 resistane to a quantum adversary.
    133 
    134 First, we describe attaching contemporary post-quantum key exchanges,
    135 based on either super-singular eliptic curve isogenies \cite{SIDH} or
    136 ring learning with errors (Ring-LWE) \cite{Peikert14,NewHope}.
    137 These provide strong post-quantum security so long as the underlying
    138 scheme remains secure; however, these schemes' youth leaves them
    139 relatively untested.
    140 
    141 Second, we propose a hash based scheme whose anonymity guarantee needs
    142 only the one-way assumption on our hash function.  In this scheme,
    143 the vible security parameter is numerically far smaller than in the
    144 key exchange systems, but covers query complexity which we believe
    145 suffices.
    146 
    147 We describe this hash based proof-of-encryption-to-self scheme to
    148 align the description of all our schemes.
    149 
    150 ...
    151 
    152 \smallskip
    153 
    154 %TODO : What is this part for?
    155 
    156 We observe that several elliptic curve blind signature schemes provide
    157 information theoreticly secure blinding as well, but 
    158  Schnorr sgnatures require an extra round trip \cite{??}, and
    159  pairing based schemes offer no advnatages over RSA \cite{??}.
    160 
    161 There are several schemes like Anonize \cite{} in Brave \cite{}, 
    162 or Zcash \cite{} used in similar situations to blind signatures. 
    163 % https://github.com/brave/ledger/blob/master/documentation/Ledger-Principles.md
    164 In these systems, anonymity is not post-quantum due to the zero-knowledge
    165 proofs they employ.
    166 
    167 
    168 \section{Taler's refresh protocol}
    169 
    170 \def\Mu{M}
    171 \def\Eta{}
    172 \def\newmathrm#1{\expandafter\newcommand\csname #1\endcsname{\mathrm{#1}}}
    173 \newmathrm{CPK}
    174 \newmathrm{CSK}
    175 \newmathrm{LPK}
    176 \newmathrm{LSK}
    177 \newmathrm{KEX}
    178 
    179 
    180 We shall describe Taler's refresh protocol in this section.
    181 All notation defined here persists throughout the remainder of
    182  the article.
    183 
    184 We let $\kappa$ denote the exchange's taxation security parameter,
    185 meaning the highest marginal tax rate is $1/\kappa$.  Also, let 
    186 $\theta$ denote the maximum number of coins returned by a refresh.
    187 
    188 \smallskip
    189 
    190 We label place holders $\eta$, $\lambda$, $\Lambda$, $\mu$, and $\Mu$
    191 for key material involved in post-quantum operations.  
    192 We view $\Lambda$ and $\Mu$ as public keys with respective
    193  private keys $\lambda$ and $\mu$, and
    194 $\eta$ as the symmetric key resulting from the key exchange between them.
    195 
    196 We need efficiently computable functions
    197   $\CPK$, $\CSK$, $\LPK$, $\LSK$, $\KEX_2$ and $\KEX_3$  such that 
    198 \begin{itemize}
    199 \item  $\mu = \CSK(s)$ for a random bitstring $s$,
    200        $\Mu = \CPK(\mu)$,
    201 \item  $\lambda = \LSK(t,\mu)$ for a bitstring $t$, 
    202        $\Lambda = \LPK(\lambda)$, and
    203 \item $\eta = \KEX_2(\lambda,\Mu) = \KEX_3(\Lambda,\mu)$.
    204 \end{itemize}
    205 In particular, if $\KEX_3(\Lambda,\mu)$ would fail
    206  then $\KEX_2(\lambda,\Mu)$ must fail too.
    207 
    208 % Talk about assumption that if KEX_2 works then KEX_3 works?
    209 If these are all read as empty, then our description below reduces
    210 to Taler's existing refresh protocol. 
    211 
    212 \smallskip
    213 
    214 A coin $(C,\Mu,S)$ consists of 
    215   a Ed25519 public key $C = c G$,
    216   a post-quantum public key $\Mu$, and
    217   an RSA-FDH signature $S = S_d(C || \Mu)$ by a denomination key $d$.
    218 A coin is spent by signing a contract with $C$.  The contract must
    219 specify the recipient merchant and what portion of the value denoted
    220 by the denomination $d$ they receive.
    221 If $\Mu$ is large, we may replace it by $H(C || \Mu)$ to make signing
    222 contracts more efficient.
    223 
    224 There was of course a blinding factor $b$ used in the creation of
    225 the coin's signature $S$.  In addition, there was a private seed $s$
    226 used to generate $c$, $b$, and $\mu$, but we need not retain $s$
    227 outside the refresh protocol.
    228 $$ c = H(\textrm{"Ed25519"} || s)
    229 \qquad \mu = \CSK(s)
    230 \qquad b = H(\textrm{"Blind"} || s) $$
    231 
    232 \smallskip
    233 
    234 We begin refresh with a possibly tainted coin $(C,\Mu,S)$ that
    235 we wish to refresh into $n \le \theta$ untainted coins.  
    236 
    237 In the change situation, our coin $(C,\Mu,S)$ was partially spent and 
    238 retains only a part of the value determined by the denominaton $d$.
    239 There is usually no denomination that matchets this risidual value
    240 so we must refresh from one coin into $n \le \theta$.
    241 
    242 For $x$ amongst the symbols $c$, $C$, $\mu$, $\Mu$, $b$, and $s$,
    243 we let $x_{j,i}$ denote the value normally denoted $x$ of
    244  the $j$th cut of the $i$th new coin being created. 
    245 % So $C_{j,i} = c_{j,i} G$, $\Mu_{j,i}$, $m_{j,i}$, and $b^{j,i}$
    246 %  must be derived from $s^{j,i}$ as above.
    247 We need only consider one such new coin at a time usually, 
    248 so let $x'$ denote $x_{j,i}$ when $i$ and $j$ are clear from context.
    249 In other words, $c'$, $\mu'$, and $b_j$ are derived from $s_j$,
    250  and both $C' = c' G$ and $\Mu' = \CSK(s')$.
    251 
    252 \paragraph{Wallet phase 1.}
    253 \begin{itemize}
    254 \item  For $j=1 \cdots \kappa$:
    255    \begin{itemize}
    256    \item  Create random $\zeta_j$ and $l_j$.
    257    \item  Also compute $L_j = l_j G$.
    258    \item  Generate $\lambda_j = \LSK((j,i),\mu)$,
    259           $\Lambda_j = \LPK(\lambda_j)$, and
    260             $\eta_j = \KEX_2(\lambda_j,\Mu)$.
    261    \item  Set the linking commitment $\Gamma_{j,0} = (L_j,E_{l_j C}(\Lambda_j))$. 
    262    \item  Set $k_j = H(l_j C || \eta_j)$.
    263 \smallskip
    264    \item  For $i=1 \cdots n$:
    265       \begin{itemize}
    266       \item  Set $s' = H(\zeta_j || i)$.
    267       \item  Derive $c'$, $m'$, and $b'$ from $s'$ as above.
    268       \item  Compute $C' = c' G$ and $\Mu' = \CPK(m')$ too.
    269       \item  Compute $B_{j,i} = B_{b'}(C' || \Mu')$.
    270       \item  Encrypt $\Gamma'_{j,i} = E_{k_j}(s')$. 
    271       \item  Set the coin commitments $\Gamma_{j,i} = (\Gamma'_{j,i},B_{j,i})$
    272 \end{itemize}
    273 \smallskip
    274 \end{itemize}
    275 \item  Send $(C,\Mu,S)$ and the signed commitments
    276    $\Gamma_* = S_C( \Gamma_{j,i} \quad\textrm{for}\quad j=1\cdots\kappa, i=0 \cdots n )$.
    277 \end{itemize}
    278 
    279 \paragraph{Exchange phase 1.}
    280 \begin{itemize}
    281 \item  Verify the signature $S$ by $d$ on $(C || \Mu)$.
    282 \item  Verify the signatures by $C$ on the $\Gamma_{j,i}$ in $\Gamma_*$.
    283 \item  Pick random $\gamma \in \{1 \cdots \kappa\}$.
    284 \item  Mark $C$ as spent by saving $(C,\gamma,\Gamma_*)$.
    285 \item  Send $\gamma$ as $S(C,\gamma)$.
    286 \end{itemize}
    287 
    288 \paragraph{Wallet phase 2.}
    289 \begin{itemize}
    290 \item  Save $S(C,\gamma)$.
    291 \item  For $j = 1 \cdots \kappa$ except $\gamma$:
    292    \begin{itemize}
    293    \item  Create a proof $\lambda_j^{\textrm{proof}}$ that
    294           $\lambda_j$ is compatible with $\Lambda_j$ and $\Mu$.
    295    \item  Set a response tuple
    296           $R_j = (\zeta_j,l_j,\lambda_j,\lambda_j^{\textrm{proof}})$.
    297    \end{itemize}
    298 \item  Send $S_C(R_j \quad\textrm{for}\quad j \ne \gamma )$.
    299 \end{itemize}
    300 
    301 \paragraph{Exchange phase 2.}
    302 \begin{itemize}
    303 \item  Verify the signature by $C$.
    304 \item  For $j = 1 \cdots \kappa$ except $\gamma$:
    305    \begin{itemize}
    306    \item  Compute $\eta_j = \KEX_2(\lambda_j,\Mu)$.
    307    \item  Verify that $\Lambda_j = \LPK(\lambda_j)$
    308    \item  Set $k_j = H(l_j C || \eta_j)$.
    309    \item  For $i=1 \cdots n$:
    310      \begin{itemize}
    311      \item  Decrypt $s' = D_{k_j}(\Gamma'_{j,i})$.
    312      \item  Compute $c'$, $m'$, and $b'$ from $s_j$.
    313      \item  Compute $C' = c' G$ too.
    314      \item  Verify $B' = B_{b'}(C' || \Mu')$.
    315      \end{itemize}
    316    \end{itemize}
    317 \item  If verifications all pass then send $S_{d_i}(B_\gamma)$.
    318 \end{itemize}
    319 
    320 We could optionally save long-term storage space by
    321 replacing $\Gamma_*$ with both $\Gamma_{\gamma,0}$ and
    322  $S_C(\Eta_{j,i} \quad\textrm{for}\quad j \ne \gamma )$.
    323 It's clear this requires the wallet send that signature in some phase,
    324 but also the wallet must accept a phase 2 response to a phase 1 request.
    325 
    326 \smallskip
    327 
    328 There is good reason to fear tax evasion committed during the
    329 initial withdrawal of a coin as well.  A merchant simply provides
    330 the customer with a blinded but unpurchased coin and asks them to
    331 pay to withdraw it.
    332 
    333 \subsection{Withdrawal}\label{subsec:withdrawal}
    334 
    335 In Taler, we may address tax fraud on initial withdrawal by turning
    336 withdrawal into a refresh from a pseudo-coin $(C,\Mu)$ in which 
    337  $C$ is the user's reserve key \cite[??]{Taler} and
    338  $\Mu$ s a post-quantum public key kept with $C$.
    339 We see below however that our public key algorithm has very different
    340 security requirements in this case, impacting our algorithm choices.
    341 
    342 
    343 \section{Post-quantum key exchanges}
    344 
    345 % \subsection{Isogenies between super-singular elliptic curves}
    346 
    347 In \cite{SIDH?,SIDH16}, there is a Diffie-Helman like key exchange
    348 (SIDH) based on computing super-singular eliptic curve isogenies 
    349 which functions as a drop in replacement, or more likely addition,
    350 for Taler's refresh protocol.
    351 
    352 In SIDH, private keys are the kernel of an isogeny in the 2-torsion
    353 or the 3-torsion of the base curve.  Isogenies based on 2-torsion can
    354 only be paired with isogenies based on 3-torsion, and visa versa.  
    355 This rigidity makes constructing signature schemes with SIDH hard
    356 \cite{??SIDHsig??}, but does not impact our use case.  
    357 
    358 We let $\mu$ and $\Mu$ be the SIDH 2-torsion private and public keys,
    359 respectively.  We similarly let $\lambda$ and $\Lambda$ be the
    360 SIDH 3-torsion private and public keys.  
    361 
    362 We envision the 2-torsion secret key generation function $\CSK(s)$
    363 for $\mu$ being deterministic with seed $s$, but the 3-torsion secret
    364 key generation function $\LSK()$ ignores the arguments given above 
    365 Our 2-torsion and 3-torsion public key derivation functions
    366 $\CPK(\mu)$ and $\LPK(\lambda)$ along with our two key derivation
    367 functions $\KEX_2$ and $\KEX_3$, all work as described in
    368 \cite[\S6]{SIDH16}.
    369 % We refer to \cite[??]{SIDH?15?} and \cite[]{SIDH?11?} for further background.
    370 
    371 If using SIDH, then we naturally depend upon the security assumption
    372 used in SIDH, but combining this with ECDH is stronger than either
    373 alone.  
    374 
    375 ... proof ...
    376 
    377 At least, there is no relationship between $\mu$ and $\lambda$ in
    378 SIDH though, so $\Lambda$ cannot itself leak any information about
    379 $(C,\Mu,S)$.  
    380 
    381 % \smallskip
    382 
    383 We note that $\Lambda$ contains two points used by $\KEX_3$ to
    384 evaluate its secret isogeny but not used by $\KEX_2$.  We do not
    385 consider this a weakness for taxability because the cut and choose
    386 protocol already requires that the exchange verify the public
    387 key $\Lambda_j$ for $j \neq \gamma$. 
    388 
    389 \smallskip
    390 % \subsection{Ring Learning with Errors}
    391 
    392 In \cite{Peikert14,NewHope}, there is another key exchange based on
    393 a variant of the Ring-LWE problem.  Ring-LWE key exchange has a
    394 worrying relationship with this hidden subgroup problem on dihedral
    395 groups \cite{??,??}, but also a reasuring relationship with NP-hard
    396 problems.
    397 
    398 We again let $\mu$ and $\Mu$ denote the Alice (initator) side the
    399 private and public keys, respectively.  We likewise let $\lambda$
    400 and $\Lambda$ be the Bob (respondent) private and public keys. 
    401 % DO IT?
    402 Again now, $\CPK$, $\CSK$, $\LPK$, $\LSK$, $\KEX_2$ and $\KEX_3$
    403 can be defined from \cite{Peikert14,NewHope}.  
    404 
    405 A priori, one worried that unlinkability might fail even without
    406 the Ring-LWE key exchange itself being broken because $\lambda_j$
    407 and $\Lambda_j$ are constructed using the public key $\Mu$. 
    408 
    409 First, the polynomial $a$ commonly depends upon $\Mu$, like in
    410 \cite{NewHope}, so unlinkability explicitly depends upon the Ring-LWE
    411 problem\cite{}.  [[ PROOF ??? ]]
    412 
    413 Second, the reconciliation information in $\Lambda$ might leak
    414 additional information about $\lambda$.  
    415 [[ LITERATURE ADDRESSES THIS POINT ??? ]]
    416 
    417 Ring-LWE key exchanges require that both Alice and Bob's keys be
    418 ephemeral because the success or failure of the key exchange
    419 leaks one bit about both keys\cite{}.  As a result, authentication
    420 with Ring-LWE based schemes remains harder than with discrete log
    421 schemes\cite{??RLWEsig??}, and this situation impacts us as well.
    422 
    423 A Taler wallet should control both sides during the refresh protocol,
    424  which produces an interesting connundrum.
    425 An honest wallet could ensure that the key exchange always succeeds.
    426 If wallets were honest, then one could tune the Ring-LWE parameters
    427 to leave the probability of failure rather high,
    428  saving the exchange bandwidth, storage, and verification time.
    429 A dishonest wallet and merchant could conversely search the key space
    430 to find an exchange that fails, meaning the wallet could aid the
    431 merchant in tax evasion. 
    432 
    433 [[ IS THE FOLLOWING IMPOSSIBLE ??? ]]
    434 
    435 If possible, we should  tune the Ring-LWE parameters to reduce costs
    436 to the exchange, and boost the unlinkability for the users, while 
    437 simultaniously
    438 
    439 % \smallskip
    440 % \subsection{Comparson}
    441 
    442 At present, the SIDH implementation in \cite{SIDH16} requires about
    443 one third the key material and 100?? times as much CPU time as the
    444 Ring-LWE implementation in \cite{NewHope}.
    445 [[ We believe this provides a strong reason to continue exploring 
    446 parameter choices for Ring-LWE key exchange along with protocol tweaks.  
    447 ... ]]
    448 
    449 
    450 \section{Hashed-based one-sided public keys}
    451 
    452 We now define our hash-based encryption scheme.
    453 Let $\delta$ denote our query security parameter and
    454  let $\mu$ be a bit string.
    455 For $j \le \kappa$, we define a Merkle tree $T_j$ of height $\delta$
    456 with leaves $\eta_j = H(\mu || "YeyCoins!" || t || j)$
    457  for some leaf index $t \le 2^\delta$. 
    458 Let $t_j$ denote the root of $T_j$.
    459 Set $\Mu = H(t_1 || \cdots || t_\kappa)$,
    460  which defines $\CPK(\mu)$.
    461 
    462 Now let $\lambda_j = \LSK((t,j),\mu)$ consist of
    463 $(t,j,\eta_j)$ along with both
    464  the Merkle tree path that proves $\eta_j$ is a leaf of $T_j$,
    465 and $(t_1,\ldots,t_\kappa)$,
    466  making $\LSK$ an embelished Merkle tree path function.
    467 Also let $\Lambda_j = \LPK(\lambda_j)$ be $(t,j)$
    468 
    469 We define $\KEX_2(\lambda_j,\Mu)$ to be $\eta_j$
    470  if $\lambda_j$ proves that $\eta_j$ is the $t$ leaf for $\Mu$,
    471 or empty otherwise.
    472 $\KEX_3(\Lambda_j,\mu)$ simply recomputes $\eta_j$ as above.
    473 If $\KEX_2$ works then so does $\KEX_3$.
    474 
    475 As $\Lambda_j = (t,j)$, it matters that $\lambda_j$ actually
    476 demonstrates the position $t$ in the Merkle tree.
    477 
    478 ... proofs ...
    479 
    480 \smallskip
    481 
    482 We observe that $\CPK$ has running time $O(2^\delta)$, severely
    483 limiting $\delta$.  We lack the time-space trade offs resolve
    484 this issue for hash-based signature (see \cite{SPHINCS}).
    485 
    486 Imagine that $\delta = 0$ so that $T_j = H(\eta_j)$.
    487 In this scenario, a hostile exchange could request two different
    488 $\gamma$ to learn all $\eta_j$, if the wallet reruns its second
    489 phase.  In principle, the wallet saves the exchange's signed 
    490 choice of $\gamma$ before revealing $\eta_j$ for $j \neq \gamma$.
    491 It follows that even $\delta = 0$ does technically provides
    492 post-quantum anonymity,
    493 
    494 We must worry about attacks that rewind the wallet from phase 2 to
    495 phase 1, or even parallelism bugs where the wallet answer concurrent
    496 requests.  We cannot remove the curve25519 exchange $l_j C$ from the
    497 refresh protocol becausenn such attacks would represent serious risks
    498 without it.  With our $l_j C$ component, there is little reason for
    499 an attacker to pursue $\eta_j$ alone unless they expect to break
    500 curve25519 in the future, either through mathematical advances or
    501 by building a quantum computer.  
    502 
    503 We therefore view $\delta$ as a query complexity parameter whose 
    504 optimial setting depends upo nthe strength of the overall protocol. 
    505 
    506 \smallskip
    507 
    508 We can magnify the effective $\delta$ by using multiple $\eta_j$.
    509 
    510 ... analysis ...
    511 % multiple withdrawals
    512 
    513 We believe this provides sufficient post-quantum security for
    514 refreshing change.  
    515 
    516 
    517 \section{Hash and Ring-LWE hybrid}
    518 
    519 We noted in \S\ref{subsec:withdrawal} above that exchange might
    520 require that initial withdrawals employs a refresh-like operation.
    521 In this scenario, we refresh from a pseudo-coin $(C,\Mu)$ where
    522  $C$ is the user's reserve key \cite[??]{Taler} and
    523  $\Mu$ s a post-quantum public key kept with $C$.
    524 As a result, our hash-based scheme should increase the security
    525 parameter $\delta$ to allow a query for every  withdrawal operation.
    526 
    527 Instead, ...
    528 [[ ??? we propose using a Merkle tree of Alice side Ring-LWE keys,
    529 while continuing to invent the Bob side Ring-LWE key. ??? ]]
    530 
    531 % Use birthday about on Alice vs Bob keys?
    532 
    533 \section{Conclusions}
    534 
    535 ...
    536 
    537 
    538 \bibliographystyle{alpha}
    539 \bibliography{taler,rfc}
    540 
    541 % \newpage
    542 % \appendix
    543 
    544 % \section{}
    545 
    546 
    547 
    548 \end{document}
    549 
    550 \begin{itemize}
    551 \item 
    552 \item 
    553 \end{itemize}
    554 
    555 \begin{itemize}
    556 \item 
    557 \item 
    558 \end{itemize}
    559 
    560 
    561 
    562 
    563 
    564 Crazy pants ideas : 
    565 
    566 Use a larger Mrkle tree with start points seeded throughout 
    567 
    568 Use a Merkle tree of SWIFFT hash functions because
    569  their additive homomorphic property lets you keep the form of a polynomial
    570 
    571 
    572