Security Advisory for CoinShuffle and Darkwallet 对于洗币和黑暗钱包的安全公告

Alexy

Well-known Member
Foundation Member
Dash Support Group
Oct 29, 2014
134
203
193
众所周知,比特币的匿名性已很轻易就能被破解,如今很多以给用户和企业带来匿名性的项目已经展开。

暗黑币是第一个以匿名性为首要任务的数字货币。在2014年被创立,它使用名为匿名发送的技术来保障用户资金的安全并保护数据块链以免被追踪。匿名发送使用二层网络,也被称为主节点网络,来提供混淆功能。通过这项技术,用户可以实现高级别的匿名性。匿名发送是trustless的去中心化的技术,几乎是随意使用的。

洗币和黑暗钱包是为比特币网络提供匿名性的新技术。洗币是由萨尔兰大学的研究者创建的。其成员有Tim Ruffing,Pedro Moreno-Sanchez,和Aniket Kate。他们的报告可以在这里找到http://crypsys.mmci.uni-saarland.de/projects/CoinShuffle/coinshuffle.pdf

黑暗钱包在2013年由Amir Taaki和Cody Wilson创建,但从那时已经被一群开源程序员采用。

洗币的问题在于交易完成后返还给第三方的余额。余额一定要妥善处理,这里的匿名处理是很重要的。余额如果没妥善处理,将会暴露出已匿名处理的交易记录。这只要通过跟踪余额就可以办到。

在实现匿名技术时一定要时刻记着数据块链可被双向追踪。这里有个致命点,若你匿名处理了1个比特币,之后花费了其中的一部分,随后的余额一定要与其他可识别的交易分开处理。否则你原本的匿名交易将会被可识别交易曝光。

取自报告:

“零钱钱包地址的使用方法由CoinShuffle提供:用户若没有同样数量被匿名处理过的钱包地址的话,可以在第一阶段添加零钱钱包地址。在第五阶段,every participant adds all the change addresses as outputs of the mixing transaction tx before it is signed. CoinShuffle still preserves the unlinkability between the input addresses and the (regular) output addresses of the honest participants.”

零钱的处理不当时会有两个相关问题。Mario Müller(DarkcoinTalk 用户 Aswan)最初在匿名发送中发现了这个问题。不久前这个问题已经被解决。

1. 洗币的硬伤

之前找零示意图

upload_2015-2-7_23-46-27.png

在这个例子中,Alice匿名处理了1.2个比特币,被拆分为1个和0.2个比特币。随后她花费了1个币中的0.7个,并接收了0.3个币的找零。而这0.3个币进入了可被识别的交易系统,于是追踪0.3个币的出处就可以追查到Alice花费的0.7个比特币的交易。
在Coinbase查看数据链,向前追踪就可以找到“Alice匿名使用了0.7个比特币”,从而暴露了匿名交易。

至于Coinbase,自然就知道了它的用户最近使用匿名方式购买了些东西,这样匿名性就完全没了意义。

通过改变找零方式:
upload_2015-2-7_23-46-42.png

在第二个例子中,Alice从Coinbase购买了1.2个比特币,之后匿名使用了其中的1个币。收到了0.3个币的找零并与之前的0.2个币相加。
通过匿名交易的找零(0.3BTC)和洗币后的余额相加,仍可以找到币的出处以及随后的使用情况,从而破坏匿名性。

解决方法:
所有提到的问题都可以解决,只需要面额化输入和输出。就像美元一样,分为$1,$5,$10,和$20。匿名发送使用的面额分别为0.1DRK,1DRK,10DRK,和100DRK。在网络中进行混淆时,用户只能发送和接收这样面额化的DRK。于是,交易可以通过这种方式保护。
比如,如果用户需要匿名花费1.17DRK,那么他们就要使用1+0.1+0.1个DRK。其中的1.17个DRK发送给收款人,而剩余的0.03DRK作为使用费,从而避免被追查余额而暴露交易。

3. 黑暗钱包硬伤 : 可识别的唯一总额


This mixer is constructed in such a way, where multiple users (or idle mixing bots) are paired up with users desiring to send funds in real time. It’s trivial to de-anonymize any transaction used in DarkWallet due to the unique values of the amounts in the transactions.
upload_2015-2-7_23-47-2.png
举例:
在这笔交易中,0.05个BTC已经经过了处理。但是只要通过把右侧币相加与左侧进行比对。依然可以找到交易的源头。


