Tôi không tin vào sự ngây thơ của thị trường. Tôi tin vào code. Nhưng sau lệnh trừng phạt Tornado Cash, tôi đặt câu hỏi: code có còn là luật không, hay nó đã trở thành bằng chứng buộc tội?
Mỗi lần kiểm toán, tôi đều đặt câu hỏi:
Ai sẽ chịu trách nhiệm khi một giao thức bị lợi dụng bởi kẻ xấu? Lập trình viên đã deploy hợp đồng, hay người dùng cuối? Câu trả lời từ OFAC (Văn phòng Kiểm soát Tài sản Nước ngoài Hoa Kỳ) năm 2022 là: lập trình viên. Họ đưa Tornado Cash – một bộ hợp đồng thông minh immutable, không thể kiểm soát sau deploy – vào danh sách trừng phạt. Và đây là lần đầu tiên code bị xử lý như một thực thể chịu lệnh cấm.
Context: Cơ chế hoạt động của Tornado Cash
Tornado Cash là một giao thức trộn coin phi tập trung trên Ethereum. Nó sử dụng các hợp đồng thông minh không thể nâng cấp (immutable) để che giấu lịch sử giao dịch. Người dùng gửi ETH vào pool, nhận một note (bằng chứng chi tiêu), và sau đó rút ETH từ một địa chỉ mới. Cơ chế này dựa trên Zero-Knowledge Proof (zk-SNARKs) để đảm bảo tính riêng tư: không ai, kể cả người tạo hợp đồng, có thể biết note nào tương ứng với rút tiền nào.
Quan trọng: Sau khi triển khai, team Tornado Cash không thể thêm hay sửa logic. Họ chỉ còn quyền gọi một số hàm quản trị giới hạn (như thay đổi phí). Hợp đồng tồn tại độc lập với chủ sở hữu. Đây là thiết kế có chủ đích – để chống kiểm duyệt và tăng cường quyền riêng tư.
Core: Phân tích kỹ thuật – Vì sao lệnh trừng phạt vô lý về mặt kỹ thuật?
Tôi mở Etherscan, vào địa chỉ của Tornado Cash proxy. Mỗi lần kiểm toán, tôi đều đặt câu hỏi: ai có thể thay đổi code? Câu trả lời: không ai. Hợp đồng proxy vẫn thuộc sở hữu của team, nhưng logic implementation là immutable. Nếu OFAC muốn chặn dòng tiền bất hợp pháp, họ phải phong tỏa địa chỉ rút tiền, không phải hợp đồng. Nhưng hợp đồng không thể bị khoá bởi bất kỳ ai – nó luôn hoạt động theo code.
Tôi không tin vào lý lẽ “lập trình viên phải chịu trách nhiệm khi sản phẩm bị lạm dụng”. Tôi tin vào một nguyên tắc cơ bản của kỹ thuật: bạn không thể kiện nhà sản xuất dao vì có người dùng dao để giết người. Nhưng với blockchain, dao có thể tự động phân phối, và người dùng không cần tin tưởng ai. Tornado Cash là một con dao không có tay cầm. Ai cầm vào, tự chịu trách nhiệm.
Dữ liệu từ Chainalysis cho thấy: dưới 5% tổng giá trị qua Tornado Cash đến từ các địa chỉ bị trừng phạt (Lazarus Group, Axie Infinity hack). Hơn 95% là người dùng bình thường muốn bảo vệ quyền riêng tư. OFAC đã chặn toàn bộ cộng đồng vì một thiểu số tội phạm. Đây là việc bắn đại bác vào con muỗi – vừa kém hiệu quả, vừa tạo tiền lệ nguy hiểm.
Contrarian: Góc nhìn phản trực giác – Ai thực sự được lợi từ lệnh trừng phạt?
Nhiều người cho rằng lệnh này chỉ nhắm vào tội phạm mạng. Sai. Điểm mù là: lệnh trừng phạt tạo ra động lực cho các giải pháp riêng tư phi tập trung hơn, mạnh mẽ hơn. Khi Tornado Cash bị chặn ở giao diện web, người dùng chuyển sang giao diện xây dựng bởi cộng đồng (fork code, host trên IPFS). Khi Infura và Alchemy chặn tương tác với hợp đồng, người dùng chạy node riêng. Kết quả: quyền riêng tư trở nên khó bị kiểm duyệt hơn. Lệnh trừng phạt đã vô tình “huấn luyện” cộng đồng cách vượt kiểm duyệt.
Hơn nữa, lệnh trừng phạt tạo ra rủi ro pháp lý cho mọi lập trình viên mã nguồn mở. Bất kỳ ai viết code có thể bị xem là hỗ trợ tội phạm nếu code đó bị lạm dụng. Điều này tương đương với việc cấm viết “public key encryption” vì tội phạm dùng nó để che giấu thông tin liên lạc. Tại sao OFAC không trừng phạt Bitcoin? Vì Bitcoin cũng được dùng cho ransomware? Sự khác biệt duy nhất: Tornado Cash có một đội ngũ phát triển có thể bị tóm. Đây là trừng phạt dựa trên khả năng bắt người, không dựa trên nguyên tắc.
Takeaway: Dự báo lỗ hổng trong tương lai
Từ góc nhìn của một kỹ sư protocol, tôi thấy lệnh trừng phạt này sẽ dẫn đến một hệ quả không ai mong muốn: các giao thức phi tập trung trong tương lai sẽ loại bỏ hoàn toàn mọi cơ chế quản trị, thậm chí cả upgrade keys. Chúng sẽ đi theo hướng “immutable from day one” như Tornado Cash. Điều này có nghĩa là chúng ta mất khả năng sửa lỗi bảo mật, nhưng đổi lại, không ai có thể bị truy tố vì hành vi của hợp đồng.
Đặt câu hỏi cuối: Nếu bạn là lập trình viên xây dựng một giao thức cho phép người dùng tự do trao đổi, mà không có cơ chế chặn giao dịch bất hợp pháp, bạn có dám deploy lên mainnet không? Nếu câu trả lời là “không”, thì tương lai của DeFi như chúng ta biết đã chết. Nếu câu trả lời là “có”, bạn chấp nhận rủi ro vào tù. Tôi, với 12 năm trong ngành, sẽ chọn code – và chuẩn bị sẵn sàng cho cuộc chiến pháp lý. Bạn thì sao?