Lyra — 自動報價的 DeFi 選擇權協議

Lyra 是一個有自動報價功能 (也就是 Automated Market Maker, AMM) 的 DeFi 選擇權協議,透過流動性提供者注入避險所需資金,並且自動提供報價給交易者來進行選擇權交易的去中心化選擇權交易協議。

跟一般的選擇權交易平台不同的是 Lyra 並不是訂單簿 (Orderbook) 的形式,在交易時不需要先有其他交易者放上訂單才可以成交,而是直接由 Lyra 報價後購買。

但是與現貨交易平台如 Uniswap 相較起來的挑戰是選擇權有履約價、到期日以及四種不同類型的交易 (Buy Call, Buy Put, Sell Call, Sell Put),一個 AMM 系統要如何針對這些不同的參數來有效的提供流動性,這就是 Lyra 透過客製化的 AMM 所解決的問題。

Lyra 協議有兩種參與角色:

  • 流動性提供者 (Liquidity Provider):提供用於避險的資金,並且於交易中獲得交易費分潤

  • 交易者 (Trader):在平台上的交易者,可以買賣看漲選擇權 (Call Option) 以及看空選擇權 (Put Option)

post image

當交易者選擇了特定的標的資產 (Underlying Asset)、到期日與履約價 (Strike Price),並且輸入所要購買或賣出的選擇權時,系統會根據 Black-Scholes Model 以及系統設定的參數計算出價格,並且在交易時鎖定避險所需的抵押品(或是押金),這些抵押品與押金由流動性提供者的資金提供,並且後續執行避險策略。

接下來我們就從流動性提供者與交易者參與系統時所發生的事情來講解系統。如果你對選擇權沒有概念,建議先閱讀前導文《選擇權簡介》來了解選擇權。

當交易者選擇了特定的標的資產 (Underlying Asset)、到期日與履約價 (Strike Price),並且輸入所要購買或賣出的選擇權時,系統會根據 Black-Scholes Model 以及系統設定的參數計算出價格,並且在交易時鎖定避險所需的抵押品(或是押金),這些抵押品與押金由流動性提供者的資金提供,並且後續執行避險策略。

接下來我們就從流動性提供者與交易者參與系統時所發生的事情來講解系統。如果你對選擇權沒有概念,建議先閱讀前導文《選擇權簡介》來了解選擇權。

同時你也會需要選擇權中關於希臘字母 (Greeks) 的知識,建議也先閱讀由 Anton 撰寫的《選擇權的定價與避險參數》。

開始之前:Lyra 是 AMM?

Lyra Protocol 在介紹時經常會介紹自己是個 AMM (Automated market maker)的系統。這樣說並沒有錯,只是一般說到 AMM 時,心裡經常會想到 x*y=k 或者是類似的模型。但是 Lyra 並不是用類似的定價方式。

但 Lyra 仍然提供了自動報價機制以及交易後會獲得 ERC-1155 代幣,所以他確實是 AMM,只是在研究的時候不要有他是 xy=k 的模型的預先假設會比較容易進入狀況。

名詞定義

在開始前有些名詞先定義一下,之後會比較好理解。

Listing

相同標的資產、相同履約價與相同到期日的選擇權我們稱為一個 listing。比如說 2021/12/31 到期,履約價為 $4500 的 ETH 選擇權我們稱為一個 listing;相同到期日蛋履約價是 $5000 的又是另外一個 listing。

Board

一群相同到期日的 listing 稱為 Board。比如說 2021/12/31 的 ETH 選擇權,不管履約價多少的 Listing,他們都屬於同一個 board。

Standard Size

一個用來衡量 IV (Implied Volatility) 的合約數量稱為 Standard Size,比如說 20 個 ETH 選擇權合約是一個 Standard Size,在衡量 IV 的時候都會以 20 個 ETH 選擇權合約數量來做為一個衡量單位,我們在後面計算 IV 的章節會用到。

流動性提供者 (Liquidity Provider)

流動性提供者在 Lyra 的角色是提供避險 (Hedge) 所需的資金,並且在選擇權交易中賺取手續費,具體如何避險會在後面的章節解釋。

在 Lyra 中流動性提供是分「回合」的,如果回合已經正在進行中,資金是無法加入跟移除的。但是其實還是可以入金,只是資金在下個回合才會正式啟用,到時候才會開始收到交易手續費。

如果要移除流動性時同樣回合進行中也無法移除,但可以發出一個 “Withdraw signal”,在本回合結束之後你的資金就不會再加入下個回合了,當然你在回合結束前都可以隨時取消移除流動性。

一般的現貨流動性提供因為資產是現貨交易,如果要移除只要照著比例移除就可以了,但在 Lyra 中資金會用於選擇權的抵押品(或押金),而且隨著時間變化這些抵押品的價值都會有所不同,如果要做到隨時可以離開代表整個池子的未實現損益 (Unrealized PnL) 都要計算,實現這樣的功能會導致系統比較容易被操縱,所以目前流動性提供是以回合的方式來運行系統。

選擇權交易定價

在 Lyra 中交易流程可以分成幾個階段:定價、交易、避險,我們這邊就照著著個順序講解。