0.05+0.0499+0.0001(费用) = 0.10BTC.
0.0499+0.05940182+0.0001(费用) = 0.10940182BTC.


虽然随着越来越多用户的使用,追查起来会很难,但是可预见的将来这种方式的匿名依然会被破解。
相关交易:
https://blockchain.info/tx/4eb3b2f9fe597d0aef6e43b58bbaa7b8fb727e645fa89f922952f3e57ee6d603
https://blockchain.info/tx/1694122b34c8543d01ad422ce600d59f8d8fde495ac9ddd894edc7139aed7617

解决方法:


目前对此没有已知的解决方法


4. 洗币与黑暗钱包的硬伤:DOS攻击洗币和黑暗钱包都容易受到DOS攻击,, 恶意用户只需要在最后一步交易时拒绝签名或者在最后一阶段断线即可。鉴于交易的成功完成需要签名,所以只需要在交易过程中拒绝签名就可达到目的。

黑暗钱包和洗币提到了几种解决问题的方法,但是这些方法并不能在攻击来临之前形成对网络的保护。

解决方法:


匿名发送用了一个新颖的方法来保护网络免遭攻击,被成为并行交易。当进行匿名混淆时,用户必须先要完成并签名一笔他想要通过主节点来匿名处理的交易。一旦过程开始,用户就有义务来完成交易中的一切过程。否则collateral transaction will be cashed。可以想象为按照合约存钱,只有你按照合约条款一段时间后才能取钱。


匿名发送交易举例:用暗黑币的典型匿名交易举例,我这里罗列了一套完整的匿名交易列表。 This transaction went more than 10 layers deep (被混淆的资金通过了10个以上的独立主节点, each with 3 total participants). 你可以看到,没有余额来追踪交易,并且每个参与者在各个阶段使用的面额都相同。

