加密貨幣交易所 加密貨幣交易所
Ctrl+D 加密貨幣交易所
ads
首頁 > PEPE > Info

一文了解Uniswap V2的新功能與工作原理_SWAP:Etherland

Author:

Time:1900/1/1 0:00:00

編者按:本文來自以太坊愛好者,作者:RossBulat,翻譯&校對:閔敏&阿劍,Odaily星球日報經授權轉載。

UniswapV2是該鏈上交易所的新一版迭代

Uniswap是一個運行在以太坊區塊鏈上的流動性協議,支持免信任的代幣互換,也即是說,該交易所上的所有交易都是由智能合約自動執行的,用戶無需依靠某個中介也無需信任某個第三方。這種去中心化的代幣互換方案已經證實在ERC20代幣的持有者群體中很吃香,他們愿意使用Uniswap來交易代幣并為不同的交易對提供流動性。Uniswap在2020年3月19日在以太坊主網上推出了一個新版本,還配合著公開了核心合約的1.0.1版;在發行之前,該版本已經在Rinkeby測試網上測試過一段時間了。截至撰文之時,這個新版本在以太坊主網上已經使用超過了兩個月時間,而且迄今為止,沒有出現任何損壞智能合約完整性的問題。不論你是持有還是在交易密碼學貨幣,是在搞以太坊開發還是做寬泛的金融科技業務,都有必要了解一下Uniswap,它在2020年的第三季度隨著DeFi概念的崛起迎來了快速的增長。所謂一項獨立的服務,Uniswap也可以集成到第三方的數字錢包和dApp中。此外,其它智能合約也可以拿Uniswap作為基礎來開展服務。本文旨在向讀者介紹UniswapV2帶來的增強功能,并詳細介紹其主要特性。UniswapV1定下的基調

UniswapV1為鏈上代幣互換和去中心化流動性池定下了基調,就是向交易代幣的用戶收取少量手續費、以此給提供流動性用戶以獎勵。UniswapV1使用的不是鏈上訂單簿,正相反,代幣的交換比率是用一個叫做“恒定乘積公式”的算法來確定的,相當于提供了一種機制來保持一種代幣的體量在所在交易對中的平衡。這個我們后面會進一步介紹。底層的代幣交易對各有各的流動性池,用戶可以通過同時存入兩種相應的代幣來提供流動性。流動性提供者可以得到所在流動性池中代幣交易的手續費作為獎勵,手續費率為0.3%,流動性提供者之間按份額分配——份額的大小,端看你注入流動性池的代幣數量占整個流動性池數量的比重。要是讀者不太了解Uniswap,我曾寫過的一篇基于UniswapV1的解釋性文章肯定有所幫助——在那篇文章中我解釋了協議的整個機制、交易比例是如何計算出來的、流動性提供者如何能賺到傭金、使用Uniswap的好處和缺點,等等。見此處。UniswapV2有什么新東西

2023年第二季度,火幣銷毀1,950,555枚HT:金色財經報道,火幣發布2023年Q2 HT銷毀數據。2023年第二季度,火幣銷毀1,950,555枚HT。截至2023年7月15日,共計銷毀298,940,224枚HT。本季度循環通貨緊縮率為0.9066%。當前流通量:159,153,756枚HT。現有供應量:201,050,000枚HT。[2023/7/16 10:57:32]

