Bạn có biết rằng mỗi giao dịch USDC bạn thực hiện đều có thể bị đóng băng trong vòng 24 giờ? Tôi không nói đùa. Cuối tuần trước, tôi dành 3 giờ để mổ xẻ hợp đồng thông minh của Circle và phát hiện một điều gây sốc: hàm blacklist trong token contract không chỉ tồn tại mà còn được tối ưu để thực thi cực nhanh. Điều này chẳng khác gì Circle tự tay đặt một cái công tắc tổng vào hệ thống thanh toán toàn cầu.
Code không sai, nhưng logic có thể chết. Đó là câu tôi thường nhắc nhở bản thân mỗi khi audit. Và lần này, logic chết ở chỗ: bạn xây dựng một hệ thống tài chính phi tập trung, nhưng lại đặt quyền kiểm soát tuyệt đối vào tay một thực thể duy nhất. Hãy để tôi giải thích tại sao điều này quan trọng hơn bạn nghĩ.
Context: Kiến trúc của USDC Để hiểu vấn đề, bạn cần nhìn vào cấp độ giao thức. USDC là một ERC-20 token tiêu chuẩn, nhưng nó khác với các token thông thường ở chỗ có thêm các hàm đặc biệt: blacklist(address) và pause(). Khi Circle nhận được yêu cầu từ cơ quan pháp luật (thường là OFAC - Văn phòng Kiểm soát Tài sản Nước ngoài của Mỹ), họ chỉ cần gọi hàm này là địa chỉ của bạn biến mất vĩnh viễn khỏi hệ thống. Quy trình này được tự động hóa hoàn toàn: không cần vote, không cần đồng thuận, chỉ cần một chữ ký từ Circle.
Tôi từng nghĩ điều này chỉ xảy ra trong lý thuyết. Nhưng năm 2022, khi OFAC trừng phạt Tornado Cash, Circle đã đóng băng hơn 75,000 USDC trong vòng 12 giờ. Thực tế này đã phá vỡ giả định cơ bản về tính bất biến của blockchain. Lỗ hổng không nằm ở code, mà ở giả định: giả định rằng stablecoin có thể vừa được chấp nhận bởi hệ thống tài chính truyền thống vừa duy trì tính phi tập trung. Hai điều này mâu thuẫn với nhau.
Core: Phân tích kỹ thuật về cơ chế kiểm soát Tôi đã đọc từng dòng code của hợp đồng USDC (phiên bản v2.1, địa chỉ 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48). Hãy xem xét hàm blacklist: