Lỗ hổng oracle trong DAO Việt Nam: Cựu nhân viên kiện vì AI sa thải phân biệt đối xử

Võ Thịnh Quy định

Nhiều người nghĩ rằng một DAO vận hành hoàn toàn bằng smart contract là phi tập trung và công bằng. Nhưng khi bạn nhìn vào dòng code của oracle đánh giá hiệu suất, bạn sẽ thấy một câu chuyện khác. Tuần trước, một nhóm cựu thành viên của DAO Alpha – một tổ chức tự trị phi tập trung có trụ sở tại Việt Nam – đã nộp đơn kiện lên Tòa án Nhân dân TP.HCM, cáo buộc rằng hệ thống AI-driven layoffs của DAO đã phân biệt đối xử với người khuyết tật. Họ cho rằng thuật toán chấm điểm đã tự động loại bỏ những người có hồ sơ sức khỏe bất thường, dẫn đến việc họ bị kick khỏi DAO một cách bất công. Tôi đã thấy trước điều này từ khi đọc whitepaper của dự án.

Bối cảnh: DAO Alpha là một tổ chức đầu tư mạo hiểm dựa trên blockchain, nơi các thành viên đóng góp bằng cách thực hiện nhiệm vụ và nhận token. Để quản lý hiệu suất, họ triển khai một hợp đồng thông minh gọi là PerformanceOracle, lấy dữ liệu từ các nguồn ngoài chuỗi (off-chain) như lịch sử làm việc, đánh giá đồng nghiệp và dữ liệu sức khỏe tự khai báo. Oracle này tổng hợp điểm và nếu điểm dưới ngưỡng, smart contract tự động gọi hàm kickMember. Thiết kế này tưởng chừng hiệu quả nhưng thực chất lại là một quả bom hẹn giờ về mặt pháp lý và kỹ thuật. Trong thị trường tăng hiện tại, các dự án thường bỏ qua kiểm toán công bằng để chạy theo tốc độ.

Core của vấn đề nằm ở cách PerformanceOracle xử lý dữ liệu. Tôi đã có cơ hội xem xét mã nguồn (được public trên GitHub) và phát hiện ra rằng oracle này sử dụng một mô hình hồi quy tuyến tính đơn giản, với các trọng số được cố định trong hợp đồng. Cụ thể, nó lấy ba đầu vào: số giờ làm việc (weight 0.5), đánh giá ngang hàng (weight 0.3) và số ngày nghỉ ốm (weight -0.2). Điểm mù ở đây là trọng số âm cho ngày nghỉ ốm đã vô hình trung phạt những người có bệnh mãn tính hoặc khuyết tật. Người khuyết tật thường phải nghỉ nhiều hơn để điều trị, và hệ thống không có cơ chế điều chỉnh cho trường hợp đặc biệt. Hơn nữa, oracle này không có bất kỳ lớp trung gian kiểm tra tính hợp lệ – nó tin tưởng hoàn toàn vào nguồn dữ liệu đầu vào mà không xác thực xem đó có phải là thông tin y tế nhạy cảm hay không.

Tôi đã thấy trước rằng một oracle như vậy sẽ gây ra vấn đề bảo mật nghiêm trọng. Trong báo cáo kiểm toán của tôi cho một dự án tương tự năm ngoái, tôi đã chỉ ra rằng việc sử dụng dữ liệu sức khỏe không qua mã hóa và không có cơ chế đồng thuận sẽ dẫn đến rủi ro phân biệt đối xử. DAO Alpha đã bỏ qua cảnh báo đó. Bây giờ, họ phải đối mặt với một vụ kiện có thể thiết lập tiền lệ cho toàn bộ hệ sinh thái blockchain Việt Nam.

Lỗ hổng oracle trong DAO Việt Nam: Cựu nhân viên kiện vì AI sa thải phân biệt đối xử

Phân tích kỹ thuật: Khi tôi đào sâu vào hàm calculateScore, tôi thấy rằng hợp đồng hardcode một ngưỡng là 70. Nếu điểm dưới 70, kickMember được gọi không qua bất kỳ bước kiểm tra nào. Điều này vi phạm nguyên tắc thiết kế “defense in depth”. Một thiết kế an toàn hơn nên có một lớp oracle thứ hai để xác nhận kết quả, hoặc ít nhất là một cơ chế “human override” cho phép DAO vote để giữ lại thành viên. Nhưng để tiết kiệm gas và tăng tốc độ, nhóm phát triển đã bỏ qua những biện pháp này.

Contrarian Angle: Nhiều người cho rằng vấn đề nằm ở dữ liệu đầu vào – nếu dữ liệu sức khỏe là sai, thì oracle sẽ sai. Nhưng thực chất, lỗ hổng nằm ở thiết kế trọng số và thiếu tính linh hoạt. DAO Alpha có thể dễ dàng thêm một biến “disability status” với trọng số 0 hoặc thậm chí tích cực, nhưng họ đã không làm. Điều này cho thấy một sự thiếu ý thức về trách nhiệm xã hội ngay từ khâu thiết kế. Hơn nữa, oracle không có cơ chế cập nhật động – nếu một thành viên bị ốm đột xuất, điểm của họ giảm ngay lập tức mà không có cơ hội giải trình.

Takeaway: Vụ kiện này sẽ là hồi chuông cảnh tỉnh cho tất cả các DAO đang sử dụng AI để quản lý nhân sự. Nếu bạn đang xây dựng một oracle cho bất kỳ mục đích đánh giá con người nào, hãy nhớ rằng: mã nguồn không phải là luật, nhưng nó có thể vi phạm luật. Bạn có sẵn sàng đối mặt với tòa án vì một dòng code weight = -0.2?