定價之中又分成了三個階段:

post image

中間的選擇權定價 (Pricing) 方法我們在前一篇《選擇權簡介》裡面有提到選擇權有一個常用的定價模型 Black-Scholes Model,其中定價會需要以下幾個輸入參數:Underlying Price, Strike Price, Expiry, Volatility, Risk-free interest rate,欲知詳情請閱讀前導文。

這些參數裡面其實就只有 Volatility 是比較難以直接觀測,其他都是可觀測因素。那在 Lyra 中是怎麼計算出 Volatility 呢?這個時候就要講第一個步驟 “Decide IV”。

Decide IV

IV 會在兩個時間點調整:初始化 Board 與每次交易時都會調整 IV。Lyra 要輸入到 BS Model 的 IV input 是由以下兩個參數相乘:

當一個 Board 建立的時候會先給定一個 baseline IV (以下都簡稱 baseIv)作為 IV 調整的起點,這個數值通常由歷史波動率得出。而 Strike Volatility Ratio (以下都簡稱 skew) 在每一個 listing 建立的時候設定。

為什麼需要兩個參數來計算出 IV Input,原因是因為實際上觀察市場時,每個不同的履約價的 listing 其實會是會形成一個 Volatility Smile 的觀察結果,也就是履約價越靠近標的資產價格 (Underlying Price) 的 listing 它的 IV 會愈小,履約價遠離標的資產價格的 listing IV 會愈大。

post image

所以在 board 建立時給的 baseIv 基本上會套用到同一個 board 裏面的所有 listing,可以想像如果 skew 是 1.0 的狀況 baseIv 就會是 IV Input。舉例來說建立 board 時根據歷史波動率設定 baseIv 為 30%,針對 Strike Price 為 4500, 4400, 4300 分別設定 skew 為 1.0, 1.1, 1.2 來將初始的 IV 設定為符合波動率微笑曲線的百分比。

post image

以上就是初始化 board 的時候會設定的基礎 IV,而每次交易時還會再次調整 IV。在交易的時候會先判斷此交易是不是買單,比如說 buy call/put options 會標記為買單,另外 close sell call/put positions 也會歸類到買單,在系統裡用 isBuy 來表示。

我們把情況分成買選擇權(不論是看漲或是看空選擇權),跟賣選擇權兩種情形來看。

當交易者買選擇權的時候通常是因為認為價格的漲幅(或跌幅)可以讓他獲利,所以我們可以說他覺得現在的波動率被低估了。反之如果交易者賣選擇權,因為賣單主要是賺權利金 (Premium),所以他其實是認為波動率被高估了,所以才會想要來賣選擇權。

這邊都沒討論漲跌的方向影響(也就是履約價跟標的資產現價),因為這個因素其實會在後面的定價模型裡面被考慮到,所以這邊只需要考慮波動率。

所以每個交易進來之後會根據他是買單或賣單來調整 IV。如果是買單代表波動率被低估了,所以要增加波動率,反之則減少波動率。調整的方式是先以 Standard Size 來衡量交易大小並且作為 baseIv 的調整幅度。接下來再將這個調整幅度乘以系統參數 skewAdjustmentFactor 來做為調整 skew 的幅度。

系統內用 OptionMarketPricer.ivImpactForTrade() 來調整 baseIv 跟 skew,這些調整從這次交易就開始套用,往後的交易也都會套用此次的 baseIv 跟 skew。

post image

Option Pricing

當我們在上個步驟 “Decide IV” 求出 Volatility 後就滿足了 Black-Scholes Model 定價的五個參數,所以只要把這五個參數帶入即可求出價格:

  • Underlying Price: 標的資產的價格,比如說 ETH 現在的價格

  • Strike Price: 履約價,比如說三個月後約定要結算的價格

  • Expiry: 到期日,比如說三個月後

  • Volatility: 波動率,價格波動的可能性

  • Risk-free interest rate: 無風險利率,在沒有任何風險的狀況下可以獲得的利潤

最後的權利金計算

當我們算出這個選擇權的定價後,最後 Lyra 就可以訂定出最後要跟交易者收的權利金費用 (Premium),最後收取的費用總共有三個要素決定:

  1. 選擇權的價格:上節計算出的選擇權價格乘上一個固定比例

  2. 標的資產現價:標的資產現價乘上一個固定比例

  3. 動態費用:根據交易池的 vega 風險來決定的動態費用

(1) 與 (2) 都是系統定義好的比例,可以透過社群治理變更,而 (3) 則是根據 vega 的風險程度來決定的動態費用,不過這邊太深入了就不再詳述。

這三個費用加起來就是要收取的交易費,而這邊前面提到的 isBuy 又要再拿出來用,當這筆交易是個買單時代表系統要用更多資金去避險,所以這個時候最後權利金的計算會是 optionPrice * amount+ fee。如果這是個賣單代表他會減低系統風險,為了激勵這樣的行為,權利金的計算就會變成扣除交易手續費 optionPrice * amount - fee

而這就是最後會跟交易者收取的權利金 (Premium)。當交易完成後,交易者會收到一個 ERC1155 的代幣作為持有證明。