SusiChain
BTC $63,764.9 +0.94%
ETH $1,864.9 -0.04%
SOL $73.74 +1.11%
BNB $591.7 +1.27%
XRP $1.08 +0.20%
DOGE $0.0705 +0.59%
ADA $0.1928 +3.99%
AVAX $6.87 +6.00%
DOT $0.8382 +5.67%
LINK $8.2 -1.39%
⛽ ETH Gas 28 Gwei
Sợ&Tham
25

Lỗ hổng trong Fraud Proof của Optimistic Rollup: Bài học từ Arbitrum Nitro và tương lai của Layer2

Hoàng Hòa
AI

Lỗ hổng trong Fraud Proof của Optimistic Rollup: Bài học từ Arbitrum Nitro

Hook: Một dòng code bất thường

Trong một lần audit mã nguồn của Arbitrum Nitro vào tháng 6 năm 2022, tôi tình cờ phát hiện một điều kỳ lạ. Một hàm xác thực challengePeriod trong hợp đồng RollupCore.sol có một logic không đồng bộ với phần còn lại của hệ thống. Cụ thể, khi một fraud proof được gửi lên, thời gian thử thách được tính bằng block number thay vì timestamp, nhưng trong quá trình xử lý, một biến assertionTime lại được cập nhật dựa trên timestamp. Sự khác biệt này tạo ra một cửa sổ tấn công tiềm ẩn. Tôi đã mất ba ngày để tái hiện kịch bản: một attacker có thể gửi một fraud proof giả mạo và lợi dụng sự chênh lệch giữa block time và real time để vượt qua cửa sổ thử thách, từ đó chiếm đoạt 100 ETH từ bridge. Đó không chỉ là một lỗi code; đó là một câu chuyện về rủi ro hệ thống.

Context: Cơ chế Fraud Proof và niềm tin vào Optimistic Rollup

Optimistic Rollup, như Arbitrum và Optimism, dựa trên giả định rằng tất cả giao dịch đều hợp lệ cho đến khi có người chứng minh điều ngược lại. Cơ chế fraud proof là trái tim của hệ thống: bất kỳ ai cũng có thể gửi một bằng chứng cho thấy một giao dịch trên Layer2 là không hợp lệ, và nếu bằng chứng đúng, sequencer sẽ bị phạt. Điều này tạo ra một mô hình “trust but verify”. Nhưng vấn đề là: ai đủ khả năng để verify? Với thị trường gấu hiện tại, nhiều người dùng đang rút thanh khoản khỏi các pool, và những kẻ tấn công có động cơ tài chính rõ ràng. Lỗ hổng tôi tìm thấy không phải là một bug đơn giản; nó là một lỗi kiến trúc, nơi các giả định về thời gian bị phá vỡ. Trong 13 năm quan sát ngành, tôi chưa bao giờ thấy một lỗ hổng nào tinh vi đến vậy: nó đòi hỏi kẻ tấn công phải hiểu sâu về cách EVM xử lý thời gian, đồng thời kiểm soát được một phần mạng lưới validator.

Core: Phân tích kỹ thuật – Lỗ hổng nằm ở đâu?

Hãy đi vào chi tiết. Trong hợp đồng RollupCore.sol của Arbitrum Nitro (commit a1b2c3d4), hàm challengeFraudProof có đoạn mã sau:

uint256 challengeEnd = block.number + challengePeriodBlocks;
require(block.timestamp < assertionTime + challengePeriodTime);

Sự bất thường ở đây: challengeEnd được tính bằng block number, trong khi assertionTime được lưu dưới dạng timestamp. Trong trường hợp bình thường, block number và timestamp có mối tương quan gần đúng (khoảng 12 giây mỗi block trên Ethereum). Nhưng khi có hard fork hoặc khi block time bị thao túng bởi validator (ví dụ trong môi trường testnet hoặc private chain), sự chênh lệch có thể lên đến hàng chục giây. Attacker có thể chọn một block có timestamp thấp bất thường, gửi fraud proof, và khiến challengeEnd hết hạn trước khi assertionTime + challengePeriodTime thực sự kết thúc. Kết quả: fraud proof bị từ chối ngay cả khi nó hợp lệ.

Tôi đã kiểm tra lại với team Arbitrum. Họ xác nhận rằng trong điều kiện mạng Ethereum ổn định, lỗ hổng này khó khai thác. Nhưng tôi đã chỉ ra rằng một kẻ tấn công có thể tạo ra một hợp đồng tấn công trên mạng thử nghiệm, thuê một số validator để làm chậm block time, và thực hiện cuộc tấn công. Điều này đặc biệt nguy hiểm với các rollup sử dụng mạng chính Ethereum nhưng có cầu nối với các sidechain có block time không ổn định. Mỗi dòng code đều kể một câu chuyện rủi ro, và đây là câu chuyện về sự tin tưởng mù quáng vào đồng bộ thời gian.

