Zilliqa đã tạm dừng giao dịch native ZIL vào ngày 22 tháng 7; trước đó, cuộc điều tra phát hiện ứng dụng ví phần cứng Ledger tồn tại lỗi Schnorr signature nonce kể từ năm 2019: lỗ hổng này khóa 64 bit đầu tiên của mỗi nonce chữ ký về 0, làm suy giảm nghiêm trọng tính ngẫu nhiên, khiến kẻ tấn công có thể tái tạo khóa riêng từ khoảng 5 chữ ký trở lên bị ảnh hưởng và chỉ cần dữ liệu công khai trên chuỗi.
Giải thích kỹ thuật lỗ hổng Schnorr nonce của Ledger năm 2019
Theo mô tả chính thức của Zilliqa, nguyên nhân cốt lõi của lỗ hổng này như sau: chữ ký Schnorr yêu cầu mỗi lần sử dụng một nonce ngẫu nhiên duy nhất và không thể đoán trước (nonce); nếu tính ngẫu nhiên của nonce bị suy yếu, thuật toán toán học bảo vệ khóa riêng sẽ không còn hoạt động hiệu quả.
Kết quả điều tra của Zilliqa cho thấy, khi tạo chữ ký Schnorr, ứng dụng Ledger đã trích xuất sai 32 byte từ giá trị 40 byte, khiến 64 bit đầu tiên của mỗi nonce đều bằng 0. Zilliqa mô tả kết quả này là “nonce tạm thời có thể đoán trước, bị suy yếu”.
Chỉ cần có khoảng 5 chữ ký trở lên thuộc nhóm nonce bị ảnh hưởng như vậy, kẻ tấn công có thể tái tạo khóa riêng của người ký từ dữ liệu chữ ký công khai trên chuỗi; lỗ hổng này đã tồn tại từ khi ứng dụng Ledger được phát hành vào năm 2019, và mọi chữ ký sau năm 2019 đáp ứng điều kiện đều có thể được dùng để tái tạo lại khóa.
Dòng thời gian sự kiện từ 19 đến 22 tháng 7: KuCoin hỗ trợ, ví lạnh bị đánh cắp
Theo công bố chính thức của Zilliqa, dòng thời gian sự kiện như sau: ngày 19 tháng 7, Zilliqa phát hiện hoạt động trên chuỗi phù hợp với việc khai thác lỗ hổng; ngày 20 tháng 7, ví lạnh của một đối tác sàn giao dịch của Zilliqa bị đánh cắp token ZIL, khiến ZIL rơi xuống mức thấp kỷ lục 0,002441 đô la, Coinone và KuCoin tạm dừng nạp và rút ZIL; ngày 21 tháng 7, Zilliqa tìm ra nguyên nhân gốc rễ; ngày 22 tháng 7, công bố công khai và tạm dừng giao dịch native ZIL.
KuCoin đóng vai trò then chốt trong sự kiện này: hỗ trợ xác định lỗ hổng nonce và, từ các chữ ký công khai đã thành công tái tạo khóa riêng bị ảnh hưởng như một minh chứng thực tế, chứng minh lỗ hổng đã bị khai thác; nhờ vậy, Zilliqa có thể triển khai các biện pháp bảo vệ và xây dựng kế hoạch sửa chữa rộng hơn.
Hướng dẫn người dùng và tiến độ khắc phục: bản vá ứng dụng Ledger đang chờ phát hành
Theo khuyến nghị chính thức của Zilliqa, các hướng dẫn hiện tại dành cho người dùng bị ảnh hưởng như sau:
· Chờ chỉ dẫn chính thức: tất cả người dùng sử dụng Ledger phần cứng để ký native ZIL phải chờ
· Không chuyển bất kỳ khoản tiền nào
· Không cố tự sửa chữa
· Người dùng EVM giao dịch và SDK không bị ảnh hưởng: chỉ những người dùng sử dụng công cụ tương thích EVM và Zilliqa SDK không cần thực hiện bất kỳ hành động nào
· Bản sửa của Ledger: Ledger đang phát triển phiên bản khắc phục cho ứng dụng Ledger; thời gian phát hành cụ thể sẽ được thông báo sau
Tính đến thời điểm ngày 22 tháng 7 theo báo cáo, ZIL theo dữ liệu CoinGecko ở mức 0,00244 đô la, giảm 3,5% trong 24 giờ; so với mức đỉnh lịch sử khoảng 0,2563 đô la hồi tháng 5 năm 2021 thì đã sụt giảm mạnh.
Câu hỏi thường gặp
Vì sao Zilliqa tạm dừng giao dịch native ZIL vào ngày 22 tháng 7?
Theo thông báo chính thức ngày 22 tháng 7 của Zilliqa, nguyên nhân là phát hiện lỗi Schnorr signature nonce tồn tại trong ứng dụng Ledger kể từ năm 2019: 64 bit đầu tiên của mỗi nonce bị khóa về 0, cho phép kẻ tấn công tái tạo khóa riêng từ khoảng 5 chữ ký công khai bị ảnh hưởng trở lên trên chuỗi.
Những loại người dùng ZIL nào bị ảnh hưởng?
Theo giải thích của Zilliqa, chỉ người dùng ký native (không phải EVM) ZIL trên thiết bị Ledger là đối mặt rủi ro; người dùng sử dụng công cụ tương thích EVM và Zilliqa SDK không bị ảnh hưởng.
Khi nào phiên bản sửa của Ledger được phát hành?
Theo tuyên bố chính thức của Zilliqa, Ledger đang phát triển phiên bản khắc phục cho ứng dụng Ledger và thời gian phát hành cụ thể sẽ được thông báo sau; người dùng nên theo dõi các kênh chính thức của Zilliqa và Ledger để nhận thông báo mới nhất.