前言
昨晚突然看到群里的一個消息,揭秘uniswap-defi項目漏洞-割韭菜新手法,心想還有這事?而且還是中英文介紹。
到底什么是DeFi?網絡上有很多關于?DeFi的定義,目前通用的定義是這樣的:DeFi是自己掌握私鑰,以數字貨幣為主體的金融業務這個定義包含三個層面的意思:
自己掌握私鑰
以數字貨幣為主體
金融業務
DeFi是DecentralizedFinance的縮寫,也被稱做OpenFinance。它實際是指用來構建開放式金融系統的去中心化協議,旨在讓世界上任何一個人都可以隨時隨地進行金融活動。
在現有的金融系統中,金融服務主要由中央系統控制和調節,無論是最基本的存取轉賬、還是貸款或衍生品交易。DeFi則希望通過分布式開源協議建立一套具有透明度、可訪問性和包容性的點對點金融系統,將信任風險最小化,讓參與者更輕松便捷地獲得融資。
幾年前區塊鏈行業還沒有DeFi這個概念,從默默無聞,一躍成為區塊鏈行業的熱門話題,DeFi只用了短短幾年時間。Uniswap作為完全部署在以太坊鏈上的DEX平臺,促進ETH和ERC20代幣數字資產之間的自動兌換交易,為DeFi發展提供了良好的支持。
DeFi 概念板塊今日平均漲幅為3.12%:金色財經行情顯示,DeFi 概念板塊今日平均漲幅為3.12%。47個幣種中34個上漲,13個下跌,其中領漲幣種為:FOR(+29.16%)、REN(+29.16%)、SUSHI(+17.00%)。領跌幣種為:AMPL(-2.16%)、HOT(-2.06%)、YFII(-1.71%)。[2021/9/16 23:28:36]
作者抓住當下區塊鏈熱門話題DeFi作為文章主題介紹如何利用?uniswap-defi項目漏洞割韭菜。很顯然經過精心思考。
分析
打開教程鏈接,原文教程提醒
Full?open?source?code----only?for?research?and?testing,?don't?cheat?using?this?method
作者特別提醒:完全開放源碼----僅用于研究和測試,不要使用這種方法作弊。
教程中提到合約代碼可以在如下鏈接下載
Click?to?enter?edit?mode?and?copy?the?code?into?it?(download?address?of?the?contract?code:https://wwr.lanzous.com/i4MJOg6f2rg)
ZG. COM將于5月13日上線DeFi挖礦寶第二期:據ZG.COM官方公告,DeFi挖礦寶第一期USDT產品已提前售罄,第二期活動將于2021年5月13日12:00上線。本期參與方式為USDT,最小起投金額為1,000USDT,總額度為1,000,000USDT,認購時間截止至5月18日12:00。
DeFi挖礦寶是ZG.COM打造的一款全新DeFi挖礦產品,給用戶提供便捷的產品管理服務。用戶可認購一定數量的BTC、ETH、USDT等幣種,享受賺幣收益。[2021/5/12 21:53:32]
根據教程提供的鏈接,下載代碼查看
首先看到onlyOwner函數,而且條件判斷中的address是硬編碼的,這里說一下以太坊中的地址
以太坊地址
以太坊中的地址的長度為20字節,一字節等于8位,一共160位,所以address其實亦可以用uint160來聲明。以太坊錢包地址是以16進制的形式呈現,我們知道一個十六進制的數字占4位,160/4=40,所以錢包地址ca35b7d915458ef540ade6068dfe2f44e8fa733c的長度為40。
很明顯,攻擊者特意使用uint160來編碼地址,起到了障眼法作用。如果不認真看,不會注意到這個address函數轉換后的地址。
DeFi 概念板塊今日平均跌幅為1.55%:金色財經行情顯示,DeFi 概念板塊今日平均跌幅為1.55%。47個幣種中13個上漲,34個下跌,其中領漲幣種為:HOT(+13.39%)、LBA(+11.68%)、HDAO(+9.20%)。領跌幣種為:SWFTC(-8.23%)、CRV(-7.10%)、KCASH(-6.71%)。[2021/3/22 19:06:13]
通過對地址進行轉換
即:address(724621317456347144876435459248886471299600550182)?對應地址:0x7eed24C6E36AD2c4fef31EC010fc384809050926,這個地址即位合約實際控制賬戶地址。
繼續往下看原文教程
首先部署合約
然后添加到?Uniswapv1?資金池
這里介紹下?Uniswap
UniswapV1
UniswapV1基于以太坊區塊鏈為人們提供去中心化的代幣兌換服務。UniswapV1提供了ETH以及ERC20代幣兌換的流動性池,它具有當前DeFi項目中最引人注目的去中心化、無須許可、不可停止等特性。
CROSWAP 為首個提出并實現 DeFi+NFT 結合的 SWAP 平臺:據官方消息,由游戲公鏈 Cocos-BCX 基金會投資并提供技術支持的 DeFi 生態產品 CROSWAP 為首個提出并實現 DeFi+NFT 結合的 SWAP 平臺。在 CROSWAP 上,用戶為交易對提供流動性將獲得NFT 流動性憑證,并進行流動性挖礦獲得收益。同時,因 Cocos-BCX 上 NFT 支持動態數據的特性,其他應用可以利用 CROSWAP 生成的 LP NFT進行二次編碼。[2020/9/18]
UniswapV1實現了一種不需要考慮以上特點的去中心化交易所。它不需要用戶進行掛單,不需要存在需求重疊,可以隨買隨賣。得益于ERC20代幣的特性,它也不需要用戶將資產存入特定的賬戶。UniswapV1模型的優點在于根據公式自動定價,通過供需關系實現自動調價。
UniswapV1的運行機制的關鍵在于建立了供給池,這個供給池中存儲了A和B兩種貨幣資產。用戶在用A兌換B的過程中,用戶的A會發送到供給池,使供給池中的A增多,同時,供給池的B會發送給用戶。這里的關鍵的問題在于如何給A和B的兌換提供一個匯率。UniswapV1定價模型非常簡潔,它的核心思想是一個簡單的公式x*y=k。其中x和y分別代表兩種資產的數量,k是兩種資產數量的乘積。
加密投資者CryptoWhale:Yield Farming DeFi代幣都將歸零:DeFi Pulse數據顯示,7月至9月,DeFi的總鎖倉量(TVL)已從19億美元增長到83億美元,9月2日創下96億美元的歷史新高。DeFi市場的迅速崛起歸因于對Yield Farming協議的高需求,這使得一些DeFi代幣在2020年的表現超過比特幣。
但是加密投資者和DeFi評論家CryptoWhale一直在警告投資者注意DeFi欺詐代幣,他認為高達99%的Yield Farming協議將欺騙沒有經驗的投資者。“Yield Farming DeFi代幣都將歸零。創造者完全匿名并控制80-95%的代幣供應,這是有原因的。他們正計劃退出騙局,欺騙盲目買入、貪婪而缺乏經驗的投資者。”(Zycrypto)[2020/9/14]
假設乘積k是一個固定不變的常量,可以確定當變量x的值越大,那么y的值就越小;相反x的值越小,y的值就越大。據此可以得出當x被增大p時,需要將y減少q才能保持等式的恒定。為了做一些更實用的工作,將x和y替換為貨幣儲備金的儲備量,這些儲備金將被存儲在智能合約中。
即用戶可以把部署的合約可以添加到UniswapV1中,通過充入資產提供流動性,獲得該資金池產生的交易手續費分紅,過程完全去中心化、無審核上幣。
接著
You?don't?have?to?worry?that?you?will?lose?money,?because?other?people?can?only?buy?and?can't?sell?it??in?this?contract.?When?the?trading?pair?is?created,?you?can?change?for?another?wallet?(the?wallet?address?of?the?contract?can?be?bought?and?sold)?to?buy?it,?and?then?test?whether?it?can?be?sold.?Here's?the?information?for?selling`
這是為什么?看看代碼
合約代幣101行,require(allow==true),即轉賬地址from需要在allow這個mapping中為布爾值true。
而修改allow在addAllow函數中,且需要合約Owner權限。
通過合約Ownable代碼第13行可知,onlyOwner屬性中,只有地址為724621317456347144876435459248886471299600550182即前面提到的0x7eed24C6E36AD2c4fef31EC010fc384809050926用戶可以通過校驗,而且是硬編碼。這也是原文攻擊者為什么使用了以太坊地址的uint160格式來編碼地址,而不是直觀的十六進制地址。
最終部署的合約SoloToken直接繼承了Ownable合約
即只要用戶部署該合約,合約Owner權限都在攻擊者0x7eed24C6E36AD2c4fef31EC010fc384809050926手中。攻擊者可以隨時轉移合約權限。
在教程中攻擊者還提到
如果你想吸引買家,資金池必須足夠大,如果只投入1-2個ETH,其他人將無法購買它,因為基金池太小。即希望部署合約的用戶在資金池中添加更多的eth數量。攻擊者為什么要單獨Notice呢?
合約代碼第124行,mint函數,Owner權限用戶可以直接增發代幣。這是合約最關鍵部分。即攻擊者可以直接在合約中給指定地址增發代幣,然后利用增發得來的代幣去UniswapV1直接兌換合約部署用戶存放在?UniswapV1?資金池中的?eth?。這也是為啥教程作者著重提示多添加?eth?數量的根本原因。
截止目前,攻擊者地址0x7eed24C6E36AD2c4fef31EC010fc384809050926中已經獲利大約36eth。
總結
Uniswap?因無需訂單薄即可交易的模型創新引來贊譽,也因投機者和詐騙者的涌入遭到非議,在業內人士看來,Uniswap?的自動做市商機制有著特別的價值,作惡的不是Uniswap,但惡意與貪婪正在這個去中心化協議中一覽無余。
流動性挖礦點燃DeFi烈火,火勢燒到去中心化交易所Uniswap。它憑借支持一鍵兌幣、做市可獲手續費分紅,迅速成為最炙手可熱的DeFi應用之一。
財富故事在這里上演,某個新幣種可能在一天之內制造出數十倍的漲幅,讓參與者加快實現「小目標」;泡沫和罪惡也在此滋生,完全去中心化、無審核上幣,讓Uniswap成了人人可發幣割韭菜的溫床。
DeFi作為當下區塊鏈熱門話題,很容易吸引人們的注意。攻擊者利用人們貪圖便宜的好奇心理。使用所謂的?uniswap-defi項目漏洞?教程一步一步帶用戶入坑。以當下區塊鏈中最火的DeFi類為主題,分享了?揭秘uniswap-defi項目漏洞-割韭菜新手法?教程。如果用戶不注意看合約代碼,很容易掉入攻擊者精心構造的陷阱中去。成為真正的韭菜。
REF
UNISWAPissuingtokens-enhancingtokens(consumerscanonlybuybutcannotsell)
https://note.youdao.com/ynoteshare1/index.html?id=a41d926f5bcbe3f69ddef765ced5e27b&type=note?auto
代幣合約
https://wwr.lanzous.com/i4MJOg6f2rg
Wing的首個借貸池運行機制與Compound類似,改良之處在于引入保險和信用要素,降低了抵押率.
1900/1/1 0:00:00親愛的BKEXer:? BKEXGlobal現決定延遲上線HGET,具體上線時間請留意后續公告.
1900/1/1 0:00:00序:BHP2.0星空測試網(https://bhpnet.io)于2020年8月28日正式啟航.
1900/1/1 0:00:00大家好,我是有道,一名專注于區塊鏈技術、數字貨幣分析指導的,帶領自己的技術團隊,指導學員幫助學員扭虧為盈.
1900/1/1 0:00:00尊敬的LBank用戶: LBank現公示從9月11日15:00至9月12日15:00交易量排名前三的中獎名單,具體情況如下:*為保證活動公平,LBank嚴禁刷單、對敲等作弊行為.
1900/1/1 0:00:00本周技術周刊包含以太坊、Polkadot、Filecoin三個網絡的技術類消息。 以太坊網絡 以太坊客戶端Geth已推出v1.9.21版本以太坊核心開發者PéterSzilágyi本周發推稱,以.
1900/1/1 0:00:00