Ở bài đầu tiên, chúng ta đã có cái nhìn tổng thể về sàn Dex DODO. Và giờ là thời gian chúng ta đi sâu vào từng chuyên mục cụ thể như GFS Blockchain đã hứa ở cuối bài DODO Series #1. Chủ đề được đề cập tiếp theo tại DODO Series #5 hôm nay sẽ là PMM (Proactive Market Maker). Đây cũng là niềm tự hào của DODO.
Đặt vấn đề
Automated Market Makers (AMM) protocol cụ thể như Uniswap và Sushiswap hiện tại, có một rủi ro rất lớn được gọi Impermanent Loss (IL). Đây chính là tổn thất mà liquidity providers sẽ gặp phải.
Trước tiên, chúng ta sẽ tập trung để hiểu rõ về IL và cách mà AMM tạo ra các IL này:
Về cơ bản, Impermanent Loss (tổn thất tạm thời) chính là sự khác biệt giữa việc thay vì bạn giữ nguyên tài sản ở một vị thế cố định, thì bạn mang tài sản đó stake vào các pool hoạt động dựa theo cơ chế thị trường tự động. Thì người dùng hoàn toàn có thể phải chịu những tổn thất như vậy do sự biến động của cơ chế AMM.
Dưới đây là một ví dụ cơ bản:
- Bạn stake 1 ETH và 100 DAI vào 1 pool nào đó trên Uniswap.
- Sau một tuần, thì giá hiện tại của 1 ETH = 200 DAI. Nếu bạn giữ nguyên tài sản lúc đầu thì số tiền của bạn có hiện tại 1*200 + 100 = 300. Vậy là sẽ tăng 50%.
- Nhưng bạn đã tham gia AMM pool trên Uniswap, thì số tiền bạn nhận được lúc này sẽ nhỏ <50%. Sự tổn thất này chính là IL.
Sự khác biệt giữa việc giữ nguyên 2 loại tài sản này và việc staking chúng trong AMM pool được đặt tên là Impermanent Loss – tổn thất tạm thời. Tại sao nó được gọi như vậy vì người dùng sẽ chẳng bao giờ biết được họ sẽ tổn thất bao nhiêu cho tới khi họ withdraw hay unstake pool. Và chỉ khi ETH trở lại 100 DAI, bạn withdraw thì coi như chưa có bất cứ chuyện gì xảy ra.
AMM truyền thống
Trong AMM pool sơ khai nhất, sẽ được bắt đầu với một công thức đơn giản như sau:
x*y = k
Ở đây x: tổng số lượng của token A, y là tổng số lượng của token B, còn k là một hằng số về số tài sản trong pool này.
Sử dụng lại ví dụ ở trên:
- Bạn stake 1 ETH và 100 DAI trong 1 AMM pool nào đó
- Trong pool này có tổng cộng 10 ETH và 1000 DAI. Vậy là sau khi staking, thì bạn đã chiếm 10% trong pool.
- Sau 1 tuần thì giá ETH = 200DAI
- Giả sử ở trường hợp này ta không đi kèm phí trading trong pool này.
Giờ sẽ tính toán một chút, chúng ta sẽ có:
k = 10 *1000 = 10,000
Vì giá ETH đã tăng lên gấp đôi so với DAI, nên những trader bên ngoài sẽ liên tục tìm cách mua ETH giá rẻ từ pool này đến khi nó đạt 200 DAI. Và chúng ta nhớ rằng, ngay khi khởi đầu tuần chúng ta có 10 ETH và 1000 DAI ( ETH =100DAI). Giờ chúng ta cần tính toán rõ tài sản trong pool khi giá ETH tăng theo công thức:
Theo ví dụ đã có, thì a là ETH, b là DAI, thời điểm khởi tạo ban đầu. Dựa trên công thức cơ bản của AMM chúng ta sẽ tính được số lượng tài sản trong pool ở bất kỳ thời điểm t nào:
Cụ thể, ở thời điểm t1:
Bây giờ với công thức tương tự, tính toán thời điểm khi kết thúc pool, 1 ETH = 100DAI và r = 200:
Ta nhận thấy sau khi giá ETH được thay đổi, thì pool sẽ còn lại là 7ETH và 1.414 DAI. Chúng ta sẽ xác định lại lần nữa:
7.07 *1.414 = 10.000
Vậy là hằng số k không thay đổi, bây giờ chúng ta sẽ đi tính tiếp. Vì trước đó số lượng bạn stake chiếm 10% trong pool, nên sau khi giá ETH có tăng hay không, thì tỉ lệ này vẫn giữ nguyên, và bây giờ thì bạn sẽ có: 0.707 ETH và 141,421 DAI.
Hãy nhớ trạng thái ban đầu bạn đang có 1 ETH và 100 DAI (lúc 1 ETH = 100 DAI) tức là nếu bạn giữ nguyên số lượng đó tới bây giờ thì hiện tại bạn sẽ có:
1* 200 + 100 = 300$
Vì bạn đã tham gia AMM pool nên số tiền bạn có hiện tại là:
0.707*200 + 141.421 = 282.821 $
Vậy nên chúng ta sẽ tính được impermanent loss ở ví dụ này:
300 – 282,821 = 17.179
17.179/300 ~ 0.0572 ~ 5.72%
Đến thời điểm này, 17.179 DAI hay 5.72% là cái mà bạn có thể sẽ được nhận nếu bạn giữ nguyên tài sản, thay vì việc bạn mang staking chúng trong pool. Ở ví dụ này chúng ta đang giả sử là sẽ không tin phần lợi nhuận được hưởng từ phí giao dịch, nếu có phí giao dịch thì số tổn thất có thể sẽ được tối ưu thấp hơn.
Tại sao mình lại nói vậy, chính xác thì việc bạn staking trong pool, thì bạn sẽ nhận được thêm lợi nhuận từ phí giao dịch. Và giả sử ở đây trong 1 tuần đó, bạn nhận được phần thưởng lên tới 30 DAI, tổng số tiền của bạn sẽ là:
282,821 + 30 = 312
Vậy tính ra thì chúng ta đang lãi hơn việc chỉ giữ token và không làm gì hết. Đây chính là điểm thu hút những liquidity providers.
Bây giờ chúng ta sẽ có một công thức tối ưu cho việc tính IL
Ở ví dụ thì p = 100/200 = 0.5
Từ đó, ta có:
Vậy là ta có chính xác số IL mà chúng ta đã mất. Ở đây mình chỉ ví dụ 1 trường hợp mà chỉ có 1 loại tài sản trong pool biến động, dựa vào công thức này thì bạn hoàn toàn có thể tính được, bạn có thể sẽ bị tổn thất bao nhiêu khi thị trường biến động, và các loại tài sản của bạn đều thay đổi.
Thêm một điểm cần chú ý nữa, là tỉ lệ tài sản ở trong pool cũng ảnh hưởng với IL, nhất là ở những pool phức tạp, không chỉ đơn giản 1-1 như ở ví dụ.
Vậy là tới đây, thì chúng ta đã hiểu rõ hơn về IL và cách mà bạn có thể tính toán được những tổn thất này. Nói chung thì bạn sẽ luôn phải chịu một số khoản lỗ vô thường không có cách nào thoát được khi bạn tham gia vào các giao thức trên AMM, đây cũng là những điểm yếu cố hữu của AMM Dex. Tiếp đó, là một bài học được rút ra, nếu bạn bắt buộc phải tham gia những giao thức như thế này để mong muốn nhận được airdrop, thì hãy nên chọn những cặp tài sản mà nó sẽ biến động giá tương tự như nhau, cùng biến động tăng hoặc giảm, đó là điều ít tổn thất nhất.
Giải pháp
Và điều gì sẽ xảy ra, nếu chúng ra staking tài sản như ví dụ trên, mà sẽ không bị mất bất cứ tổn thất nào ở đây ? Quá tuyệt vời phải không nào. Và đó là PMM của DODO DEX. Một giải pháp nâng cấp hoàn toàn của giao thức AMM
Còn tiếp ….
Ps: bài viết có tham khảo các tài liệu trên trang của DODO và Medium.
Kết luận
Trên đây, GFS Blockchain đã cung cấp thông tin cập nhật mới về dự án DODO với DODO Series #5: Từ AMM đến PMM.
- Mọi người có thể tham gia nhóm Telegram của cộng đồng người dùng DODO -> Tại đây
Hàng tuần, GFS sẽ cập nhật các thông tin mới nhất về dự án DODO, mọi người hãy thường xuyên theo dõi tại website và đừng quên tham gia vào nhóm cộng đồng của GFS để thảo luận nhé.