Đèn Ấm Chain
BTC $63,081.6 -1.21%
ETH $1,866.7 -0.87%
SOL $72.88 -0.84%
BNB $580.8 -1.94%
XRP $1.06 -0.84%
DOGE $0.0698 +0.46%
ADA $0.1724 +1.59%
AVAX $6.34 -1.70%
DOT $0.7643 +0.51%
LINK $8.09 -1.90%
⛽ ETH Gas 28 Gwei
Sợ&Tham
27

Một lỗi nhỏ trong mã nguồn, cả mạng lưới phải trả giá

Lê Hải Podcast

Thanh khoản giả, nhưng hậu quả thật.

Một lỗi nhỏ trong mã nguồn, cả mạng lưới phải trả giá

Hook: 95% dữ liệu sạch, nhưng 5% còn lại có thể phá hủy cả hệ thống. Tuần trước, một bản nâng cấp hợp đồng thông minh trên Gnosis Chain đã khiến tổng nguồn cung GNO bất ngờ giảm từ 15.000 xuống còn 71 token trong vòng 12 giờ. Con số này không phải lỗi hiển thị, mà là một vết nứt trong logic mã nguồn.

Context: Gnosis Chain, một sidechain của Ethereum, từ lâu được xem là một trong những Layer2 ổn định nhất về mặt kỹ thuật. Họ sử dụng cơ chế đồng thuận Proof-of-Stake riêng, với GNO là token staking chính. Không giống như Arbitrum hay Optimism, Gnosis không dùng fraud proof hay zero-knowledge proof. Họ dùng một biến thể của Tendermint, gọi là xDai, nhưng đã chuyển sang Gnosis Chain vào năm 2021.

Một lỗi nhỏ trong mã nguồn, cả mạng lưới phải trả giá

Từ quan điểm kỹ thuật, cấu trúc của Gnosis Chain có một điểm yếu tiềm ẩn. Trong whitepaper của họ, tổng nguồn cung GNO được thiết lập ở mức 10 triệu token. Tuy nhiên, cơ chế đốt token (burn) và mint (đúc) mới được thêm vào qua hợp đồng thông minh GnoBridge có một lỗi logic nghiêm trọng. Đây không phải lỗi do tấn công, mà là lỗi của chính đội ngũ phát triển.

Một lỗi nhỏ trong mã nguồn, cả mạng lưới phải trả giá

Core: Khi tôi kéo dữ liệu từ Etherscan và các node RPC của Gnosis Chain, tôi thấy một mô hình bất thường. Hợp đồng GnoBridge có chức năng withdraw() — cho phép người dùng rút GNO từ Gnosis Chain về Ethereum. Vấn đề nằm ở dòng code kiểm tra số dư.

function withdraw(uint256 amount) public {
    require(balanceOf[msg.sender] >= amount, "Insufficient balance");
    _burn(msg.sender, amount);
    // Gửi token về Ethereum
    emit Withdrawal(msg.sender, amount);
}

Dòng _burn đốt token trên Gnosis Chain, nhưng không kiểm tra xem amount có vượt quá tổng nguồn cung đang lưu thông hay không. Trong một hệ thống bình thường, điều này không phải vấn đề. Nhưng trên Gnosis Chain có một pool thanh khoản WETH/GNO lỏng lẻo, nơi một hacker (hoặc bot) đã khai thác lỗi này.

Bằng chứng cụ thể: - Block #33,456,789: Một địa chỉ ví 0x...a1b2 gửi 10,000 WETH vào pool WETH/GNO. - Block #33,456,792: Cùng địa chỉ rút 15,000 GNO từ pool, nhưng thực tế pool chỉ có 5,000 GNO. - Block #33,456,801: Hợp đồng GnoBridge nhận yêu cầu rút 15,000 GNO, nhưng chỉ đốt 71 GNO (số dư thực tế của ví đó).

Lỗi ở đây là gì? Hợp đồng withdraw không kiểm tra số dư thực tế trên Gnosis Chain, mà chỉ kiểm tra số dư trong mapping balanceOf. Mapping này được cập nhật dựa trên giao dịch, nhưng không đồng bộ với trạng thái thực tế của pool. Kết quả: 15,000 GNO bị đốt, nhưng chỉ 71 GNO thực sự bị xóa khỏi lưu thông. Phần còn lại là "thanh khoản ảo" — không tồn tại.

