原文標題:《一文讀懂「延時貔貅」的實現原理與防範措施》
原文來源:Odaily 星球日報
下面,Odaily 星球日報將透過簡易概述 ERC 20 和 Uniswap 的原理,講解延時貔貅是如何實現的。
註:文章中的部分類比,為便於理解,並不完全嚴謹。
市場上絕大部分代幣遵守 ERC- 20 標準,而 ERC-20 是什麼,ChatGPT 答案如下:
ERC-20 是一種以太坊( Ethereum )區塊鏈上的代幣標準,它定義了代幣合約必須遵循的一組規則和介面。這個標準規範了代幣的基本功能,包括轉帳、餘額查詢、授權代表他人花費代幣等。
以下是一些主要的 ERC-20 代幣標準規則和功能:
餘額查詢(BalanceOf):使用者可以查詢他們的 ERC-20 代幣餘額,以查看他們擁有的代幣數量。
實際上,該函數不僅具有“查詢”功能,用戶「擁有」多少代幣也由該函數定義。每個代幣可以理解為一個“銀行”,而每個錢包地址在交易代幣後,從“銀行”獲得了一張“儲蓄卡”,記錄了每個地址的餘額(Balance),用戶即可以向銀行申請查詢自己的餘額狀況,也可以向銀行提出資產變更請求進行交易。
註:以太坊採用了帳簿(Account- Based )模型。
因此,用戶本質上並不「擁有」其資產,而是由一個函數「定義」了你可以去」花費「的代幣數量。
即:X 代幣 Balance Of [A 帳號]=A 帳號可以對外花費的 X 代幣數
註:現實世界中的銀行存款是銀行對客戶的債務,銀行具備資產所有權。
所有的 ERC-20 代幣都要完善 transfer 函數,而基於前面的帳本模型,在發生一筆轉帳的時候,也並非 A 帳戶向 B 帳戶「交付」了一筆代幣,而是從 A 帳戶扣款代幣數量 X,在 B 帳戶增加代幣數量 X。
即:Balance Of [A 帳號]-X 同時Balance Of [B 帳號]+X
p>
而開發者可以修改 transfer 函數,對轉帳數量、轉帳人等進行限制。
轉帳函數,是絕大多數貔貅機制的根本源頭。
前一節將每個代幣類比成一個「銀行」,則 Uniswap 在此可以理解為一個承兌的中間人,透過 xy=k 的 AMM 原則兌換兩種代幣。
而兌換的流程如下:
用戶向 Uniswap 合約轉帳代幣 A
- Uniswap 將收到的代幣,透過 y=k/x 計算應返還的代幣,並扣除手續費
- Uniswap 向 LP 池子轉入代幣 A,並取出代幣 B
- Uniswap 向用戶轉帳代幣 B
當然,Uniswap 實際上涉及多個函數和流程,本處需要了解的重點是,Uniswap 僅基於「收到的代幣」進行交易,而在用戶進行「轉帳」操作的時候,數量或已發生了變化。
本節,將貔貅機制分為兩類:
①高交易稅,導致用戶收不到銷售代幣回款;
②無法轉賬,導致用戶無法與 Uniswap 交易。
本小節展示一個具備交易稅的 Meme 幣計算流程如下圖(僅關注紅色部分)。
1、計算交易稅(S)
2、從用戶錢包足額扣錢(BalancerOf[用戶] 減少代幣 A)
3、向開發者錢包或 LP 等地址轉帳(BalancerOf[Dev]增加代幣 A×稅 S)
4、向 Uniswap 轉帳部分代幣兌換代幣 B(代幣  ;A×( 1-S))
5、用戶收到不足額的代幣 B
原文鏈接
歡迎加入律動 BlockBeats 官方社群:
Telegram 訂閱群:https://t.me/theblockbeats
Telegram 交流群:https://t.me/BlockBeats_App
Twitter 官方帳號:https://twitter.com/BlockBeatsAsia