Vào ngày 29 tháng 5, kết quả bỏ phiếu đã được công bố, với hơn 2/3 số nút xác minh ủng hộ; việc nâng cấp giao thức đã sẵn sàng để triển khai. Từ ngày 30 tháng 5 đến đầu tháng 6, việc nâng cấp giao thức có hiệu lực, mã băm giao dịch được chỉ định đã được thực thi và tài sản của tin tặc đã được "chuyển đi một cách hợp pháp". 2. Nguyên tắc tấn công. Đã có nhiều bài viết về nguyên lý của sự cố trong ngành, và ở đây chúng tôi chỉ đưa ra cái nhìn tổng quan về các nguyên lý cốt lõi: Từ quá trình tấn công: left;">Đầu tiên, kẻ tấn công sử dụng khoản vay flash để vay khoảng 10.024.321,28 haSUI, ngay lập tức làm giảm giá của nhóm giao dịch xuống
99,90%. Lệnh bán lớn này khiến giá của nhóm mục tiêu giảm từ khoảng 1,8956×10^19 xuống 1,8425×10^19, gần như xóa đáy.
Sau đó, kẻ tấn công tạo một vị thế thanh khoản trên Cetus với phạm vi cực kỳ hẹp (Tick giới hạn dưới 300000, giới hạn trên 300200 và độ rộng phạm vi chỉ là 1.00496621%). Phạm vi hẹp như vậy khuếch đại tác động của các lỗi tính toán tiếp theo lên số lượng mã thông báo cần thiết.
Nguyên tắc cốt lõi của cuộc tấn công:
Có một lỗ hổng tràn số nguyên trong hàm get_delta_a được Cetus sử dụng để tính toán số lượng mã thông báo cần thiết. Kẻ tấn công cố tình tuyên bố rằng anh ta sẽ thêm một lượng thanh khoản khổng lồ (khoảng 10^37 đơn vị), nhưng thực tế chỉ đưa 1 mã thông báo vào hợp đồng.
Do lỗi điều kiện phát hiện tràn của checked_shlw, hợp đồng đã trải qua quá trình cắt bớt bậc cao trong quá trình tính toán dịch chuyển trái, khiến hệ thống đánh giá thấp nghiêm trọng lượng haSUI cần thiết, do đó đổi thanh khoản khổng lồ lấy chi phí cực thấp.
Về mặt kỹ thuật, lỗ hổng bảo mật trên là do Cetus sử dụng mặt nạ và điều kiện phán đoán không chính xác trong hợp đồng thông minh Move, khiến bất kỳ giá trị nào nhỏ hơn 0xffffffffffffffff << 192 đều có thể bỏ qua phát hiện; và sau khi dịch chuyển trái 64 bit, dữ liệu bậc cao bị cắt bớt và hệ thống tin rằng đã thu được thanh khoản khổng lồ bằng cách chỉ thu thập một vài mã thông báo.
Sau sự cố, hai hoạt động chính thức đã được thực hiện:"Đóng băng" so với "Phục hồi", có hai giai đoạn:
Giai đoạn đóng băng được hoàn thành bởi Deny List + sự đồng thuận của nút;
Giai đoạn phục hồi yêu cầu nâng cấp giao thức trên chuỗi + bỏ phiếu cộng đồng + thực hiện giao dịch được chỉ định để bỏ qua danh sách đen.
3.Cơ chế đóng băng của Sui
Có một cơ chế Deny List đặc biệt trong chính chuỗi Sui, cơ chế này đã đóng băng tiền của tin tặc. Không chỉ vậy, tiêu chuẩn mã thông báo của Sui còn có chế độ "mã thông báo được quản lý" với chức năng đóng băng tích hợp sẵn.
Việc đóng băng khẩn cấp này đã tận dụng tính năng này: nút xác thực nhanh chóng thêm các địa chỉ liên quan đến số tiền bị đánh cắp vào tệp cấu hình cục bộ. Về mặt lý thuyết, mỗi nhà điều hành nút có thể sửa đổi TransactionDenyConfig để tự cập nhật danh sách đen, nhưng để đảm bảo tính nhất quán của mạng, Sui Foundation, với tư cách là nhà xuất bản cấu hình ban đầu, đã tiến hành phối hợp tập trung.
Đầu tiên, nền tảng chính thức phát hành bản cập nhật cấu hình có chứa địa chỉ của tin tặc và trình xác thực có hiệu lực đồng thời theo cấu hình mặc định, do đó tạm thời "niêm phong" số tiền của tin tặc trên chuỗi. Thực tế có một mức độ tập trung cao đằng sau điều này.
Để giải cứu các nạn nhân khỏi số tiền bị đóng băng, nhóm Sui đã ngay lập tức triển khai Danh sách trắng (Whitelist) bản vá cơ chế.
Điều này dành cho việc chuyển tiền sau đó. Các giao dịch hợp pháp có thể được xây dựng trước và đăng ký trong danh sách trắng, và có thể được thực thi ngay cả khi địa chỉ quỹ vẫn nằm trong danh sách đen.
Tính năng mới này transaction_allow_list_skip_all_checks
cho phép thêm trước các giao dịch cụ thể vào "danh sách miễn trừ", cho phép các giao dịch này bỏ qua mọi kiểm tra bảo mật, bao gồm chữ ký, quyền, danh sách đen, v.v.
Cần lưu ý rằng bản vá danh sách trắng không thể trực tiếp đánh cắp tài sản của tin tặc; nó chỉ cung cấp cho một số giao dịch nhất định khả năng bỏ qua việc đóng băng và việc chuyển giao tài sản thực tế vẫn yêu cầu chữ ký hợp pháp hoặc mô-đun cấp phép hệ thống bổ sung để hoàn tất.
Trên thực tế, các chương trình đóng băng chính thống trong ngành thường xảy ra ở cấp độ hợp đồng mã thông báo và được kiểm soát bởi nhiều chữ ký của bên phát hành.
Lấy USDT do Tether phát hành làm ví dụ. Hợp đồng của nó có chức năng danh sách đen tích hợp sẵn. Công ty phát hành có thể đóng băng địa chỉ bất hợp pháp và khiến việc chuyển USDT trở nên không thể. Giải pháp này yêu cầu nhiều chữ ký để khởi tạo yêu cầu đóng băng trên chuỗi và nó sẽ chỉ được thực hiện sau khi nhiều chữ ký đạt được sự đồng thuận, do đó có sự chậm trễ trong quá trình thực hiện.
Mặc dù cơ chế đóng băng Tether có hiệu quả, nhưng số liệu thống kê cho thấy thường có "thời gian cửa sổ" trong quy trình đa chữ ký, tạo cơ hội cho tội phạm lợi dụng.
Ngược lại, quá trình đóng băng của Sui xảy ra ở cấp độ giao thức cơ bản và được vận hành tập thể bởi các nút xác thực và được thực hiện nhanh hơn nhiều so với các lệnh gọi hợp đồng thông thường.
Theo mô hình này, để thực hiện đủ nhanh,điều đó có nghĩa là việc quản lý các nút xác thực này phải được thống nhất cao.
4.Triển khai "phục hồi theo kiểu chuyển giao" của Sui nguyên tắc
Điều thậm chí còn đáng ngạc nhiên hơn là Sui không chỉ đóng băng tài sản của tin tặc mà còn lên kế hoạch "chuyển và khôi phục" số tiền bị đánh cắp thông qua các bản nâng cấp trên chuỗi.
Vào ngày 27 tháng 5, Cetus đã đề xuất một kế hoạch bỏ phiếu cộng đồng để nâng cấp giao thức và gửi số tiền bị đóng băng đến một ví ký quỹ đa chữ ký. Sui Foundation đã ngay lập tức khởi xướng một cuộc bỏ phiếu quản trị trên chuỗi.
Vào ngày 29 tháng 5, kết quả bỏ phiếu đã được công bố và khoảng 90,9%số người xác thực có trọng số đã ủng hộ kế hoạch. Sui chính thức tuyên bố rằng sau khi đề xuất được thông qua, "tất cả các khoản tiền bị đóng băng trong hai tài khoản hacker sẽ được khôi phục vào ví đa chữ ký mà không cần chữ ký của hacker."
Không cần chữ ký hacker, thật là một tính năng độc đáo, chưa từng có phương pháp sửa chữa nào như vậy trong ngành công nghiệp blockchain.
Từ GitHub PR chính thức của Sui, chúng ta có thể thấy rằng giao thức giới thiệu bí danh địa chỉ (address aliasing)cơ chế. Bản nâng cấp bao gồm: chỉ định trước các quy tắc bí danh trong ProtocolConfig để một số giao dịch được phép có thể coi các chữ ký hợp lệ là được gửi từ các tài khoản hacker.
Cụ thể, danh sách băm giao dịch cứu hộ sẽ được thực thi phải được ràng buộc với địa chỉ mục tiêu (tức là địa chỉ của tin tặc), và bất kỳ người thực hiện nào ký và công bố các bản tóm tắt giao dịch cố định này được coi là đã khởi tạo giao dịch với tư cách là chủ sở hữu địa chỉ tin tặc hợp lệ. Đối với các giao dịch cụ thể này, hệ thống nút xác thực sẽ bỏ qua kiểm tra Danh sách từ chối .
Từ cấp độ mã, Sui đã thêm phán đoán sau vào logic xác minh giao dịch: khi một giao dịch bị danh sách đen chặn, hệ thống sẽ duyệt qua những người ký và kiểm tra xem protocol_config.is_tx_allowed_via_aliasing(sender, signer, tx_digest) có đúng không.
Miễn là có một người ký đáp ứng quy tắc bí danh, tức là giao dịch được đánh dấu là được phép thông qua, lỗi chặn trước đó sẽ bị bỏ qua và quá trình đóng gói và thực hiện bình thường sẽ tiếp tục.
5. Quan điểm
160 triệu nhân dân tệ đã xé tan những niềm tin cơ bản sâu sắc nhất của ngành
Sự cố Cetus. Theo quan điểm cá nhân của tác giả, cơn bão này có thể trôi qua nhanh chóng, nhưng mô hình này sẽ không bị lãng quên, vì nó đã phá vỡ nền tảng của ngành và phá vỡ sự đồng thuận truyền thống rằng blockchain không thể bị can thiệp theo cùng một tập hợp sổ cái.
Trong thiết kế blockchain, hợp đồng là luật và mã là trọng tài.
Nhưng trong sự cố này,lỗi mã, can thiệp của quản trị, quyền lực bị lấn átđã hình thành nên mô hình "hành vi bỏ phiếu quyết định kết quả mã".
Đó là vì cách tiếp cận của Sui trong việctrực tiếp chiếm đoạt các giao dịchrất khác so với cách tiếp cận của blockchain chính thống trong việc giải quyết các vấn đề về tin tặc.
Đây không phải là lần đầu tiên sự đồng thuận bị can thiệp, nhưng đây là lần im lặng nhất.
Trong lịch sử:
Ethereum đã sử dụng một hard fork để khôi phục lại giao dịch chuyển tiền nhằm bù đắp cho khoản lỗ trong sự cố The DAO năm 2016, nhưng quyết định này đã dẫn đến sự chia tách chuỗi Ethereum và Ethereum Classic. Quá trình này gây nhiều tranh cãi, nhưng cuối cùng, các nhóm khác nhau đã hình thành các niềm tin đồng thuận khác nhau.
Cộng đồng Bitcoin cũng đã trải qua những thách thức kỹ thuật tương tự: lỗ hổng tràn giá trị năm 2010 đã được các nhà phát triển khẩn cấp sửa chữa và các quy tắc đồng thuận đã được nâng cấp, xóa hoàn toàn khoảng 18,4 tỷ bitcoin được tạo ra bất hợp pháp.
Đây là tất cả cùng một mô hình hard fork, khôi phục sổ cái về trước khi xảy ra sự cố, sau đó người dùng vẫn có thể tự quyết định tiếp tục sử dụng hệ thống sổ cái nào.
So với hard fork DAO, Sui đã không chọn chia tách chuỗi, mà thay vào đó nhắm mục tiêu vào sự cố này một cách chính xác thông qua nâng cấp giao thức cộng với cấu hình bí danh. Khi làm như vậy, Sui đã duy trì tính liên tục của chuỗi và hầu hết các quy tắc đồng thuận không thay đổi, nhưng đồng thời cũng cho thấy rằng giao thức cơ bản có thể được sử dụng để triển khai "hoạt động giải cứu" có mục tiêu.
text="">Vấn đề là, "fork rollback" trong lịch sử là sự lựa chọn niềm tin của người dùng; "sửa đổi giao thức" của Sui là chuỗi đưa ra quyết định thay cho bạn.
Không phải khóa của bạn, không phải tiền của bạn? Tôi e là không còn nữa.
Về lâu dài, điều này có nghĩa là khái niệm "Không phải khóa của bạn, không phải tiền của bạn"bị phân rã trên chuỗi Sui: ngay cả khi khóa riêng của người dùng còn nguyên vẹn, mạng vẫn có thể ngăn chặn dòng tài sản và chuyển hướng tài sản thông qua các thay đổi trong thỏa thuận tập thể.
Nếu điều này trở thành tiền lệ để blockchain xử lý các sự cố bảo mật quy mô lớn trong tương lai hoặc thậm chí được coi là một thông lệ có thể được tuân theo một lần nữa.
“Khi một chuỗi có thể phá vỡ các quy tắc vì công lý, nó cũng có tiền lệ phá vỡ mọi quy tắc. ”
Một khi đã thành công trong việc "lấy tiền từ thiện", lần tiếp theo có thể là một hoạt động trong "vùng xám đạo đức"
Vậy thì chuyện gì sẽ xảy ra?
Tin tặc đã đánh cắp tiền của người dùng, vậy nhóm bỏ phiếu có thể lấy tiền của anh ta không?
Việc bỏ phiếu dựa trên ai có nhiều tiền hơn (pos) hay nhiều người hơn? Người có nhiều tiền hơn sẽ thắng, và nhà sản xuất cuối cùng được Liu Cixin mô tả sẽ sớm xuất hiện. Nếu người có nhiều người hơn thắng, thì đám đông cũng sẽ tạo nên làn sóng.
Theo hệ thống truyền thống, việc thu nhập bất hợp pháp không được bảo vệ là điều rất bình thường, và việc đóng băng và chuyển tiền là hoạt động thường xuyên của các ngân hàng truyền thống.
Nhưng thực tế là điều này không thể thực hiện được theo góc độ lý thuyết kỹ thuật chính là gốc rễ của sự phát triển của ngành công nghiệp blockchain.
Bây giờ, sự tuân thủ của ngành công nghiệp vẫn tiếp tục lên men. Ngày nay, bạn có thể đóng băng và sửa đổi số dư tài khoản cho tin tặc, và ngày mai bạn có thể thực hiện các sửa đổi tùy ý cho các yếu tố địa lý và các yếu tố xung đột. Nếu chuỗi trở thành một công cụ một phần cho khu vực.
Khi đó, giá trị của ngành công nghiệp sẽ bị nén lại rất nhiều và tốt nhất là nó sẽ là một tập hợp các hệ thống tài chính ít hữu ích hơn.
Đây cũng là lý do tác giả quyết tâm ở lại ngành này: "Blockchain có giá trị không phải vì nó không thể bị đóng băng, mà vì ngay cả khi bạn ghét nó, nó cũng sẽ không thay đổi vì bạn. ”
Quy định là xu hướng chung, chuỗi có thể giữ được linh hồn của chính nó không?
Ngày xửa ngày xưa, chuỗi liên minh phổ biến hơn chuỗi công khai, vì nó đáp ứng được nhu cầu quản lý của thời đại đó. Bây giờ sự suy giảm của liên minh thực sự có nghĩa là chỉ tuân thủ nhu cầu này, chứ không phải nhu cầu của người dùng thực sự.Người dùng được quản lý đã mất, vậy thì nhu cầu về các công cụ quản lý thì sao?
Theo quan điểm phát triển ngành
"Tập trung hóa hiệu quả", liệu đây có phải là giai đoạn cần thiết trong quá trình phát triển blockchain không? Nếu mục tiêu cuối cùng của phi tập trung hóa là bảo vệ quyền lợi của người dùng, liệu chúng ta có thể chấp nhận tập trung hóa như một biện pháp chuyển tiếp? ”
Từ "dân chủ", trong bối cảnh quản trị trên chuỗi, thực sự làmã thông báo được định giá. Vì vậy, nếu một hacker nắm giữ một lượng lớn SUI (hoặc một ngày nào đó DAO bị hack và hacker kiểm soát quyền biểu quyết),anh ta cũng có thể "bỏ phiếu hợp pháp để tự minh oan cho mình" không?
Cuối cùng, giá trị của blockchain không nằm ở việc nó có thể bị đóng băng hay không, mà nằm ở việc nhóm có chọn không làm như vậy ngay cả khi có khả năng đóng băng hay không.
text="">Tương lai của một chuỗi không được xác định bởi kiến trúc kỹ thuật của nó, mà bởi tập hợp các niềm tin mà nó chọn để bảo vệ.