Giá thị trường

BTC Bitcoin
$63,098.2 +0.52%
ETH Ethereum
$1,872.7 +0.40%
SOL Solana
$72.98 -0.19%
BNB BNB Chain
$579.6 -1.34%
XRP XRP Ledger
$1.07 +0.13%
DOGE Dogecoin
$0.0701 +0.86%
ADA Cardano
$0.1732 +2.97%
AVAX Avalanche
$6.36 -0.93%
DOT Polkadot
$0.7711 +2.44%
LINK Chainlink
$8.11 -0.48%

Lịch sự kiện blockchain

{{年份}}
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

12
05
halving BCH Halving

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

18
03
unlock Mở khóa token Sui

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

15
04
halving Bitcoin Halving

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

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

28
03
unlock Mở khóa token Arbitrum

Giải phóng 92 triệu ARB

08
04
upgrade Solana Firedancer

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

22
03
unlock Mở khóa Optimism

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

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

0x77f3...b1da
Thợ đào DeFi hàng đầu
+$1.5M
79%
0xfbda...8903
Bot chênh lệch giá
+$0.5M
77%
0x292c...6926
Nhà tạo lập thị trường
+$1.4M
70%

Công cụ

Tất cả →
Khai thác

Lỗi làm tròn trong Uniswap V2: 50.000 USD thù lao và bài học về độ chính xác trong DeFi

Bùi Hải

Không có 'làm tròn an toàn' trong thế giới của những hợp đồng thông minh.

Năm 2020, DeFi Summer nóng đến mức ai cũng muốn launch pool thanh khoản. Tôi nhận một hợp đồng kiểm toán từ Uniswap Labs – không phải V3, mà là V2, cái đã chạy hàng tỷ USD. Thoạt nhìn, code sạch sẽ, test phủ 95%. Nhưng tôi có thói quen đọc từng dòng, kể cả những dòng toán học tưởng chừng đơn giản. Và tôi tìm thấy thứ gì đó: một lỗi logic trong cách tính phí khi swap token với số lượng nhỏ.

Context

Uniswap V2 sử dụng mô hình AMM xy=k. Mỗi swap trích 0.3% phí – 0.25% cho LP, 0.05% cho giao thức (nếu được bật). Công thức tính amountOut khá chuẩn: dựa trên lượng đầu vào, trừ phí, rồi áp dụng công thức xy. Vấn đề nằm ở chỗ làm tròn số nguyên trong EVM. Solidity không có số thập phân dấu phẩy động; mọi phép tính phải dùng số nguyên với precision. Trong Uniswap V2, phí được tính bằng cách nhân amountIn với 997/1000 (tức 0.3% phí, giữ lại 0.997). Tuy nhiên, do làm tròn xuống (floor division) khi chia cho 1000, một phần rất nhỏ giá trị bị mất mỗi giao dịch.

Tưởng như vô hại? Một giao dịch swap 1 USDC chỉ mất 0.000000001 USDC. Nhưng hãy nghĩ: Uniswap V2 xử lý hàng triệu giao dịch mỗi ngày. Tích lũy theo thời gian, số phí thất thoát lên đến 0.05% tổng phí của pool. Trong một pool lớn như USDC/ETH, số này có thể lên tới hàng chục nghìn USD mỗi tháng.

Core

Tôi mở Remix và viết proof-of-concept. Hàm swap trong UniswapV2Pair.sol:

Sợ & Tham

27

Sợ hãi

Tâm lý thị trường

Chỉ số mùa altcoin

44

Mùa Bitcoin

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

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

Tất cả →
1
Bitcoin
BTC
$63,098.2
1
Ethereum
ETH
$1,872.7
1
Solana
SOL
$72.98
1
BNB Chain
BNB
$579.6
1
XRP Ledger
XRP
$1.07
1
Dogecoin
DOGE
$0.0701
1
Cardano
ADA
$0.1732
1
Avalanche
AVAX
$6.36
1
Polkadot
DOT
$0.7711
1
Chainlink
LINK
$8.11

🐋 Theo dõi cá voi

🟢
0x42e8...d345
1 giờ trước
Chuyển vào
4,968,645 USDC
🔴
0xa950...56bd
6 giờ trước
Chuyển ra
6,790,264 DOGE
🔵
0x52b5...e276
1 ngày trước
Stake
859,138 USDT