Họ vừa huy động 100 triệu USD. Tôi vừa đọc code. Và tôi thấy thứ mà đội ngũ marketing không muốn bạn biết: một lỗi trong cơ chế sequencing cho phép người trong cuộc ưu tiên giao dịch. Đây không phải là lần đầu tiên. Năm 2017, tôi mất 3 ETH vì một lỗi tương tự trong hợp đồng ICO của Status. Từ đó, tôi không bao giờ đầu tư vào dự án mà không tự audit code thủ công.
Bối cảnh: Dự án này tự xưng là ‘Layer-2 siêu thanh’, hứa hẹn 100.000 TPS với phí gần như bằng không. Họ đã bán token riêng lẻ cho các quỹ đầu tư lớn, và bây giờ chuẩn bị mở public sale. Nhưng khi tôi mở GitHub của họ, tôi thấy một điều kỳ lạ: hàm processBatch không kiểm tra quyền của người gọi. Bất kỳ ai cũng có thể gửi một batch giao dịch giả mạo, chiếm quyền ưu tiên. Trong thế giới options, đó là một 'free call' — không ai trả phí, nhưng bạn có thể chạy trước mọi người.
Tôi đã dành 2 giờ để kiểm tra thủ công. Tôi chạy một script Python để mô phỏng tấn công. Kết quả: chỉ với một giao dịch đơn giản, kẻ tấn công có thể chèn các giao dịch của mình vào đầu mỗi block, trích xuất giá trị từ các giao dịch của người dùng khác. Đây là MEV (Miner Extractable Value) cấp độ mới. Nhưng đội ngũ dự án đã không đề cập đến điều này trong whitepaper của họ. Họ chỉ nói về 'phi tập trung' và 'khả năng mở rộng'.
Tôi mở Twitter. Tôi thấy hàng trăm bài đăng ca ngợi dự án. Các KOL nói rằng ‘đây là tương lai của DeFi’. Nhưng không ai nói về cái lỗi trong code. Có lẽ họ không đọc code. Hoặc họ đọc nhưng không hiểu. Tôi đã 44 tuổi, tôi không còn tin vào ‘tương lai’ nữa, chỉ có delta và gamma mới là chân lý.
Tôi quyết định không mua token. Thay vào đó, tôi mua put options trên token tương tự của đối thủ cạnh tranh (ví dụ: Arbitrum). Tôi đặt strike giá thấp hơn 20% so với giá hiện tại, với kỳ hạn 3 tháng. Tôi trả premium 5% cho mỗi contract. Tôi cũng viết một bài phân tích ngắn trên Substack của mình, cảnh báo cộng đồng. Chỉ trong 3 ngày, dự án bị leak thông tin về lỗi, giá token giảm 40%. Tôi kiếm được 200% lợi nhuận từ các put options. Nhưng tôi không hề vui. Bởi vì tôi biết sẽ có người mất tiền.
Tôi nhìn lại lịch sử. DeFi Summer 2020, tôi đã gamma scalping trên Uniswap với một script Python. Tôi kiếm được 120% trong 3 tháng. Nhưng sau đó script lỗi, tôi mất 10 ETH. Tôi học được rằng không có bot nào hoàn hảo, cũng như không có dự án nào hoàn hảo. Điều duy nhất đáng tin cậy là quản lý rủi ro và kiểm tra thủ công.
Đây là lý do tôi viết bài này. Bởi vì thị trường tăng đang che giấu những lỗi kỹ thuật chết người. Mọi người đều FOMO, nhưng không ai đọc code. Họ nhìn vào marketing, họ nhìn vào đội ngũ, họ nhìn vào số tiền huy động. Nhưng họ không nhìn vào hàm processBatch. Tôi không phải là thiên tài. Tôi chỉ là một người phụ nữ 44 tuổi, đã từng mất tiền vì những lỗi tương tự. Tôi muốn bạn không mắc sai lầm đó.
Bây giờ, hãy nói về cấu trúc kỹ thuật. Dự án này sử dụng một optimistic rollup với một sequencer tập trung. Điều này có nghĩa là sequencer có toàn quyền sắp xếp giao dịch. Trong code, họ đã implement một cơ chế ‘batch submission’ cho phép bất kỳ ai gửi một batch nếu họ thanh toán phí ETH. Nhưng họ quên kiểm tra rằng batch đó phải được ký bởi sequencer chính thức. Kết quả là bất kỳ ai cũng có thể gửi một batch giả mạo, bao gồm các giao dịch được sắp xếp theo ý muốn. Đây là một lỗi nghiêm trọng, tương tự như lỗi trong hợp đồng ICO của Status năm 2017.
Tôi đã thử nghiệm. Tôi fork repo của họ, chạy local testnet. Tôi gửi một batch với các giao dịch ưu tiên cao. Hệ thống chấp nhận nó. Tôi có thể thấy rõ ràng: tôi có thể front-run bất kỳ giao dịch nào khác. Điều này vi phạm nguyên tắc cơ bản của công bằng trong blockchain: ‘first-come-first-serve’. Nhưng dự án này không hề đề cập đến rủi ro này trong tài liệu của họ.
Tôi gọi đây là ‘free call option’ cho kẻ tấn công. Trong giao dịch options, một free call là một quyền chọn mua không mất phí. Ở đây, kẻ tấn công có quyền mua trước bất kỳ cơ hội nào mà không trả thêm chi phí. Điều đó là không bền vững.
Tôi không muốn nói rằng dự án này là lừa đảo. Tôi chỉ nói rằng họ đã bỏ qua một chi tiết kỹ thuật quan trọng. Và thị trường tăng đã khiến mọi người bỏ qua điều đó. Khi giá giảm, tất cả sẽ đổ lỗi cho ‘thị trường gấu’ hoặc ‘FUD’. Nhưng thực ra, lỗi nằm trong code.
Đây là lúc tôi nhớ lại năm 2022, khi Luna sụp đổ. Tôi đã short UST ở mức $0.9 và thanh lý kịp thời, chỉ mất 5% danh mục. Sau đó tôi mua put trên BTC, kiếm 200%. Đồng nghiệp nam cười tôi khi tôi short. Nhưng tôi đã đúng. Tôi không để giới tính ảnh hưởng đến quyết định của mình. Và tôi cũng không để FOMO ảnh hưởng đến quyết định của mình bây giờ.
Tôi đã viết một bài tweet: "Đừng hold, hãy hedge. Gamma là bạn, nhưng nó cũng là dao hai lưỡi." Bài tweet đó đã được retweet hơn 500 lần. Mọi người bắt đầu hỏi tôi về lỗi trong dự án kia. Tôi không trả lời trực tiếp. Tôi chỉ nói: "Hãy đọc code. Nếu bạn không thể đọc code, hãy thuê người đọc code. Nếu bạn không thể thuê, hãy đừng đầu tư."
Bài học ở đây không chỉ là về một dự án cụ thể. Đó là về tư duy của một battle trader. Bạn không thể dựa vào người khác. Bạn phải tự kiểm tra. Bạn phải có kế hoạch dự phòng. Bạn phải hiểu rằng thị trường tăng không tha thứ cho sự ngu dốt.
Tôi kết thúc bài viết này bằng một câu hỏi: Bạn sẵn sàng mất bao nhiêu trước khi học được bài học này? Tôi đã mất 3 ETH, 10 ETH, và gần như mất tất cả. Bây giờ, tôi không còn mất nữa. Tôi chỉ kiếm tiền từ gamma và delta. Và tôi muốn bạn cũng vậy.
Hãy nhớ: "Sau cơn bão 2018, tôi không còn tin vào ‘tương lai’ nữa, chỉ có delta và gamma mới là chân lý."