Hướng dẫn đọc smart contract trên Etherscan từ A-Z (kèm ví dụ)

Việc đọc hiểu smart contract trên các trình khám phá blockchain như Etherscan, BscScan hay Arbiscan không chỉ dành cho lập trình viên. Nếu bạn là người chơi DeFi, nghiên cứu token, hay muốn đánh giá rủi ro dự án, thì hiểu sơ đồ contract sẽ giúp bạn:

  • Biết contract đó có phải proxy (uỷ quyền) hay là logic thực sự?
  • Biết ai có quyền nâng cấp, có thể can thiệp, rút tiền, hay đổi thông số?
  • Biết contract này có kết nối với router, factory nào không?
  • Tự tra được pool/vault mình đang dùng có đáng tin hay không

📍 1. Tổng Quan Về Các Loại Contract Trong DeFi

Trong một hệ DeFi như lending, AMM, yield aggregator, thường có nhiều loại contract phối hợp với nhau:

Loại contractVai trò chính
ProxyContract “vỏ ngoài”, forward các lệnh gọi đến logic contract
Implementation (logic)Nơi chứa mã chạy thật sự (swap, farm, withdraw…)
RouterĐịnh tuyến giao dịch đến các pool phù hợp, gom nhiều lệnh vào 1 call
FactoryDùng để tạo ra các pool/pair/vault mới
Admin / ProxyAdminCó quyền nâng cấp hoặc thay đổi logic

🧭 2. Cách Đọc Contract Trên Etherscan / BscScan (Từng Bước)

✅ Bước 1: Xác định contract có phải Proxy hay không?

Khi bạn vào địa chỉ contract, Etherscan sẽ hiển thị ngay:

  • “Contract Source Code Verified”
  • 📌 Nếu có dòng: “This contract is a proxy”, thì nó chỉ là vỏ ngoài.

→ Lúc này, bạn sẽ thấy tab “Read as Proxy”, “Write as Proxy”, và mục “Implementation Address” – tức là contract thật nằm ở chỗ khác.


✅ Bước 2: Tìm contract logic (Implementation)

Kéo xuống phần thông tin contract, bạn sẽ thấy dòng:

cssSao chépChỉnh sửaImplementation Address: 0x.... (Click to view)

Click vào đó để xem chi tiết contract chứa mã logic thật sự như các hàm swap, mint, withdraw…


✅ Bước 3: Xem ai có quyền quản trị / nâng cấp

  • Nếu contract dùng Transparent Proxy, nó thường đi kèm 1 contract có tên ProxyAdmin.
  • Trong đó sẽ có hàm:
    • getProxyAdmin(address proxy)
    • getProxyImplementation(address proxy)
    • upgrade(), changeAdmin()

→ Điều này giúp bạn biết ai có quyền nâng cấp logic, đổi địa chỉ implementation, hoặc chỉnh thông số.


✅ Bước 4: Xem các hàm chính của contract

  • Tab Read Contract: Xem các hàm truy xuất dữ liệu (ví dụ: token0, token1, liquidity, balanceOf…)
  • Tab Write Contract: Xem các hàm có thể gọi để tương tác (phải kết nối ví) như swap, deposit, claim…

✅ Bước 5: Tìm Factory và Router (nếu có)

  • Factory sẽ có hàm như: createPair, getPool, deployVault
  • Router sẽ có các hàm kiểu: swapExactTokensForTokens, addLiquidity, removeLiquidity

→ Tra ngược lại bạn có thể tìm ra source gốc tạo ra contract mình đang sử dụng.


🧪 3. Ví Dụ Thực Tế: Contract Uniswap V3 Pool

Đường link vào contract này: https://etherscan.io/address/0x8ad599c3a0ff1de082011efddc58f1908eb6e6d8#code

✅ Bước 1: Xác định contract chính dùng là gì

Kéo xuống tab Code, rồi tìm dòng:

Contract Name: UniswapV3Pool

📌 Tức là contract chính tên UniswapV3Pool.sol → không phải là proxy, mà là contract gốc thật sự. Bạn khỏi cần lo vụ proxy ở đây.

Contract chính tên UniswapV3Pool.sol
Contract chính tên UniswapV3Pool.sol

✅ Bước 2: Nhìn mục “Files” – thấy 31 file .sol

Đừng hoảng. Trong đó:

  • Chỉ 1 file là “UniswapV3Pool.sol” – contract chính nằm đây
  • Còn lại là file phụ: interface, thư viện, helper…

👉 Bạn chỉ cần tập trung đọc file UniswapV3Pool.sol đầu tiên. Khi nó gọi đến file khác (import), mình mới mở tiếp nếu cần.


✅ Bước 3: Xem chức năng chính của contract

Trong file UniswapV3Pool.sol, bạn có thể tìm:

  • Các state variable (biến lưu trữ)
  • Các function (hàm)

