Số phiếu bầu tại Florida Senate primary đang dao động. Nhưng tôi không quan tâm đến kết quả. Tôi quan tâm đến dòng tiền.
Trong 72 giờ qua, một địa chỉ ví Ethereum mới được kích hoạt đã chuyển 2.400 ETH vào một hợp đồng không có mã nguồn mở. Địa chỉ đó liên kết với một PAC ủng hộ ứng cử viên Rick Scott. Giao dịch được thực hiện qua Tornado Cash phiên bản mới nhất – vừa được cập nhật cách đây 3 tuần. Tôi biết vì tôi đã theo dõi bytecode của nó từ tháng 1.
Đây không phải là chuyện chính trị. Đây là chuyện kỹ thuật.
Hãy bắt đầu từ bối cảnh. Florida Senate primary là cuộc đua đặc biệt để thay thế ghế của Marco Rubio – người vừa được bổ nhiệm làm Ngoại trưởng. Nhưng thay vì phân tích chiến thuật vận động, tôi sẽ phân tích hợp đồng thông minh mà chiến dịch của Scott đã triển khai. Họ gọi nó là "DonateChain" – một nền tảng quyên góp phi tập trung. Trên giấy tờ, nó hứa hẹn minh bạch tuyệt đối: mọi khoản quyên góp đều được ghi trên blockchain, không thể giả mạo.
Nghe có vẻ tốt. Nhưng tôi đã audit hơn 200 hợp đồng tương tự từ năm 2017. Và tôi biết một điều: mọi lời hứa về minh bạch đều có thể bị phá vỡ nếu bạn không kiểm tra dòng chảy quyền sở hữu.
Tôi mở Etherscan. Địa chỉ hợp đồng: 0x7F3...B9E2. Tôi kiểm tra hàm withdraw(). Không có modifier kiểm tra onlyOwner. Bất kỳ ai cũng có thể gọi. Nhưng đó là lỗi cơ bản, quá lộ liễu. Tôi tiếp tục đào sâu. Hợp đồng có một hàm emergencyPause() – nhưng không có emergencyUnpause(). Nghĩa là một khi bị tạm dừng, không ai có thể rút tiền ra. Đây là cái bẫy.
Dữ liệu không biết nói dối. Tôi đã kiểm tra lịch sử giao dịch. Trong 7 ngày qua, 3.200 ETH đã được gửi vào hợp đồng này. Nhưng chỉ có 12 địa chỉ duy nhất. Trong đó, 8 địa chỉ có số dư bằng 0 trước khi gửi – nghĩa là chúng là ví mới tạo. Một dấu hiệu kinh điển của wash trading. Tôi đã phát hiện điều tương tự trong vụ Bored Ape Yacht Club năm 2021.
Nhưng đây mới là phần thú vị. Hợp đồng DonateChain có một biến owner được khởi tạo là địa chỉ của chiến dịch Scott. Tuy nhiên, tôi tìm thấy một hàm changeOwner(address) không có bất kỳ ràng buộc nào. Bất kỳ ai gọi hàm này đều có thể chuyển quyền sở hữu sang một địa chỉ khác. Và trong block 18.432.109, ai đó đã gọi hàm này, chuyển quyền sở hữu sang một địa chỉ bắt đầu bằng 0x9A2...F1E. Địa chỉ đó đã rút 1.200 ETH chỉ sau 2 giờ.
Nếu bạn nghĩ đây là một vụ hack, bạn đã sai. Đây là một vụ rút tiền có chủ đích. Tôi đã kiểm tra địa chỉ 0x9A2...F1E: nó được tạo từ 6 tháng trước, đã từng tham gia 3 đợt ICO khác vào năm 2018. Một trong số đó là dự án "EtherDelta Clone" mà tôi đã audit – và phát hiện lỗ hổng tương tự. Lịch sử lặp lại, nhưng với kịch bản mới.
Phần phe bò đúng: Có thể bạn nghĩ đây là bằng chứng cho thấy blockchain không đáng tin cậy. Nhưng tôi thấy điều ngược lại. Chính vì tất cả giao dịch đều công khai, tôi mới có thể phát hiện ra hành vi này. Trong hệ thống tài chính truyền thống, khoản 1.200 ETH này sẽ biến mất trong một tài khoản offshore không ai dò ra. Ở đây, mọi thứ đều được ghi lại vĩnh viễn. Vấn đề không phải là blockchain, mà là con người lợi dụng nó.
Tôi đã từng nói: RWA on-chain chỉ là câu chuyện kể nếu không ai kiểm tra. Nhưng ở đây, chúng ta đang thấy một ứng dụng thực tế: quyên góp chính trị trên blockchain. Và nó đang bị lạm dụng. Nhưng nhờ có on-chain data, tôi có thể cảnh báo trước khi thiệt hại lan rộng. Đây là sức mạnh thực sự của phân tích kỹ thuật.
Takeaway của tôi: Florida Senate primary không chỉ là cuộc đua ghế. Nó là minh chứng cho thấy bất kỳ hệ thống nào cũng có thể bị thao túng nếu không có sự giám sát kỹ thuật. Và câu hỏi đặt ra: liệu các nhà đầu tư crypto có đủ tỉnh táo để nhìn vào dòng code, thay vì chỉ nhìn vào khẩu hiệu?