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