Nội dung này phục vụ mục đích giáo dục, không phải lời khuyên đầu tư hoặc tín hiệu giao dịch.

Trả lời ngắn: Swap token là đổi một token lấy token khác. Bạn gửi yêu cầu từ ví tới một quỹ token chung; chương trình tự động nhận token bạn đưa vào và trả token còn lại theo tỷ lệ hiện tại. Số thực nhận có thể thấp hơn báo giá vì giá thay đổi, quy mô lệnh và các loại phí.

Đọc xong, bạn sẽ hiểu:

  • Pool và router phối hợp để tạo báo giá thế nào.
  • Price impact khác slippage và phí ở đâu.
  • Những trường bắt buộc đọc trước khi ký swap.

1. Swap token là đổi tài sản qua smart contract

Swap là đổi token A lấy token B. Một số sàn phi tập trung cho bạn đổi trực tiếp với quỹ token có sẵn do chương trình quản lý, thay vì chờ khớp với lệnh mua hoặc bán của một người khác. Cơ chế dùng quỹ này thường được gọi là AMM.

Nguồn token thường là liquidity pool: smart contract giữ dự trữ hai hoặc nhiều tài sản. Một pool A/B có hai ngăn, một ngăn token A và một ngăn token B. Khi bạn đưa A vào và lấy B ra, tỷ lệ dự trữ thay đổi nên mức giá tiếp theo cũng đổi.

Hình dung quầy đổi tiền có két USD và EUR. Nếu nhiều người liên tục lấy EUR khỏi két, EUR còn ít dần; quầy phải đưa ra tỷ lệ kém thuận lợi hơn cho lượt sau để cân bằng. AMM làm việc này theo công thức, không phải nhân viên ngồi sửa bảng giá.

Không phải mọi swap đều đi thẳng qua một pool. Nếu quỹ đổi trực tiếp A sang B có ít tài sản, hệ thống có thể đổi A sang một token trung gian rồi đổi token đó sang B. Bạn cuối cùng vẫn nhận B, nhưng hai chặng có thể tốn thêm phí và phụ thuộc thêm một quỹ.

2. Pool định giá bằng dự trữ như thế nào?

Một mô hình AMM đơn giản dùng công thức constant product:

x × y = k

Trong đó xy là hai lượng dự trữ; k là tích mà pool cố duy trì sau khi tính theo cơ chế. Uniswap v2 whitepaper mô tả cặp token giữ dự trữ và dùng invariant constant product. Đây là ví dụ học cơ chế, không đại diện cho mọi phiên bản AMM.

Trong mô hình đơn giản này, quỹ lấy lượng token A nhân với lượng token B làm một mốc. Khi A được đưa vào nhiều hơn, lượng B còn lại phải giảm sao cho tích vẫn gần mốc đó; vì vậy người đổi nhận B theo một tỷ lệ mới.

Ví dụ pool giả lập

Giả sử pool có:

  • 10 ETH (x)
  • 20.000 USDC (y)
  • k = 200.000

Giá tham chiếu tức thời là khoảng 2.000 USDC/ETH. Nếu người dùng đưa 1 ETH vào và tạm bỏ qua fee:

  • Dự trữ ETH mới: 11
  • USDC cần còn lại: 200.000 / 11 ≈ 18.181,82
  • USDC đi ra: 20.000 - 18.181,82 ≈ 1.818,18

Người dùng không nhận 2.000 USDC vì chính lệnh 1 ETH đã làm tỷ lệ dự trữ đổi. Chênh lệch do lệnh của người dùng tác động trực tiếp lên pool gọi là price impact.

Đây không phải báo giá thật và chưa tính fee, rounding, concentrated liquidity, route nhiều pool hoặc token tax. Điểm cần nhớ: lệnh càng lớn so với liquidity khả dụng thì price impact thường càng đáng kể.

Hình 1 — Token vào làm một reserve tăng, token ra làm reserve kia giảm; tỷ lệ mới tạo mức giá mới.

3. Một swap đi qua router và blockchain ra sao?

Một lượt swap onchain thường có các bước:

  1. Người dùng chọn network, token vào, token ra và số lượng.
  2. dApp hỏi các pool hoặc dịch vụ định tuyến để tạo quote, tức báo giá tại thời điểm xem.
  3. Router chọn route thẳng hoặc nhiều chặng.
  4. Nếu contract chưa có quyền dùng token, wallet yêu cầu approval trước.
  5. Wallet hiển thị transaction swap gồm contract, function, amount, minimum received và gas estimate.
  6. Người dùng đọc rồi ký; transaction được gửi lên network.
  7. Router gọi pool theo route; contract kiểm tra deadline và minimum.
  8. Đủ điều kiện thì swap confirmed; không đủ thì revert.

Ví phải cho thấy chương trình sẽ gọi, số token gửi vào, số tối thiểu nhận lại và phí mạng ước tính. Nếu điều kiện không đạt, thay đổi số dư của lượt đổi bị hủy nhưng phí mạng đã dùng để xử lý vẫn có thể mất.

Approval không phải swap. Nó là quyền cho một contract sử dụng token trong hạn mức. Approval 100 token và unlimited approval có phạm vi khác nhau. Cần đọc spender address và hạn mức, không ký chỉ vì tên dApp quen mắt.

Revert hoàn tác thay đổi state của swap thất bại, nhưng network đã dùng tài nguyên để xử lý nên phí gas có thể không được hoàn lại. Uniswap Labs cũng lưu ý transaction blockchain có network cost kể cả khi thất bại.

Hình 2 — Quote chỉ là bước xem; approval và swap là hai yêu cầu khác nhau trước khi router chạm tới pool.

4. Đọc đúng báo giá, price impact, slippage và phí

Màn hình swap của Uniswap liệt kê các trường như token vào/ra, fee, network cost, route, price impact, max slippage và minimum output. Tên có thể khác giữa dApp, nhưng ý nghĩa cốt lõi tương tự.

Trường Nghĩa Câu cần hỏi
Quote Đầu ra ước tính lúc xem Báo giá còn mới không?
Price impact Giá đổi do chính lệnh tác động pool Lệnh có quá lớn so với liquidity?
Max slippage Mức chênh tối đa người dùng chấp nhận Có bị đặt quá rộng?
Minimum received Đầu ra tối thiểu để transaction không revert Mức thấp nhất này có chấp nhận được?
Pool/protocol fee Phí theo quy tắc pool hoặc route Có bao nhiêu chặng/phí?
Network cost Phí tài nguyên blockchain Ví còn đủ native token?

Trong ví dụ này, 1.980 USDC là báo giá đầu ra đã phản ánh trạng thái quỹ lúc xem. Mức trượt giá 1% chỉ tạo ngưỡng thấp nhất 1.960,20 USDC cho lúc giao dịch được xử lý; không trừ price impact thêm lần nữa nếu giao diện đã tính nó vào báo giá.

Price impactslippage không phải cùng một thứ. Uniswap Labs giải thích price impact là thay đổi giá do lệnh của bạn; slippage là chênh giữa kết quả kỳ vọng và kết quả thực khi swap hoàn tất.

Ví dụ minimum received

Giả sử quote hiển thị 1.980 USDC và max slippage 1%. Một cách minh họa đơn giản:

Minimum received ≈ 1.980 × (1 - 1%) = 1.960,20 USDC

Nếu output lúc thực thi thấp hơn mức minimum, contract có thể revert. Đặt slippage quá thấp dễ fail khi giá di chuyển; đặt quá cao mở khoảng nhận kém hơn. Hướng dẫn Uniswap nêu đúng hai mặt này.

Hình 3 — Price impact xuất hiện ngay trong cơ chế pool; slippage đo phần chênh tiếp theo giữa dự kiến và thực thi.

Tổng chi phí không chỉ là gas

Hãy xem hai con số riêng: số token B tối thiểu bạn có thể nhận sau giá và phí của quỹ, và phí mạng trả bằng token gốc của blockchain. Tỷ giá đẹp nhưng phí mạng cao vẫn có thể làm tổng giá trị còn lại kém hơn đường khác.

Hình 4 — Gas chỉ là một lớp; net output mới là con số cần đối chiếu trước khi ký.

5. Các lỗi và rủi ro người mới hay gặp

Token giả hoặc contract sai

Tên và ticker có thể trùng. Token giả có thể cùng tên với token thật nhưng contract address khác. Phải đối chiếu address từ nguồn chính thức; logo trên giao diện không phải bằng chứng.

Approval quá rộng

Unlimited approval tiện cho lần sau nhưng tăng phạm vi nếu spender contract gặp sự cố. Kiểm tra asset, spender và allowance; không rõ thì dừng.

Slippage cao để “ép lệnh chạy”

Tăng slippage không sửa token xấu hoặc pool cạn. Một số token có fee-on-transfer, cơ chế hạn chế bán hoặc code độc hại. Nếu quote/cảnh báo bất thường, đừng biến cảnh báo thành nút vượt qua.

Nhầm price impact với phí

Price impact không phải khoản phí chuyển cho ai; nó là kết quả pool chuyển sang tỷ lệ dự trữ mới. Pool fee lại là khoản tính theo quy tắc. Gộp hai thứ sẽ làm người dùng đọc sai chi phí.

Sai network hoặc hết native token

Có token để swap chưa đủ; ví còn cần native token trả gas. Gửi nhầm token/network hoặc swap gần hết native token có thể khiến ví không còn phí cho bước tiếp theo.

MEV và sandwich

Transaction chờ trong mempool có thể bị quan sát. MEV là giá trị có thể được thu bằng cách sắp xếp/chèn transaction; sandwich là giao dịch trước và sau lệnh người dùng để khai thác thay đổi giá. Trước khi lệnh được xác nhận, người khác có thể nhìn thấy nó. Họ có thể mua trước để đẩy giá lên, để lệnh của bạn mua ở giá xấu hơn, rồi bán ngay sau đó để hưởng chênh lệch. Khoảng trượt giá rộng và quỹ ít tài sản làm rủi ro này lớn hơn. Slippage rộng và pool mỏng có thể làm bề mặt rủi ro lớn hơn.

