Chúng ta đã thảo luận nhiều về AMM. Đầu tiên là về thuật toán của các AMM, các mô hình phổ biến, các dự án… Anh em nghĩ rằng mình đã hiểu rõ AMM?
Mình nghĩ là chưa! Với các sàn giao dịch phi tập trung sử dụng AMM của riêng họ, nó luôn chứa những rủi ro.
2 rủi ro lớn nhất là Impermanent loss và trượt giá (Slippage).
Anh em sẽ gặp rất nhiều cơ hội để kiếm được lợi nhuận trên thị trường như cung cấp thanh khoản, giao dịch, các cơ hội giao dịch chênh lệch giá (arbitrage)… Nhưng anh em phải nhớ rằng luôn có những rủi ro chờ sẵn.
Ở bài viết này, mình sẽ chia sẻ cho anh em biết những rủi ro đó là gì và cách để tính toán chúng.
Impermanent loss
Anh em có thể đã nghe về điều này trong nhiều cuộc trò chuyện khác. Vậy nó thực sự là gì?
Đó là những tổn thất tiềm tàng và chỉ trở thành tổn thất “thực sự” khi anh em bắt đầu rút các tokens từ các Pool thanh khoản.
Giả sử mình sở hữu một cổ phiếu Tesla. Giá cổ phiếu giảm từ $500 xuống còn $400. Tuy nhiên, khoản lỗ $100 chỉ đang ghi nhận trên giấy tờ. Khi mình chưa bán cổ phiếu thì khoản lỗ tất nhiên vẫn chưa được ghi nhận. Chỉ là giá trị của cổ phiếu thay đổi.
Cổ phiếu có thể tăng lên $500 một lần nữa và mình sẽ không nhận khoản lỗ nào.
Ví dụ trên của Tesla cho thấy rủi ro ở đây là gì? Khi giá cổ phiếu giảm thì chắc chắn mình sẽ phải nhận một tổn thất thực sự.
Impermanent loss cũng tương tự, chỉ là “số tổn thất” chưa được xác định cụ thể là bao nhiêu cho đến khi anh em hành động. Bởi vì AMM thay đổi nhanh chóng theo biến động giá và các phép toán được tính liên tục theo từng giây. Vì vậy, sự tổn thất mà anh em đang thấy trên “giấy tờ” không hẳn là tổn thất thực sự. Chỉ là “Chưa”.
OK, chúng ta đã nói về những tổn thất trong AMM. Chúng ta đã nói về khái niệm “Impermanent loss”. Bây giờ, trở lại với những Pool thanh khoản quen thuộc của chúng ta.
Impermanent loss hoạt động như thế nào?
Lấy ví dụ của Uniswap cho dễ hiểu.
Giả sử Uniswap không có phí giao dịch, một pool có 2 token: ETH và USDT.
Hiện tại, 1 ETH = 400 USDT. Tỉ lệ này chỉ được tính cho các token đã có sẵn BÊN TRONG Pool.
Còn bên ngoài Pool, giả sử mọi người đang giao dịch 1 ETH = 420 USDT trên Binance.
Làm thế nào anh em có thể kiếm lời từ điều này?
Các nhà giao dịch chênh lệch giá sẽ dùng 400 USDT để mua 1 ETH trong Pool, sau đó chuyển đến Binance và bán nó với giá 420 USDT.
Điều đó có nghĩa họ nhận được 20 USDT miễn phí! Vâng, điều này là hợp pháp. Việc tương tự diễn ra trong tài chính truyền thống cũng vậy.
Vậy lỗ do đâu mà có?
Các nhà giao dịch chênh lệch giá này tất nhiên sẽ mua và bán ETH cho đến khi tỷ giá trong Pool đạt 1 ETH = 420 USDT (bằng ở Binance).
Bây giờ có thể anh em đang nghĩ “ok, dù sao thì đó cũng là giá bình thường. Nó ảnh hưởng đến tôi như thế nào?”
*Trong giai đoạn này, đây là những gì sẽ xảy ra:
Trạng thái bắt đầu: Số tiền có trong Pool là 25ETH và 10.000 USDT.
Token → Số lượng → Giá → Giá trị.
ETH → 25 → 400 → 10.000 (tính bằng USD).
USDT → 10.000 → 1 → 10.000 (tính bằng USD).
Tổng số lượng coins không đổi ( Hằng số k) = 25 * 10.000 = 250.000.
Khi giá bên ngoài tăng lên 1 ETH = 420 USDT, các nhà giao dịch chênh lệch giá sẽ giao dịch.
Và đây sẽ là những thay đổi trong Pool:
Giả sử anh em sở hữu 10% Pool, anh em sẽ được hưởng 2.43975 ETH + 1.024,695 USDT.
Tổng số tiền anh em có tính theo USDT là = 2.43975 * 420 + 1.024.695 = 2049,39 USDT
Nếu ban đầu anh em giữ 10% đó trong ví cứng, anh em vẫn giữ 2,5 ETH +1.000 USDT.
Số tiền anh em có tính theo USDT == 2,5 * 420 + 1,000 = 2050 USDT.
Số tiền bị mất = 2050 – 2049,39 = 0,61.
Vậy làm cách nào để tính tổn thất vô thường trong Uniswap?
Đây là công thức chung để tính toán tổn thất mà các LPs phải chịu trong Uniswap. Hãy lưu ý rằng công thức này chỉ áp dụng cho Uniswap và nó KHÔNG bao gồm phí giao dịch!
Impermanent loss là những gì xảy ra độc lập với việc giao dịch của anh em. Nó gần như là chi phí cơ hội của việc anh em để các token trong Pool thay vì giữ chúng trong ví.
Vậy nên để tính toán lợi nhuận kỳ vọng, ngoài các khoản phí giao dịch thu được, anh em nên trừ đi các khoản Impermanent loss này.
Một điều khác cần lưu ý là công thức này giả định rằng chỉ có một Token thay đổi giá tại một thời điểm cụ thể.
Ví dụ như ETH tăng, USDT giữ nguyên. Còn trên thực tế, khi anh em giao dịch các cặp như ETH/COMP. Cả hai tokens này có sự tương quan và có thể di chuyển cùng tăng hoặc cùng giảm.
Sự trượt giá
Đó là những rủi ro, tổn thất sẽ xảy ra nếu anh em không giao dịch. Vậy còn tổn thất gì xảy ra nếu anh em giao dịch?
Rủi ro này được gọi là trượt giá. Trượt giá là sự khác biệt giữa giá dự kiến trước khi giao dịch và giá thực tế khi token được giao dịch.
Đó là lý do tại sao trên Uniswap, anh em luôn thấy 2 chỉ số “số tiền tối thiểu nhận được” và “tác động giá”.
Vậy trượt giá là do đâu?
Các DEX liên tục giao dịch. Giá cho token thứ 1 sẽ khác với giá của token thứ 2 vì mô hình nhà tạo lập thị trường tự động (AMM). Quy mô giao dịch càng lớn so với thanh khoản, mức trượt giá càng cao.
Ví dụ như anh em muốn giao dịch 9,000 token và mà chỉ có 10,000 token trong Pool (hay còn gọi là 90% tính thanh khoản), mức trượt giá sẽ rất lớn. Điều đó có nghĩa là số tiền thực tế anh em nhận được so với số tiền dự kiến sẽ rất khác nhau.
Có cách nào để ngăn chặn nó không?
Chà, không hẳn là không ngăn cản được. Có một giải pháp là trả phí gas cao hơn để các giao dịch của anh em được ưu tiên, nhưng điều đó sẽ gây tốn kém về phía anh em. Phí giao dịch thậm chí có thể nhiều hơn mức trượt giá.
Một cách khác là chọn các Pool thanh khoản lớn, nơi số token anh em muốn giao dịch chiếm một tỷ lệ nhỏ so với Pool.
Ví dụ như nếu anh em muốn giao dịch COMP để lấy ETH, anh em nên vào Balancer, Uniswap, Bancor… chọn nhóm có thanh khoản lớn nhất và giao dịch ở đó thay vì ở nơi khác.
Theo C98