晚上看到 WTF 發了 uniswap-v4 共讀,就了解了下最新版的 v4 的一些特徵。歡迎大家補充和一起研究。
Uniswap v4 有以下特性:
-
鉤子和自定義池:v4 引入了 "鉤子"(hooks),這是在池操作生命週期的各個節點運行的合約。這使得開發者能夠在 Uniswap 協議的流動性和安全性之上進行創新,通過與 v4 的智能合約集成的鉤子來創建自定義的 AMM 池。每個池可以使用自己的鉤子智能合約,鉤子可以僅限於在池創建時確定的特定權限。
-
提高架構和燃氣節省:v4 引入了新的 "單例" 合約,所有池都在一個智能合約中。這樣可以減少成本和提高效率。根據初步估計,v4 將池創建的燃氣成本降低了 99%。此外,v4 引入了新的 "閃電會計" 系統,它只在淨餘額上進行轉賬,而不是在每次交換結束時將資產轉入和轉出池,這使得系統更為高效,為 Uniswap v4 提供了額外的燃氣節省。
-
動態費用和限制訂單:v4 將允許支持動態費用的池,添加鏈上限制訂單,或作為時間加權平均市場做市商(TWAMM)來分散大訂單。池創建者可以設置使他們最具競爭力的費用層級,或者使用動態費用鉤子進行定制。v4 還恢復了對本地 ETH 的支持,這提供了額外的燃氣節省。
-
許可和治理:Uniswap v4 的代碼將在 Business Source License 1.1 下發布,該許可證限制了在商業或生產環境中使用 v4 源代碼的使用,最長可達四年,此後將永久轉為 GPL 許可證。與 v3 一樣,Uniswap 治理和 Uniswap Labs 可以對許可證進行例外處理1。
其中 Hooks 生命週期如圖所示:#
當某人在 Uniswap v4 上創建一個池時,他們可以指定一個鉤子合約。這個鉤子合約實現了池在執行過程中將調用的自定義邏輯。
Uniswap v4 目前支持八個這樣的鉤子回調:
-
beforeInitialize/afterInitialize
-
beforeModifyPosition/afterModifyPosition
-
beforeSwap/afterSwap
-
beforeDonate/afterDonate
鉤子合約的地址確定執行哪些鉤子回調。這創造了一種 gas 高效和表達能力強的方法來確定所需的回調,並確保即使可升級的鉤子也遵守某些不變量。創建一個工作鉤子的最低要求很少。
提高架構和節省 gas#
Uniswap v4 通過引入一些新的架構和優化來提高燃氣效率和開發人員體驗。其中一些優化包括:
- 單例模式:
Uniswap v4 使用單例模式來減少重複的代碼和存儲開銷。單例模式允許多個合約共享相同的存儲空間,從而減少了存儲開銷。 - 閃電記賬:
閃電記賬是一種優化技術,它使用瞬態存儲來記錄餘額變化,從而減少了存儲開銷。在 Uniswap v4 中,閃電記賬被用來記錄流動性提供者的餘額變化,從而提高了燃氣效率。 - gas 優化:
Uniswap v4 通過使用更少的存儲和更少的計算來減少 gas 開銷。例如,Uniswap v4 使用了更少的存儲來記錄流動性提供者的餘額變化,從而減少了存儲開銷。此外,Uniswap v4 還使用了更少的計算來計算交易費用,從而減少了計算開銷。
mev 相關#
Uniswap v4 引入了一種新的機制,可以將 MEV(礦工提取的價值)內部化到流動性提供者的回報中。這個機制是通過鉤子來實現的,允許開發人員在池的執行過程中執行自定義邏輯。這些鉤子可以用來實現內部化 MEV 的機制,以便流動性提供者可以從 MEV 中受益。這是 Uniswap v4 中的一個新功能,它可以幫助流動性提供者更好地管理他們的回報,並為他們提供更好的收益。
在 Uniswap v4 中,內部化 MEV 的機制是通過鉤子來實現的。具體來說,開發人員可以使用 beforeSwap 和 afterSwap 鉤子來實現這個機制。在 beforeSwap 鉤子中,開發人員可以檢查當前交易的狀態,並決定是否執行交易。如果交易被執行,開發人員可以在 afterSwap 鉤子中執行一些自定義邏輯,例如將 MEV 內部化到流動性提供者的回報中。為了實現這個機制,Uniswap v4 還引入了一個新的概念,稱為 TWAMM(時間加權自動化市場製造商)。TWAMM 允許交易在一段時間內分批執行,從而減少對市場價格的影響。這個機制可以幫助流動性提供者更好地管理他們的回報,並為他們提供更好的收益。 總之,Uniswap v4 通過使用鉤子和 TWAMM 機制,為流動性提供者提供了一種內部化 MEV 的機制,從而幫助他們更好地管理他們的回報,並為他們提供更好的收益。
動態費用和限制訂單#
Uniswap v4 引入了動態費用和限制訂單的功能,這些功能可以幫助流動性提供者更好地管理他們的回報,並為他們提供更好的收益。
動態費用是指交易費用可以根據市場需求進行調整。在 Uniswap v4 中,交易費用可以是靜態的,也可以是動態的。如果交易費用是靜態的,那麼它將保持不變。如果交易費用是動態的,那麼它將根據市場需求進行調整。這個機制可以幫助流動性提供者更好地管理他們的回報,並為他們提供更好的收益。
限制訂單是指交易可以在一定的價格範圍內進行。在 Uniswap v4 中,限制訂單可以幫助流動性提供者更好地管理他們的回報,並為他們提供更好的收益。限制訂單可以防止交易者在價格波動較大的情況下進行交易,從而保護流動性提供者的回報。
Uniswap v4 引入了動態費用和限制訂單的功能,這些功能可以幫助流動性提供者更好地管理他們的回報,並為他們提供更好的收益。動態費用可以根據市場需求進行調整,而限制訂單可以防止交易者在價格波動較大的情況下進行交易,從而保護流動性提供者的回報。
總的來說,Uniswap v4 提供了更高級的定制性、成本效率和創新性,使得任何人都可以通過引入 "鉤子" 來做出這些權衡決策,並在一個強大的生態系統中快速、富有表現力地進行 AMM 創新。
參考資料:
https://blog.uniswap.org/uniswap-v4
https://github.com/Uniswap/v4-core/blob/main/whitepaper-v4-draft.pdf