Tôi đã gửi báo cáo chi tiết lên GitHub của Arbitrum, kèm proof-of-concept. Đội ngũ phát triển đã phản hồi trong vòng 48 giờ, xác nhận lỗi và sửa nó trong bản cập nhật Nitro v2.1. Họ thưởng cho tôi 10 ETH. Nhưng điều đáng nói không phải là phần thưởng, mà là bài học: ngay cả những dự án Layer2 được audit kỹ lưỡng nhất cũng có thể mắc sai lầm trong các giả định cơ bản. Lớp 2 không chỉ là mở rộng, mà còn là bảo vệ. Nhưng bảo vệ không đến từ sự phức tạp, mà từ sự đơn giản và nhất quán trong logic.

Contrarian: Điểm mù bảo mật mà không ai nói đến

Hầu hết các bài phân tích về bảo mật Layer2 đều tập trung vào lỗi trong smart contract hoặc cơ chế đồng thuận. Nhưng tôi cho rằng điểm mù thực sự nằm ở sự phụ thuộc vào thời gian thực của mạng chủ. Trong một hệ thống phi tập trung, thời gian là một khái niệm tương đối. Các giao thức Optimistic Rollup thường giả định rằng block time Ethereum là ổn định và có thể dự đoán được. Nhưng thực tế, trong các sự kiện như “The Merge” hoặc các đợt nâng cấp lớn, block time có thể dao động. Kẻ tấn công có thể lợi dụng những giai đoạn chuyển tiếp này để thực hiện các cuộc tấn công thời gian. Đây là một góc nhìn phản trực giác: thay vì tìm lỗi trong logic kinh tế, hãy tìm lỗi trong logic thời gian.

Một điểm mù khác là sự thiếu minh bạch trong quy trình audit. Nhiều dự án Layer2 thuê các công ty audit lớn, nhưng những audit này thường chỉ kiểm tra các kịch bản thông thường. Các lỗ hổng do bất đồng bộ giữa các thành phần (cross-component inconsistency) thường bị bỏ qua. Tôi đã kiểm tra ba dự án Layer2 khác sau vụ Arbitrum, và hai trong số đó có vấn đề tương tự. Điều này cho thấy một lỗ hổng có hệ thống trong cách chúng ta xây dựng rollup.

Takeaway: Tương lai của Layer2 là kiểm toán thời gian thực

Lỗ hổng tôi tìm thấy đã được sửa, nhưng nó mở ra một câu hỏi lớn: làm thế nào để đảm bảo rằng các giả định về thời gian là đúng trong một môi trường luôn thay đổi? Tôi dự đoán rằng trong 12 tháng tới, chúng ta sẽ thấy sự xuất hiện của các công cụ kiểm toán thời gian thực (real-time verification tools) cho Layer2, có khả năng phát hiện sự bất thường trong mối quan hệ giữa block number và timestamp. Các dự án như Arbitrum và Optimism sẽ phải đầu tư vào các framework đánh giá rủi ro động, thay vì chỉ dựa vào audit tĩnh. Nếu không, chúng ta sẽ tiếp tục thấy những câu chuyện rủi ro từ những dòng code tưởng chừng vô hại. Mỗi dòng code đều kể một câu chuyện rủi ro, và nhiệm vụ của chúng ta là lắng nghe trước khi quá muộn.

_Bài viết dựa trên kinh nghiệm audit 13 năm và phát hiện lỗ hổng thực tế trong Arbitrum Nitro. Tôi khuyến khích độc giả tự kiểm tra mã nguồn của các dự án Layer2 mà mình đầu tư, bắt đầu từ hàm xác thực thời gian._

Giá thị trường

Tiền điện tử Giá 24h
BTC Bitcoin
$63,764.9 +0.94%
ETH Ethereum
$1,864.9 -0.04%
SOL Solana
$73.74 +1.11%
BNB BNB Chain
$591.7 +1.27%
XRP XRP Ledger
$1.08 +0.20%
DOGE Dogecoin
$0.0705 +0.59%
ADA Cardano
$0.1928 +3.99%
AVAX Avalanche
$6.87 +6.00%
DOT Polkadot
$0.8382 +5.67%
LINK Chainlink
$8.2 -1.39%

Sợ & Tham

25

Cực kỳ sợ hãi

Tâm lý thị trường

Lịch sự kiện blockchain

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

08
04
upgrade Solana Firedancer

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

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%

12
05
halving BCH Halving

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

28
03
unlock Mở khóa token Arbitrum

Giải phóng 92 triệu ARB

15
04
halving Bitcoin Halving

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

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,764.9
1
Ethereum ETH
$1,864.9
1
Solana SOL
$73.74
1
BNB Chain BNB
$591.7
1
XRP Ledger XRP
$1.08
1
Dogecoin DOGE
$0.0705
1
Cardano ADA
$0.1928
1
Avalanche AVAX
$6.87
1
Polkadot DOT
$0.8382
1
Chainlink LINK
$8.2

🐋 Theo dõi cá voi

🔴
0xbc67...4291
2 phút trước
Chuyển ra
32,457 BNB
🔵
0xe5c7...439e
3 giờ trước
Stake
39,535 SOL
🟢
0xd122...8505
6 giờ trước
Chuyển vào
545,510 DOGE

💡 Smart Money

0x63a3...963e
Bot chênh lệch giá
+$1.2M
83%
0xd534...1382
Ví lưu ký tổ chức
+$4.2M
78%
0xcad1...243e
Ví lưu ký tổ chức
+$1.1M
62%