Ngày 12/3/2025, dữ liệu on-chain cho thấy base fee của Ethereum đột ngột tăng vọt lên 450 Gwei trong 3 block liên tiếp, dù mạng không có NFT mint hay DeFi frenzy nào. Điều bất thường: tất cả đều đến từ các blob transaction của L2. Không phải do cầu thanh khoản, không phải do tấn công – mà là do một lỗ hổng trong cơ chế định giá blob gas khiến chúng cạnh tranh trực tiếp với calldata thông thường.

Bối cảnh: EIP-4844 (Proto-Danksharding) được triển khai tháng 3/2024, giới thiệu một loại giao dịch mới – blob – với thị trường gas riêng biệt. Lý thuyết: blob không ảnh hưởng đến execution gas, giúp L2 rẻ hơn. Nhưng thực tế mã nguồn trong go-ethereum (phiên bản v1.14.0) cho thấy việc tính toán base fee cho blob sử dụng công thức tương tự như block gas target, nhưng có một điểm mấu chốt: khi blob được đưa vào block, chúng chiếm dung lượng block vật lý (size), làm giảm số lượng giao dịch thường có thể chứa. Cụ thể, mỗi blob có kích thước tối đa 128 KB, và block gas limit (30 triệu) không giới hạn trực tiếp dung lượng. Nhưng các node giao thức hiện tại áp dụng MaxBlobsPerBlock = 6, tương đương 768 KB dữ liệu. Block có kích thước tối đa 2 MB, blob chiếm gần 40%.
Core insight: Sự cạnh tranh tài nguyên block không được phản ánh trong cơ chế định giá blob gas. Khi blob đầy, các node phải từ chối giao dịch thường vì block quá lớn, gây ra hiệu ứng domino: calldata không thể vào, người dùng trả phí cao hơn để vượt qua, kéo theo base fee tăng. Phân tích mã nguồn consensus/misc/eip4844.go cho thấy GetBlobGasPrice() chỉ dựa trên tỷ lệ excessBlobGas / targetBlobGas, hoàn toàn không liên quan đến block size. Đây là trade-off thiết kế: ưu tiên đơn giản hóa, nhưng tạo ra externalities không lường trước.

Contrarian angle: Hầu hết các bài phân tích đều khen ngợi EIP-4844 giảm phí L2, nhưng bỏ qua rằng blob đang tạo ra một class ưu tiên ngầm cho L2, bóp méo thị trường gas layer 1. Những người đề xuất cho rằng blob có thị trường riêng, không ảnh hưởng. Nhưng dữ liệu 3 block vừa rồi chứng minh ngược lại: khi blob chiếm dung lượng, block bị đầy, và execution gas bị đẩy lên. Điểm mù bảo mật ở đây là: nếu một L2 gửi blob với phí thấp nhưng liên tục, nó có thể gây ra tắc nghẽn có chủ đích – một dạng DoS mới mà không vi phạm quy tắc gas. Dựa trên kinh nghiệm audit của tôi, tôi nhận thấy thiết kế này thiếu một cơ chế phản hồi giữa blob size và base fee. So sánh với Uniswap V2 (nơi tôi từng tối ưu phí gas), việc tách biệt thị trường gas mà không có liên kết dung lượng là một sai lầm cơ bản.
Takeaway: Nếu Ethereum Foundation không vá lỗ hổng này trong hardfork tiếp theo, chúng ta sẽ thấy các cuộc tấn công phí blob có chủ đích, gây tổn thất cho người dùng DeFi thông thường. Câu hỏi đặt ra: liệu sự phát triển của L2 có đang vô tình phá hủy khả năng truy cập của L1? Hay đây là cái giá phải trả cho một tương lai rollup-centric? Hãy nhìn vào mã nguồn, câu trả lời đã ở đó.