为什么别人送钱也可能是坏事?Web3中的粉尘攻击是怎么发生的?
传稻士社区:没有好问题,就没有好答案
为什么黑客送你加密货币,目的却是为了害你?
送的加密货币为啥能变成跟踪你交易的跟踪标记?
万一收到这类粉尘攻击转账了,怎么避免被攻击?
粉尘攻击为什么会造成网络拥堵?
--------
在Web3世界,假如你收到了一小笔钱,千万要当心!
这可能是坏事,有可能黑客对你发起了粉尘攻击(Dust Attack)。
2018年10月,比特币钱包 Bamourai 的开发者发布公告,说他们的客户受到了粉尘攻击。随后该公司发布了一条推文提醒他们的客户,并向客户解释可以通过什么方式来保护自己。为了保护客户免受粉尘攻击,该钱包现在为客户们提供了粉尘追踪实时警报,并提供了一项名为“请勿花费”的功能,该功能将允许客户标记出那些可疑资金,从而避免在未来交易中使用它们。
粉尘攻击最初是针对比特币进行的,后来,其他流行区块链上的加密货币也出现了。
2022年8月16日,区块链数据公司 Glassnode 在推特上称,在最近发生的莱特币“粉尘攻击”中,受影响的地址达 294582 个。在一周前,币安交易所就在推特上称有黑客向莱特币的使用者们发起了大规模的“粉尘攻击”。他们监测到有50个地址收到了 0.00000546 LTC的转账。
什么是粉尘?
在加密货币的世界中,粉尘就是指不值得交易的小额加密货币,因为其价值低于交易费(Gas费用),如果一个钱包就只有这些钱,就会被“卡住”。交易所通常将那些“卡住”且不能被交易的极少量加密货币称为粉尘。
就拿比特币为例,比特币的最小单位是1聪(聪--satoshi是比特币的最小分割单位,也就是 0.00000001 比特币)。
比如,对比特币来说,小于几百聪的数量就是粉尘。因为本身交易金额很小,Gas费(交易费用)常常都高于其本身价值。
粉尘攻击有什么危害呢?
1 黑客可以利用粉尘攻击,追踪用户钱包的动向,猜测用户身份。
你可能觉得奇怪,收到了加密货币,哪怕价值很少,也不是坏事,怎么会需要警惕呢?
的确,收到代币的用户目前并不会遭受损失,但未必今后不会产生损失。
因为,黑客给你打钱的目的有两个。
一个是发现你的这部分资产是如何使用的。另一个是找到所有附加这个代币涉及的地址,然后画出关系网络。
黑客是怎么追踪的呢?
我们来推演一下,假如某个用户小白,收到了“粉尘”,这些“粉尘”就和小白原来钱包地址里那些收到但还没有花费的币( UTXO )混在了一起。
粉尘(蓝色)和原来收到的但未花费的货币混在了一起
小白并没有注意到钱包中所出现的极小金额的收入,当小白把这笔钱用来向别的地址转账或其他交易的时候,就可能会用到这些“粉尘”,这个时候“粉尘”就悄悄地随着小白的交易跑到了别的用户地址里,一直跟踪。
这些“粉尘”就像荧光剂一样,把用户小白的交易行为一五一十的描述了出来。之后黑客们开始追踪那些已经被粉尘化的钱包中的资金和所有的交易,继而连接上这些地址,大多数加密货币行家和交易员都在使用第三方交易所,且最终都要将他们的私人钱包与他们的交易所钱包相连接,而此种方式也就自然而然的连接了他们的个人信息。
一旦黑客猜到小白的身份,就可能对小白进行威胁和勒索,比如发出“我知道你是谁,给我付钱否则我将揭露你的身份”之类的威胁攻击。一些不愿意暴露出自己正在使用加密货币的人只得为此交付高额赎金。
另外,黑客也可能把这个信息用于钓鱼攻击。比如,明星周杰伦持有无聊猿NFT 的信息暴露后,就被黑客盯上,通过钓鱼攻击,引导他到某个网站,结果被偷走了价值 320 万人民币的 NFT。
在加密世界,很多人是匿名,认为他们的隐私权已经受到很好的保护,其实并非如此。当有了交易的细节,与其他来源的信息互相参照后,特别是社交图谱,找关系图,就很容易猜测某个人是谁。
就好像在Web2世界,你在A网站是化名注册,发生了一些行为,具有某种行为特征。在B网站的时候,是实名注册,也发生了一些行为,假如A网站的运营方拿到了B网站的信息,通过同一IP地址访问的情况找出少量用户,再对信息的行为特征进行比对后,就能发现你到底是谁。
2 会造成网络拥堵
为何大量的小额转账会造成比特币网络拥堵?
假如同时发起了 2 笔比特币的转账:
第一笔:小张转给小红地址 10 个BTC
第二笔:小明转给小红、小蓝、小艾三个地址各 0.0001 BTC
在这种情况下,矿工会优先选择第二笔进行打包,因为在比特币网络中,转账手续费与转账的金额大小无关,而是按字节收费。由于情况二转出的地址多,交易数据的字节数要比情况一的多,所以情况二的手续费要远高于情况一。这样矿工会优先打包情况二的交易,从而造成网络拥堵。小张为了能让矿工处理自己的交易,不得不提高出价。
(图中,6月22日的Gas费比前几天暴涨几倍)
例子讲的是比特币,实际上对以太坊也是一样的。
假如中招了,怎么能避免后续的攻击呢?
既然真正出现问题的地方在于小白用了混有“粉尘”的未花费的加密货币,如果小白不花费这笔费用,粉尘资金不被移动,黑客也就无法追踪了,当然也就无法完成钱包或地址拥有者的“去匿名化”。。
但是,小白如果因为这些“粉尘”就永远不花费那其他加密货币,那就太亏了。
有三种解决方案:
方法1 销毁
假如收到粉尘加密货币,再转回去,不仅自己要白白花掉一笔Gas费,还把“子弹”还给了黑客,当然不是最佳做法。
更好的策略是发送给一个空地址来销毁受污染的粉尘加密货币,当然,Gas费还是需要花的。
方法2 隔离
如果不想花Gas费,而是将这些受到污染的粉尘金额标记并隔离起来,这是最简单最有效的方式。
当用户发现了这些来路不明的小额资金后,不去使用它,并彻底隔离它。但这种操作对于用户来说其实很难,很多用户难以甄别攻击,并且难以将他们与UTXO隔离开来。
因此,有一些钱包(比如:Electron Cash )会把这些粉尘单独标记起来,提醒小白不要去使用这些粉尘,相当于把粉尘和其他的加密货币隔离开,这样小白就可以安安心心地使用之前那些加密货币。从而有效的避免了粉尘攻击。
方法3 混币
为了避免粉尘攻击,可以为每笔交易使用不同的地址。由于每个钱包都可以创建很多的地址,每个钱包上的余额是输入金额和UTXO的总和。假如你有2个BTC,可以用1、0.5、0.25和0.25这样的增量来表示,以得到总金额。如此一来,输入地址和输出地址就已经混淆,割裂两者的关系,在具体的使用过程中,一次交易可能包含多个输入和输出,输入和输出之间不再存在一对一的对应关系。
但这样的操作有一定的复杂性,如今应用广泛的混币服务就是基于此原理的服务,大大简化了用户操作,分离交易中的输入和输出地址,目的是提高加密货币的隐私性和匿名性,使其更难追踪加密货币的用途以及它属于谁。用户只需要点击服务选项,即可一键混币,后台会自动进行。不过一般混币服务都需要收费。
由于混币服务能隐藏身份,其实也变成了黑客们“销赃”的主要场地。
今年6月,一名黑客从 Beanstalk Farms 窃取了 1.82 亿美元的以太坊和比特币,之后使用 Fastmixer.Cash 混币服务网站来清洗被盗的加密货币。
另外,进行加密货币交易,重要的就是选择一个可靠且安全的交易所。如果在交易所的个人信息不被泄漏,钱包地址自然也就很难关联到真实世界的人或机构了。
到底黑客是怎么追踪的?
这就需要从 UTXO 的设计原理来说了。UTXO(Unspent Transaction Outputs)是未花费的交易输出,它是比特币交易生成及验证的一个核心概念。交易构成了一组链式结构,所有合法的比特币交易都可以追溯到前向一个或多个交易的输出,这些链条的源头都是挖矿奖励,末尾则是当前未花费的交易输出。
为什么中本聪会这样设计比特币呢?
因为要节约存储空间,在区块链中,因为是分布式存储,每份账本都需要存储在所有节点,所以任何区块空间都是很贵的,能节约就必须节约。
在用比特币交易的时候,区块链会记账。
如果像支付宝的账单、微信支付的账单那样,是很占内存的。比如,你有10元钱,花了5块钱,出来一个“-5元”的账单;然后收到3元钱,又出来一个“+3元”的账单;... ... 以此类推。那么计算余额时是这样计算的:“10-5+3=8(元)”。不但计算过程比较复杂,还很占内存。另外,这种做法可能还会带来更棘手的双花问题。
因此,中本聪提出了UTXO,这是一种基于交易的记账方式。假如通过使用UTXO记账方式替代前面的方式。比如,你有10元钱,花了5块钱,出来一个“之前剩余10元,现在剩余5元”的UTXO账单;然后收到3元钱,又出来一个“上次剩余5元,现在剩余8元”;... ... 以此类推。那么这种模式下,即使你之前的账单丢失了,也能知道当前的余额。并且与基于账户的记账方式相比,在计算复杂度、存储空间等方面,都很占优势。
不仅仅是比特币的分叉币,许多其他加密货币用的记账方式也跟上述一样,所以粉尘攻击很快从比特币和比特币的分叉币蔓延到其他加密货币。
由于 UTXO 具有较难追踪的特质,所以某些聪明人就想到通过向钱包地址中发送少量的代币,将这些地址“粉尘化”。之后就可以通过追踪已经被粉尘化的钱包中的资金和所有交易,紧密跟上这些地址,最后确定这些钱包地址所属的公司或个人。
总结
从上述技术可以看到,在Web3世界,要做到完全匿名并不容易,虽然对比特币和以太坊等区块链进行破解几乎是不可能的,但钱包却是整个加密链中的薄弱环节。钱包在交易所跟用户或机构有关联,这就容易猜到钱包所属的用户是谁。因为交易所必须要实名注册,避免涉及洗钱或恐怖活动的交易。
很多用户根本不在意这些微小金额的“粉尘”,并极有可能以后将这些“粉尘”与UTXO 混合在一起,这导致粉尘攻击的成功率相当高。
所以,当你的钱包多了一小笔加密货币,千万要警惕。
而且,对真实交易来说,一样可以参考粉尘攻击的策略来发现某个加密钱包主人的真实身份。
因此,除了最近发生的粉尘攻击外,还有很多公司、研究中心以及政府机构也都在进行区块链分析,以此来去除区块链的匿名性。
隐私的价值每天都在增长。不管是那些想要隐藏信息的人,还是普通人,都是需要保护隐私的。而对于加密货币交易者和投资者来说则更为重要。