來源:創宇區塊鏈安全實驗室
前言
Tornado.Cash作為以太坊網絡上最火的去中心化隱私解決方案,打破了存款人和取款人地址之間的鏈上鏈接,做到了交易機密性,保護了用戶隱私。
越來越多有隱私需求的用戶開始使用Tornado.Cash,那Tornado.Cash真正的隱私性到底如何,能做到百分百的安全嗎?
知道創宇區塊鏈安全實驗室?將對Tornado.Cash進行多維度分析,探索Tornado.Cash真正的隱私可靠性。
Tornado.Cash工作原理
在分析Tornado.Cash之前,我們必須知道Tornado.Cash的工作原理。
Tornado.Cash使用智能合約,接收來自一個地址的代幣存款,并允許他們從不同的地址提款,并且通過零知識證明阻斷了存款地址和提款地址之間的聯系,讓隱私性得到了保護。
其中,匿名池的大小直接決定了Tornado.Cash隱私可靠性的高低,想想如果只有一筆存款進入匿名池,那不管從哪個地址提款,肯定和存款地址是同一個人。
感興趣的讀者可以閱讀官方文檔:how-does-tornado.cash-work。
前期準備
Tornado.Cash目前支持?ETH?及ERC20代幣存、提款交易,我們選取了其中交易量最大的ETH進行隱私性分析,提取了2021-11-04日之前,所有Tornado.Cash合約的交易記錄,數據如下表所示:
可以看到,在啟用代理合約后,大量交易都是通過代理進行,通過匿名池交易量占比圖可知,1ETH匿名池和10ETH匿名池是使用最多的匿名池。
多位加密行業高管批判逮捕疑似Tornado Cash開發者的行為:8月12日消息,一名涉嫌參與Tornado Cash的開發人員被捕,多位加密行業高管對此表示震驚。Mythos Capital和Bankless的創始人Ryan Sean Adams在事件曝光大約兩小時后發推稱,嫌疑人可能編寫了“用于維護人們在線隱私的公共產品代碼”。Cinneamhain Ventures合伙人Adam Cochran也認為這次逮捕是對隱私的侵犯:“代碼就是言論自由。除非這個故事有更多的內容,否則以開發被濫用的隱私工具為由逮捕某人是政府瘋狂的越權行為。”
Aave創始人Stani Kulechov也表達了同樣的觀點,他在推特上說,因為編寫隱私保護代碼而被捕是不正常的:“這次逮捕讓所有隱私/加密開發人員都成為了目標,人們每天都在網上使用隱私工具。”(The Block)[2022/8/13 12:22:20]
交易分析
交易分類
對所有交易進行存款、提款歸類后,統計了每個地址存/提款總額、次數、最大存/提款金額、最小存/提款金額統計。得到了22714個存款地址,31737個提款地址,其中存/提款總額Top10數據如下:
存錢總額Top10
提款地址總額Top10
可以看到,存款地址和提款地址并不是一一對應,也無法知道存款地址和取款地址之間的關系。
挖礦地址過濾
eToro加密貨幣顧問:加密貨幣正接近底部:金色財經報道,?eToro的加密貨幣顧問Glen Goodman表示,加密資產可能會在再次反彈之前接近底部。?Goodman在 7 月 13 日接受采訪時表示,?當你開始在報紙上看到比特幣已經死去的頭條新聞時,加密市場已經結束,你可以推斷這可能意味著我們接近底部。這并不一定意味著我們現在就在底部,但我們接近底部,然后我們會到達頂部,?
根據古德曼的說法,當前的比特幣價格走勢并不新鮮,并且在修正之前反映了資產的歷史上漲趨勢。?[2022/7/15 2:14:21]
Tornado.Cash推出了匿名挖礦激勵措施,用于增加匿名池內交易的數量,提高Tornado.Cash整體的隱私可靠性。
所以我們第一步便是過濾掉匿名池內的挖礦交易,可以大大降低匿名池內交易數量。
通過分析觀察,發現挖礦地址有如下特征:
挖礦地址會到Tornado.Cash礦池合約地址0x746aebc06d2ae31b71ac51429a19d54e797878e9提取TRON代幣;
挖礦地址沒有隱私保護需求,提款的時候一般直接使用自己錢包地址支付礦工費;
挖礦地址一般是常用且交易比較多的老地址;
采用該方法獲取到1051個滿足條件的礦池地址。排除挖礦地址后,存、提款地址數量變化如下:
排除挖礦地址后存款總額Top10
排除挖礦地址后取款地址總額Top10
Reactor將于4月28日開啟RCT代幣空投:4月21日消息,Terra生態協議Reactor將于4月28日晚十點(北京時間)開啟第一階段RCT代幣空投,空投共分三階段進行。并稱,The Big Bang的主要目的是引導Reactor并將RCT代幣分發到Terra生態系統中活躍的社區成員手中。[2022/4/21 14:39:22]
相同地址過濾
存款地址和提款地址相同的交易,沒有交易隱私性,所有也可以過濾掉,過濾后數據變化如下:
存款地址總額Top10
提款地址總額Top10
過濾中繼地址
為了最大化提款地址的隱私性安全性,大部分用戶提款時,會選擇使用中繼器來支付礦工手續費,所以一次提款操作,會有兩筆交易。
其中一筆小額是支付給中繼器的手續費,另外一筆才是真正的提款交易,如下圖
我們使用過濾條件:max>0.8|(max<=0.1&max>=0.08)對中繼器交易進行過濾,過濾后數據變化如下:
eToro增加破產保險政策,但加密用戶不包括在內:加密平臺eToro目前正在提供一項免費保險計劃,如果公司破產,將向持有傳統資產的客戶支付高達100萬英鎊(129.2萬美元)的費用。在周一的電子郵件公告中,該公司表示,該政策還包括eToro平臺上持有的現金和公開賬戶,但加密貨幣不包括在內,因為它們是“不受監管的資產”。(Coindesk)[2020/11/2 11:28:35]
過濾中繼地址后的提款地址次數Top10:
同一用戶關聯地址關系
接下來分析torando交易池里面的地址是否存在關聯關系,在分析之前我們首先排除了礦池地址和中繼器地址之后再進行分析。
分析辦法采用直接交易對手分析方式,假設A是充幣地址,B是提幣地址,A和B之間沒有直接關系,但C地址是A的直接交易對手,C地址同時也是B的直接交易對手,那我們可以判定A和B是有關聯的,直接交易對手的數據直接從鏈探查詢獲取。
按地址類型區分可以把關系分為:充幣地址與充幣地址,提幣地址與提幣地址以及充幣地址與提幣地址三類關系,這三類關聯關系都適用于不同的場景。
1、充幣地址與充幣地址之間的關系
由于tornado只能存0.1ETH、1ETH、10ETH、100ETH,所以在實際轉賬過程中,可能會出現資金分配,礦工費分配,或者存入之后地址剩余ETH匯集等情況。
2、提幣地址與提幣地址之間的關系
在需要提款時,提款地址之間可能也會存在匯集的可能,比如匯集到交易所。
3、充幣地址和提幣地址之間的關系
充幣地址和提幣地址之間是否任然存在關聯,這是關鍵所在,如果是一個非常熟悉隱私交易的黑客,他可能會想盡一切辦法來切斷關鍵地址之間的聯系,但實際操作過程中因為都是人在操作,難免會有疏忽或者遺漏,可能會留下蛛絲馬跡。
動態 | eToro加入區塊鏈協會:據chipin報道,eToro宣布已加入區塊鏈協會,并成為執行成員,將與Coinbase、Circle、Digital Currency Group和Polychain合作,進一步推動區塊鏈協會建立更具包容性、高效率和分布式金融系統以及更多中心化的應用的目標。據悉,區塊鏈協會成立于2018年9月,旨在加強行業創新,滿足對可訪問、透明的金融和技術系統不斷增長的需求。[2018/12/5]
基于以上三個場景和關聯類型的猜想,我們先對100ETH的交易池進行分析。根據直接交易對手數據直接生成相應的關聯圖
第一種情況
充幣地址與充幣地址存在關聯關系,以0x0022d8bda338fd7e5c7248f32090252fd6dc11ef為例:
該地址與多個充幣地址間出現過交易對手重疊的情況,鏈上分析這些地址的關系,可以判斷出該地址在對tornado先后充值100ETH和10ETH之后
剩余的ETH匯集到了0x6bafcd65f9ad3a99509d8d7d987acfa393db7c39地址中,并由該地址將剩余的0.1ETH也充值到tornado交易池中。
第二種情況
提幣地址與提幣地址之間存在關聯關系,以0x9c67d8383f1eeb6e2ff2b0d296aa6a51ea2858a1為例:
該地址與多個提幣地址之間產生關聯關系,這些地址都從tornado100eth的交易池中發起過提幣行為,每個地址都提取了1000ETH
并在提幣之后都匯集到了0x120cffb605c8127442c2f8515eb25749cce52947地址中
繼續分析后續路徑可以看到0x120cffb605c8127442c2f8515eb25749cce52947又將ETH進行了多次周轉最終到了0x32e9dc9968fab4c4528165cd37b613dd5d229650等地址中,并最終經過Swap將ETH換成其他代幣轉到了幣安等交易所中。
上面兩種情況,隱私交易都只在充幣端或者提幣端之后產生了關聯,雖然能夠追溯到一些信息,但充幣和提幣之間的聯系還是斷開的,那么我們探索第三種情況。
正所謂人無完人,再縝密的計劃也可能留下線索,如果tornado的使用者在使用時沒有完全隔離地址,則通過交易對手的關系是有可能關聯上的,以0x167ae15b74cd20482e80f7e425b4ae6d2cc631c4為例。
在上面關聯關系中,五個地址都通過直接交易對手0x4278314c1a50da6014e580cbff34fc383b335049進行關聯,從而在一定程度上可以將這五個地址的出入金關系建立起來,如果進一步挖掘金額和后續資金流向關系,則可以嘗試進一步溯源。
在整個試驗中,100ETH池子有4132個充幣地址,有703個提幣地址,清洗出來有直接交易對手重疊的關聯地址有2859個,大約占整個地址59%左右,說明大部分人在使用tornado隱私協議的時候,因為使用上的疏忽,并沒有做到100%的隱私。
挖出關聯地址也意味著對tornado的溯源成為一種可能,在獲取到大量的關聯地址之后可以根據交易所地址的kyc或者ens推特等渠道進一步挖掘真實信息。
基于案例驗證結果數據
我們從鏈探的黑客事件庫中挖掘歷史上發生過的一些安全事件,并篩選出事件中使用了tornado的相關地址按照上述理論進行分析。
對KuCoin被盜事件進行分析
直接交易對手關聯地址分析
黑客通過8個地址將ETH存入到Tornado100ETH的交易池中,這8個充幣地址通過直接交易對手0x23156749a0acefc8f07b9954d181d50084c1519e和0x82e6b31b0fe94925b9cd1473d05894c86f277398進行了關聯。
而從上面的關聯圖可以看到由于黑客疏忽,充幣地址0x34a17418cec67b82d08cf77a987941f99dc87c6b通過直接交易對手地址0x82e6b31b0fe94925b9cd1473d05894c86f277398和提幣地址0xc609b3940be560c8c00e593bea47fb6ecef6b2c6進行了關聯。
0xc609b3940be560c8c00e593bea47fb6ecef6b2c6只提幣2900ETH,
可以看到黑客因為0x82e6b31b0fe94925b9cd1473d05894c86f277398中沒有足夠的礦工費,
先后從0xc609b3940be560c8c00e593bea47fb6ecef6b2c6和0x23156749a0acefc8f07b9954d181d50084c1519e中轉出過礦工費到0xc609b3940be560c8c00e593bea47fb6ecef6b2c6,
而正好充幣地址的礦工費也從這兩個地址轉出過,從而讓提幣地址和充幣地址建立了關聯。
繼續順藤摸瓜可以發現,提幣出來的ETH又轉到了其他地址,在整個鏈路上繼續深入,可以發現ETH被分散發到了很多地址,并有大量的ETH轉入了幣安的充幣地址0x28c6c06298d514db089934071355e5743bf21d60
至此,整個鏈路追蹤在幣安斷開,如果能獲取到幣安kyc信息便可具體定位人員。
交易所Liquid被盜
發現四個充幣地址向100ETH的池子充過幣,并且通過直接交易對手0x5578840aae68682a9779623fa9e8714802b59946關聯。
FinNexus?DeFi?項目被盜
發現兩個充幣地址關聯,0x5271b379f3e1954e20791142d734596a3de28efd和0x5ebc7d1ff1687a75f76c3edfabcde89d1c09cd5f都向100eth的池充過ETH,并通過直接對手0xfe381bc045b85e0acd93e85ecfe65ecb0fec2a44關聯。
?
整理:念青 11月29日,基于Fabric技術的去中心化交易協議PortalFinance將通過Republic銷售代幣.
1900/1/1 0:00:00作者|?EgirlCapital編譯|?律動BlockBeats通過資產定價模型找出被低估的資產,這或許是傳統金融人最愛干的事.
1900/1/1 0:00:00鏈捕手消息,綜合NFT平臺SuperFarm昨日宣布,首次在由ImmutableX驅動的NFT啟動板上推出NFT:HighriseCreatureClubNFT,并將于11月22日開啟空投.
1900/1/1 0:00:00撰文:頭等倉 Alchemix是以未來收益為支撐的借貸平臺,可實現債務的自我償還且無清算風險,協議的主要用途就是進行收益增強,目前的業務數據表現不錯.
1900/1/1 0:00:00撰文:0x76@律動研究院在Crypto行業的諸多細分賽道中,穩定幣尤其是算法穩定幣,可能是帶給投資者傷痛最多的一個領域。然而行業內的創業者們依然沒有停下探索的腳步.
1900/1/1 0:00:00作者:MisyrlenaEgkolfopoulou、AkaylaGardner,彭博社編譯:Yangz,巴比特現實世界的復雜性開始滲入元宇宙這個虛擬的舞臺,在這里,身份既是社會資本的反映.
1900/1/1 0:00:00