XRP Ledger vá lỗi tồn tại cả thập kỷ, có thể phá vỡ giới hạn nguồn cung 100 tỷ token

Ngày 9/10, đội ngũ phát triển XRP Ledger công bố một lỗi tràn số nguyên trong engine thanh toán của mạng lưới, có thể cho phép kẻ tấn công tạo XRP mới từ hư không và phá vỡ giới hạn nguồn cung 100 tỷ token được đặt ra từ khi sổ cái ra mắt năm 2012. Lỗi đã được vá trong bản phát hành xrpld 3.4.1 ngày 25/9. Theo báo cáo công bố lỗ hổng chính thức, RippleX cho biết không tìm thấy bằng chứng lỗi này từng bị khai thác trên mạng công khai. Lỗ hổng được nhà nghiên cứu Cayden Liao và Veria AI báo cáo qua chương trình bug bounty của XRPL ngày 22/9. Kỹ sư RippleX đã tái hiện cuộc tấn công trên một máy chủ độc lập, xác nhận lượng XRP mới tạo có thể được chi tiêu trong một giao dịch tiếp theo, và nâng mức độ nghiêm trọng của phát hiện từ mức “major” lên “critical”. Cách lỗ hổng có thể đúc ra XRP Lỗ hổng nằm ở khâu xử lý tràn số của engine thanh toán. Khi một giao dịch duy nhất khớp nhiều lệnh chào trên sàn giao dịch tích hợp của sổ cái, phần mềm tính tổng số tiền bên mua phải trả bằng phép cộng số nguyên 64 bit mà không hề kiểm tra tràn. Vài trăm lệnh chào, mỗi lệnh yêu cầu một lượng XRP rất lớn, có thể đẩy tổng này vượt ngưỡng mà một số 64 bit chứa được, khiến nó quay vòng về một giá trị nhỏ xíu. Chủ của mỗi lệnh chào vẫn được thanh toán đầy đủ, trong khi bên mua chỉ bị trừ đúng phần tổng đã quay vòng, để lại lượng XRP mới đúc trong tài khoản kẻ tấn công. Hai lớp kiểm tra an toàn lẽ ra phải chặn được điều này nhưng đều không làm được gì. Bất biến “không có XRP nào được tạo thêm” của sổ cái cũng cộng các thay đổi số dư ròng theo đúng cách đó, nên quay vòng y hệt và không thấy có gì bất thường. Kiểm tra số dư theo từng tài khoản chỉ thất bại khi một tài khoản nắm giữ nhiều hơn toàn bộ nguồn cung — điều mà cuộc tấn công né được bằng cách rải lượng XRP đúc ra khắp hàng trăm tài khoản. Vì sao bản vá bỏ qua quy trình amendment Các thay đổi về cách XRP Ledger xử lý giao dịch thông thường được triển khai qua quy trình amendment: một quy tắc mới nằm im cho tới khi hơn 80% validator tin cậy ủng hộ trong hai tuần. RippleX cố ý bỏ qua quy trình này lần đầu tiên kể từ khi nó ra đời hơn mười năm trước, bởi lỗ hổng khai thác rẻ, không cần quyền truy cập đặc biệt và có thể đúc ra XRP chi tiêu được. Vì xrpld là mã nguồn mở, một bản vá công bố theo đường thông thường sẽ nằm phơi bày nhưng vẫn khai thác được trên mainnet suốt nhiều tuần. Lối tắt này mang theo rủi ro riêng là mạng lưới đình trệ vì chạy lẫn nhiều phiên bản, song các giao dịch thông thường không bao giờ chạm tới đoạn mã dễ tổn thương. Hơn 80% validator trong danh sách UNL mặc định đã chạy bản 3.4.1 ngay trong ngày phát hành, trước khi mã nguồn được công bố. Ý nghĩa với nguồn cung cố định của XRP Sự việc cho thấy giá trị của XRP phụ thuộc vào việc nguồn cung được chứng minh là hữu hạn đến mức nào. Toàn bộ 100 tỷ token đã được tạo ngay khi ra mắt, và các tổ chức xây dựng trên sổ cái coi giới hạn đó là một bảo đảm. Lỗ hổng tồn tại từ khi engine thanh toán hiện hành được viết năm 2015, nhưng RippleX không tìm thấy bằng chứng nó từng bị khai thác. Cùng bản phát hành cũng vá một lỗi riêng trong khâu kiểm tra bao bọc giao dịch Batch, vốn được kích hoạt trên mainnet ngày 9/10. RippleX cho biết đang bổ sung bước tái xác minh vào quy trình phát hành, nhằm kiểm tra lại mọi phát hiện bảo mật được đánh dấu đã sửa trên bản ứng viên phát hành. Thông tin này xuất hiện đúng lúc XRP Ledger tiếp tục bổ sung các tính năng cho tổ chức, gồm ủy quyền quyền hạn cho ngân hàng và stablecoin, trong khi các yếu tố nguồn cung và escrow của XRP vẫn nằm trong tầm ngắm của giới nắm giữ.