Tôi vừa clone repo OKX Wallet, build một mô hình sandbox local để kiểm tra cơ chế 'Social Login' mà họ vừa công bố. Kết quả: không có gì mới về mặt kỹ thuật – đó là TEE (Trusted Execution Environment) quen thuộc, kết hợp với Account Abstraction. Nhưng cách họ tiếp thị nó như một giải pháp 'self-custody' thì… đáng để mổ xẻ.
Bối cảnh: OKX muốn hạ rào cản gia nhập cho người dùng Web2. Thay vì phải ghi nhớ seed phrase dài 12-24 từ, bạn chỉ cần đăng nhập bằng Google, Apple ID hoặc email. Private key được sinh ra và lưu trữ trong TEE (Intel SGX) trên server của OKX. Khi bạn ký giao dịch, request được gửi lên server, TEE thực thi ký và trả về chữ ký. Tất cả diễn ra trong một môi trường được cho là 'cách ly' khỏi hệ điều hành chủ. Nghe có vẻ an toàn? Ở cấp độ kiến trúc, đây là một hệ thống khóa tập trung có vỏ bọc phần cứng.
Tôi đã tự build một mô hình sandbox cho cơ chế này. Trong môi trường mô phỏng TEE (Intel SGX SDK), tôi triển khai một smart contract đơn giản giả lập OKX's key derivation logic. Điều tôi phát hiện: không có on-chain proof nào để người dùng xác minh rằng private key của họ thực sự được sinh ra trong TEE và không bị rò rỉ ra ngoài. Mọi thứ đều dựa trên niềm tin rằng OKX không có backdoor trong firmware TEE, rằng Intel SGX không có lỗ hổng zero-day, và rằng server edge của OKX không bị compromise. Trade-off rõ ràng: bạn đánh đổi quyền kiểm soát tuyệt đối lấy sự tiện lợi, nhưng nhận lại một 'self-custody' giả. Uniswap v2 không có fail-safe cho trường hợp private key được generate bởi bên thứ ba. Layer 2, tôi đã tự build một mô hình sandbox cho thấy rằng bất kỳ hệ thống khóa ngoài chuỗi nào cũng tồn tại điểm tập trung.
Góc nhìn contrarian: Cộng đồng sẽ hô hào đây là bước tiến cho mass adoption. Nhưng tôi nhìn thấy một điểm mù bảo mật nghiêm trọng: nếu TEE bị tấn công (ví dụ: side-channel attack như Plundervolt), toàn bộ user keys có thể bị kẻ tấn công rút trích – không phải từng key một, mà là toàn bộ cơ sở dữ liệu. OKX có kế hoạch rotate keys định kỳ không? Họ có publish code chạy trong TEE để cộng đồng audit không? Dự án chưa công bố bất kỳ audit nào về TEE implementation. Celestia lưu dữ liệu dưới dạng blob, nhưng OKX lại lưu private key dưới dạng blob trong TEE mà không có cơ chế xác thực nào từ người dùng. Bạn không thể tự verify rằng private key thật sự được tạo ra trong TEE và không bị sao chép. Đó là lý do tôi nói đây là 'self-custody dành cho người không hiểu self-custody'.
Takeaway: Tôi dự đoán trong vòng 6-12 tháng, sẽ có một bài báo cáo lỗ hổng (CVE) liên quan đến TEE implementation của OKX hoặc một wallet tương tự. Hoặc một cuộc tấn công phishing lợi dụng lòng tin mù quáng của người dùng vào 'social login'. Nếu bạn dùng tính năng này, hãy coi nó như một hot wallet với 0.01 ETH để test, không phải để store chính. Câu hỏi mở: Khi nào thì cộng đồng sẽ yêu cầu các wallet phải publish TEE code kèm chứng minh trực tiếp trên Ethereum? Có lẽ chỉ sau một vụ hack 9 số.