Option 101
본 게시글은 On-chain option 을 살펴보기 전에 Option 기본 개념들을 다룬 글입니다. 입문자들도 이해하기 쉽게 내용을 구성하였으니 개념들을 잘 따라오시면서 알고 계신 on-chain option protocol 에 대입하여 생각해보시면 재미있게 읽으실 수 있을 것입니다.
Author
Beomki Kim
Reviewed By Yohan Lim, Sunghwan Ha, Chanwoo Park
목차
- Why, What is option
- Binomial Model
- Model free Properties
- Recap above concepts in on-chain option
1. Why, What is option
Option 모델들을 살펴보기 전에 Option이 왜 필요한지, 거기서 드는 궁금증이 무엇일지 생각해봅시다.
여러분이 비행기를 만들어서 $30M 에 팔았다고 해봅시다. 그런데 구매자가 대금이 너무 커서 일시불로 지급할 수 없다고, 6개월동안 매달 $5M 씩 지급하겠다고 합니다. 그렇다면 여러분은 이 거래를 그냥 수락해도 될까요?
답은 ‘NO’ 입니다.
환율 리스크가 있기 때문이죠. 현재 환율이 1,000KRW / 1$ 라 했을 때, 일시불로 지급받았을 땐 확정적으로 300억을 받을 수 있는데 나눠서 지급받으면 변하는 환율에 따라 운이 좋으면 300억보다 더 받을 수 있겠지만, 반대로 300억보다 못 받을 수도 있습니다.
그렇다고 일시불만 고수해서 비행기를 팔 기회를 놓칠 수도 없습니다. 결국 우리가 피하고 싶은 것은 환율이 떨어지는 리스크이고 이를 막아줄 수 있는 파생상품이 있다면 이를 사용하면 됩니다. 이것이 옵션입니다.
옵션의 정의와 종류를 간단히 살펴보면 아래와 같습니다.
옵션 : 보유자가 미리 정해진 시간(T)에 정해진 금액(payoff)을 받을 수 있는 금융상품
- 콜옵션 : 미래의 한 시기에 자산군을 특정 가격 (Strike) 에 살 수 있는 권리
- 풋옵션 : 미래의 한 시기에 자산군을 특정 가격 (Strike) 에 팔 수 있는 권리
위에 정의를 살펴보면 쉽게 알 수 있듯이, 옵션의 성질을 구성하는 요소는 Maturity (T), Strike (K), Payoff 3가지 입니다. 즉 이 3가지를 사용해서 모든 옵션을 표현할 수 있습니다. 콜옵션과 풋옵션은 다시 써보면 아래와 같습니다.
Payoff of Call option = (S_T — K)+
Payoff of Put option = (K — S_T)+
where S_T : T에서의 자산 가격, K : Strike, (*)+ : ReLu Function (괄호 안 값이 양수면 값 그대로, 음수면 0)
이제 옵션의 개념에 대해서 알았으니 다시 위에 예시로 돌아가 생각해봅시다. 여러분은 사실 각 분할 지급일을 만기로 하고, Strike가 1,000원 인 달러 풋옵션을 6개 구매했으면 됩니다. 이렇게 하면 풋옵션의 Payoff 식에 따라 S_T 가 1,000원보다 클 땐, 옵션에서 0원을 받는 대신 더 비싸게 달러를 팔 수 있고, 1,000원보다 작을 땐, 옵션에서 떨어진 만큼 보상을 받을 수 있기 때문에 300억을 유지할 수 있습니다.
그런데 이런 좋은 상품을 공짜로 얻을 순 없겠죠?
그렇다면, 옵션을 판매하는 사람은 가격을 어떻게 책정해야 하고, 자신의 리스크는 어떻게 회피해야 할까요?
2. Binomial Model
위에서 나온 개념을 확률론적 과정으로 치환하기 위해 가장 간단한 모델을 생각할 수 있습니다. 시간은 0과 1에서만 고려하고, 시간 1에서의 가격이 상승 또는 하락을 하는 One-period Binomial Model 을 생각해봅시다. 여기서 자산 군은 은행과 주식만 있다고 생각합니다.
위와 같은 그림의 One period Binomial model 예시를 생각해봅시다. 시간 0에서 주식 가격은 100이고, 시간 1에선 60% 확률로 가격이 상승해 120이 될 수 있고, 40% 확률로 가격이 하락해 80이 될 수 있습니다.
이러한 상황에서 여러분이 Strike 가 100인 콜옵션을 판매하고자 한다면 얼마에 팔아야 할까요?
옵션 판매자는 프리미엄을 받는 대신 만기 때 구매자에게 정해진 payoff 를 지불해야 합니다. 즉 시간 1에서 가격이 올랐을 때는 20을 줘야 하고, 가격이 떨어졌을 땐 안 줘도 됩니다. 직관적으로는 60%의 확률로 20 을 내줘야 하고, 40% 확률로 안 줘도 되므로 0.6 * 20 + 0.4 * 0 = 12 로 가격을 설정할 수 있겠습니다.
하지만 이 직관적인 가격 설정은 틀렸습니다. 왜냐하면 Arbitrage 가 발생할 수 있기 때문입니다.
Arbitrage란, 포트폴리오의 한 종류로서 시간 0에서 처음 구성할 땐 비용이 들지 않지만, (e.g. 은행에서 100을 빌려서 주식 1개를 구매한다.) 만기에서는 그 포트폴리오의 가치가 항상 0 이상이고, 0보다 큰 확률로 수익을 볼 수 있는 포트폴리오입니다. (항상 0인 포트폴리오는 아비트라지가 아닙니다.)
이게 왜 Arbitrage 가 발생할 수 있는지는 올바른 가격 설정 방법을 보고 나서 다시 설명하도록 하겠습니다.
옵션을 Pricing 하는 하나의 방법은 payoff 와 똑같은 가치를 내는 헷징 포트폴리오를 구성하는 겁니다. 구성하는 방법은 간단한 이차방정식을 풀면 됩니다. 은행에 x, 주식에 y 만큼 투자하였을 때, Portfolio = (x, y) 의 시간 1에서의 가치는 주식이 올랐을 때 x + 120y, 주식이 떨어졌을 때, x + 80y 입니다. 이게 payoff 와 같게 만들면 x + 120 y = 20, x + 80y = 0 → x = -40, y = 5 가 됩니다.
즉, 은행에서 40을 빌려서 주식 5개를 사면, 시간 1에서 이 포트폴리오를 처분해 payoff 를 줄 수 있습니다. 물론 여기에는 ‘대출, 공매도가 가능하다.’ ‘거래 수수료가 없다.’ ‘원하는 만큼 거래할 수 있는 유동성이 있다.’ 등의 가정이 필요합니다.
헷징 포트폴리오를 구성하고 나면, 우리가 처음에 가졌던 2가지 의문이 풀립니다. 이 옵션의 가격은 헷징 포트폴리오를 처음에 구성할 때 필요한 돈이 되겠고, 해당 가격으로 옵션을 팔았다면 판매자는 받은 돈으로 헷징 포트폴리오를 구성하면 되는 것입니다. 따라서 여기서의 옵션 가격 = -40 * 1 + 0.5 * 100 = 10 이 됩니다. 놀랍게도 가격이 오르고 떨어질 확률은 전혀 상관 없이 pricing 한 것을 볼 수 있습니다.
다시 돌아와서, 직관적인 가격 설정은 12 였습니다. 이는 위에서 구한 10과 다릅니다. 12로 가격을 설정해버리면 판매자가 12로 팔고 10으로만 같은 효과를 내는 포트폴리오를 구성할 수 있기 때문에 2의 무위험 수익이 나는 아비트라지가 있는 것입니다. 따라서 효율적인 시장에서는 구매자가 가격이 너무 비싼 걸 보고 사주지 않게 되고 거래가 되지 않을 것입니다.
이 장 초반에 언급했듯이 이러한 모델을 생각하는 것은 이 과정을 확률론적 개념으로 치환하기 위해서입니다. 블랙-숄츠 모델 또한 이 확률론적 치환에서 다른 방식으로 모델링 한 것입니다. 하지만, 범위에서 벗어나므로 간단히만 언급하고 넘어가도록 하겠습니다. (안 읽고 넘어가셔도 무방합니다.)
확률론에서는, 사건에 따른 sample space 가 주어져있고, sample space 의 부분집합들로 특정 조건을 만족하게 sigma-algebra 라는 것을 잡을 수 있는데 이 sigma-algebra 에서 실수로 가는 (확률의 공리를 만족하는) mapping 이 확률 입니다.
위에서 가격이 오르고 내리는 확률은 pricing 할 때 전혀 쓰이지 않았던 것을 볼 수 있는데요. 이 확률 대신 Risk Neutral Measure 를 사용하는 것이 옵션 가격을 설정하는 또 다른 방법입니다. Risk Neutral Measure 는 discount 된 주식 가격의 기댓값이 시간에 따라 변하지 않게 하는 새로운 확률 measure 입니다. 이를 이용해서 discount payoff 를 평균 낸 것이 옵션의 가격이 됩니다.
이 과정을 확률론의 개념으로 보면 주식의 가격 payoff, portfolio 가치 모두 sample space와 시간의 product space 에서 실수 공간으로 가는 stochastic process 이고, (주식 가치 / 은행 가치) 를 Martingale(미래에 정보를 현재의 정보로 conditioning 해서 본 기댓값이 현재 값과 같은 확률 변수) 로 만들어 주는 확률 측도가 Risk neutral measure 인 것입니다.
Black sholes model 은 이 stochastic process 의 dynamics 를 시간 성분과 브라우니안 모션 성분으로 나눈 형태로 표현할 수 있을 때 (Ito process) 위와 똑같은 과정을 거쳐 pricing 을 하는 것입니다.
3. Model Free Properties
지금까지 여러 모델들을 살펴봤다면 이번에는 모델에 상관없이 항상 성립하는 성질을 살펴보도록 하겠습니다.
가장 간단한 것부터 시작해봅시다. 만기 T에서 상품 A는 $100 을 받을 수 있고, B는 $50 을 받을 수 있다면 시간 0에서 어떤 상품을 비싸게 팔아야 할까요? 당연하게도 A입니다. 이 직관적으로 당연한 성질로 인해 여러가지 재미있는 성질들을 유도할 수 있습니다.
먼저, 또 다른 옵션 종류에 대해 소개하고 넘어가겠습니다. 지금까지 다룬 옵션은 만기 때만 행사될 수 있는 것입니다. 이런 옵션을 사실 유로피언(European) 옵션이라고 합니다.
또 다른 종류로는 아메리칸(American) 옵션이 있는데 아메리칸 옵션은 구매자가 만기 전 언제나 행사할 수 있습니다. 따라서 아메리칸 콜옵션의 payoff를 식으로 표현하면 (S_t — K)+ (0<t<T) 입니다.
그러면 이제 두 옵션의 가격을 한 번 비교해볼까요? 이제부터 아메리칸 콜, 풋을 각각 Ca, Pa라 하고 유로피언 콜, 풋을 각각 Ce, Pe라 하겠습니다.
위에서 살펴본 ‘마지막에 가치가 더 높으면 처음에도 더 비싸다’는 직관적인 성질을 이용하면 American Option과 European Option의 가격 비교도 쉽게 할 수 있습니다.
만기와 Strike 가 같을 때, 직관적으로는 아메리칸 옵션이 더 할 수 있는 게 많으니 유로피언 옵션보다 비싸야 할 것입니다. 즉, Ca ≥ Ce, Pa ≥ Pe 입니다.
이를 한 번 콜옵션에 대해 증명해보면 아래와 같습니다.
Suppose Ca < Ce (귀류법 사용)
Let T := Ce - Ca > 0
American Call 을 사고 European Call 을 팔아서 포트폴리오를 구성하면,
T 만큼 돈이 남으니 이를 은행에 예치할 수 있겠죠?
그렇다면 시간 0에서는 이 포트폴리오를 구성하는 데 돈이 들지 않습니다.
(V = -Ce + Ca + T = 0)
상대가 사간 European Call 은 어차피 만기에만 행사될 수 있으니 만기 T에서의
포트폴리오 가치를 살펴봅시다.
-> V = -((S_T - K)+) + ((S_T -K)+) + rT = rT > 0
따라서, 시간 T에서 포트폴리오의 가치가 양수가 되고 이 포트폴리오는 아비트라지 였던 것입니다.
-> 가정 모순
따라서, Ca >= Ce
여기서 한 가지 더 재미있는 사실은 사실 Ca = Ce 라는 것입니다. 이것도 위와 비슷한 방식으로 증명할 수 있습니다.
Suppose Ca > Ce (귀류법 사용)
Let T := Ca - Ce > 0
European Call 을 사고 American Call 을 팔아서 포트폴리오를 구성하면,
T 만큼 돈이 남으니 이를 은행에 예치할 수 있겠죠?
그렇다면 시간 0에서는 이 포트폴리오를 구성하는 데 돈이 들지 않습니다.
(V = -Ca + Ce + T = 0)
위와 다르게 이 경우에서 약간 tricky 한 것은 상대가 사간 것이 American Call 이라는 것입니다.
즉, 상대가 가지고 있는 것은 언제든 행사될 수 있고 내가 가지고 있는 것은 그렇지 못합니다.
만약 상대가 t' 에서 주식 가격이 K를 넘어서 행사했다고 해봅시다.
그러면 여기서 우리는 어떤 대처를 해야할까요?
주식을 공매도치고 그 돈을 은행에 예치하면 됩니다.
(직관적으로 생각해보면, 예상했던 Strike 를 넘어설 정도로 주식 가격이 올랐으니
다시 회귀할 것으로 기대하고 공매도 하는 것입니다.)
그러면 여기서 추가적인 행동을 하는 데에도 돈이 더 필요하지 않겠죠?
그리고 시간 T에서의 상황을 살펴보면, 아래와 같습니다.
첫 번째 항은 American Call 구매자에게 준 payoff 가 은행에 빚으로 쌓여있고 연체율이 붙은 것입니다.
V = (- (S_t - K) * r) + ((S_T - K)+) - S_T + S_t * r
1) S_T < K 인 경우, V = -r*S_t + rK - S_T + r*S_t = rK - S_T > 0
2) S_T >= K 인 경우, V = -r*S_t + rK + S_T - K - S_T + r*S_t = (r-1)K > 0
따라서, 이 포트폴리오도 아비트라지가 되고 가정이 모순임이 밝혀졌습니다.
따라서, Ca = Ce
맨 처음에 살펴봤던 ‘마지막에 가치가 더 높으면 처음에도 더 비싸다’ 는 아주 직관적인 성질에 의해 저희가 지금까지 궁금해왔던 옵션 가격의 모든 것을 유도할 수 있습니다. (아비트라지가 있으면 안 된다 ← → 시간 T에서 가치가 0보다 크면 시간 0에서도 0보다 크게 팔았어야 한다.)
옵션의 종류 뿐만 아니라 옵션을 결정하는 요소인 만기와 Strike 에 따라서도 가격이 달라질텐데 이것도 똑같이 유도할 수 있으니 직관적으로만 설명하면, 만기가 더 많이 남은 옵션이 수익권에 들어올 가능성이 높으니 더 비싸야겠죠? Strike도 콜옵션의 경우는 낮아야, 풋옵션의 경우는 높아야 수익 볼 가능성이 높으니까 더 비쌀 것입니다.
4. Recap above concepts in on-chain option
온체인에서 위와 같은 상황을 구현하려면 고려해야 할 점들이 무엇일까요?
첫 번째로 선택한 모델에 맞게 옵션의 가격설정이 잘 되어야 할 것입니다. 위 Binomial 모형 예시에서 살펴본 것처럼 각 옵션마다 아비트라지가 생기지 않는 최적의 가격이 있습니다. 이 적정선에서 멀리 떨어지면 구매자나 판매자 중 손해를 보는 사람이 생길 수 밖에 없습니다.
두 번째로 옵션이 행사됐을 때 판매자가 구매자에게 정해진 payoff 를 지급할 수 있어야 합니다. 콜옵션 구매자는 초기에 프리미엄(설정된 옵션 가격)을 내고 구매했으므로 만기 때 가격이 Strike 위로 올라오면 그 차익만큼 수익을 볼 수 있어야 합니다. 이러한 거래 흐름이 문제 없이 일어나야 옵션 거래가 의미가 있어집니다.
현재 많이 쓰이고 있는 프로토콜들에서는 위의 점들이 잘 지켜지고 있을까요? 아래는 듄 애널리틱스에서 온체인 옵션 프로토콜의 누적 거래량과 디파이라마 TVL 입니다.
거래량, TVL이 가장 압도적인 2가지 프로토콜(Lyra, Dopex) 에서는 모두 블랙숄츠 모형으로 계산하고 있다고 문서에 적어두었습니다. 확률론 개념에서 잠깐 언급했듯이 해당 모형에 맞는 Risk Neutral Measure 만 찾으면 가격을 쉽게 계산할 수 있습니다. 이 조건을 이용해서 블랙숄츠 모형의 가정을 풀면 아래와 같은 공식이 나옵니다. (Risk Neutral Measure의 존재성은 No-arbitrage 조건과 동치여서 고려 안 해도 됩니다.)
여기서 c와 p가 각각 콜옵션과 풋옵션의 가격입니다. 위에서 언급했듯이 옵션을 만든다는 것은 만기와 Strike 를 설정하는 일입니다. 따라서 위 식에서 우리는 S_o (시간 0에서 주식 가격), K(Strike), r(은행 이자율), T(만기) 는 다 알고 있고, σ만 모르는 상태입니다**.**
즉, σ만 알면 단순 사칙연산만 하면 됩니다. 이 σ 로는 전통 금융에서는 역사적 변동성을 사용합니다.하지만, 역사적 변동성을 온체인에서 자세하게 계산하려면 많은 블록공간과 가스비가 필요할 것입니다. Lyra와 Dopex 의 코드(Reference에 링크 첨부)를 살펴본 결과, 두 프로토콜 모두 체인링크 오라클에서 받아오는 것을 대안으로 선택하면서 모든 DEX 가 그렇듯 차익거래자들로 인해 Volatility 와 옵션 가격이 최적으로 수렴하기를 기대하고 있습니다.
코드 상으로는 나름 옵션 프리미엄이 이론대로 잘 계산되고 있습니다. 하지만 이것은 리테일 유저들이 옵션을 살 때의 이야기에 불과합니다. 온체인에서 제일 많이 거래가 이뤄지는 형태는 옵션 프로토콜들이 상품별로 생성해놓은 DOV(Defi Option Vault)에 리테일들이 자신이 가진 자산을 예치함으로써 정해진 APY 를 받는 것입니다.
이게 왜 옵션 거래인지 ARB monthly CALLS 를 예로 들어 다시 설명하자면, 유저는 자신이 ARB 를 가지고 있는 상태에서 18% APY를 받기 위해 DOV에 예치합니다. 이 APY가 유저가 받는 옵션 프리미엄인 것입니다. 예치한 유저는 콜옵션을 판 상태가 되는 것이고, 이제 이 풀에서 콜옵션을 구매한 사람이 생기면 만기 때 정해진 Strike로 예치된 ARB를 사갈 수 있는 것입니다.
온체인 옵션에서 Vault 형식을 차용하는 것은 기술상 필연적입니다. 어떤 유저가 옵션을 팔았는데 프리미엄만 받고 payoff 를 줄 돈을 다 비워버리면 어떻게 할 방법이 없기 때문입니다. 이런 필연성과 유저가 쉬운 인터페이스로 어려운 개념인 것 같은 옵션을 할 수 있게 해준다는 마케팅이 겹쳐지면서 설정된 APY는 정당한 프리미엄에 비해 낮아지게 됩니다.
또한 앞에 101 부분에서 다뤘듯이 옵션 판매자는 옵션을 판 돈으로 헷징 포트폴리오를 구성해야 합니다. 하지만, 유저들은 단순히 APY를 받기 위한 staking을 해놨다고 생각하기 때문에 이런 행동을 하지 않습니다. 따라서 갈 수록 유저들이 손해볼 수 밖에 없는 구조가 됩니다.
또한 위 랭킹의 대부분의 프로토콜이 유로피언 옵션 또는 무기한 옵션만 지원하고 있습니다. 그 이유는 감히 추측컨대, 가장 효율이 잘 나는 상품이기 때문일 것입니다.
3번째 목차에서 언급했듯이, 아메리칸 옵션은 만기 전 아무때나 행사할 수 있지만, 콜옵션의 경우는 유로피언과 가격이 같아야 합니다. 즉, 유저가 행사한 직후 payoff가 계산되어야 하기 때문에 오라클 문제에 더 취약할 수 밖에 없음에도 프로토콜이 벌 수 있는 수수료는 적습니다. 무기한 옵션의 경우는 만기가 없는 아메리칸 옵션과 비슷하지만, 만기가 없다는 점에서 가격이 비싸게 형성되어 on-chain perpetual 을 같이 지원하는 곳에서 보통 많이 하는 모습입니다.
Premia는 거의 유일하게 만기가 있는 아메리칸 옵션을 지원하는 프로토콜입니다.
옵션의 개념을 알고 나서 프로토콜의 구조를 자세히 살펴보면 사실 유명무실 하다는 것을 알 수 있습니다. 아래 그림은 Premia의 트랜잭션 플로우입니다.
옵션을 구매하고자 하는 유저가 만기, Strike, 수량을 정해서 제출을 하면 pool이 검토를 해서 최종 가격을 제시하고 유저가 거기에 수락하면 옵션을 구매할 수 있습니다. DOV 부분에서 설명했듯이 pool에 자산을 예치하는 사람들은 곧 옵션 판매자입니다. 즉, 구매자는 블랙숄츠 모형으로 자동으로 계산된 가격이 아닌 판매자의 검토를 거친 가격에 구매할 수 있는 것입니다. 이렇다보니 유로피안 옵션을 판매하는 다른 프로토콜보다 가격이 비싸지게 됩니다.
하지만, 이러면 이론에 맞지 않기 때문에 아비트라지가 일어나서 AMM으로 인해 가격이 같아지지 않을까요? 라는 의문이 들 수 있습니다.
여기서, Premia는 아메리칸 옵션 구매만 지원하면서 이 점을 원천 봉쇄해버렸습니다. 3번째 목차에서 증명과정을 다시 한 번 살펴보면, Ca > Ce 일 때의 아비트라지 포트폴리오는 아메리칸 옵션을 팔고 유로피안을 사고, 남은 돈으로 무위험 수익을 먹는 것이었습니다. 하지만, Premia 는 이 행동 자체를 불가능하게 만들어 버린 것이고, 효율적인 시장 활동을 막은 것입니다.
이렇듯 on-chain option 프로토콜 들에서 나름 기존 옵션 개념들을 블록체인이라는 플랫폼에 맞게 잘 치환시켰지만, 아직까지 효율적인 시장 거래가 이뤄질만큼 다양성과 투명성은 부족한 것 같습니다. 블록체인이 자산군으로 널리 쓰이려면 전통 금융에서와 마찬가지로 파생 상품 또한 더욱 발전해야 한다고 생각합니다. 이번 시리즈에서는 옵션의 이론과 온체인 옵션 프로토콜에서 그 이론들이 어떻게 적용됐는지 살펴보았다면, 다음 시리즈에서는 실제 거래할 때 고려해야 하는 점과 perpetual option 에 관해 다루도록 하겠습니다.