關於Defi上簡單的合約判斷 - 數位貨幣

Ingrid avatar
By Ingrid
at 2022-05-22T18:55

Table of Contents

唉,是說也太多人被騙了吧,我都覺我應該開個顧問公司幫你們這些好野人審核approve
就賺翻了,不過人在貪的時候應該都聽不進去。

這禮拜我很衰的中鏢了,自己一個人在房間有夠無聊,來寫個簡單合約判斷積點福報,希
我可以順利康復。

首先,大家要理解為什麼SWAP、添加流動性、質押都需要approve這個動作,我一個一個慢
慢講,反正我現在有的是時間。

SWAP:就是把token X 給流動池然後流動池根據xy=k換算要給你多少Y,所以要完成這件事
需要兩個步驟:傳token X 給流動池、流動池傳token Y 給你。如果一般使用者用
metamask 的token transfer功能只能完成第一步,第二步流動池不會自動幫你執行,你們
必須要知道鏈上所有活動都是要有人來發起付gas fee的,所以這時候就需要智慧合約來幫
忙在使用發起一次tx內完成兩個步驟的SWAP。

追根究柢,其實所謂的流動池就是包有一堆function的智慧合約。那當你對流動池發起一
個tx,跟流動池說我要把1000個token X換成997個token Y的時候,代表流動池的合約要
有權限從你的帳戶拿走1000個token X轉到流動池內(也就是transferFrom,這一步需要有
token approve 額度),然後再從流動池轉997個token Y給你(transfer,這一步不用授權)
說到這裡,大家可以理解為什麼SWAP需要先授權合約可以動你的幣了吧,不然合約就無法
一個tx內完成兩步的SWAP

實際上的SWAP會再複雜一點,會透過一個router的合約,這個合約其實就是幫大家省
gas fee,因為你SWAP X to Y是一個流動池,SWAP X to Z又是另一個流動池,總不可能
X to 100種幣就要approve 100次吧,所以才會有router這個合約,這個合約已經跟他下面
的流動池都授權好了,所以如果來源是token X,只要允許router可以動你的token X他就
可以幫你換成他下面流動池內有對應的幣,連X->A->B->C都可以,只要頭是X就可以。

如果SWAP可以理解,接下來講添加流動性,添加流動性其實也是透過router,原因跟上面
一樣,現在你要添加一個X+Y的流動性進去XY池,需要三步,把同價值的X跟Y傳給流動池
然後流動池按比例產生一定數量的LP token,再把LP傳給你。所以添加流動性跟SWAP其實
是差不多的步驟,就是你用X+Y去SWAP成LP,所以需要授權router可以動你的X跟Y。同理
如果你要用LP贖回你的X跟Y,就是反向SWAP而已,這時候就需要授權router可以動你的LP

最後是質押,有分質押單幣跟質押LP,其實都一樣,質押單幣其實跟添加流動性一樣,
你把X給質押池,質押池給你憑證,例如AAVE,polygon上你質押USDC給AAVE,會拿到
amUSDC的token當憑證,所以amUSDC其實可以在聚合器直接SWAP成USDC。有另一種做法是
不給憑證的,直接記在質押合約裡,某地址質押多少單幣或LP。所以這一步會要求授權
可以動單幣或是LP。

講了這麼多,相信應該很清楚為什麼要approve了,那你們在進行approve的動作的時候,
第一步請確定你approve的對象是合約,要怎麼確定呢,請看我的前文
#1Y3aODE0
裡面可以查approve的對象,然後去etherscan查那個地址,如果是合約會有一個contract
分頁,然後切到那個分頁看有沒有code read write可以看,如果有那就是有驗證code。
到這裡有9成左右是正規的,如果不能看到原始碼,只能看到一堆byte code,那我勸你換
一個SWAP,很高的機率是詐騙。

最後,剩下的1成要怎麼判斷呢,這就需要看裡面的code怎麼寫了,這部分其實很難講,
不過最初步的方法就是搜尋transferFrom這個函數,看用在什麼地方跟怎麼用,上面有提
到你approve老半天其實都是在為transferFrom鋪路,這個函數是可以動你幣的主要函數,
所以上面被莫名其妙轉幣的也都是透過這個函數,會顯示在tx內的inputData裡。不過這只
是最最最初級的判斷方法,真的騙錢合約其實還有很多種玩法,像是proxy,callback之類
的,這些我自己也還在學,所以大家還是盡量找正規有名的DEX玩吧,別去貪心搞一些來路
不明的。

不過我也有玩過來路不明的,也就是土狗礦,只玩10U,賺了10U就跑了,然後就hard rug
了,顆顆。
--
一樣斗內專線
macd-taiwan.near

--

All Comments

