Thanh khoản trên Uniswap
Kiến trúc thiết kế của giao thức Uniswap khác với mô hình trong các sàn giao dịch tài sản kỹ thuật số truyền thống. Hầu hết các sàn giao dịch truyền thống đều duy trì một sổ đặt hàng và sử dụng nó để khớp người mua và người bán một tài sản cụ thể. Và Uniswap sử dụng **dự trữ thanh khoản** để thực hiện giao dịch tài sản kỹ thuật số trong thỏa thuận.
Dự trữ thanh khoản cho các hợp đồng giao dịch được cung cấp bởi các nhà cung cấp thanh khoản trong mạng lưới. Các nhà cung cấp thanh khoản này gửi mã thông báo ETH và ERC20 tương đương vào các hợp đồng giao dịch mã thông báo ERC20 cụ thể. Nhà cung cấp thanh khoản đầu tiên cung cấp thanh khoản cho hợp đồng trao đổi trước tiên sẽ đặt tỷ giá hối đoái giữa ETH và mã thông báo ERC20 tương ứng trong hợp đồng trao đổi đó. Các nhà cung cấp thanh khoản thiết lập tỷ giá hối đoái này bằng cách gửi những gì họ tin là tương đương với ETH và mã thông báo ERC20 được hỗ trợ bởi hợp đồng. Nếu tỷ giá hối đoái do nhà cung cấp thanh khoản đặt ra không nhất quán với thị trường trao đổi tiền điện tử rộng lớn hơn thì các nhà giao dịch chênh lệch giá sẽ dẫn tỷ giá hối đoái giữa mã thông báo ETH và ERC20 đến mức mà thị trường tin là tỷ giá hối đoái chính xác. Do đó, tất cả các nhà cung cấp thanh khoản tiếp theo sẽ sử dụng tỷ giá hối đoái khi họ gửi tài sản để gửi thanh khoản.
Uniswap cũng sử dụng cái gọi là **"token thanh khoản" (token thanh khoản), bản thân chúng tuân thủ ERC20. Những mã thông báo này có thể được coi là đại diện cho sự đóng góp của nhà cung cấp thanh khoản cho hợp đồng giao dịch. Lý do đằng sau việc Uniswap hạn chế chỉ hỗ trợ một mã thông báo ERC20 cho mỗi hợp đồng giao dịch là để khuyến khích các nhà cung cấp thanh khoản gộp tài sản thanh khoản của họ vào một khoản dự trữ duy nhất**. Uniswap theo dõi tỷ lệ tương đối của từng nhà cung cấp thanh khoản đóng góp vào tổng dự trữ bằng cách đúc các token thanh khoản. Các nhà cung cấp thanh khoản có thể đốt mã thông báo thanh khoản của họ tại thời điểm họ chọn để họ có thể rút một phần tỷ lệ mã thông báo ETH và ERC20 khỏi hợp đồng trao đổi.
Các nhà cung cấp thanh khoản có thể chọn bán hoặc chuyển token thanh khoản của họ mà không loại bỏ tính thanh khoản khỏi hợp đồng trao đổi. Tuy nhiên, token thanh khoản của Uniswap được chỉ định chặt chẽ cho một hợp đồng trao đổi. Không có tài sản kỹ thuật số gốc nào được liên kết với giao thức Uniswap. Các nhà cung cấp thanh khoản cũng có thể gửi thanh khoản vào hợp đồng giao dịch bằng cách gọi hàm addLiquidity(). Là phần thưởng cho việc cung cấp thanh khoản, nhà cung cấp thanh khoản sẽ nhận được một tỷ lệ phí giao dịch nhất định khi giao dịch được thực hiện
Giao dịch trên Uniswap: ETH ⇄ Giao dịch ERC20 Một loại giao dịch có thể được thực hiện trong giao thức Uniswap là trao đổi ETH lấy bất kỳ mã thông báo ERC20 cụ thể nào. Như đã đề cập ở trên, tỷ giá hối đoái giữa ETH và một mã thông báo ERC20 nhất định dựa trên mối quan hệ tương đối quy mô của từng nhóm thanh khoản tài sản trong hợp đồng giao dịch. Tỷ giá hối đoái dựa trên tính bất biến của Uniswap: ETH pool token pool = invariant (bất biến). Trong quá trình thực hiện bất kỳ giao dịch nào trên giao thức Uniswap, một bất biến (bất biến) vẫn không thay đổi. Hơn nữa, các bất biến chỉ thay đổi khi tính thanh khoản trong hợp đồng giao dịch tăng hoặc giảm.
Ví dụ ETH ⇄ BAT: Bob muốn thực hiện giao dịch để đổi 1 ETH lấy BAT token ERC20. Bob sẽ sử dụng hợp đồng trao đổi hiện có trên giao thức Uniswap để thực hiện giao dịch này. Nhà cung cấp thanh khoản đã gửi một lượng ETH và BAT nhất định vào hợp đồng trao đổi, ví dụ này, giả sử 10 ETH và 500 BAT. Bất biến cơ bản được đặt là: ETH pool *BAT pool = bất biến (bất biến), nghĩa là:
Nhóm ETH = 10 BAT
hồ bơi = 500
Bất biến = 10 * 500 = 5.000
Bob bắt đầu giao dịch của mình bằng cách gửi 1 ETH vào nhóm ETH của hợp đồng giao dịch và khấu trừ 0,3% phí cho các nhà cung cấp thanh khoản trên cơ sở này. 0,997 ETH còn lại đã được thêm vào nhóm ETH. Sau đó, chia bất biến cho tổng ETH mới để xác định kích thước mới nhất của nhóm BAT. Sau đó, mã thông báo BAT còn lại sẽ được gửi cho người mua, trong trường hợp này là Bob. Đó là:
Nhóm ETH = 10 BAT
hồ bơi = 500
Bất biến = 10 * 500 = 5.000 Bob
bắt đầu giao dịch của mình bằng cách gửi 1 ETH vào nhóm ETH của hợp đồng giao dịch và khấu trừ 0,3% phí cho các nhà cung cấp thanh khoản trên cơ sở này. 0,997 ETH còn lại đã được thêm vào nhóm ETH. Sau đó, chia bất biến cho tổng ETH mới để xác định kích thước mới nhất của nhóm BAT. Sau đó, mã thông báo BAT còn lại sẽ được gửi cho người mua, trong trường hợp này là Bob. Đó là:
Bob gửi: 1 ETH
Phí xử lý: 0,003 ETH
Nhóm ETH = 10 + (1 – 0,003) = 10,997
Nhóm BAT = 5000/10,997 = 454,67
Bob nhận được: 500 – 454,67 = 45,33 BAT
Phí xử lý trả cho nhà cung cấp thanh khoản đã được khấu trừ khi Bob thực hiện giao dịch và bây giờ phí xử lý này được thêm vào nhóm thanh khoản (có nghĩa là bất biến sẽ tăng lên). Khoản tiền này hoạt động như một khoản thanh toán cho các nhà cung cấp thanh khoản mà họ có thể thu được khi loại bỏ khoản đóng góp thanh khoản của mình khỏi thị trường. Bởi vì khoản phí này được cộng lại sau khi tính giá nên khi mỗi giao dịch trên hợp đồng trao đổi được thực hiện, tính bất biến tăng dần, khiến hành động gửi thanh khoản vào hợp đồng trao đổi trở nên quan trọng đối với tính thanh khoản. Đây là một hoạt động mang lại lợi nhuận cho những người cung cấp dịch vụ mại dâm. tại thời điểm này:
Nhóm ETH = 10,997 + 0,003 = 11
Nhóm BAT = 454,67 mới
bất biến = 5.001,37
Trong giao dịch này, Bob nhận được BAT với tỷ giá hối đoái là 45,33 BAT/ETH.
Đầu vào: 1 ETH
Đầu ra: 45,33 BAT
Tỷ giá hối đoái = 45,33 BAT/ETH
Giao dịch trên Uniswap: Giao dịch ERC20 ⇄ ERC20
Một loại giao dịch khác có thể được thực hiện trong giao thức Uniswap là trao đổi một mã thông báo ERC20 lấy một mã thông báo ERC20 khác. Vì ETH được sử dụng làm cặp giao dịch công khai cho tất cả các token ERC20 nên Uniswap sử dụng ETH làm tài sản trung gian cho các giao dịch trực tiếp giữa ERC20 và ERC20. Ví dụ: Uniswap có thể chuyển đổi mã thông báo BAT thành ETH trong một hợp đồng giao dịch nhất định và sau đó chuyển đổi phần ETH này sang OMG trong một hợp đồng giao dịch khác, tất cả đều được hoàn thành trong một giao dịch, do đó có thể thực hiện bất kỳ hai giao dịch trao đổi nào giữa các mã thông báo ERC20.
Công thức này hoạt động rất giống một thị trường bình thường ở chỗ bạn càng mua nhiều token thì tỷ giá hối đoái cận biên bạn phải trả để mua thêm một đơn vị token càng cao.