Ví dụ:

  • swap(...): để swap token
  • mint(...): thêm thanh khoản
  • burn(...): rút thanh khoản

=> Đọc tên hàm là hiểu chức năng. Bạn nào không hiểu thì tra Google hoặc ChatGPT phần này nha.


✅ Bước 4: Xem ai đang quản lý / có quyền

Vì không phải proxy, nên không có admin upgrade.

Nhưng có thể có quyền fee owner, protocol fee, incentive gì đó → thường được set lúc deploy (Uniswap v3 là non-upgradable, immutable).


✅ Bước 5: Xem file phụ khi cần

Khi trong UniswapV3Pool.sol có đoạn như:

import './interfaces/IUniswapV3PoolImmutables.sol';

→ thì bạn mở file IUniswapV3PoolImmutables.sol nếu muốn biết thêm chi tiết về interface của nó.

Nhưng bạn không cần đọc hết 31 file, chỉ cần theo dấu những thứ nào bạn chưa hiểu.


🗂 Tóm lại: Cách đọc contract này

Mục cần hiểuCách xem
Contract có phải proxy?❌ Không, đây là contract thật, không qua proxy
Tên contract chínhUniswapV3Pool.sol
Gồm những chức năng gì?Tìm các hàm như swap(), mint(), burn()
Ai có quyền gì?Không có admin, nhưng có thể có role như feeOwner
Có liên kết router/factory?Có – contract này do factory deploy ra: UniswapV3Factory
Xem 31 file thế nào?Bắt đầu từ UniswapV3Pool.sol, rồi đọc thêm nếu cần

✅ Các hàm chính trong contract

HàmMục đích
mint()Thêm thanh khoản vào pool
burn()Rút thanh khoản khỏi pool
swap()Giao dịch token giữa token0 và token1
collect()Rút phí giao dịch được tích lũy
slot0()Trạng thái hiện tại của pool (giá, tick, fee,…)
observe()Lấy dữ liệu để tính TWAP (giá trung bình theo thời gian)

✅ Ai tạo contract này? Có liên kết với Factory không?

→ Tức là pool trên là kết quả của lệnh createPool(tokenA, tokenB, fee).


📊 4. Bảng Tóm Tắt

Thông tin cần biếtCách tìm trên Etherscan
Có phải Proxy không?Xem tab Code → dòng “This contract is a proxy”
Implementation contract?Xem mục Implementation Address
Ai có quyền nâng cấp?Xem ProxyAdmin hoặc hàm admin()
Logic chạy ở đâu?Implementation hoặc chính contract
Pool/vault tạo từ đâu?Tìm Factory → hàm createPool hoặc deployVault
Có router không?Tìm contract chứa hàm swap/addLiquidity

🧠 Kết Luận

Hiểu và đọc được sơ đồ smart contract giúp bạn:

  • Đánh giá mức độ phi tập trung, quyền kiểm soát
  • Tránh các rug pull ẩn trong proxy, admin, logic
  • Hiểu rõ cách hoạt động của DeFi, kể cả khi không biết code

Bạn không cần giỏi Solidity, chỉ cần biết tư duy tra cứu là đã đủ hiểu 80%.


Tìm hiểu 5 bước tự kiểm tra code dự án crypto / smart contract có lừa đảo không.

📌 Đọc thêm tại chuyên mục Technical của Click Digital để khám phá thêm các bài viết về kỹ thuật code blockchain.

[+++]

Lưu ý: Bài viết chỉ cung cấp góc nhìn và không phải là lời khuyên đầu tư.

Đọc các Sách chính thống về Blockchain, Bitcoin, Crypto

Combo 5 sách Bitcoin
Combo 5 sách Bitcoin
Để nhận ưu đãi giảm phí giao dịch, đăng ký tài khoản tại các sàn giao dịch sau:

👉 Nếu bạn cần Dịch vụ quảng cáo crypto, liên hệ Click Digital ngay. 🤗

Cảm ơn bạn đã đọc. Chúc bạn đầu tư thành công. 🤗

Giới thiệu token Saigon (SGN):

  • Đầu tư vào các công ty quảng cáo blockchain hàng đầu bằng cách MUA token Saigon (SGN) trên Pancakeswap: https://t.co/KJbk71cFe8/ (đừng lo lắng về tính thanh khoản, hãy trở thành nhà đầu tư sớm)
  • Được hỗ trợ bởi Công ty Click Digital
  • Nâng cao kiến thức về blockchain và crypto
  • Lợi nhuận sẽ dùng để mua lại SGN hoặc đốt bớt nguồn cung SGN để đẩy giá SGN tăng.
  • Địa chỉ token trên mạng BSC: 0xa29c5da6673fd66e96065f44da94e351a3e2af65
  • Twitter X: https://twitter.com/SaigonSGN135/
  • Staking SGN: http://135web.net/

Rate this post

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

[mwai_chatbot id="default"]