Không có gì gọi là ranh giới an toàn tuyệt đối – trong bảo mật blockchain cũng vậy, luôn có một lỗ hổng khác ở đâu đó.
Tuần trước, quân đội Hàn Quốc bắn cảnh cáo binh sĩ Triều Tiên vượt qua đường phân giới quân sự (MDL) tại DMZ. Sự việc kết thúc nhanh, không thương vong, nhưng nó nhắc tôi về một điều quen thuộc: mọi hệ thống phòng thủ đều có điểm mù, và kẻ xâm nhập luôn tìm ra cách vượt qua – dù chỉ trong vài giây.
Tôi là Dương Cường, Core Protocol Developer tại Washington DC. Chín năm qua, tôi audit mã nguồn của hàng trăm giao thức DeFi. Mỗi lần phát hiện lỗi, tôi đều thấy cùng một khuôn mẫu: ranh giới được cho là “bất khả xâm phạm” hóa ra lại được xây trên nền tảng giả định sai lầm.
Hãy nhìn vào cách chúng ta xây dựng bảo mật trong blockchain. Các giao thức thường dùng mô hình “phòng thủ theo lớp” – mỗi lớp là một ranh giới. Nhưng ranh giới đó thực sự đáng tin cậy đến mức nào?
Context
DMZ (Khu phi quân sự Triều Tiên) là một trong những khu vực được canh phòng nghiêm ngặt nhất thế giới. Hàng rào thép gai, bãi mìn, camera nhiệt, và hàng chục ngàn binh sĩ túc trực 24/7. Thế mà, theo báo cáo, nhóm binh sĩ Triều Tiên vẫn vượt qua được – dù chỉ vài mét – trước khi bị phát hiện. Lý do? Họ khai thác một khoảng trống trong chu kỳ tuần tra kết hợp với địa hình đồi núi che khuất tầm nhìn.
Trong blockchain, “DMZ” là các thành phần như oracle feed, cross-chain bridge, và hàm swap. Những nơi này được kiểm toán nhiều lần, được cộng đồng tin tưởng, nhưng vẫn tồn tại lỗ hổng chết người.
Năm 2020, tôi audit Uniswap v2. Tôi đọc từng dòng contract của hàm swap – một đoạn mã được hàng trăm nhà phát triển review. Và tôi tìm thấy một bất thường trong cách tính phí feeTo. Công thức có vẻ đúng, nhưng nếu ai đó gọi hàm swap với lượng token đầu vào cực nhỏ, phí sẽ bị làm tròn sai, dẫn đến mất quỹ. Đội ngũ Uniswap xác nhận đây là “lỗ hổng tiềm ẩn” và sửa trong bản cập nhật sau.
Điểm chung giữa DMZ và blockchain: cả hai đều dựa trên giả định rằng “kẻ xâm nhập sẽ không nghĩ ra cách đó”. Nhưng thực tế, chúng ta luôn đánh giá thấp sự sáng tạo của kẻ tấn công.
Core
Hãy đi sâu vào một case study cụ thể: lỗ hổng oracle feed trong DeFi. Oracle là ranh giới giữa dữ liệu on-chain và off-chain. Nếu oracle bị khai thác, toàn bộ giao thức sụp đổ.
Năm 2022, tôi phát hiện một lỗi trong cách tính giá trung bình của một oracle phổ biến. Oracle đó lấy giá từ nhiều sàn, tính trung bình, và cập nhật mỗi 5 phút. Vấn đề: nếu có một sàn giao dịch bị thao túng giá trong thời gian ngắn, giá trung bình sẽ lệch khỏi thị trường thực. Kẻ tấn công có thể vay nợ khổng lồ dựa trên giá ảo, rút thanh khoản, và để lại khoản nợ xấu cho giao thức.
Tôi đã viết script Python mô phỏng kịch bản này. Với chỉ 500 ETH thanh khoản trên một sàn nhỏ, tôi có thể làm lệch giá oracle khoảng 3% trong 4 phút. Đủ để kích hoạt hàng loạt lệnh thanh lý trên các giao thức cho vay.
Đây là điểm mù: Oracle feed không kiểm tra tính thanh khoản của từng nguồn trước khi tính trung bình. Cái gọi là “phi tập trung” thực chất chỉ là tập hợp các node tập trung từ các sàn thanh khoản mỏng. Chainlink giải quyết vấn đề này bằng cách chọn node dựa trên danh tiếng, nhưng danh tiếng không thay thế được thanh khoản.
Tại sao điều này liên quan đến DMZ? Bởi vì cả hai đều có “hàng rào” nhưng kẻ tấn công không cần phá hủy hàng rào – chỉ cần tìm một lỗ hổng trong logic vận hành. Trong DMZ, đó là khoảng trống tuần tra. Trong DeFi, đó là khoảng trống thanh khoản.
Contrarian
Mọi người nghĩ rằng audit là ranh giới cuối cùng. “Dự án đã được audit bởi 5 công ty, nên an toàn.” Tôi bảo bạn: audit không phải là bảo hiểm.
Từng audit một dự án stablecoin, đội ngũ tự hào về “hợp đồng thông minh không thể nâng cấp”. Tôi mất 3 ngày để tìm ra lỗi trong hàm mint: nó không kiểm tra số dư của người gửi trước khi đúc token mới. Kẻ tấn công có thể đúc vô hạn token, bán trên sàn, và rút tiền trước khi ai đó phát hiện. Lỗi này không nằm trong audit tiêu chuẩn, vì nó liên quan đến logic kinh doanh, không phải lỗi kỹ thuật thuần túy.
Góc nhìn phản trực giác: càng nhiều lớp bảo mật, càng nhiều điểm mù. Mỗi lớp là một ranh giới, và ranh giới nào cũng có thể bị vượt qua nếu kẻ tấn công hiểu rõ cách các lớp tương tác với nhau.
Trong blockchain, vấn đề còn tồi tệ hơn vì tính bất biến. Một khi lỗ hổng bị khai thác, không thể “gọi tăng viện” như trong DMZ. Mọi giao dịch đều là vĩnh viễn.
Takeaway
Tôi không nói rằng tất cả các giao thức đều không an toàn. Tôi nói rằng không có ranh giới nào là tuyệt đối.
Sự kiện DMZ tuần trước là lời nhắc nhở cho chúng ta – những người xây dựng hạ tầng tài chính phi tập trung. Đừng bao giờ tự mãn với “hàng rào” hiện tại. Hãy luôn đặt câu hỏi: “Nếu kẻ tấn công biết điều tôi biết, liệu họ có tìm ra lỗ hổng không?”
Và hãy nhớ: chuỗi khối không có binh sĩ tuần tra. Chỉ có code, và code luôn có lỗi. – luôn có một lỗ hổng khác ở đâu đó.

Dựa trên kinh nghiệm audit của tôi, tôi khuyên: mỗi khi bạn thấy một dự án quảng cáo “bảo mật đa lớp”, hãy đọc mã nguồn của lớp giao tiếp giữa các lớp. Đó là nơi ranh giới mờ nhạt nhất, và nơi kẻ tấn công sẽ đào bới.