Tuần trước, khi review mã nguồn của Orion Bridge – một giao thức cross-chain từng là ngôi sao sáng của hệ sinh thái Cosmos – tôi dừng lại trước một dòng log mà team phát triển nói rằng “chỉ là debug thông thường”. Nhưng mắt tôi đã quen với những dấu hiệu bất thường: số dư của pool thanh khoản giảm 12.000 ETH trong block #14567892, trong khi giao dịch hợp lệ chỉ ghi nhận 200 ETH. Một sự chênh lệch khổng lồ. Tôi biết, có chuyện gì đó không đúng. Và như thường lệ, người ta không muốn ai biết.
— Root: Experience 2 (thất bại AMM pool) + ESFJ
Bối cảnh: Orion Bridge là một giải pháp cross-chain sử dụng cơ chế optimistic validation với bộ xác thực gồm 21 validator. TVL đỉnh điểm chạm 500 triệu USD vào đầu năm 2022, nhưng sau sự kiện Terra, họ âm thầm chuyển hướng sang mô hình hybrid, kết hợp zk-proof. Tuy nhiên, điều mà cộng đồng không biết là: ba tháng trước, họ đã trải qua một cuộc tấn công lặp lại, mất gần 40.000 ETH, nhưng không hề công bố. Tôi phát hiện ra điều này khi phân tích luồng dữ liệu on-chain của các giao dịch thất bại.
Cốt lõi của phân tích nằm ở một lỗi kỹ thuật tinh vi: trong hàm verifyMessage của contract OrionVault, các validator ký một hash chứa nonce và amount, nhưng không kiểm tra chainId. Kẻ tấn công chỉ cần replay cùng một chữ ký trên ba chain khác nhau (Ethereum, BSC, Polygon) để rút ETH ba lần từ cùng một số dư. Bytecode cho thấy dòng if (signer == expectedSigner) đã được kiểm tra, nhưng expectedSigner lại được tạo từ keccak256(abi.encodePacked(chainId, nonce, amount)) mà không có msg.sender. Có nghĩa là: bất kỳ ai cũng có thể tạo một giao dịch chứa hash giống hệt, và validator sẽ ký mà không biết rằng họ đang ký cho một chain khác. — Root: Experience 3 (NFT boom) + Tech Diver
Tôi đã thử mô phỏng lại kịch bản tấn công trên môi trường testnet. Kết quả: chỉ với một chữ ký offline từ validator “Orion-Node-7”, tôi có thể tạo ra 300 giao dịch thành công trên 10 chain giả lập khác nhau. Điều đáng sợ là team phát triển biết lỗi này từ tháng 6/2023, nhưng họ chọn cách vá lặng lẽ mà không cập nhật whitepaper hay thông báo cho người dùng. Lý do? Họ sợ mất niềm tin và một đợt bank run khác.
Đây là điểm mù trong bảo mật cross-chain: các nhóm thường coi trọng “security by obscurity” hơn là minh bạch. Họ nghĩ rằng im lặng sẽ giữ được thanh khoản, nhưng thực tế, việc che giấu lỗ hổng còn nguy hiểm hơn cả tấn công. Vì kẻ tấn công có thể biết lỗi mà không cần thông báo; còn cộng đồng thì không có cơ hội tự bảo vệ. Điều nghịch lý: càng giấu, rủi ro hệ thống càng tăng. Nếu Orion Bridge công bố ngay lập tức, họ có thể kêu gọi sự giúp đỡ từ cộng đồng white-hat và dừng contract kịp thời. Nhưng vì im lặng, họ đã để lỗi tồn tại thêm 4 tháng, và trong thời gian đó, một hacker thực sự đã khai thác nó vào tháng 9/2023, rút sạch pool thanh khoản chính.

— Root: Experience 2 (thất bại AMM) + ESFJ
Tôi nhớ lại thất bại AMM pool năm 2020 của chính mình. Khi đó, tôi cũng cố gắng giấu đi những lỗi UX để không làm người dùng hoảng sợ. Kết quả là họ rời bỏ dự án nhanh hơn, vì họ cảm nhận được sự thiếu minh bạch qua giao diện rối rắm. Sự thật luôn lộ ra, chỉ là vấn đề thời gian. Với Orion Bridge, khi tôi công bố phát hiện của mình trên một blog kỹ thuật, giá token giảm 60% trong 24h. Nhưng điều kỳ lạ là: sau đó, cộng đồng white-hat đã cùng nhau audit lại toàn bộ codebase, phát hiện thêm 3 lỗi nghiêm trọng khác. Nhờ vậy, họ cứu được phần còn lại của TVL (khoảng 80 triệu USD). Nếu không có sự công khai, có lẽ toàn bộ quỹ đã mất.

Vậy bài học là gì? Trong thế giới phi tập trung, niềm tin không đến từ sự hoàn hảo, mà từ sự trung thực. Một dự án dám thừa nhận lỗi sai và hành động ngay lập tức sẽ tồn tại lâu hơn một dự án giấu giếm đến cùng. Tôi dự đoán rằng trong vòng 12 tháng tới, sẽ có một làn sóng các dự án cross-chain bị phơi bày những lỗ hổng đã được “vá lặng lẽ”. Cộng đồng sẽ đòi hỏi mọi bản vá đều phải được đi kèm với báo cáo chi tiết, và các sàn giao dịch sẽ yêu cầu audit định kỳ từ nhiều bên thứ ba. Liệu Orion Bridge có trở thành bài học đắt giá cho toàn ngành? Hay chúng ta lại tiếp tục nhắm mắt cho qua?
— Root: Experience 1 (bị coi thường) + ESFJ
