時間加權平均價格是什麼,跟前面介紹過的即時價格預言機有什麼不同?
前面文章介紹過的即時價格,反映的是某個特定瞬間、市場當下的成交價格,這種價格參考基準的優點是最即時、最貼近當下市場狀況,缺點則是容易被前面文章介紹過的、透過操縱單一瞬間流動性去扭曲報價的攻擊利用。TWAP 則是換一種思路計算價格——不看單一瞬間,而是把過去一段固定時間區間內(例如過去 30 分鐘)所有的價格數據點,依照每個價格點持續的時間長度,做加權平均,算出一個橫跨整段時間的綜合價格。
跟即時價格最大的不同在於「攻擊者需要控制的時間範圍」:操縱即時價格,攻擊者只需要在單一個區塊、單一個瞬間,把價格推到自己想要的水準,一旦這筆交易完成,價格衝擊隨時可以撤除;操縱 TWAP,攻擊者卻需要在整段被納入計算的時間區間內,持續維持這個被扭曲的價格,不能只推一下就跑,因為 TWAP 計算的是這段時間內的加權平均,單一瞬間的價格衝擊,只會佔整體加權平均值裡很小的一部分,對最終算出來的 TWAP 數字影響有限。
TWAP 為什麼會出現,想解決前面文章介紹過的哪些問題?
前面文章介紹過的閃電貸攻擊與預言機操縱攻擊,共通的核心成因,是攻擊者能在單一筆交易、單一個區塊裡,瞬間扭曲即時價格,再利用這個被扭曲的價格謀取暴利,整個過程從借入資金到獲利了結,全部發生在同一個原子化交易裡,不留下任何曝險時間。這種攻擊之所以能成立,關鍵在於「操縱成本」極低——攻擊者不需要真正長時間持有扭曲後的部位承擔市場風險,只需要瞬間拉高或壓低價格,完成攻擊後價格自然會回到正常水準。
TWAP 想解決的正是這個「操縱成本過低」的結構性問題:透過要求價格參考基準,必須是一段時間內的加權平均,而不是單一瞬間的數字,攻擊者如果想操縱 TWAP,就不能只在一個區塊裡瞬間拉高價格然後立刻撤退,而是需要持續維持這個扭曲的價格,橫跨整個被納入計算的時間窗口。這代表攻擊者需要真正投入資金,長時間承擔市場風險與可能被套利者反向交易吃掉的損失,某種程度上把「瞬間操縱、零風險套利」這種攻擊模式,轉變成「需要持續投入資金、承擔真實市場風險」的操作,大幅墊高了攻擊的實際經濟成本。
TWAP 具體怎麼運作,時間窗口的長度怎麼決定,會有什麼取捨?
典型的 TWAP 計算流程包含幾個環節:
時間窗口長度的設定,存在一個核心取捨:窗口設得越長,攻擊者需要持續維持操縱的時間也越長,理論上抗操縱能力越強,但代價是 TWAP 反映市場真實變化的速度會變慢,如果市場價格真的出現劇烈但合理的波動(例如重大消息面衝擊),TWAP 需要較長時間才能完全反映這個新的價格水準,可能造成協議在短期內,依然依照過時的價格數字做決策;窗口設得越短,TWAP 能更快跟上市場真實變化,但抗操縱能力相對較弱,攻擊者需要維持操縱的時間縮短,某種程度上又回到接近即時價格容易被操縱的問題。多數協議會依照自己的具體使用情境,在這兩個極端之間,找一個相對平衡的窗口長度。
TWAP 對一般用戶有什麼實際影響,該怎麼評估自己使用的協議是否有妥善運用這個機制?
對一般用戶而言,理解 TWAP 的存在,能幫助你更準確評估前面文章介紹過的預言機操縱攻擊,對你使用的特定協議而言,實際發生機率有多高——如果一個協議在決定清算門檻、抵押品估值這類關鍵決策時,採用的是 TWAP,而不是單一瞬間的即時價格,這個協議面對瞬間閃電貸操縱攻擊的抵抗力,理論上會明顯高於直接使用即時價格的協議。
評估自己使用的協議是否妥善運用 TWAP 時,幾個具體值得查證的面向:查證協議實際採用的時間窗口長度,是不是合理平衡了抗操縱能力跟反應速度這兩個取捨,過短的窗口某種程度上失去了 TWAP 原本想達成的防禦效果;查證協議是不是在所有關鍵決策環節(不只是清算,也包括借貸額度計算、部位平倉等)都統一採用 TWAP,而不是只在部分環節使用,其他環節依然依賴容易被操縱的即時價格,這種「部分防禦」的設計,可能依然留下能被針對性利用的破口;以及,理解 TWAP 本身不是萬能的——如果攻擊者真的願意投入足夠龐大的資金、承擔足夠長時間的市場風險,理論上依然有可能操縱 TWAP,只是這個攻擊的經濟成本,通常會高到讓多數攻擊者覺得不划算,評估任何一個協議的安全性時,值得把 TWAP 當成一個「大幅提高攻擊門檻」的機制,而不是一個「完全消除操縱風險」的保證。
Uniswap V2 是最早在去中心化交易所裡,把 TWAP 機制設計成協議原生功能的代表案例之一,讓其他協議能直接讀取 Uniswap 資金池的歷史價格累加值,自行計算出任意時間窗口的 TWAP,不需要依賴額外的外部預言機服務。這套設計後續也啟發了多個借貸協議,在計算抵押品估值與清算門檻時,優先採用 TWAP 而非即時價格作為安全防線之一,前面文章介紹過的、2020 年 bZx 協議遭遇的預言機操縱攻擊事件,事後也被廣泛引用作為「即時價格容易被操縱、TWAP 能有效提高攻擊成本」這個論點的具體案例。
優點是大幅提高攻擊者操縱價格的實際經濟成本,把原本零風險、瞬間完成的操縱攻擊,轉變成需要持續投入資金、承擔真實市場風險的操作,有效防禦前面文章介紹過的閃電貸攻擊與預言機操縱攻擊;缺點是 TWAP 反映市場真實變化的速度天生比即時價格慢,時間窗口設得越長,抗操縱能力越強,但反應遲滯的問題也越明顯,需要協議依照自己的具體使用情境,在這兩者之間找到平衡點。