Có tin, phi ngay. Một người dùng Bitcoin vừa mất 1.6 BTC (khoảng 103.000 USD) chỉ vì một script tự động tăng phí RBF mỗi giây – và không có giới hạn trên. Đây không phải rug pull, không phải hack protocol, mà là một vụ tai nạn trên chính lớp ứng dụng. Hãy cùng tôi mổ xẻ vụ việc này để hiểu tại sao tool càng tự động, rủi ro càng lớn.
Tại sao lại là bây giờ? Thị trường đang giảm, mọi người đang lo lắng về tài sản của mình. Một tin tức như thế này dễ gây hoang mang: 'Bitcoin có an toàn không?' Câu trả lời là: bản thân Bitcoin vẫn an toàn, nhưng script bạn viết thì không. Vụ việc xảy ra vào ngày 12-13/8/2024, khi một script chạy trên máy của người dùng liên tục tạo các giao dịch thay thế (RBF) với phí tăng dần. Kết quả: giao dịch cuối cùng có một đầu vào 1.603 BTC, không có đầu ra, và toàn bộ số tiền bay vào túi thợ mỏ SpiderPool.
Đây là lúc tôi bóc tách kỹ thuật. RBF (Replace-By-Fee) là một cơ chế tiêu chuẩn từ BIP125, cho phép bạn thay thế giao dịch chưa được xác nhận bằng một giao dịch mới với phí cao hơn để tăng tốc. Trong vụ này, script được lập trình để tăng phí mỗi giây – một tần suất bất thường. Thông thường, RBF được dùng thủ công hoặc với tần suất thấp. Việc tăng mỗi giây cho thấy đây có thể là một bot giao dịch tần suất cao hoặc một script tự động hóa việc mint Ordinals, mở kênh Lightning, hoặc chạy market-making. Vấn đề chính là script không có giới hạn phí tối đa (max fee rate) và không có cơ chế ngắt mạch sau N lần thay thế. Dựa trên kinh nghiệm phân tích on-chain của tôi, đây là một trường hợp điển hình của việc thiếu kiểm soát rủi ro trong script tự động. Giao dịch cuối cùng chỉ có một input, zero output – điều đó có nghĩa là script thậm chí không xây dựng được một giao dịch hợp lệ: hoặc nó nhầm lẫn giữa phí và tiền thừa, hoặc logic xây dựng giao dịch bị lỗi. Tôi ước tính tỷ lệ phí lên tới 441 sat/vB, gấp 10-40 lần phí thông thường thời điểm đó. Và bởi vì script chạy liên tục, nó đã tạo ra hàng chục, thậm chí hàng trăm giao dịch thay thế trước khi giao dịch cuối cùng được xác nhận sau vài giờ.
Nhưng hãy nhìn vào góc nhìn ngược: đây không phải lỗi của Bitcoin. RBF là một công cụ trung tính. Chính lớp ứng dụng – script do người dùng viết – mới là kẻ sát nhân. SpiderPool không làm gì sai: họ chỉ nhặt giao dịch có phí cao nhất để tối đa hóa lợi nhuận, đó là hành vi kinh tế hợp lý trong một mạng phi tập trung. Sự kiện này cũng không ảnh hưởng đến nền kinh tế token của Bitcoin: 1.6 BTC chỉ chuyển từ ví người dùng sang ví thợ mỏ, không bị đốt, không ảnh hưởng đến nguồn cung. Tác động thị trường gần như bằng 0 – so với khối lượng giao dịch hàng ngày hàng trăm tỷ USD, con số này là hạt cát. Tuy nhiên, tác động đến tâm lý người dùng cá nhân là rất lớn: nếu bạn không cẩn thận, một sai lầm nhỏ có thể khiến bạn mất trắng.
Vậy bài học là gì? Nếu bạn chạy bất kỳ script tự động nào trên Bitcoin, hãy luôn đặt một giới hạn phí cứng (max fee rate) và một bộ ngắt mạch tự động sau 5-10 lần thay thế. Đừng tin vào 'tôi sẽ để mắt tới nó' – vì khi bạn quay lại, tiền đã bay. Các ví chính thống như BlueWallet hay Electrum đã có tính năng cảnh báo, nhưng nếu bạn tự build, bạn phải tự chịu trách nhiệm. Vụ việc này cũng cho thấy sự khác biệt giữa layer nền tảng và lớp ứng dụng: Bitcoin vẫn an toàn, nhưng 'an toàn' không có nghĩa là 'ngu ngốc-proof'. Hãy hỏi người dùng đó: 'Wave đang hình thành, em vào chưa?' – nhưng nếu vào bằng script không có phanh, em sẽ ra đi rất nhanh.