UniswapV2給協議帶來了一系列的升級和增強功能。主要的更新包括:ERC20對ERC20代幣的交易對。即,不再需要ETH作為中介代幣來協助兩種ERC2O代幣的互換過程。移除這個硬性要求可以減少一半的交易數量,也能節約交易的Gas費。也因此,dApp可以在缺乏直接的代幣互換池子的時候,更高效地發現從一種代幣到另一種代幣的“路由”。這一部分我們后文還會詳細講。價格信息傳輸功能,每個區塊都能基于按時間加權平均的定價方式為交易對刷新價格。這一部分我們后文也會詳細講解。閃電互換,或者說你可以從Uniswap流動性池中“借出”代幣、用于與任意的外部服務交互、然后還清你的初始貸款,所有操作都要放在一筆交易內。這樣的交易是原子化的,意思是說,交易中的任何一個操作失敗,都是導致整筆交易失敗、被改動的狀態完全回復。這種功能的一個顯而易見的用途就是利用流動性來做套利交易,但也有別的用途,比如為特定的DeFi操作節約Gas費,例如關閉Maker金庫。支持不標準的ERC20代幣。辦法是將返回void類型的transfer()和transferFrom()的函數調用也視作成功的transfer操作。這個功能看起來毫不起眼,但其實,許多主流代幣比如USDT和BNB的transfer方法都會產生這樣的返回值。支持這些廣泛接受、但不完全遵守ERC20標準的代幣,增強了Uniswap在鏈上交易所中的優勢。額外的功能性方法,用于防止用戶所轉移的代幣數量超過Solidity編程語言所能支持的最大數量時出現溢出錯誤注意:不標準的ERC20代幣即支持正式的EIP詳述所指定的方法,但返回值的類型迥異于詳述的代幣。這種缺陷會讓一種代幣變成不標準的代幣。類似的,重命名或者移除了詳述所指定的方法也會讓代幣變成不標準的,但這種情況在實踐中很少見,如果像Uniswap這樣的協議希望支持這樣的變種,還需要大量的開發工作才能解決。UniswapV2還引入了一個可啟用的0.05%的協議層收費,就是從流動性提供者的0.3%的手續費中分一杯羹。不過,現在這個機制是關閉的——而且只能夠通過一個去中心化的治理機制來觸發。我們后文還會再說。UniswapV2經過充分的測試和審計之后方才推出

DownDetector:數以千計的客戶無法使用推特和ChatGPT:金色財經報道,據網絡狀況監測網站DownDetector的數據,推特的服務一度于周三中斷,數千名用戶無法使用,網站收到了近6000起關于人們無法使用推特的報告。而OpenAI亦表示,大多數用戶無法使用其聊天機器人ChatGPT,當前正在恢復服務的過程中,已經禁用了登錄功能。[2023/7/13 10:51:31]

智能合約一經部署就不可改變的特性所帶來的風險,已經是老生常談了。如果一個合約包含了會導致資產鎖定的錯誤,那是沒有辦法讓這些發送資產的交易都撤銷的。Uniswap團隊遵照了行業的標準實踐以盡可能地消除bug風險和邏輯錯誤。值得稱贊!從V1轉成V2,團隊也用Solidity語言重寫了他們的智能合約。Uniswap的開發者因此得以跨越Vyper語言的局限性、利用最新版本的Solidity語言中的更新的操作碼,進一步優化了合約執行的CPU消耗。UniswapV2由多個智能合約組成,包括Factory、RouterV2、Pair和PariERC20,還有一個負責功能的Library。驅動Uniswap工作的幾個主要的合約如下圖所示:

Router2是Router1優化之后的版本,不過它們的功能是一樣的。Uniswap建議所有的開發者都切換去用Router2合約。重寫后的所有合約都得到了行內值得尊敬的開發團隊的審核,也在模擬現實運行場景的測試網上做了廣泛的測試。ConsensysDiligence聯合多方撰寫了對UniswapV2源代碼的完整報告。完整的審核報告可見此處。顯然的是,UniswapV2在上線主網之前經過了充分的測試和審核。貫徹對源代碼的盡職審核很有可能保證了未來不會發現任何重大的問題,雖然Uniswap還是發布了一個Bug懸賞,任何人發現了重大漏洞都可以獲得獎金。安全是區塊鏈生態永不可能繞開的一個話題,而且這種擔心也是可以理解的,畢竟有這么大的資金體量在這里交易。對底層區塊鏈的攻擊已經出現了大量的學術研究,但智能合約的完整性似乎僅僅在以太坊生態中才被人重視,因為被鎖在合約中的資產仰賴于智能合約的邏輯來保證其安全性和可觸達性。好的,接下來我們就深入了解下UniswapV2的機制,感受一下這個協議的潛力。UniswapV2的工作原理

