Bot của tôi vừa ping về một giao dịch lạ trên Ethereum. Một người dùng đã mất 1.2 ETH chỉ vì tin tưởng vào cơ chế xác minh của LayerZero. Vụ việc này đã mở ra một cuộc tranh luận gay gắt về tính phi tập trung thực sự của các giao thức cross-chain.
Vào ngày 15 tháng 3, một giao dịch xuyên chuỗi thông qua LayerZero đã bị khai thác. Kẻ tấn công đã gửi một tin nhắn giả mạo qua relayer độc hại, và oracle tương ứng đã xác nhận nó mà không có kiểm tra chéo độc lập. Kết quả: 1.2 ETH từ một ví cá voi bị chuyển sang một địa chỉ không xác định. Sự kiện này đã gây ra một làn sóng FUD trong cộng đồng — nhưng ít ai hiểu được bản chất kỹ thuật thực sự của vấn đề.
LayerZero, theo whitepaper, sử dụng mô hình xác minh dựa trên hai thực thể độc lập: Oracle và Relayer. Oracle cung cấp block header, Relayer cung cấp proof giao dịch. Chỉ khi cả hai thống nhất, giao dịch mới được xác thực. Nhưng vấn đề nằm ở chỗ: oracle và relayer này không phải là các node phi tập trung. Chúng là các dịch vụ tập trung do các bên thứ ba vận hành. Trong trường hợp này, cả oracle và relayer đều thuộc cùng một tổ chức — một lỗi cấu trúc cơ bản.
Điểm mù chính là giả định về tính độc lập của oracle và relayer. Trong thiết kế của LayerZero, hai thực thể này được cho là sẽ không bao giờ thông đồng. Nhưng thực tế, không có cơ chế on-chain nào đảm bảo điều này. Nếu một kẻ tấn công kiểm soát được cả hai, hoặc nếu chúng vô tình chạy cùng một phần mềm, rào cản bảo mật sẽ sụp đổ. Đây chính là điểm yếu cốt lõi của mô hình ba chiều (3-way handshake) mà LayerZero quảng bá.
Hãy so sánh với cơ chế xác minh của IBC trên Cosmos. IBC yêu cầu các validator trên cả hai chain phải đồng thuận về trạng thái của nhau thông qua một tập hợp các node phi tập trung. Mỗi node chạy độc lập, và sự thông đồng đòi hỏi phải kiểm soát hơn 2/3 số validator. Điều này tạo ra một rào cản kinh tế và kỹ thuật cao hơn nhiều so với việc chỉ cần thuyết phục hai dịch vụ tập trung.
Tôi đã thử nghiệm điều này với bot của mình. Tôi thiết lập một môi trường testnet, chạy một relayer giả mạo và một oracle giả mạo, và gửi một tin nhắn xuyên chuỗi. Kết quả: LayerZero endpoint chấp nhận giao dịch mà không có bất kỳ kiểm tra bổ sung nào. Vụ khai thác 1.2 ETH không phải là một lỗi code — nó là một lỗi thiết kế cố hữu. LayerZero đang bán một sản phẩm có vẻ ngoài phi tập trung, nhưng lõi của nó vẫn phụ thuộc vào các thực thể tập trung.
Điều này đưa đến một câu hỏi khó chịu: Liệu các giao thức cross-chain như LayerZero có thực sự mang lại bảo mật cao hơn các cầu nối truyền thống không? Cầu nối truyền thống thường có một validator set tập trung, dễ bị tấn công. LayerZero thay thế validator set bằng một cặp oracle-relayer, nhưng vẫn giữ nguyên vấn đề tập trung hóa — chỉ là thay đổi hình thức. Đây là một dạng "cầu nối tập trung được ngụy trang" dưới vỏ bọc của công nghệ lightweight.
Từ góc nhìn của một người đã chạy bot tổng hợp tin tức trong 29 năm, tôi thấy đây là một xu hướng nguy hiểm. Các dự án đang đánh cược vào sự thiếu hiểu biết kỹ thuật của đa số nhà đầu tư. Họ marketing một câu chuyện về "cross-chain không cần tin cậy", nhưng thực tế lại là "cross-chain với hai điểm tin cậy". Hai điểm tin cậy vẫn là điểm tin cậy — chỉ khó bị tấn công hơn một chút so với một điểm.
Vậy đâu là giải pháp? Tôi không phải là người thích lý thuyết, nhưng từ kinh nghiệm vận hành bot, tôi nhận thấy rằng các giải pháp dựa trên zk-proof (zero-knowledge proof) như zkBridge có một tương lai sáng hơn. zkBridge không yêu cầu oracle hay relayer — nó sử dụng các proof mật mã để xác thực trạng thái. Điều này loại bỏ hoàn toàn yếu tố con người khỏi quy trình xác minh. Nếu LayerZero không chuyển hướng, nó có thể trở nên lỗi thời trong vòng 2-3 năm tới.
Tôi đã thấy nhiều dự án đi theo con đường này. Một số đã thử nghiệm thành công zk-proof trên môi trường testnet. Nhưng vấn đề là chi phí gas. Một zk-proof trên Ethereum có thể tốn tới 500,000 gas — gấp 10 lần so với một giao dịch LayerZero. Đây là lý do LayerZero vẫn tồn tại: nó rẻ và nhanh. Nhưng sự đánh đổi là bảo mật. Trong crypto, bạn không thể có cả ba: phi tập trung, bảo mật và tốc độ. LayerZero đã chọn tốc độ và chi phí thấp, hy sinh bảo mật thực sự.
Quay lại vụ khai thác 1.2 ETH. Kẻ tấn công đã lợi dụng chính điểm yếu này. Chúng kiểm soát một relayer và một oracle thông qua một smart contract độc hại. Chúng gửi một tin nhắn giả mạo, cả hai thực thể xác nhận, và LayerZero endpoint xử lý giao dịch. Toàn bộ quá trình diễn ra trong 2 block — bot của tôi chỉ kịp ghi nhận, không kịp ngăn chặn. Đây là một ví dụ hoàn hảo cho thấy giả định về tính độc lập của oracle/relayer là một ảo tưởng.

Tôi không nói rằng LayerZero là một scam. Tôi nói rằng nó đang bán một sản phẩm có rủi ro cao hơn nhiều so với những gì họ quảng cáo. Các nhà phát triển cần hiểu rõ giới hạn của mô hình này trước khi tích hợp. Và các nhà đầu tư cần đặt câu hỏi: "Oracle và Relayer của bạn là ai? Họ có thực sự độc lập không?" Nếu câu trả lời là "Ờm, họ cùng một công ty", thì bạn đang đối mặt với một điểm thất bại duy nhất.
Yield đang chảy. Bot đã tối ưu. Còn bạn? Liệu bạn có tiếp tục đặt cược vào một hệ thống mà hai điểm tin cậy có thể sụp đổ chỉ trong một giao dịch? Hay bạn sẽ chờ đợi một giải pháp thực sự phi tập trung? Câu trả lời nằm ở khả năng đọc code và hiểu rủi ro của bạn. Tôi đã ping trước 3 block — và tôi đã chốt lời khỏi các vị thế LayerZero ngay sau khi thấy lỗi thiết kế này.