http://explorer.darkcoin.io/tx/14be41bfbcda630615be6a7e7df5d2391f60c570bc2280763e22349f689f6474(匿名发送了3.2个DRK)
http://explorer.darkcoin.io/tx/1d7072ab9448d8b59b453fcb53f49f3601f4418e21adc00b03a9bf46cbad7955
http://explorer.darkcoin.io/tx/d71ba5edd833e0a13cc3f4f828e7ae8bdebb7b8eeabc3a780099695d0bde9525
http://explorer.darkcoin.io/tx/327c39874c5e6bb981001b5ac4e14a59549007d202bc42bf404b9232944c1255
http://explorer.darkcoin.io/tx/05be05e35917043ec128fffac6d1c18832f62ed93616cfc805cca1de18b152f7
http://explorer.darkcoin.io/tx/fd946e98a4e4168ba426e69d0a7d2c8a871973c013698900aa4a3c9e23722d5d
http://explorer.darkcoin.io/tx/de8be67ed9a45ded8c179d5cb9e4ca5dc958a57804645cc83ad30a57229bfe05
http://explorer.darkcoin.io/tx/5ce1b10d8d39ee12fada352f646a0bc7fd10e5c68be3657b7e1f25daa96445ec
http://explorer.darkcoin.io/tx/d438fbdc1cd08a9335d0d85705cca1b4b16ae02ccf4c912202288750fa3d3a06
http://explorer.darkcoin.io/tx/12d0d2f81eabc990556126e8e86abd7f6587ce9a252e697d49babe02e1e0784d
http://explorer.darkcoin.io/tx/faa07d6d48cbaabc6cf7f6167cd851b722d8b5d56ed5b45be4c221cd54a4dc7f
http://explorer.darkcoin.io/tx/278ac690ed283b2f8c6d27173fb45d777198b612b3a67484724fea5c340b1b35
http://explorer.darkcoin.io/tx/0c1c8796010c466d340c209bf3804d14f8ded70e523fa92baa25d938491625d7
http://explorer.darkcoin.io/tx/990e5d83a66fa189241af04492496f7d1d2ea7ebb958cc7e3a75185525b94116
http://explorer.darkcoin.io/tx/01edb919d043e7f34a54e58714cd0e4796a7752132d7d7498938b6b9c2ec4595
http://explorer.darkcoin.io/tx/6b32a47efebf9c2d8ed4fd97f6f3787cb01b47100a51fc38cd63457ffe254a05
http://explorer.darkcoin.io/tx/0c16df3800da43b22cfb1caeeedb6ac77e919a8609d0a863337a992f7c9757a6
http://explorer.darkcoin.io/tx/e5a084b5ca7d0f98b80f142fc4a216b5f210e29d5a1c143ac376416240d09074
http://explorer.darkcoin.io/tx/bd2f5435ef5a3ba2ff9c873606745d2ced11854977119a017dbe6ad150cfafde
http://explorer.darkcoin.io/tx/a8452f95817a42531f42440dc5ff489eda0fcf76c3219847cb6bb4e99c0e5d88
http://explorer.darkcoin.io/tx/54e885792b0d7e07604ed3d2915f6b86499b932ebc2c888125ab68b48720abd4
http://explorer.darkcoin.io/tx/26906bef4c41e02565561a54dcdaf9e242d3830921b0ba4d5e5bfa085579a0de
http://explorer.darkcoin.io/tx/1777adc8c015d8282c562d9401902330e9db1ffb18c830222d51c4f7e7c4388b
http://explorer.darkcoin.io/tx/2edccdb8e9544d6d096b0369c02db7b4c8d3350465ca5b7b772609746a27b15c
http://explorer.darkcoin.io/tx/15383602cf81ed5e3ddfac17211b5078cbbd1dcec882c4ec8d0a8ce7e6902496
http://explorer.darkcoin.io/tx/37ec592c7b609e837a6265d7ba28e944e43319a072528e3e6c9e6d39a67a569d
http://explorer.darkcoin.io/tx/995c8ad4347d7157683a3ac40625d366e1f5f8773e5dc8ac2c3a8148aa4cd423
http://explorer.darkcoin.io/tx/b8d1475ca6d43934f4d6ce3d4b2cc7e2a01782c506a4e73e036ed4f83c3cdcf7
http://explorer.darkcoin.io/tx/32ee32b2c2458100a64ee04679c3961f7b714ba3a58e5c425c9ec9d5c4c5b670
http://explorer.darkcoin.io/tx/4162c8bf1704a2eb3d1e8a4e81dfcae144d231c52e33f992814c0a1d381c3eb7
http://explorer.darkcoin.io/tx/59f9bfb8d822b8044e143a8a2c32e753aaa50cc34e179579314a0ca85f200faa
http://explorer.darkcoin.io/tx/57a403abac5e3c244b2206101d4419bf21ede3aee79a69a49eb9bf91dfc4d2ea
http://explorer.darkcoin.io/tx/e00181d3a04aca647501cea5970b84e932838a71e4bbd4e1ed4a0c850d81d26c
http://explorer.darkcoin.io/tx/92c4774c1459b71a111ed9dc04eac80a287040797a179c2618590455a3475114
http://explorer.darkcoin.io/tx/bbba3c932ce873be4d7fcc99832f289e24e94e85dd4fe267d5f9a9daed055228
http://explorer.darkcoin.io/tx/c802ef9a3c7bf82fa95a6bd9afd05eb8ce656e6a292246c2600ae47298d9aefc
http://explorer.darkcoin.io/tx/741b07d77cc42c586228a4704bb9c25e2552277399f443c79e08c1af41004e04
http://explorer.darkcoin.io/tx/fd2f659f41239383bd3ff48062adfee3735c5c35155d2bee045cb044f4f4218e(源)

It’s worth noting that Darksend anonymizes large portions of Darkcoin at a time, so a mixing session like the one above can be used to send many different anonymous transactions afterward.

结论:

我们建议,鉴于洗币和黑暗钱包在设计上的缺陷,不要在敏感交易中使用它们。The issues raised here will apply to a high percentage of all transactions that go through the anonymization process and result in the complete loss of anonymity for users involved.
 
  • Like
Reactions: Raico and tungfa

tungfa

Grizzled Member
Foundation Member
Masternode Owner/Operator
Apr 9, 2014
8,900
6,740
1,283
Great job
you are on fire today !
 
  • Like
Reactions: Alexy

Alexy

Well-known Member
Foundation Member
Dash Support Group
Oct 29, 2014
134
203
193
Great job
you are on fire today !
there's still some sentences need to be translated. It's a examination week- = I will finish Darkcoin Qt 0.11 ASAP.
This Sunday im gonna write a brief introduction in Japanese. putting it into that new plate.
 
  • Like
Reactions: tungfa

tungfa

Grizzled Member
Foundation Member
Masternode Owner/Operator
Apr 9, 2014
8,900
6,740
1,283
I knew
you are ....