投資銀行Cowen將關閉數字資產部門Cowen Digital:金色財經報道,多倫多道明銀行旗下的投資銀行 Cowen 關閉了其此前專注于加密貨幣的數字業務部門 Cowen Digital。Cowen 于 2022 年 3 月宣布推出 Cowen Digital 并計劃為機構客戶提供交易執行和托管解決方案。此后 Cowen 聘請了 Blockchain.com 和 Coinbase 的前高管加入 Cowen Digital。[2023/6/1 11:51:30]

每個代幣交易對都要通過工廠合約建立自己的流動性池。建立流動性池時,需在其中存入初始資金,以提供流動性。流動性池中代幣對的匯率是基于供需量計算得出的,即所謂的恒定乘積公式。配合恒定乘積公式,一個交易對中的一種代幣的價格,根據池中的供給量和交易者的需求量得出。因此,價格會在根據該公式畫出的一條曲線上變動:

-UniswapV2上的匯率取決于恒定乘積公式-匯率是基于一個簡單的公式x*y=k自動計算的。對應的曲線代表所有可能的匯率。每個交易對都有自己的曲線,用來調節當前匯率。如果代幣B的需求量很大,以至于流動性干涸,其價格將成倍增長,導致k點向曲線左側上移。如果代幣B的供應量很大,需求比代幣A少得多,k點就會向曲線右側下移。要注意的是,這種供需平衡僅限于代幣A與代幣B的流動性池。如果是代幣B與代幣C的流動性池,會形成自己的供需平衡,匯率也會不同。受到這些機制的影響,Uniswap依賴套利交易來讓流動性池中的代幣價格與市場價格保持一致。從本質上來說,這些協議依然需要通過外部交易系統來調控流動性池中代幣的價格。每個代幣對的匯率將根據市場價格不斷波動,為交易者帶來巨大的套利機會。當用戶在Uniswap.exchange的代幣對流動性池中進行交易時,使用的是實時匯率。JavaScriptSDK會為其它應用提供API,再由這些應用提供自己的界面來訪問不同的代幣對及其匯率。這些匯率應用于ETH和ERC20代幣:

-UniswapV2用戶界面上ETH/DAI交易對的匯率-現在,讓我們深入探究可在UniswapV2上執行的交易類型。UniswapV2提供了更多交易選擇,因為它不再像UniswapV1那樣使用ETH作為中介代幣來實現“ETH搭橋”。UniswapV2上的交易選擇

CZ:Binance存在全球控股實體總部,將于適當時間公布:7月19日消息,Binance首席執行官CZ在做客Decrypt播客時,針對Binance是否存在總部表示,我們有一家全球控股公司,一個用于集中交易的全球控股實體。我們會在適當的時候宣布其位置。這很簡單。沒那么復雜。

此前21年CZ表示Binance總部的候選名單有五個國家,其中一些在歐洲,但拒絕進一步透露細節。據悉,Binance在巴林、迪拜和巴黎等城市設有辦事處。[2022/7/19 2:23:26]

如上文所述,UniswapV1上的每個交易對中都有ETH。如果要將代幣A兌換成代幣B,必須先用代幣A買入ETH,然后再用ETH買入代幣B。因此,交易者需要支付兩筆交易費和gas費。Uniswap的文檔將V1稱為去中心化自動交易所的“原型”。這有可能是因為開發人員發現了V2提供的更高效的交易執行方法。不再將ETH作為中介代幣就是優化之一。如下圖所示,ETH不再作為中介代幣之后,交易對之間可以進行直接交易:

-兩種ERC20代幣直接互換-這種方式似乎既合理又直觀,或許V1就應該采取這種運作方式。只需調用路由合約上的swapExactTokensForTokens和swapTokensForExactTokens方法即可交易。上述方法名稱中的Exact表示你希望為交換中的哪一種代幣設置限額。如果你想用DAI買入一定數量的ETH,就要使用swapTokensForExactTokens;另一方面,如果你想用一定數量的DAI買入ETH,就要使用swapExactTokensForTokens。UniswapV2的智能合約就采用了這兩種方法。除了直接交易外,用戶依然可以選擇使用ETH作為中介代幣來實現兩種代幣之間的交易。用戶無需直接在輸入代幣和輸出代幣之間創建流動性池,只要這兩種代幣與ETH之間存在流動性池即可。例如,以ETH作為中介代幣來實現DAI和LINK之間的交易,其流程如下圖所示:

-以ETH作為中介代幣實現間接互換-與之對應的Solidity方法是swapExactETHForTokens和swapETHForExactTokens,以及swapTokensForExactETH和swapExactTokensForETH。實現代幣交易的最后一種方法就是,在多個ERC20代幣之間進行交易,直至獲得你想要的輸出代幣為止,也就是白皮書中所說的“任意ERC20交易對”。當然了,所謂的任意代幣對中也可以包含ETH。下圖顯示了如何通過一系列代幣將DAI的價值轉移到理想的輸出代幣Link中:

歐洲央行行長:加密質押借貸業務必須與比特幣一同受到監管:金色財經報道,據《財富》雜志社報道,歐洲中央銀行行長 Christine Lagarde 在向歐洲議會作證時明確表示,加密質押、借貸業務必須與比特幣一同受到監管。談到將于2024年在整個歐盟生效的加密資產市場 (MiCA) 法規,Lagarde 認為,由于加密行業當前發展的速度,已經需要一個潛在的第二個后續框架。她說:“MiCA II 應該規范加密資產抵押和借貸的活動,這些活動肯定會增加。在這些未開發和未知領域的創新將消費者置于風險之中,缺乏監管通常引起欺詐、完全不合法的估值主張,以及投機和犯罪交易。MiCA I 不會涵蓋比特幣,但對于 MiCA II,我們希望考慮到這一點”。[2022/6/22 4:43:56]

-對于沒有直接交易對的代幣,可以通過一系列中介代幣交易來獲得輸出代幣-如果你的輸入代幣和你想獲得的輸出代幣之間沒有流動性池,就可以采取這種方法,而且不一定需要上文所述的ETH作為中介代幣。雖然這種交易方法是可行的,但是目前沒有智能合約能自動實現這么多筆代幣交易,只能手動將這個功能寫入前端應用的代碼中,并對Uniswap進行多個交易調用。這個辦法的使用頻率可能不高,因為在通過一至兩個中介代幣轉移價值后,額外的Gas費會讓迂回交易變得很不劃算。或許通過中心化交易所交易成本反而更低。盡管如此,一旦ETH2.0主網上線,采用更加高效的PoS機制,再加上可擴展性功能,讓迂回交易變得更加可行,這種方法將得到更廣泛的使用。價格信息傳輸機制

Uniswap的價格信息傳輸機制可以讓開發者基于某個代幣在幾個區塊內的價格波動性來計算該代幣的平均價格。這個時間區間可以是前1小時,前24小時乃至更久。雖然Uniswap會提供代幣價格,但是它不會在鏈上存儲任何歷史價格。需要dApp開發者自選基于一段時間的累積價格,來計算某個代幣在這段時間的平均價格。這些平均價格稱為時間加權平均價格。所謂的TWAP就是在鏈上選定一段區塊作為時間區間,將某個代幣在這段區塊內的累積價格除以時間戳區間,得出該代幣在這段區塊的平均價格。圖解如下:

-TWAP是基于一段區塊內的累積代幣價格計算得出的-TWAP是可靠的,反映了一段時間內的代幣價格。采取這種方式可以避免閃電崩盤和劇烈的價格波動,這些在加密貨幣市場上很常見。當市場出現價格波動時,TWAP可以更準確地反映代幣的情況。如果需要,開發者可以通過Uniswap的JavaScriptSDK免費獲取價格信息。詳情見下文。閃電交易

閃電交易指的是通過一個交易來完成從Uniswap的流動性池中借出代幣、使用這些代幣進行某項操作并償還這些代幣這一多階段流程。如果這個流程中的任意一階段失敗,所有狀態更改都會撤銷,相關代幣重新回到對應的Uniswap流動池中。下圖顯示了交易者如何能夠不持有代幣而執行閃電交易。這是因為從流動性池中借出的價值一定會歸還到池內,要么交易失敗,要么交易者歸還借出的代幣:

閃電交易的一大用例就是套利交易,而且交易者一定能在獲利的同時將之前借得的代幣價值歸還至Uniswap流動性池內。交易者每次都能通過套利交易輕松獲得收益。另一個用例是使用Uniswap流動性池結算Maker金庫,你可以償還債務,并取出Maker金庫中作為擔保品的ETH來償還Uniswap流動性池。相比直接使用自己持有的代幣來還款,這種方式消耗的gas較少。閃電交易是Uniswap上一項比較新的功能,不過我們很快就能看到更多dApp整合這一功能。在交易機器人這一用例中,閃電交易還可以用來自動執行套利交易。交易機器人不需要資金來執行交易,只需要識別套利機會并執行閃電交易即可。新的0.05%的協議收費和治理

UniswapV2還為協議引入了一種新的費用,叫做“協議費”,啟用這一機制后,Uniswap上發生的交易額的0.05%就會轉移到一個由Uniswap持有的地址上。這個0.05%是從Uniswap標準的0.3%手續費中抽出來的,所以啟動這一機制會導致流動性提供者的利益受損。當前這一機制還是關閉狀態,而且Uniswap項目方也沒有任何公開聲明表示有啟用這一機制的計劃。添加這個機制似乎有點可疑,但Uniswap開發者認為,這是為了支持Uniswap的增長和可持續性的必要功能。而且,還有一個事實可以為他們辯護:啟用這一機制需要一個治理機制,由社區來投票決定要不要啟動這一機制。雖然啟動這一功能需要先達成社區共識,這樣做會給予Uniswap項目方巨大的利益和競爭優勢。從好的一面來說,這筆費用可用于升級協議和整個生態系統、提高接受度,最終能夠讓流動性提供者獲得更大的利益;理論上來說,可以彌補他們在這一機制中的利益受損。整個過程如下圖所示:

-收取0.05%的協議費用的積極結果-現在還未有該治理機制的公開信息,但不妨假設會有利用ERC20代幣來收集投票,類似于Maker的治理和投票機制。為管理協議收費機制,UniswapFactory合約包含了feeTo和feeToSetter方法來設置接收資金的地址,以及有權更改feeTo地址的賬戶。JavaScriptSDK

本文有意避免過度技術化,但還是有必要提及Uniswap的JavaScriptSDK。這個開源庫給NodeJS、JavaScript框架及所有基于瀏覽器的應用提供了JavaScriptAPI來集成Uniswap。這已經足以讓第三方應用直接將Uniswap集成到自己的產品和服務中。AgentWallet、SwitcheoExchange和StreamrMarketplace是其中3個已經直接集成了Uniswap的產品。該JavaScriptSDK的文檔講解了用于提取代幣對數據和代幣對地址的API,還有啟動交易和獲取定價的API,應用可以借此使用上文所述的價格信息傳輸功能。注意,API不能自動執行交易,只能幫你準備一筆交易,把你愿意接受的市場價格中位數和交換所得的最低數量發起和簽名交易。關于Uniswap的代幣列表

如果你好奇Uniswap.exchange上的代幣列表是如何決定的,很簡單,這是人工操作的,Uniswap團隊會用視頻會議討論要加入哪些代幣。因此,即使某種ERC20代幣的交易池已經出現了,也并不代表這種代幣會出現在Uniswap官方網站的代幣列表上。如果你是某種代幣的發行者,你想要讓你的代幣出現在默認的代幣列表上,你需要在DefaultTokenListrepository上提交一個Githubissue。Uniswap.exchange上還有一個功能:你可以在一個搜索框內輸入某個ERC20代幣的地址來找出這種代幣,然后添加到你自定義的列表中。這樣一來你就能在dApp中交易這種代幣了,但這不代表別人也能看到這種代幣,因此也不會提高這種代幣的曝光度。開發者也可以在自己的Uniswap集成中創建定制化的代幣列表,只需遵循一個簡單的JSON結構即可。更多操作細節可見Uniswap的TokenListsrepository。總結