Đường hệ thống đề xuất chỉ là lựa chọn tốt theo dữ liệu và thuật toán ở thời điểm đó. Trước khi ký, vẫn phải kiểm tra đúng token, số tối thiểu nhận, phí mạng, quyền chi tiêu và mọi cảnh báo.

6. Checklist và bài tập 15 phút chỉ đọc

Checklist trước khi ký

  1. Domain, network và token contract address đúng chưa?
  2. Token vào/ra và số thập phân có hợp lý không?
  3. Spender approval là contract nào, hạn mức bao nhiêu?
  4. Route đi qua pool/token trung gian nào?
  5. Quote, price impact và minimum received là bao nhiêu?
  6. Pool fee, network cost và token fee có gì?
  7. Recipient có đúng ví của mình không?
  8. Có cảnh báo token, liquidity, slippage hoặc simulation không?

Address, spender, recipient hoặc minimum chưa rõ thì dừng, không ký để thử.

Bắt đầu từ đâu: bài tập 15 phút

Mở một giao diện swap công khai ở trạng thái chưa kết nối ví. Chọn cặp token phổ biến chỉ để xem quote; không connect, không approve, không ký và chưa dùng tiền thật.

  1. Ghi network và contract address hai token từ nguồn chính thức.
  2. Nhập số lượng nhỏ giả lập; ghi quote và thời điểm.
  3. Mở chi tiết; ghi route, price impact, max slippage, minimum và fee.
  4. Tăng số lượng giả lập 10 lần; xem price impact đổi thế nào.
  5. Ghi ba điều chưa xác minh khiến bạn chưa được ký.

Mẫu đối chiếu đã điền

Trường Mẫu demo Kết luận
Pair/network Token A → B, network X Cần khớp address chính thức
Quote 1.980 B Chỉ đúng lúc xem
Route A → WETH → B Có hai pool trung gian
Impact/slippage 0,4% / 1% giả lập Hai khái niệm khác nhau
Minimum 1.960,20 B Thấp hơn mức này thì revert
Approval Chưa xác định Dừng trước khi kết nối ví

Hình 5 — Một trường quan trọng chưa rõ là điểm dừng; bài đầu chỉ cần đọc quote và so quy mô lệnh.

7. Tổng kết: đọc net output trước khi bấm Swap

a. Năm ý chính

  • Swap qua DEX có thể dùng AMM pool thay vì order book.
  • Dự trữ pool đổi theo lệnh nên giá thực thi không cố định.
  • Router chọn route; approval và transaction swap là hai yêu cầu khác nhau.
  • Price impact do lệnh của mình; slippage là chênh giữa kỳ vọng và thực thi.
  • Luôn kiểm tra address, route, minimum, phí, approval và recipient trước khi ký.

b. Câu hỏi tự kiểm tra

  • Vì sao lệnh lớn hơn thường tạo price impact lớn hơn?
  • Approval khác transaction swap ra sao?
  • Slippage quá thấp và quá cao gây hai vấn đề gì?
  • Vì sao quote cao chưa chắc tạo net output tốt hơn?

c. Gợi ý đáp án

Xem gợi ý câu 1

Lệnh lớn lấy tỷ lệ đáng kể khỏi reserve và làm tỷ lệ pool đổi nhiều hơn. Xem lại mục 2.

Xem gợi ý câu 2

Approval cấp quyền cho spender; swap dùng quyền đó để đổi tài sản. Xem lại mục 3.

Xem gợi ý câu 3

Quá thấp dễ revert; quá cao có thể chấp nhận output kém. Xem lại mục 4.

Xem gợi ý câu 4

Route còn có gas, fee, impact, slippage và token fee. Xem lại mục 4.

d. Thuật ngữ cần nhớ

Thuật ngữ Giải thích ngắn
AMM Cơ chế định giá và giao dịch bằng smart contract.
Liquidity pool Dự trữ token phục vụ swap.
Router Contract hoặc logic chọn đường swap.
Quote Đầu ra ước tính tại thời điểm xem.
Price impact Thay đổi giá do chính lệnh tác động pool.
Slippage Chênh giữa kết quả kỳ vọng và thực tế.
Minimum received Đầu ra tối thiểu chấp nhận.
Approval Quyền cho contract dùng token.
Revert Hủy thay đổi state của transaction lỗi.
MEV Giá trị từ việc sắp xếp/chèn transaction.

e. Nguồn tham khảo

f. Bài tiếp theo nên đọc

Bài tiếp theo: Liquidity Pool là gì? Bạn sẽ nhìn sâu hơn vào nguồn liquidity, LP token, fee, tỷ lệ dự trữ và rủi ro khi cung cấp tài sản.

Nội dung giáo dục, không phải lời khuyên đầu tư. Swap có thể mất tài sản do token giả, contract lỗi hoặc chữ ký sai; hãy kiểm tra trước khi ký.