Compound Finance đã triển khai Đề xuất số 62 vào thứ Tư để triển khai “Phân phối phần thưởng COMP động” và vá một số lỗi nhỏ.
Tuy nhiên, ngay sau khi thực hiện nâng cấp, Compound Labs đã báo cáo “hoạt động bất thường”, dẫn đến việc một số người dùng có thể yêu cầu nhiều mã thông báo $ COMP hơn mức cho phép.
🚨 Hoạt động bất thường đã được báo cáo liên quan đến việc phân phối COMP sau khi thực hiện Đề xuất 062.
Không có quỹ được cung cấp / đi vay nào có rủi ro – Phòng thí nghiệm tổng hợp và các thành viên của cộng đồng đang điều tra sự khác biệt trong phân phối COMP.
– Phòng thí nghiệm tổng hợp (@compoundfinance) Ngày 29 tháng 9 năm 2021
Sau khi xem xét hợp đồng, kiểm toán viên hợp đồng thông minh Kurt Barry cho biết lỗi là do lỗi nhỏ nhất. Ông cho biết thêm, sai sót nhỏ này khiến Compound Labs thiệt hại hàng chục triệu đồng.
Nhưng lỗi này nhỏ đến mức nào?
Ngôn ngữ Solidity của Ethereum là không thể tha thứ
Solidity là một ngôn ngữ lập trình hướng đối tượng, có nghĩa là nó tổ chức thiết kế xung quanh các đối tượng và dữ liệu. Trái ngược với chức năng và logic.
Nó có những điểm tương đồng với C và C ++ nên nó tương đối đơn giản để học. Và với số lượng lập trình viên đã quen thuộc với C và C ++, việc chuyển đổi sang Solidity không mất nhiều thời gian.
Tuy nhiên, cách tiếp cận mệnh lệnh này có rủi ro ở chỗ các lập trình viên phải cho mã chính xác những gì cần làm ở mọi giai đoạn. Và một sai lầm, ngay cả một thiếu sót nhỏ cũng khiến hợp đồng thông minh mở ra các lỗ hổng.
“Với cách tiếp cận mệnh lệnh, một nhà phát triển viết mã chỉ định các bước mà máy tính phải thực hiện để hoàn thành mục tiêu. Điều này đôi khi được gọi là thuật toán lập trình. Ngược lại, cách tiếp cận theo chức năng bao gồm việc soạn thảo vấn đề như một tập hợp các chức năng sẽ được thực thi ”.
Trong trường hợp này, Cuộc điều tra của Barry cho thấy lỗi Đề xuất số 62 của Compound là do lập trình viên thiếu dấu “=” ở hai vị trí.
“Hợp đồng thông minh không thể tha thứ cho những lỗi nhỏ nhất… Lỗi COMP là một trường hợp bi thảm của“> ”thay vì“> = ”(ở hai vị trí mã). Hai ký tự, giá trị hàng chục triệu đồng mất trắng ”.
Các nhà phê bình sẽ cho rằng quy trình kiểm tra và kiểm tra của Compound lẽ ra phải kỹ lưỡng hơn. Tuy nhiên, đây không phải là một ví dụ khác về các sai sót của Solidity, chúng được phóng đại khi hàng triệu đô la gặp rủi ro?
Đề xuất Tài chính Kết hợp # 62 là gì?
Trước đây, tỷ lệ phần thưởng của Tài chính Hợp chất là tỷ lệ như nhau cho cả nhà cung cấp và người đi vay, và điều này làm nảy sinh các vấn đề như lãi suất âm khi vay các tài sản cụ thể.
Đề xuất số 62 có ý định chia nhỏ việc phân phối COMP cho các nhà cung cấp thanh khoản và người đi vay dựa trên các tỷ lệ do quản trị đặt ra thay vì theo mô hình cổ phiếu 50/50 như nhau.
“Đề xuất này thay đổi logic Comptroller để có hai tỷ lệ phân phối COMP khác nhau cho mỗi và mọi thị trường – bên vay (compBorrowSpeeds) tỷ giá và bên cung (compSupplySpeeds) tỷ lệ.”
Tuy nhiên, lỗi có trong bản nâng cấp đã cho phép một số người dùng yêu cầu nhiều mã thông báo $ COMP hơn mức cho phép.
Ở giai đoạn này, chi tiết chính xác về sự mất mát vẫn chưa được biết. Tuy nhiên, Giám đốc điều hành Compound Robert Leshner nêu tình huống xấu nhất là yêu cầu thừa 280.000 mã thông báo COMP, tương đương 82.880.000 đô la theo giá ngày hôm nay.
.