本文完整地考察了UniswapV2,揭開了它的改進項目及其工作原理。更高效的代幣互換、按時間來加權的價格信息標識機制、閃電兌換功能,都是重大改進,在這些改進的背后,是遷移到基于Solidity來編寫合約的技術工作,這些技術工作讓UniswapV2得以利用最新的操作碼來實現更高效率的執行。UniswapV2保持了免信任、去中心化的本色,它存在于以太坊區塊鏈上,除非爆破底層協議,不然就無從破壞它。到目前為止,沒有這樣的事情發生,而且,看現在的礦工群體規模,以后也不太可能發生。以太坊2.0的測試網Medalla啟動時有2萬名驗證者——我估計這個數字在主網啟動時還會更高,因為到時候的驗證者可以得到經濟回報。另一方面,UniswapV2作為一個代幣交易所,也還不能說是完美的。在撰文之時,以太坊網絡的Gas費正處于歷史上最高的時期,這使得使用Uniswap的Gas費異常昂貴。Uniswap沒有實時訂單簿功能,因此交易員要使用交易策略還是只能找上中心化交易所。如前所述,Uniswap需要用戶套利來保持交易所內代幣價格與市場價格的一致,中心化交易所仍舊在平衡Uniswap的匯率上發揮著不可替代的作用。UniswapV2是朝著正確的方向邁出的積極一步,但若想讓去中心化交易所能夠完全取代中心化交易所,還是長路漫漫。雖說如此,密碼學貨幣社區的意見還是非常樂觀的——我們可以有把握地說,DeFi的進展,不論從技術能力還是接受度來看,在短期內都不會放緩。

Tags:SWAPUNIUniswapETHFastSwap (BSC)United Emirate Coinuniswap幣Etherland

PEPE
解讀“大姨夫”最新上線金庫策略yETH_ETH:YETH

編者按:本文來自金色財經,Odaily星球日報經授權轉載。“大姨夫”(YearnFinance)是一個支持自動移倉的聚合理財平臺,目前聚合了Compound、dYdX、Aave、DDEX等協議,

1900/1/1 0:00:00
SushiSwap鎖倉超10億美元,賺錢效應成DeFi繁榮的最大推手_SHI:universeshield

DeFi代幣瘋漲,DEX交易量呈指數型增長。截至9月1日,DEX24小時總交易量已突破10億美元,而在2個月前,這個數字僅為4295萬美元.

1900/1/1 0:00:00
首個數字銀行卡明年發行,廣州出臺區塊鏈措施支持大灣區_區塊鏈:數字人民幣為什么涼了

文/王巧編輯/獨秀鋅鏈接作為首個提出產業區塊鏈的機構媒體,一直積極推動產業區塊鏈落地。通過深度報道直戳行業痛點,通過分享會聆聽行業聲音,通過周報呈現行業大觀,通過評論展現獨特產業觀察視角.

1900/1/1 0:00:00
星球前線 | Aave總鎖倉量超過Maker,靠的是什么?_AVE:NET

Odaily星球日報譯者|念銀思唐 摘要: -Aave總鎖倉量在8月份增長了170%,超過13億美元;-該貸款協議最近增加了一些新的功能,比如信貸委托,還有更多的功能正在進行中;-今年以來.

1900/1/1 0:00:00
星球日報 | Filecoin將于9月中下旬啟動主網;報告:2020年是央行數字貨幣起飛的一年_區塊鏈:Zombie Runner

頭條 Filecoin更新路線圖:主網將在9月中下旬啟動Filecoin8月25日發布了2020年8月路線圖更新,并宣布已啟動測試網獎勵計劃.

1900/1/1 0:00:00
V神:當我們對區塊鏈進行驗證的時候,我們在做什么?_區塊鏈:TALI

編者按:本文來自以太坊愛好者,作者:Vitalik,翻譯&校對:Elisa&阿劍,Odaily星球日報經授權轉載。區塊鏈最強大的一個特質就是我們能獨立驗證其執行中的每一個部分.

1900/1/1 0:00:00
ads