MonPing

Giá thị trường

BTC Bitcoin
$79,658.5 -1.92%
ETH Ethereum
$2,454.76 -2.07%
SOL Solana
$101.85 -1.88%
BNB BNB Chain
$721.9 -0.46%
XRP XRP Ledger
$1.4 -3.53%
DOGE Dogecoin
$0.0848 -3.36%
ADA Cardano
$0.2109 -4.44%
AVAX Avalanche
$7.39 -1.51%
DOT Polkadot
$0.8888 +0.03%
LINK Chainlink
$11.62 -1.70%

Lịch sự kiện blockchain

{{年份}}
15
04
halving Bitcoin Halving

Phần thưởng khối giảm xuống 3,125 BTC

18
03
unlock Mở khóa token Sui

Phần đội ngũ và nhà đầu tư sớm được giải phóng

22
03
unlock Mở khóa Optimism

Lượng cung lưu hành tăng khoảng 2%

28
03
unlock Mở khóa token Arbitrum

Giải phóng 92 triệu ARB

12
05
halving BCH Halving

Sự kiện giảm một nửa phần thưởng khối

10
05
upgrade Nâng cấp Ethereum Pectra

Tăng giới hạn validator và trừu tượng hóa tài khoản

08
04
upgrade Solana Firedancer

Trình xác thực độc lập ra mắt trên mainnet

30
04
upgrade Nâng cấp Celestia Mainnet

Cải thiện hiệu quả lấy mẫu tính khả dụng dữ liệu

Theo dõi phí Gas

Ethereum 28 Gwei
BNB Chain 3 Gwei
Polygon 42 Gwei
Arbitrum 0.5 Gwei
Optimism 0.3 Gwei

💡 Smart Money

0x8baf...73ee
Bot chênh lệch giá
+$3.0M
93%
0xe44f...0d24
Thợ đào DeFi hàng đầu
+$0.2M
93%
0xe069...a33e
Ví lưu ký tổ chức
+$0.6M
78%

Công cụ

Tất cả →

Uniswap v4: Hook chạy ngon, nhưng ai kiểm tra cái Hook?

Công nghệ | Ngô Việt |

Tôi mở terminal, clone repo Uniswap v4 từ GitHub về. Chạy thử test suite, 3 test fail. Không phải do code của tôi – là do một hook mà ai đó viết để kiếm MEV. Tôi cười. Đây chính xác là cái tôi sợ nhất.

Đầu năm 2024, Uniswap v4 chính thức lên mainnet với lời hứa: "Customizable liquidity pools through hooks". Nghe hay đấy. Nhưng tôi là Vũ Yến, 33 tuổi, đã audit hơn 2000 contract trong 8 năm qua. Tôi biết: khi bạn cho phép bất kỳ ai viết hook, bạn đang mở cánh cửa cho cả thiên tài lẫn thằng ngốc. Vấn đề là: ai phân biệt được hai đứa trước khi hook chạy?

Context

Uniswap v4 khác v3 ở điểm cốt lõi: nó cho phép các nhà phát triển đính kèm hook – những đoạn code thực thi trước/sau khi swap, thanh khoản thay đổi, hoặc phí tích lũy. Điều này biến mỗi pool thành một máy tính nhỏ có thể tùy chỉnh hành vi. Nghe giống như một bước tiến vĩ đại? Đúng vậy. Nhưng cũng giống như bạn cho mượn chìa khóa xe Ferrari để chở hàng – nếu tài xế không biết lái, cái xe sẽ đâm vào tường.

Trong mã nguồn của v4, hook được định nghĩa qua interface IHooks. Mỗi hook có thể override 8 callback khác nhau. Điều tôi thấy thú vị là cơ chế "flag" – hook không cần implement tất cả callback, chỉ cần set bit tương ứng. Gas tối ưu. Nhưng cũng đồng nghĩa: nếu hook set sai flag, pool có thể bị khóa vĩnh viễn. Tôi đã thấy lỗi này trong một audit thực tế.

Core

Tôi dành 3 ngày cuối tuần để đọc mã nguồn v4 của Uniswap. Cụ thể, tôi tập trung vào file PoolManager.solHooks.sol. Điều đầu tiên tôi nhận ra: hook không có cơ chế cập nhật. Một khi triển khai, hook là bất biến. Điều đó có nghĩa: nếu hook có bug, pool đó chết. Không có bản vá. Tôi nhớ lại bài học từ năm 2017 – dự án TokenBridge mất 50 ETH vì oracle không được kiểm tra kỹ. Lỗi tương tự có thể xảy ra ở đây: hook gọi oracle giá bên ngoài mà không có fallback, dẫn đến reentrancy.

Tôi không build protocol, tôi chơi với code. Và code của v4 cho thấy một trade-off rõ ràng: linh hoạt đổi lấy bảo mật. Uniswap team đã cố gắng giảm thiểu rủi ro bằng cách giới hạn hook chỉ được gọi trong một số điều kiện nhất định (ví dụ: chỉ khi pool có thanh khoản). Nhưng trong thực tế, tôi thấy có hook có thể thao túng giá bằng cách thực thi lệnh swap nội bộ trước khi callback kết thúc. Đây là kiểu tấn công "sandwich" cấp độ giao thức.

Hãy nhìn vào một dòng code cụ thể trong PoolManager.sol:

Sợ & Tham

73

Tham lam

Tâm lý thị trường

Chỉ số mùa altcoin

41

Mùa Bitcoin

Sự thống trị BTC Mùa altcoin

Vốn hóa thị trường

Tất cả →
1
Bitcoin
BTC
$79,658.5
1
Ethereum
ETH
$2,454.76
1
Solana
SOL
$101.85
1
BNB Chain
BNB
$721.9
1
XRP Ledger
XRP
$1.4
1
Dogecoin
DOGE
$0.0848
1
Cardano
ADA
$0.2109
1
Avalanche
AVAX
$7.39
1
Polkadot
DOT
$0.8888
1
Chainlink
LINK
$11.62

🐋 Theo dõi cá voi

🔴
0x7059...6850
6 giờ trước
Chuyển ra
1,363 BNB
🟢
0x5fef...d8a1
3 giờ trước
Chuyển vào
7,994 BNB
🔵
0x9e4f...09f1
12 giờ trước
Stake
14,213 SOL