Các bạn cũng đã hiểu phần nào về ưu nhược điểm của PMM so với AMM ở DODO Series #5: Từ AMM đến PMM và DODO Series #6: Hiệu quả sử dụng vốn của PMM. Và nay chúng ta sẽ cùng đi vào chi tiết thuật toán PMM nhé.
Bắt đầu với khái niệm
Proactive Market maker hay PMM, về cơ bản là một mô hình tạo lập thị trường blockchain mới. Nó khác với mô hình hình AMM ở việc nó tách biệt được mối quan hệ giữa giao dịch với tài sản, có sự linh hoạt với sự vận động của thị trường, sự kết hợp giữa tỷ lệ tài sản và mô hình đường cong độ dốc của giá. Ở đây đặc biệt có sự kết hợp chặt chẽ với oracle để đưa (input) đầu vào với mức giá đẹp nhất, ít trượt giá để tính toán.
Thị trường chứa một lượng lớn thông tin thể hiện cảm tính của người bán và người mua cùng định giá tài sản. Về cơ bản, một thị trường phản ứng với các thay đổi, cần đòi hỏi các cơ chế phức tạp để xử lý sao cho hiệu quả với khối dữ liệu lớn này. Và chắc chắn, trong không gian blockchain, việc xây dựng một cơ chế để kết hợp tất cả các thông tin quan trọng, cần thiết cho việc hình thành thị trường đảm bảo hoạt động nhanh chóng trên các nền tảng hiện tại là một nhiệm vụ không hề dễ dàng và vô cùng khó khăn.
Để giữ cho thị trường hoạt động trơn tru và hiệu quả, thì chỉ số quan trọng nhất của thị trường đó chính là tính thanh khoản và nó có thể được thể hiện như hình dưới đây:
Có thể thấy biểu đồ được chia làm 2 phần, không nhất thiết là đối xứng, đại diện cho bên bán và bên mua, dọc theo trục x của giá và trục y là độ sâu. Vậy ở đây ta sẽ cần một mô hình toán học có thể kết hợp được giữa các tham số: giá cân bằng (mid price) và độ dốc
Sau đây, chúng ta cùng đi chi tiết vào vấn đề
Nhìn vào nửa bên phải của biểu đồ, nơi mà giá bán được báo giá, ta thấy được, càng nhiều token được bán thì giá lại càng tăng. Thông thường, mối quan hệ tuyến tính này đang được xác định bằng công thức:
- i ở đây là parameter 1, k là parameter 2 (hệ số góc).
- Bo là số lượng token ban đầu, B là số lượng token tại thời điểm k.
- Vậy nên Bo – B là số token đã thay đổi do được bán đi khi giao dịch. Công thức này quy định rằng số lượng token giao dịch tăng lên, thì giá token cũng đc tăng lên theo hàm tuyến tính.
Tuy nhiên, như các bạn đã thấy thì thị trường vận hành thực tế không như vậy, và công thức như vậy thì có những hạn chế như sau:
- Thực tế thì phần lớn thanh khoản sẽ tập trung dao động ở gần với mức giá cân bằng, đó là chiến lược hiệu quả nhất về vốn cho các market maker. Vì vậy mô hình trên không phản ánh được sự phân bố không đồng đều này và nó đang bị đơn giản hóa quá mức.
- Mô hình này không tính đến các tình huống bị trượt giá, giá bị trượt xuống dưới một ngưỡng cố định (Ví dụ đơn giản ở đây mua BNB/USDC 300$ với lệnh mua ở 2.500$ vậy liệu có thanh khoản ở mức giá này không? Hay thanh khoản của nó sẽ về 0). Còn nhiều tình huống khác nữa.
Mô hình PMM
Từ việc nhìn ra được những hạn chế đó, một mô hình được xây dựng từ đội ngũ của DODO, được đưa ra như sau:
Trong công thức này nó sẽ được mô tả bằng 4 biến số chính, hay như cách gọi của team thì một funding của PMM sẽ được tạo bởi:
- Bo: token cơ bản (base token) trong pool, tổng số base token được liquidity providers cung cấp lúc ban đầu. Ví dụ trong pool ETH/USDC thì base token là ETH.
- Qo: token giá được đặt trong pool (quote token), tổng số quote token được LP cung cấp lúc ban đầu. Trong ví dụ thì quote token là USDC.
- B: tổng số base token ở thời điểm hiện tại của pool.
- Q: tổng số quote token ở thời điểm hiện tại của pool.
- Thêm nữa i ở đây chính là giá thị trường, được cung cấp bởi Oracle (đảm bảo được mức giá tốt nhất và ít tổn thương nhất), k là một biến số dao động [0,1].
Tiếp nữa, ở bất cứ một thời điểm nào, thì PMM sẽ rơi vào một trong 3 trạng thái như sau: trạng thái cân bằng (equilibrium), thiếu hụt token cơ bản (base token), thiếu hụt token thứ 2 (quote token)
Ban đầu, khi khởi tạo pool, nguồn vốn ở trạng thái cân bằng thì cả B = Bo, Q=Qo
- Khi traders bán base token, thì số dư của base token trong pool cao hơn số dư ban đầu, ngược lại số dư của quote token sẽ thấp hơn lúc ban đầu. Ở trạng thái này, thì hệ thống PMM sẽ cố gắng bán đi base token dư thừa đó, để đưa pool về trạng thái cân bằng và tăng số dư của quote token. Trạng thái của pool vì thế mà cân bằng, không làm hao hụt cho các liquidity providers.
- Khi traders mua vào base token, thì số dư quote token trong pool sẽ tăng lên so với ban đầu, ngược lại khi đó số dư base token sẽ bị giảm so với ban đầu. PMM sẽ tiếp tục tính toán điều chỉnh bằng cách bán đi số lượng quote token và tăng thêm số lượng base token. Trạng thái của pool vì về tiếp tục được cân bằng.
- Tham số R trong công thức định giá ở trên đóng vai trò quan trọng trong việc hỗ trợ quá hình hồi quy này. Đơn giản, khi một nhóm vốn càng lệch khỏi trạng thái cân bằng thì r càng bị lệch khỏi 1. Nếu giá thuật toán PMM này bị lệch khỏi giá trị trường, thì các traders kiếm tiền từ việc mua thấp bán cao cũng có động lực để đưa giá về vị trí cân bằng.
Và kết quả mà chúng ta có thể nhìn thấy:
Sẽ có rất nhiều trường hợp và usecase phân tích được giá trị của mô hình này, nhưng tạm thời tới đây thì các bạn cũng có thể hiểu được vì sao PMM:
- Tránh được độ thiệt hại rủi ro đến từ 1 phía.
- Liquidity providers không thị tổn thất tạm thời (IL).
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 #8: Phân tích thuật toá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 với các thành viên khác nhé.