網絡手續費
我們講單例模式首先要了解單例著重要解決什么問題。這個問題是網絡手續費。不需要太深入到opcode計價表,區分calldata和storage,我們只需要記住一個事實:跨合約調用是昂貴的,寫數據是昂貴的。舉個例子來說,如果我們觀察一個user->A->B->C的uniswapv2的路由交易,我們需要訪問幾個合約呢?對于用戶來說,只想完成A-C的兌換,我們一起來算:
router合約
userA資產減少變更,需要去Atoken合約登記一下,寫入新余額
調用pairA->B
pairA->B的B資產轉移到用戶user地址,需要去Btoken合約登記一下transfer,寫新余額
pairB-C的的B資產增加,user的資產減少,去Btoken合約登記一下
調用pairB->C
pairB->C的C資產減少,B資產增加
除了傳遞兌換信息的router調用外,其他的6次:兩次pair調用,token的結算4次。單例要解決的就是這六次的調用。我們有機會減少嘛?
5.53億枚ARB于7小時前轉至151個解鎖合約地址:8月16日消息,據Spot On Chain監測,5.53億枚ARB于7小時前由標記為“Arbitrum: Investors ARB Vesting”的Safe多簽地址轉至151個解鎖合約地址,約合6.31億美元。
其中0xdb2開頭合約收到875萬枚ARB,收到的代幣數量最多;15個合約地址分別收到5.87萬ARB,收到的代幣數量最少。這可能是為2024年3月16日首次ARB解鎖做準備。[2023/8/16 21:27:03]
pool不再是一個地址
我們在v2和v3時,pool是一個通過工廠合約創造的智能合約。里面有流動性的數據和負責交易的接口。而在v4中,多個pool都在poolmanager下面的存儲。當我們構造一個新的pool時,并沒有構造一個新的智能合約,而是在poolmananger下多了一些數據。
按照傳統軟件工程的觀點,這么設計耦合嚴重,所有的代碼功能塞到一個文件/智能合約里是不太好的。但是對于無情的gas計價程序來說,這么做能省下不少gas,這就是好設計。
但是這么做也有一個明顯的問題,就是原來一個pool管理兩種資產,現在一個poolmanager管理無數個資產。怎么才能算清楚我賬上的10個Atoken是屬于哪個pool的呢?這和下一個問題也有關系。
某巨鯨抵押420枚WBTC借入DAI,并存入Maker DSR池:8月7日消息,據Scopescan監測,隨著Maker DAI儲蓄率(DSR)上調至8%,一些巨鯨開始將大量資金存入Maker。
3小時前,0x4a開頭地址存入420枚WBTC(約合1220萬美元)作為抵押品,借入670萬枚DAI,然后將所有DAI存入Maker DSR池。[2023/8/7 21:29:30]
從菜市場到賭場
我們回到7次調用的問題,我們只解釋了單例為什么能解決pair的調用。對于V2V3的模式來說,更像是菜市場買菜。我們每一次swap都要錢貨兩清。然后去下一個檔口賣不同的菜。但是對于以太坊的ERC20來說,錢貨兩清這一動作是要支付手續費的。
我們現實生活中有另一種辦法管理多個檔口的方法,就是賭場籌碼。籌碼可以出入口清算,至于個別用戶是如何虧的、如何賺的,負責兌換的服務員毫不關心,我們只在進門出門清算,中間的輸贏并不需要上報銀行系統劃轉資產。而v2v3的菜市場模式中,我們則支付了eth來把每筆的清算都寫進區塊鏈了,自然就貴了。當然這也不是什么新鮮的方案,這是我們熟悉的CEX方案。
但是相較于CEX,一個智能合約籌碼清算方案有額外的優勢:如果我們極端一些,如果我們在A檔口贏了10U的籌碼,但是在你跑步去前臺清算的路上,賭場倒閉了,那么我們的錢就沒有了。notyourkey,notyourmoney。但是dex不一樣,你化身閃電俠,一筆鏈上交易的結構中跑了很多swap的操作,你會光速但是按照順序跑完入金,兌換籌碼,下場,出場結算。evm落后的單線程保護你跑得贏,跑得快。當然,我們焦慮也是多余的,一個去中心化交易所是不會倒閉的,更為重要的優勢是這一筆交易是可以鏈接其他DeFi的,雖然業務走的多,但是還是Defilego世界的一環。
Blur TVL達到1.72億美元續創歷史新高:金色財經報道,NFT聚合交易市場Blur在其官推發布最新數據顯示,其平臺總鎖定價值(TVL)已達到1.72 億美元,續創歷史新高。[2023/6/22 21:54:26]
我們基本講清楚了單例是如何解決我們說的7次調用的問題。至于籌碼是如何記賬的,為什么大家還在說復式記賬法,這部分就需要深入代碼講了。我們先略過。我們再來復習一下user->A->B->C的uniswapv4的路由交易:
調用router
outer找poolmanager
兌換籌碼
去poolmanager找pool的內部位置
交易
重復2/3步驟兩次
兌換籌碼
那么我們這次調用了幾個合約呢?4個。router、poolmanager、tokenA、tokenC。我們使用了poolmanager來規避了額外的兩次pair調用和兩次tokenb的記賬。
HOOK
一個pool有下面八個時點(v4-core/contracts/interfaces/IHooks.sol):
Binance將縮減ETH質押贖回處理時間至5天:5月11日消息,Binance將縮減ETH質押贖回所需時間至5天,自2023年05月18日16:00(東八區時間)起生效。此舉將大幅減少原所需處理時間(原為15天)。[2023/5/11 14:57:09]
beforeInitialize/afterInitialize(before/afterthestateofapoolisinitialized).
beforeModifyPosition/afterModifyPosition(Thehookcalledbefore/afterapositionismodified)
beforeSwap/afterSwap(Thehookcalledbefore/afteraswap)
beforeDonate/afterDonate(Thehookcalledbefore/afterdonate)
在這8個時點,pool的創建者可以插入自己的代碼。注意,用戶可以在hook規定好的行為中,選擇注冊自己期待使用的時點和方法。當其他人觸發,例如其他用戶交易后,用戶可以被動的執行代碼。注意,hook定義權在pool的構建者,并不是pool的用戶能定義的。當然用戶可以用腳投票選一個自己喜歡的。
數據:過去24小時全網爆倉1.34億美元:金色財經消息,據Coinglass數據顯示,過去24小時全網爆倉1.34億美元,其中以太坊爆倉7775.43萬美元,占全網爆倉總額的58%。比特幣爆倉2162.53萬美元。[2022/7/25 2:35:04]
這里我故意先使用了非常抽象而不是非常具體的描述方式,因為過于具體會限制想象力。我們馬上會給出具體的例子。
我們進一步學習代碼后,需要大家注意的是下面幾點:
構造一個pool,需要指定hook。
hook也沒有后續修改的方法。pool和hook綁定。當然hook也可以是一個可升級合約。
如果想做一個符合自己需求的hook,那要構造一個新的pool
僅僅是hook不同,同一個交易對可以有多個pool
官方給了幾個例子,其中比較有學習意義的是現價單的hook。其實不需要看代碼,limitorder做了下面的一些事情
管理用戶注冊的:
placeorder
kill
withdraw
管理時點的:
afterswap:觸發后,查找是否有可執行的limitorder,fill訂單。
這就是limitedorderhook的全部功能。
我們認為hook只是一種業務描述思路,如果你想做的業務可以分解成用戶行為注冊,和時點被動觸發行為,那么你的業務就可以遷移到uniswapv4中。可以是限價單,可以是時間加權AMM。
從這個角度出發,我們完全可以處理業務,不能局限于交易場景。借貸、期權、穩定幣、NFT都可以用hook重構。swap處理瞬時業務,ModifyPosition處理跨期業務。swap兌換了什么、modifiyposition了什么其實沒那么重要。
這里我臆造一個hook作為例子:功能是通過hook,使我把資產留在里面,不著急退出uniswap低手續費平臺。
1.管理用戶注冊
mint/burn會構造單邊流動性,把資產以lp形式存進去
2.管理時點
beforeswap時點中創造巨大搶跑優勢,或者用高昂的動態手續費,阻止普通用戶swa
那么我的pool是沒有交易者會來的,這是一個靜態的資金池,我的資產通過lp形式暫時存在了uniswap里,后續我可以提取出來處理用于其他交易。減少了清算次數。
用hook重寫業務是一個很確定的方向。為了確保長期競爭優勢,uni的grant支持也會強很多。
現在已經有一些項目蓄勢待發,等待v4上線了。例如下面的借貸協議將和uniswapv4一起上線。
Uniswapv4是什么
對于v4,我們盲人摸象地做兩個比較:
univ4和layer2:
?相同點:
低手續費優勢
eth生態兼容
?不同點:
v4項目方需要用hook的方式重寫
一筆交易內進入低手續費環境再返回eth主網,調用其他主網上服務
不需要跨鏈橋
univ4和云交易所:
?相同點:
一起開pool,共享低手續費環境
共享流動性
?不同點:
v4不限制業務類型,不一定是交易所
v4共享流動性需要外包給好的路由提供商
v4無準入
我們認為應當以平臺的視角來定義uniswapv4。當達到臨界點后,在eth手續費的壓力下,v4可能是一個比layer2好的方案,會有更多金融業務主動或者被動的從主網遷移到uniswapv4平臺。尤其金融業務其實相對不復雜,但是安全性要求更高,可以在eth主網閃電撤出,緩解eth主網的緊急需求。這個角度講,uniswap已經打贏了dex戰爭,v4的競爭對手是cex云交易所,matic這種平臺級別的競爭對手。
那么代價呢?
流動性代幣:沒有流動性代幣了。或者說這個記賬單位不能脫離uniswap范圍,項目方要在uniswapv4的生態里解決問題。
流動性碎片化:v3一個資產對有三個不同手續費池,而v4則是完全不同的,這對router和maker的管理要求更高了。這個的解決辦法除了市場博弈也要看uniswap社區能不能有一些標準化的方案,URC。
在美國證券交易委員會(SEC)對主要加密貨幣交易所Binance和Coinbase提起訴訟之后,市場上領先的加密貨幣比特幣(BTC)最近出現了一段盤整期,交易沒有明顯的上漲或下跌走勢.
1900/1/1 0:00:00加密貨幣市場分析師預測比特幣將在年底前牛市-這一預測的可持續性如何?幣安BTC/USD訂單簿顯示,出價流動性不足,略低于30,000美元.
1900/1/1 0:00:00《華爾街日報》的消息導致比特幣跌破30,000美元,盡管時間很短。加密貨幣市場的波動性顯著增加。根據Coinglass的數據,過去24小時內總共價值2億美元的空頭和多頭頭寸被清算.
1900/1/1 0:00:00谷歌已經為移動應用程序開發者擁抱數字資產和NFT開了綠燈,谷歌Play商店更新了其政策,歡迎在支持的應用程序中使用基于區塊鏈的內容.
1900/1/1 0:00:00尊敬的用戶: 為了感謝大家對CEO交易所的支持,官方決定,用第一、第二期新幣投票所得ceo幣,以交易挖礦排名賽的方式回饋給廣大參與者.
1900/1/1 0:00:00美國總統候選人小羅伯特甘迺迪向來力挺加密貨幣,他在今日再度為幣圈發聲,宣示自己若當選總統,將確保使用、持有比特幣的權利不受侵犯,他還贊揚比特幣為政府機構更透明、更民主的未來指明道路.
1900/1/1 0:00:00