Loading market data...

Zcash vá lỗi nghiêm trọng cho phép tạo ZEC giả không giới hạn

Zcash vá lỗi nghiêm trọng cho phép tạo ZEC giả không giới hạn

Các nhà phát triển Zcash đã vội vàng triển khai các bản vá khẩn cấp vào tuần trước sau khi phát hiện một lỗ hổng nghiêm trọng trong pool bảo vệ Orchard, có thể cho phép kẻ tấn công tạo ra ZEC giả không giới hạn. Lỗi được nhà nghiên cứu bảo mật Taylor Hornby phát hiện vào ngày 29 tháng 5 bằng các phương pháp hình thức có sự hỗ trợ của AI, kích hoạt một cuộc diễn tập khẩn cấp kết thúc bằng một hard fork chỉ bốn ngày sau đó. Nhưng do kiến trúc quyền riêng tư của Zcash khiến việc kiểm toán nguồn cung là bất khả thi, nhóm phát triển không thể chứng minh lỗ hổng đã từng bị khai thác — hoặc chưa từng.

Lỗi và cách phát hiện

Lỗi tồn tại trong một phần tử bị ràng buộc yếu bên trong bộ phận nhân đường cong elliptic trong crate halo2_gadgets, một phần của hệ thống bằng chứng không tiết lộ hỗ trợ Orchard. Nó đã xuất hiện từ khi Orchard kích hoạt trên mainnet vào tháng 5 năm 2022 — khoảng bốn năm. Điều đó có nghĩa là bất kỳ ai biết về nó đều có thể, về mặt lý thuyết, tạo ra ZEC từ hư không mà không để lại dấu vết trên chuỗi.

Hornby tìm thấy vấn đề bằng cách sử dụng các công cụ xác minh hình thức được huấn luyện trên mã mã hóa. Lỗ hổng ảnh hưởng đến tất cả các phiên bản halo2_gadgets trước v0.5.0, orchard trước v0.14.0 và zcashd các phiên bản v5.0.0 đến v6.12.3.

Các bản vá khẩn cấp được triển khai

Trong vòng vài giờ sau khi tiết lộ, nhóm đã đẩy một soft fork qua Zebra 4.5.3 tạm thời vô hiệu hóa hoàn toàn các giao dịch Orchard. Một bản sửa lỗi vĩnh viễn đến với hard fork NU6.2 — Zebra 5.0 — kích hoạt vào ngày 2 tháng 6 tại khối 3,364,600 và sửa chính mạch (circuit). Người dùng trên các nút bị ảnh hưởng cần nâng cấp ngay lập tức để ở lại đúng chuỗi.

Shielded Labs, đơn vị đóng góp vào phát triển Zcash, cho biết trong một tuyên bố rằng họ tin rằng việc khai thác trước đó là khó xảy ra nhưng không thể chứng minh chắc chắn. Sự không chắc chắn đó được xây dựng ngay trong thiết kế của hệ thống: các pool bảo vệ (shielded pools) ẩn số lượng và số dư giao dịch, khiến việc kiểm toán tổng nguồn cung trở nên bất khả thi về mặt mật mã.

Câu hỏi không thể trả lời

David Schwartz, CTO của Ripple, đã bình luận về rủi ro thực tế. Những người nắm giữ thụ động không bao giờ di chuyển coin của họ sẽ an toàn, ông nói — giả sử lỗi chưa từng bị kích hoạt. Nhưng điều kiện đó không thể được xác minh. Cách duy nhất để chắc chắn là phải xâm phạm lớp bảo vệ mà Zcash được xây dựng để bảo vệ.

Đây là một khoảnh khắc hiếm hoi khi tính năng cốt lõi của một đồng coin riêng tư trở thành trách nhiệm lớn nhất của nó. Nếu một kẻ tấn công tạo ra ZEC giả và đưa vào lưu thông, không có cách nào để phát hiện. Nguồn cung có thể bị thổi phồng và không ai biết.

Phản ứng thị trường

ZEC không chờ đợi câu trả lời. Giá đã giảm hơn 30% trong một phiên giao dịch duy nhất sau khi tiết lộ ngày 29 tháng 5, chạm mức thấp nhất trong hơn một tháng. Sự bán tháo không chỉ phản ánh lỗi mà còn sự không chắc chắn xung quanh tác động tiềm năng của nó. Một đồng coin riêng tư không thể xác minh nguồn cung của chính mình là một sản phẩm khó bán, ít nhất là trong ngắn hạn.

Các bản vá đã có hiệu lực, và các giao dịch Orchard đã hoạt động trở lại. Nhưng câu hỏi còn lại — liệu lỗi đã từng bị khai thác chưa? — là một câu hỏi mà kiến trúc của Zcash có thể không bao giờ cho phép ai trả lời.