Giá thị trường

Tiền điện tử Giá 24h
BTC Bitcoin
$64,006.1 +2.05%
ETH Ethereum
$1,877.04 +1.77%
SOL Solana
$73.86 +1.99%
BNB BNB Chain
$591.8 +0.83%
XRP XRP Ledger
$1.08 +1.06%
DOGE Dogecoin
$0.0705 +1.28%
ADA Cardano
$0.1947 +2.85%
AVAX Avalanche
$6.82 +5.75%
DOT Polkadot
$0.8300 +2.05%
LINK Chainlink
$8.21 +0.27%

Sợ & Tham

25

Cực kỳ sợ hãi

Tâm lý thị trường

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

15
04
halving Bitcoin Halving

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

08
04
upgrade Solana Firedancer

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

28
03
unlock Mở khóa token Arbitrum

Giải phóng 92 triệu ARB

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%

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

12
05
halving BCH Halving

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

Chỉ số mùa altcoin

44

Mùa Bitcoin

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

Theo dõi phí Gas

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

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

Tất cả →
1
Bitcoin
BTC
$64,006.1
1
Ethereum
ETH
$1,877.04
1
Solana
SOL
$73.86
1
BNB Chain
BNB
$591.8
1
XRP Ledger
XRP
$1.08
1
Dogecoin
DOGE
$0.0705
1
Cardano
ADA
$0.1947
1
Avalanche
AVAX
$6.82
1
Polkadot
DOT
$0.8300
1
Chainlink
LINK
$8.21

🐋 Theo dõi cá voi

🔴
0x797e...30e2
2 phút trước
Chuyển ra
9,238,577 DOGE
🔵
0xaa3c...8423
1 giờ trước
Stake
2,638.84 BTC
🔴
0x219e...6b01
12 phút trước
Chuyển ra
24,835 SOL

💡 Smart Money

0x3df3...2680
Nhà tạo lập thị trường
+$1.8M
90%
0x6f93...9d40
Nhà tạo lập thị trường
+$3.9M
72%
0xc92b...7cef
Nhà tạo lập thị trường
+$4.9M
70%

Công cụ

Tất cả →
Bảo mật

Drips Network: Lỗ hổng cấp thấp đốt cháy 24.900 DAI, bài học đắt giá cho mọi dev

Trần Ngọc

Bạn nghĩ rằng một dự án DeFi đã chạy mainnet thì code ít nhất cũng phải clean? Sai rồi. Sáng nay, mình đọc báo cáo từ SlowMist về vụ hack Drips Network – một giao thức tip (tip) phi tập trung. Kết quả: 24.900 DAI bay màu chỉ vì một lỗi chuyển đổi integer mà sinh viên năm nhất solidity cũng biết tránh. Đây không phải chuyện đùa. Nếu bạn đang build bất cứ thứ gì trên EVM, hãy dừng lại 5 phút đọc bài này.

Tại sao lại là bây giờ? Thị trường đang uptrend, ai cũng FOMO kiếm tiền nhanh. Nhưng chính những lúc này, các dự án nhỏ thường cắt góc bảo mật để ship sản phẩm. Drips Network là một ví dụ điển hình: giao thức tip được xây trên Ethereum, dùng DAI làm phương tiện thanh toán. Ý tưởng thì hay – cho phép người dùng tip nhau qua smart contract mà không cần trung gian. Nhưng ngày 5/7/2025, ai đó đã khai thác một lỗ hổng trong contract give() và rút sạch reserve. SlowMist nhanh chóng đưa ra phân tích chi tiết – và mình đã đọc kỹ.

Core: Chuyện gì đã xảy ra? Hãy đi thẳng vào kỹ thuật. Contract có một hàm give() dùng để gửi tip. Trong đó, số tiền được truyền vào dưới dạng uint128 (từ 0 đến rất lớn). Nhưng bên trong, nó được gán trực tiếp cho một biến int128 – kiểu có dấu, chỉ chứa được từ -2^127 đến 2^127-1. Kẻ tấn công gửi một giá trị vượt quá 2^127-1, ví dụ 2^128-1 (kiểu uint128 tối đa). Khi ép kiểu sang int128, giá trị đó bị wrap thành số âm. Điều gì xảy ra? Hàm give() chuyển tiền từ người gửi sang contract reserve. Nhưng khi amount trở thành số âm, logic chuyển tiền bị đảo ngược: thay vì gửi từ A sang B, nó gửi từ B về A. Kết quả: kẻ tấn công rút 24.900 DAI từ reserve về ví mình. Toàn bộ quỹ dự trữ của giao thức bị cạn kiệt chỉ trong một giao dịch.

Bạn có thể nói: "Nhưng solidity 0.8+ có kiểm tra overflow rồi mà?" Đúng, nó kiểm tra overflow cho các phép tính số học, nhưng không kiểm tra implicit type conversion giữa uint và int. Đây là lỗi rất cơ bản. Cách fix: dùng SafeCast của OpenZeppelin hoặc thêm require(amount <= type(int128).max). Đơn giản thế thôi.

Contrarian: Góc nhìn chưa ai nói Báo cáo SlowMist chỉ nêu technical details. Nhưng mình muốn đào sâu hơn một chút. Đây không chỉ là lỗi code – đây là lỗi quy trình. Drips Network đã deploy lên mainnet mà không có audit chuyên nghiệp (ít nhất không có công bố). Bởi nếu có audit, nhóm nào cũng sẽ phát hiện ra ngay. SlowMist cũng chỉ report chứ không phải auditor của dự án. Vậy câu hỏi: dự án có bao nhiêu vốn? Họ đã dùng audit firm nào? Hay họ tự tin rằng “code chạy ngon là đủ”?

Một điểm mù khác: reserve contract không có cơ chế giới hạn rút tiền. Thông thường, một reserve contract chỉ cho phép chuyển tiền vào, không cho phép chuyển ra trừ khi thông qua một logic đặc biệt (như multisig hoặc timelock). Ở đây, kẻ tấn công có thể gọi give() với amount âm để rút tiền từ reserve – điều này cho thấy reserve contract được thiết kế như một phần của logic tip, không phải một vault riêng biệt. Đó là lỗi kiến trúc, không chỉ lỗi code. Nếu ai đó từng làm audit cho mình, họ sẽ hỏi: “Reserve này có phải là nơi lưu trữ tiền của người dùng không? Nếu có, sao nó lại có thể bị rút bởi bất kỳ ai thông qua hàm give()?”

Takeaway: Điều gì tiếp theo? Bạn có nghĩ rằng hacker sẽ trả lại tiền? Có thể, nếu đây là white hat. Nhưng mình không lạc quan. 24.900 DAI (~$25k) là số tiền nhỏ, nhưng với một giao thức tip nhỏ, đó là toàn bộ tài sản. Nếu Drips Network muốn tồn tại, họ phải refund user từ túi team, hoặc deploy contract mới. Với dự án không audit, còn ai tin tưởng nữa?

Còn với các dev đang đọc bài này: hãy dùng SafeCast cho mọi type conversion. Đừng bao giờ tin vào implicit conversion. Và hãy audit trước khi mainnet. ICO là hồi chuông, không phải đích đến.

Bài viết dựa trên phân tích kỹ thuật từ SlowMist và kinh nghiệm cá nhân của mình.