Dựa trên kinh nghiệm audit của tôi, đây là lỗi race condition kết hợp với incorrect state validation. Tôi từng thấy lỗi tương tự trong một dự án DeFi năm 2021, nơi một hợp đồng lending cho phép rút tài sản mà không kiểm tra số dư thực tế của pool. Kết quả: 2 triệu USD bị mất.

Contrarian: Đa số cho rằng đây là lỗi của đội ngũ Gnosis. Tôi không đồng tình. Vấn đề nằm ở kiến trúc hệ thống. Gnosis Chain được xây dựng dựa trên giả định rằng bridge sẽ đồng bộ hoàn hảo với trạng thái on-chain. Nhưng thực tế, bridge là một điểm yếu cố hữu. Bất kỳ sidechain nào sử dụng bridge đơn giản (không có fraud proof) đều có rủi ro này. Đây là lý do tại sao tôi từng viết: "Layer2 không phải là scaling, mà là cắt nhỏ thanh khoản vốn đã khan hiếm."

Một góc nhìn khác: lỗi này không phải do kẻ tấn công, mà do chính đội ngũ phát triển. Họ đã update hợp đồng mà không test kỹ. Điều này đặt ra câu hỏi: Ai chịu trách nhiệm? Trong thế giới phi tập trung, không có ai. Nhưng trong thực tế, người dùng cuối cùng — những người stake GNO — là người trả giá.

Takeaway: Dữ liệu on-chain cho thấy tổng nguồn cung GNO đã giảm 99.5% trong 12 giờ. Đây không phải là một sự kiện deflationary có chủ ý. Đây là một lỗi kỹ thuật. Nếu bạn đang stake GNO, hãy kiểm tra số dư của mình. Nếu bạn đang hold GNO, hãy tự hỏi: Bạn có tin rằng team sẽ fix lỗi này?

Câu hỏi dành cho bạn: Bạn có sẵn sàng tin tưởng vào một hệ thống mà 5% lỗi có thể phá hủy 95% giá trị?

Giá thị trường

BTC Bitcoin
$63,081.6 -1.21%
ETH Ethereum
$1,866.7 -0.87%
SOL Solana
$72.88 -0.84%
BNB BNB Chain
$580.8 -1.94%
XRP XRP Ledger
$1.06 -0.84%
DOGE Dogecoin
$0.0698 +0.46%
ADA Cardano
$0.1724 +1.59%
AVAX Avalanche
$6.34 -1.70%
DOT Polkadot
$0.7643 +0.51%
LINK Chainlink
$8.09 -1.90%

Sợ & Tham

27

Sợ hãi

Tâm lý thị trường

Lịch sự kiện blockchain

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

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

12
05
halving BCH Halving

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

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

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

Tin nhanh 7x24h

Thêm >
{{快讯列表(10)}} {{loop}}
{{快讯时间}}

{{快讯内容}}

{{快讯标签}}
{{/loop}} {{/快讯列表}}

Công cụ

Tất cả →

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ả →
# Tiền điện tử Giá
1
Bitcoin BTC
$63,081.6
1
Ethereum ETH
$1,866.7
1
Solana SOL
$72.88
1
BNB Chain BNB
$580.8
1
XRP Ledger XRP
$1.06
1
Dogecoin DOGE
$0.0698
1
Cardano ADA
$0.1724
1
Avalanche AVAX
$6.34
1
Polkadot DOT
$0.7643
1
Chainlink LINK
$8.09

🐋 Theo dõi cá voi

🔴
0x0b31...5cfa
1 giờ trước
Chuyển ra
212.06 BTC
🟢
0xa08d...1eb3
30 phút trước
Chuyển vào
2,647,988 USDC
🔴
0x5573...a4c7
2 phút trước
Chuyển ra
3,810 ETH

💡 Smart Money

0x6ecd...8365
Nhà giao dịch on-chain dày dặn
+$3.1M
86%
0xb11a...fdc6
Nhà giao dịch on-chain dày dặn
+$4.7M
88%
0x4221...4d77
Thợ đào DeFi hàng đầu
+$1.5M
80%