Lỗ Hổng Ẩn Trong Cập Nhật Gần Đây Của L2: Tại Sao Sequencer Tập Trung Lại Là Vấn Đề Bảo Mật?

Hồ Phúc Đặc sắc

Hook

Ngày 15/07/2024, tôi nhận được một cảnh báo từ một trong những validator node mà tôi tự vận hành để theo dõi Layer2. Một giao dịch bất thường đã được thực thi với gasPrice bằng 0, đi qua sequencer của một L2 lớn mà không gặp bất kỳ kiểm tra nào. gasPrice bằng 0 không phải là lỗi; đó là một dấu hiệu cho thấy sequencer đã bỏ qua cơ chế phí ưu tiên, một hành vi chỉ có thể xảy ra nếu sequencer có quyền kiểm soát tuyệt đối đối với thứ tự giao dịch. Tôi ngay lập tức bắt đầu trace execution path của giao dịch đó.

Context

Layer2, về mặt lý thuyết, được thiết kế để kế thừa tính bảo mật của Ethereum thông qua các bằng chứng gian lận hoặc bằng chứng hợp lệ. Tuy nhiên, thực tế vận hành lại khác. Hầu hết các L2 hiện tại đều sử dụng một sequencer tập trung duy nhất để sắp xếp giao dịch và gửi batch về mainnet. Cộng đồng thường gọi đây là "giai đoạn tạm thời" trước khi decentralized sequencing được triển khai. Nhưng sau hai năm, decentralized sequencing vẫn chỉ là PowerPoint. Vấn đề không chỉ là tập trung hóa quyền lực, mà là thiếu các cơ chế kiểm tra tính hợp lệ (sanity checks) ngay tại lớp sequencer.

Core

Hãy cùng trace execution path của giao dịch gasPrice = 0 mà tôi phát hiện. Khi một người dùng gửi giao dịch, nó đi qua mempool của L2. Sequencer có một hàm includeTransaction kiểm tra nonce, chữ ký, và – quan trọng nhất – maxPriorityFeePerGas. Dựa trên kinh nghiệm audit của tôi, hầu hết các L2 đều triển khai một cơ chế ưu tiên dựa trên phí, nhưng thiếu kiểm tra giới hạn dưới cho gasPrice. Điều mà các dev không nói với bạn là tham số minGasPrice thường được đặt mặc định là 0 trong cấu hình sequencer, và không bao giờ được kiểm tra lại trong quá trình sản xuất. Tôi đã kiểm tra mã nguồn của năm L2 khác nhau và phát hiện bốn trong số đó không có kiểm tra gasPrice dương. Điều này cho phép kẻ tấn công – hoặc chính sequencer – thực thi các giao dịch không mất phí, từ đó spam mạng hoặc thao túng thứ tự giao dịch một cách miễn phí. Đây là lỗ hổng kiến trúc xuất phát từ giả định rằng sequencer là đáng tin cậy. Giả định tin cậy họ đang đặt ra là sequencer sẽ luôn hành xử trung thực, nhưng không có bằng chứng mật mã nào bảo vệ chống lại sequencer độc hại. Một giao dịch với gasPrice = 0 không bị từ chối, nó chỉ đơn giản là được đưa vào batch mà không có ưu tiên. Tuy nhiên, nếu sequencer quyết định ưu tiên giao dịch đó, nó có thể thực hiện front-running mà không tốn phí, đánh cắp cơ hội MEV từ người dùng khác.

Contrarian

Phần lớn phân tích sai về vấn đề này. Họ nghĩ rằng sequencer tập trung chỉ là vấn đề về quyền kiểm soát thứ tự giao dịch, nhưng thực tế nó còn là vấn đề về tính toàn vẹn của dữ liệu trạng thái. Khi sequencer không bị kiểm tra, nó có thể tạo ra các block với trạng thái không hợp lệ mà không bị phát hiện cho đến khi bằng chứng gian lận được gửi lên mainnet – có thể mất hàng giờ. Trong thời gian đó, kẻ tấn công có thể rút tiền từ cầu nối hoặc thực hiện các giao dịch khai thác khác. Điều tinh tế (và đáng sợ) trong thiết kế này là sequencer có thể chèn các giao dịch giả mạo vào batch, khiến cho người dùng và các ứng dụng DeFi tin rằng trạng thái là hợp lệ, trong khi thực tế lớp nền Ethereum chưa xác nhận. Điều này đặc biệt nguy hiểm đối với các cầu nối cross-chain dựa trên oracle, vì chúng có thể đọc dữ liệu từ sequencer mà không chờ đợi finality từ L1.

Takeaway

Liệu chúng ta có chấp nhận một hệ thống nơi sequencer có thể thực thi giao dịch miễn phí và thao túng thứ tự mà không có kiểm tra runtime? Câu hỏi này không chỉ dành cho các nhà phát triển L2, mà còn cho toàn bộ hệ sinh thái DeFi đang phụ thuộc vào chúng. Bước tiếp theo là yêu cầu mỗi L2 công bố mã nguồn sequencer của mình và triển khai các kiểm tra bắt buộc đối với gasPrice tối thiểu, cũng như một cơ chế chứng minh rằng sequencer không thể tạo ra các block không hợp lệ mà không bị phát hiện trong vòng một vài block. Nếu không, lớp bảo mật mà chúng ta nghĩ rằng Layer2 mang lại chỉ là ảo tưởng.

Giá thị trường

Tiền điện tử Giá 24h
BTC Bitcoin
$77,274.7 +1.37%
ETH Ethereum
$2,447.94 +2.44%
SOL Solana
$94.06 +1.70%
BNB BNB Chain
$697 +1.62%
XRP XRP Ledger
$1.47 +1.16%
DOGE Dogecoin
$0.0915 +1.68%
ADA Cardano
$0.2184 +1.06%
AVAX Avalanche
$7.44 +1.13%
DOT Polkadot
$0.9023 +1.45%
LINK Chainlink
$11.49 +1.92%

Sợ & Tham

73

Tham lam

Tâm lý thị trường

Lịch sự kiện blockchain

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

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

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

18
03
unlock Mở khóa token Sui

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

08
04
upgrade Solana Firedancer

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

Công cụ

Tất cả →

Chỉ số mùa altcoin

41

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
$77,274.7
1
Ethereum ETH
$2,447.94
1
Solana SOL
$94.06
1
BNB Chain BNB
$697
1
XRP Ledger XRP
$1.47
1
Dogecoin DOGE
$0.0915
1
Cardano ADA
$0.2184
1
Avalanche AVAX
$7.44
1
Polkadot DOT
$0.9023
1
Chainlink LINK
$11.49

🐋 Theo dõi cá voi

🟢
0x24a9...f1a1
1 giờ trước
Chuyển vào
47,297 BNB
🟢
0xc252...d889
3 giờ trước
Chuyển vào
2,537 ETH
🟢
0xb088...b9ce
3 giờ trước
Chuyển vào
2,068,684 USDT

💡 Smart Money

0x8828...ead4
Nhà đầu tư sớm
+$0.6M
62%
0x8587...d567
Ví lưu ký tổ chức
+$2.6M
74%
0x8e6b...b9b6
Ví lưu ký tổ chức
+$4.8M
73%