exchange

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

taler_FC2016.txt (19759B)


      1 ----------------------- REVIEW 1 ---------------------
      2 TITLE: Taler: Taxable Anonymous Libre Electronic Reserves
      3 
      4 ----------- REVIEW -----------
      5 Positives: This paper is interesting, well-written, and accessible.
      6 
      7 Drawbacks: The core technical contribution of the paper is a coin
      8 refresh protocol that (i) is necessitated for making change and (ii)
      9 goes to great lengths to avoid customers abusing it as a transaction
     10 oracle.
     11 
     12 The problem is that I think the paper fails on both (i) and (ii), but
     13 mostly on (ii). A simple way to do (i) is requiring the user to go to
     14 the mint first to make change (as per DigiCash).
     15 
     16 > Withdrawing change matching the next transaction is both highly
     17 > inconvenient for the user and more importantly likely to assist
     18 > in deanonymizing the user as it makes it easy to link the withdrawal
     19 > to the deposit by the amount and the proximity in time.  With
     20 > Taler, withdrawals can be always the same amount (i.e. 20 USD)
     21 > regardless of the specific transaction amounts (i.e. 3.1415 USD).
     22 
     23 You might argue that
     24 with Taler, the user can be offline even if the merchant is online: I
     25 might buy this, but this argument isn’t made in the paper.
     26 
     27 > Yes, this is also true. In fact, in practice it might even be the
     28 > reverse: the merchant is offline but the user is online (this is
     29 > a deployment scenario common in India).  But, as either party can
     30 > obviously proxy the traffic for the other, this is not relevant to
     31 > the paper as the paper is not about network architecture.
     32 
     33 Now this
     34 arguably still requires linkability between the whole coin and the two
     35 split coins however…
     36 
     37 > Not sure we understand, the goal of the refresh protocol is to
     38 > provide unlinkable change.
     39 
     40 Regarding (ii): while Taler does prevent coin refreshes from being
     41 abused, it does not seem to me to prevent the original withdrawal
     42 procedure from such abuse. If Alice wants to pay Bob in a tax-free way,
     43 she can take a blinded coin from Bob and withdraw it from the mint
     44 herself. The mint thinks it is Alice’s coin but only Bob knows the key
     45 in it, and so only Bob can spend it. Alice gives the coin to Bob to
     46 complete the payment. This does not allow a chain of transactions, as
     47 Bob has to do something with the coin, but generally digital cash
     48 services let you return an unspent coin at any time and credit your
     49 account, which Bob could do. But even if he can’t, at least one payment
     50 can be laundered in this way.
     51 
     52 > That is correct, and we never claimed that it does.  In fact,
     53 > we described the loophole in the paper, and have tried to
     54 > further clarify the description in the revision.  Also, in theory
     55 > the refresh procedure could be used during withdrawals once a
     56 > customer has established a "meta-coin" first that is used for
     57 > all withdrawals, but the risks from such a meta-coin compromise
     58 > vs. the (acceptable) withdrawal loophole make this option
     59 > unattractive in the real world.
     60 
     61 Finally, I think the contribution here is somewhat narrow. Linkable
     62 refreshing is done with a cut-and-choose and is not particularly
     63 challenging once you know what you want to do (I suppose the
     64 contribution is partly in developing the requirement, based on real
     65 world requirements).
     66 
     67 > Afterwards protocols are often obvious.  The community has
     68 > for years failed to address the challenge of efficiently
     69 > providing unlinkability for change and protocol aborts.  The
     70 > fact that the solution is comprehensible is an advantage.
     71 
     72 
     73 Other comments:
     74 
     75 [1] I didn’t understand why ZeroCoin is particularly suited for
     76 developing nations?
     77 
     78 > Us neither, we did not claim this.
     79 
     80 [1] Taxability: with reference to income tax, if Alice works at Acme Inc
     81 and is paid her salary, in this case Acme Inc is the “customer” and
     82 Alice is the “merchant”? Is that the idea? Otherwise it seems, the
     83 taxability property should apply equally to customers and merchants.
     84 
     85 > Yes. If Alice works, she is selling her labor and thus a merchant,
     86 > while her employer is the customer.
     87 
     88 [1] The change protocol sounds like it solving the same problem as
     89 HINDE. While HINDE isn’t well documented, the authors should attempt to
     90 contrast their approach with it. In HINDE, the customer creates coins to
     91 withdraw (so only they can spend them) but the merchant pays for the
     92 withdraw. These can be used as change. It is compatible with DigiCash.
     93 
     94 > We tracked down Ian Goldberg (author of HINDE, which was never
     95 > published), asked him about the system, compared it in the paper,
     96 > and were told the year afterwards by reviewers from the same
     97 > conference (see FC 2017 reviews) that putting a HINDE reference was
     98 > inappropriate. We have left the discussion for now.
     99 
    100 [2.1] “easily taxable” -> this concept paints a picture of the tax
    101 agency proactively looking at transactions. A better way of describing
    102 it might be that it leaves an audit trail for tax agencies.
    103 
    104 > We have stressed the fact that the system produces evidence.
    105 
    106 [2.1] There is no casual relationship that can be proven between
    107 Bitcoin’s independence as a currency and its volatility. All you can
    108 really say is that today, Bitcoin is more volatile than certain
    109 currencies (and less so than others) but we have no idea why and if that
    110 might change in the future.
    111 
    112 > Economists have a pretty good idea as to the causes of volatility.
    113 > The relatively small size of the Bitcoin "economy" is such an
    114 > indisputable reason.
    115 
    116 [2.1] I don’t see AltCoins as a “problem.” You are correct that Bitcoin
    117 is less a currency and more an open protocol for creating new
    118 currencies. So what? And why do altcoins become a ponzi scheme? (Noting
    119 that you do not say that they might become one, rather that they do).
    120 
    121 > We have adjusted that language, as some like Dogecoin have removed
    122 > the 21 billion BTC cap to reduce the ponzi-like tendencies.  
    123 > There remains a large trend towards ponzi schemes in the altcoin
    124 > world however, amusingly noted by https://ponzico.win/ and 
    125 > https://www.reddit.com/r/Bitcoin/comments/1zzzq0/ponzicoin_operator_steals_money_investors_get/
    126 
    127 [2.2] How does Taler avoid Chaum’s patent on his blind signature scheme?
    128 It seems to be built on it. (Could you use Lucre instead?) (Or is it
    129 that Chaum’s patent has expired?)
    130 
    131 > The patents have expired.
    132 
    133 [2.2] I thought DigiCash used the Chaum-Fiat-Naor (or variant) scheme
    134 for offline detection of double-spending? Even if it didn’t, you should
    135 mention the possibility of using this kind of detection mechanism (and
    136 variations from Ferguson, etc)
    137 
    138 > There are different versions of the DigiCash protocol, some suitable
    139 > for offline detection of double-spending.  But any such scheme
    140 > creates the deanonymization risk we mention in the paper.
    141 
    142 [2.2] Divisible e-cash is a subject with many publications beyond
    143 Brands’ work. The authors should include a broader survey of this as it
    144 seems pertinent. They should also consider anonymized change protocols,
    145 as mentioned above, such as HINDE.
    146 
    147 > We have expanded our discussion here.  None of the other systems
    148 > achieves expected O(log n) performance (the best are still O(n)).
    149 
    150 [3.1] To be clear, the anonymous channel only hides the customer’s
    151 identity, not that of the merchant or mint? (Which is obviously what Tor
    152 provides in its base form, without hidden services)
    153 
    154 > Correct.
    155 
    156 [3.1] Why does the customer need an anonymous channel when interacting
    157 with the mint?
    158 
    159 > An anonymous channel is needed only when fetching /keys and during
    160 > refresh, for unlinkability vs. the transaction with the merchant.
    161 > However, for location privacy it is generally still advisable to
    162 > always use an anonymous channel, as the exchange should
    163 > not learn more information than necessary.
    164 
    165 [3.2] The discussion of copying private keys is informative but I’m not
    166 sure it is sufficient. If the signature scheme is one that admits
    167 threshold signing (or even just distributed key generation), it might be
    168 possible that entities own shares of a single private key in a way that
    169 is indistinguishable from the situation where there is only one private
    170 key. In this case, they do not have to worry about the other party
    171 absolving with the funds (but they do have to worry about the other
    172 party cooperating when one party wants to use the funds).
    173 
    174 > Right now, we discuss coping coins only in the context of its 
    175 > inevitability  and its relationship to taxability. In future, we do
    176 > envision wallets supporting the transfer of coins between friends
    177 > and family, with the refresh protocol used to recover from problems.
    178 >
    179 > There are interesting things one could do with threshold signing
    180 > and even group signatures of course, but these seems like niche use
    181 > cases that do not warrant the protocol complexity.  We have not
    182 > evaluated if a simple change like using a BLS signature scheme
    183 > might support such use cases at the exchange level, but doing so
    184 > might make the refresh protocol subject to the ever improving attacks
    185 > on pairings, so again the complexity seems unwarranted for now.
    186 
    187 [3.3] I think you understate the benefits of the mint knowing the
    188 identity of the customer: many countries have Know Your Customer (KYC)
    189 laws for organizations like your mint—as many Bitcoin business are now
    190 finding out about :) I would explicitly add KYC to your list of
    191 requirements.
    192 
    193 > We are aware of this requirement and its importance (and that we
    194 > satisfy it). But, as it is not a contribution, we did not stress it
    195 > in the paper.
    196 
    197 [3.4] In case of a loss mint private key, you say customers can exchange
    198 their unspent coins. I think you either mean (i) their potentially
    199 unspent coins (because the mint only has a list of <customer, amount>
    200 and doesn’t know what was spent) or (ii) the bank keeps a record of the
    201 blinded coins it has signed and the customer must spend their coin (to
    202 prove it is unspent) and provide the blinding factor (to prove it was
    203 issued and not made up with the leaked key). In either case, this needs
    204 much more explanation (or a forward pointer if it is explained later).
    205 
    206 > We have added a section about the payback protocol. Note that when
    207 > the exchange is asked for payback of a coin, it CAN check whether that
    208 > coin has been spent already (after all, that's the table it has for
    209 > double-spending detection).  Only the party that has stolen the private
    210 > key could now mint "fake" coins and claim those. This is prevented
    211 > by payback asking for the blinding factors and only refunding to
    212 > the original reserves, thereby limiting the damage.
    213 
    214 [3.5] Is there any real difference between spending a fraction of a coin
    215 a refreshing it, or going to the mint and exchanging a whole coin for
    216 two new coins (one worth the value of the transaction and the other
    217 worth the difference)? This is effectively how Digicash works. To link
    218 the old (whole) coin to the new issuance, the customer could be required
    219 to provide the blinding factors.
    220 
    221 > Exchanging a whole coin for two new coins would allow a conspiracy
    222 > between customer and merchant to launder money. The refresh protocol
    223 > prevents this.
    224 
    225 [4.1] IIRC Chaumian blind signatures are based on RSA. You are using
    226 discrete logarithms (presumedly if you are using elliptic curves). Blind
    227 sigs in the DL setting exist of course, but you should specify and cite
    228 an appropriate one.
    229 
    230 > We don't use blind sigs in the DL setting. We use RSA blind signatures
    231 > and Ed25519 for all _other_ signatures.  Taler has about 30 places
    232 > in the protocol where different parties sign different types of
    233 > messages.  Only the validity of coins is attested with RSA signatures,
    234 > the rest uses Ed25519.  ECDH(E) is used for the refresh protocol.
    235 
    236 [4.6] If Alice pays $75 to Bob using a $100 coin, is there any technical
    237 difference between (a) Bob limiting the coin to $75 and Alice refreshing
    238 the coin and (b) Bob taking the $100 but issuing a $25 refund to Alice,
    239 who then refreshes the refund?
    240 
    241 > For the refund case, Bob needs to interact again with the exchange,
    242 > and Alice has to worry about Bob not providing the refund.   Thus it
    243 > is more efficient and for Alice more secure to directly only pay $75.
    244 
    245 
    246 ----------------------- REVIEW 2 ---------------------
    247 TITLE: Taler: Taxable Anonymous Libre Electronic Reserves
    248 ----------- REVIEW -----------
    249 
    250 This paper presents a number of important design ideas: it adapts
    251 chaums' e-cash ideas to the modern settings, and augments it with modern
    252 notions of anonymity for the spenders, traceability and accountability
    253 for the merchant, the ability to levy tax, and features to prevent
    254 fraud. A key assumption used, that makes it different from traditional
    255 e-cash, is that on-line checks are expected, making traceability and
    256 identity escrow unnecessary to prevent double spending.
    257 
    258 The paper does present some good ideas: it is pragmatic about balancing
    259 abuse prevention with privacy, and also recognizes that modern monetary
    260 systems have to support taxation and known merchants. It also uses the
    261 rule of law to enforce parts of contracts (such as delivery of goods)
    262 rather that complicating the protocols with such things -- which other
    263 designs attempt and fail to address in a satisfactory manner.
    264 
    265 At the same time, the paper also has some serious issues, that prevent
    266 me from wholeheartedly supporting its acceptance: first, it reads a
    267 little like a white paper. The details of the crypto are a bit thin, and
    268 it is not clear how to instantiate specifically the blind signatures and
    269 other primitives proposed.
    270 
    271 > We have now been very specific about our instantiations, forsaking
    272 > the previous generality of the description.
    273 
    274 Following from this, there is no evidence any
    275 part of it has been implemented and evaluated for any system aspect --
    276 performance, latency.
    277 
    278 > The implementation has existed for a while, we have since added
    279 > a performance evaluation.  However, CPU for the cryptographic
    280 > primitives (EdDSA, RSA) and network latency dominate the performance
    281 > characteristics, so they are not terribly interesting.
    282 
    283 This is a missed opportunity, as such an
    284 implementation -- and its evaluation -- would provide a good reference
    285 point to compare with the more expensive crypto-currency designs;
    286 
    287 > We're like 10,000,000x more efficient than Z-Cash.
    288 > But Taler is not a crypto-currency, so this is comparing apples and oranges.
    289 
    290 finally, the paper makes reference to blind signatures from Chaum, but
    291 of course a number of constructions -- allowing for efficient proofs --
    292 have been proposed since. It is not clear the authors appreciate their
    293 importance or even existence.
    294 
    295 > We considered various blind signature schemes and left the original
    296 > protocol description ambivalent as to which instantiation is used.
    297 > Above, you criticized us for leaving it open.  Regardless, the RSA
    298 > scheme still seems to offer the best security/performance trade-off,
    299 > and we also value simplicity and extensive peer-review of the
    300 > cryptographic primitives used for production systems.  So far, none
    301 > of the schemes compete.  In particular, the elliptic curve blind
    302 > signatures mostly require extra round trips. 
    303 
    304 However, providing proofs of the statement to be signed is important,
    305 and a potential attack on the presented scheme may illustrate this. The
    306 scheme suggests that a any transfers of value should be taxed. However,
    307 the issuing protocol in 4.1 can be abused to transfer a coin, without
    308 paying tax, and in an unlikable manner.
    309 
    310 > Technically 4.1 is not transferring a coin, as it is issuing a coin.
    311 > Again, the loophole is/was discussed in the paper.
    312 
    313 The party withdrawing the coin
    314 may chose to use a public key belonging to someone else in step 4 --
    315 thus asking for a coin controlled by another entity to be signed by the
    316 issuer. As a result, the coin can be directly used by the other party,
    317 without any visible transfer (or use of the spending protocol). This
    318 could be avoided by using a modern credential issuing protocol that
    319 ensures the party withdrawing a coin, knows the secret associated with
    320 the coin -- something that traditional chaum blind signatures can only
    321 achieve with a cut-and-chose technique, which is very expensive.
    322 
    323 > Any such credential issuing protocol could still be defeated trivially
    324 > by Alice sharing her credential with Bob.  We also note that the
    325 > refresh protocol provides exactly this mechanism, with the original
    326 > coin serving as this credential.  The problem is that there is no
    327 > credential we could anchor the initial withdrawal to, without
    328 > risking catastrophic failure in case the credential is compromised.
    329 
    330 So my advice would be to chose a modern credential scheme to instantiate
    331 the protocol, such as the anonymous credential light (Baldimtsi et al)
    332 protocols, actually implement the protocol, and then provide a thorough
    333 security and performance evaluations.
    334 
    335 > Single-use credentials as proposed by Baldimtsi are inherently
    336 > dangerous as users can accidentally deanonymize themselves
    337 > (i.e. by paying from a wallet restored from backup).  This is
    338 > basically the same problem with offline payments that we discuss
    339 > in the paper.
    340 
    341 
    342 ----------------------- REVIEW 3 ---------------------
    343 TITLE: Taler: Taxable Anonymous Libre Electronic Reserves
    344 
    345 ----------- REVIEW -----------
    346 It seems like the only novelty here has to do with the mechanism to
    347 unlinkably refresh partially-spent coins. I can imagine that being
    348 useful! But I'm not sure it would be useful. Its value should be
    349 compared to on-line-verified DigiCash Ecash, to which it is most
    350 similar, to Bitcoin (it is clearly better for payer-privacy than
    351 Bitcoin) and to Zerocash. I think it is probably better than Zerocash in
    352 some performance measures, and in avoiding the need for secure parameter
    353 setup (which raises the possibility of a backdoor in Zerocash).
    354 
    355 There are a lot of comparisons to Chaumian off-line
    356 double-spending-detection, but those aren't as relevant as a comparison
    357 to Ecash would be. The only difference in functionality between TALER
    358 and Ecash as far as I can tell is the ability to spend a part of a coin.
    359 It isn't clear to me how important that is.
    360 
    361 But, this paper is rather weighed down by a lot of other stuff which is
    362 not novel and/or of questionable value. DigiCash Ecash as deployed (not
    363 as described in the original paper) already did on-line verification.
    364 
    365 > Yes, but Ecash did not provide unlinkable change with taxability / income
    366 > auditability / whatever you want to call it.
    367 
    368 I object to the headlining motivation of "taxable". The scheme is
    369 neither necessary nor sufficient for taxation, and should instead be
    370 called something like "payer-anonymous, payee-auditable". As far as I
    371 understand, there's nothing in TALER that makes it more amenable to
    372 tracing/auditing (or as they call it "taxability") than Ecash. Both
    373 DigiCash Ecash and TALER seem to be less traceable/auditable than Bitcoin.
    374 
    375 > Bitcoin does not require users to identify themselves to open a bank
    376 > account before they can receive funds.  The reason that criminals
    377 > can extort money this way is one of the reasons for the rise of
    378 > cryptolocker malware.  Ecash and Taler do not suffer from this problem
    379 > because the state can (via the existing banking system customer
    380 > identification processes) establish the owner of a bank account.
    381 > Auditable is too neutral as a term; Bitcoin is auditable: anyone can
    382 > check that it operates "correctly", but it is not taxable by our
    383 > definition as the state cannot apply a 100% crime tax to the cryptolocker
    384 > criminals. With Taler or Ecash, this would be possible.
    385 
    386 A few positive comments:
    387 
    388 Positive: explicitly mentions privacy risks: network (addressed with
    389 Tor), mint-selection, merchant-customer metadata
    390 
    391 Positive: explicitness about when durable writes ("commits") are needed,
    392 and about resumption
    393 
    394 Positive: explicitness about expiration/garbage-collection
    395 
    396 Positive: explicitness about multiple mints