Kyle avatar
By Kyle
at 2022-05-21T11:31
MACD!!
Lauren avatar
By Lauren
at 2022-05-23T11:10
好人一生平安
Oscar avatar
By Oscar
at 2022-05-21T11:31
MACD!!!
Odelette avatar
By Odelette
at 2022-05-23T11:10
大佬帶我飛
Hedwig avatar
By Hedwig
at 2022-05-21T11:31
謝謝分享
Hardy avatar
By Hardy
at 2022-05-23T11:10
Queena avatar
By Queena
at 2022-05-21T11:31
實在太複雜了...感謝詳細解說
Rae avatar
By Rae
at 2022-05-23T11:10
Megan avatar
By Megan
at 2022-05-21T11:31
你是好人 但是會被騙的人 SWAP第一段讀完就已經看不懂
Quintina avatar
By Quintina
at 2022-05-23T11:10
感謝說明
Charlotte avatar
By Charlotte
at 2022-05-21T11:31
至少看不懂的人會知道裡面水很深被勸退也不錯
Edward Lewis avatar
By Edward Lewis
at 2022-05-23T11:10
簡單說就是使用者授權給 router contract
再由 router 經過pair contract
function swap 計算完 安全轉移給用戶
不過最麻煩的 router function 選擇器
已由 uni 網頁前後端幫用戶處理好了
最難理解的 還是 aggregator項目的代碼
Todd Johnson avatar
By Todd Johnson
at 2022-05-21T11:31
聚合器就是要串每個dex的介面,本來就會很複雜
不過為了套利我倒是大部分的dex swap介面都會接了
Hedwig avatar
By Hedwig
at 2022-05-23T11:10
解說推。
Olivia avatar
By Olivia
at 2022-05-21T11:31
佛心推 大大真是太好心
Mason avatar
By Mason
at 2022-05-23T11:10
祝福早日康復
Puput avatar
By Puput
at 2022-05-21T11:31
詳細解說給推
Edwina avatar
By Edwina
at 2022-05-23T11:10
push push
Ina avatar
By Ina
at 2022-05-21T11:31
推 祝早日康復
Steve avatar
By Steve
at 2022-05-23T11:10
謝大大,祝康復後沒有副作用
Steve avatar
By Steve
at 2022-05-21T11:31
祝 挑片只需五分鐘
Kumar avatar
By Kumar
at 2022-05-23T11:10
佛心祝早日康復,但會被騙的人大概不會點這篇來看XD
George avatar
By George
at 2022-05-21T11:31
推,長知識
Tracy avatar
By Tracy
at 2022-05-23T11:10
Suhail Hany avatar
By Suhail Hany
at 2022-05-21T11:31
想請問大大如果流動池的合約改成收到一定數量的A token
+ 就自動在扣掉gas fee後,轉對應數量的 B token回去,
是不是就能在不approve流動池使用自己錢包中的 A token
的情況下完成swap呢? 應該是我的假設有問題但又不確定
錯在哪
Mia avatar
By Mia
at 2022-05-23T11:10
確實是看不懂,不過我之前定期會清授權,沒想到被鑽空子QQ
Heather avatar
By Heather
at 2022-05-21T11:31
to傑利蛋 你這樣就授權要交易數量的A就好
例如授權1000A,合約拿走1000A後就不能再動你的A
Sarah avatar
By Sarah
at 2022-05-23T11:10
另外合約只是鏈上的資料,不會自己發起交易,你的作法第二
步需要再發起一次交易,這樣中間的時間差如果有其他交易插
進來那價格要怎麼算給你呢?
這就是為什麼要在一個tx內完成兩步的原因
Leila avatar
By Leila
at 2022-05-21T11:31
這個好!

第一次投資就被詐騙

Eden avatar
By Eden
at 2022-05-22T16:49
雖然第一次在這個板發文 遭受部分不理性網友對待 讓我感到不高興 但是我還是秉持著希望大家不要受騙上當的初衷 將後續發展告訴大家 我一而再再而三 不厭其煩的聯繫 所謂的and#34;客服and#34;後 他們終於有了回應 並且將第三次的DEFI質押資金返回我的帳戶 但是我已經不可能再相信他們了於今日凌晨我申請 ...

幫有錢人代操加密貨幣有法規問題嗎?

Megan avatar
By Megan
at 2022-05-22T16:37
強者我朋友在投資加密貨幣上蠻有一套的 目前算是財富自由狀態 最近因緣際會下牽到一些超級好野人的線 對方願意把一小部分資產給我朋友代操 我朋友想說這就他日常生活一部分 不需要額外做太多事就能拿到績效抽成 但隨即而來的就是 這種幫人代投資加密貨幣不知道有沒有違法 或是在法律上能不能規避掉? ...

V神:以太坊生態太過專注 DeFi,靈魂綁定

Leila avatar
By Leila
at 2022-05-22T16:09
V神:以太坊生態太過專注 DeFi,「靈魂綁定代幣」有助非金融應用發展 近期與另外兩位作者共同發表論文《去中心化社會:尋找 Web 3 的靈魂》的以太坊共同創 辦人 Vitalik Buterin(以下簡稱 V 神),於今日舉行的 ETH 上海峰會上強調去中心化 治理對以太坊生態的重要性。 他指出, ...

USDT那一點點回不去是怎樣?

Ivy avatar
By Ivy
at 2022-05-22T14:41
Bitfinex USDT/USD $0.9988 FTX USDT/USD $0.9988 Binance BUSD/USDT $0.9988 自從上周USDT出現恐慌性賣壓後, 現在就一直差 0.1% 左右 這就搞不明白了, 如果市場恐慌情緒仍在, 那是不是應該會繼續dump下去; 或至少明 ...

pizza bitcoin day今天吃個pizza壓壓驚

Sandy avatar
By Sandy
at 2022-05-22T10:41
今天比薩比特日大家真的會吃比薩嗎 必勝客的活動還送幣 50000satoshi雖然補不了帳戶損失的大洞,台北應該還有其他pizza店有活動吧? https://www.facebook.com/263705449348/posts/pfbid0aSdYmTt9foJJVGPmJH3PAjWxPQZ55Yxg ...