Chứng kiến ​​lịch sử hôm nay. Giao thức DEX nổi tiếng CurveFinance đã bị tấn công và tính thanh khoản của nhiều nhóm bị cạn kiệt. Điều tra sơ bộ cho thấy hóa ra đó là lỗi của người biên soạn hợp đồng thông minh Vyper! Thật quá đáng đến mức mọi người không khỏi gọi đó là người tốt. Thống kê sơ bộ cho thấy khoản lỗ vượt quá 50 triệu đô la Mỹ và giá tức thời của mã thông báo nền tảng CRV gần bằng 0!

Giải thích ngắn gọn cho những người bạn không rành về kỹ thuật, khi sử dụng blockchain, chúng ta thường xử lý các mã chạy trên blockchain. Những mã này được gọi là “hợp đồng thông minh”.

Đối với một chuỗi công khai như Ethereum tập trung vào hợp đồng thông minh, nó có một bộ mã tiêu chuẩn cho hợp đồng thông minh dành cho những người phát triển ứng dụng trên đó (còn gọi là dApp, Ứng dụng phi tập trung) để viết và chạy ứng dụng. Ví dụ: Uniswap và Curve đều là các ứng dụng dApp chạy trên Ethereum.

Vì máy tính cần dễ chạy và tiết kiệm không gian lưu trữ nên mã chuẩn lưu trữ trên chuỗi là số nhị phân rất nhỏ gọn, gần với ngôn ngữ máy, không thuận tiện cho con người đọc ghi trực tiếp.

Để giúp việc mở ứng dụng trở nên thuận tiện hơn, nhiều "ngôn ngữ cấp cao" thuận tiện cho con người đọc và viết đã được phát minh ra để viết chương trình. Đã từng có ba loại trên Ethereum. Cú pháp tương tự như ngôn ngữ LISP và chưa trở nên phổ biến. Loại còn lại tương tự như ngôn ngữ Python vì nó được thúc đẩy bởi Vitalik (người sáng lập Ethereum), được gọi là Vyper. cú pháp tương tự như ngôn ngữ Javascript, được gọi là Solidity.

Sau khi các lập trình viên viết chương trình hợp đồng thông minh bằng các ngôn ngữ cấp cao này, họ cần sử dụng một công cụ gọi là "trình biên dịch" để "dịch" chúng sang "ngôn ngữ máy" có thể chạy trên chuỗi khối Ethereum, tức là mã tiêu chuẩn.

Rõ ràng, các ngôn ngữ cấp cao khác nhau có trình biên dịch khác nhau. Điều này dễ hiểu. Bản dịch tiếng Nhật và bản dịch tiếng Anh chắc chắn là khác nhau.

Lần này Curve bị tấn công vì một lỗ hổng trong một phiên bản cụ thể của trình biên dịch Vyper được một số nhóm Curve sử dụng (nghi ngờ, vẫn đang được điều tra thêm.) Điều này giống như nói "Tôi muốn uống" bằng tiếng Nhật và người dịch đang dịch nó sang Khi được dịch sang tiếng Trung là “Tôi muốn ăn cua”. Này là thái quá

May mắn thay, mức độ phổ biến của Vyper không cao. Hiện tại, Solidity được sử dụng nhiều nhất trong Ethereum và các chuỗi tương thích. Trình dịch tiếng Anh rõ ràng hơn và không có lỗi dịch thuật, cảm ơn Chúa

Trong những ngày đầu của Uniswap, người đứng đầu DEX, người sáng lập Hayden đã sử dụng ngôn ngữ Vyper để viết mã. May mắn thay, Hayden sau đó đã thuê một CTO chuyên nghiệp và đổi mã thành Solidity. Vì vậy, lần này xung quanh vấn đề trình biên dịch Vyper, Uniswap vẫn an toàn. Curve Finance, công ty sử dụng rộng rãi ngôn ngữ Vyper, đã phải chịu thiệt hại.

Vấn đề gây ra bởi khiếm khuyết này là "vấn đề quay trở lại" cổ điển. Nghĩ lại năm đó, năm 2015, sự cố DAO đã trực tiếp dẫn đến hard fork của Ethereum, chia tách thành ETH và ETC. Vấn đề tái gia nhập này thực sự là một lời nguyền của lịch sử!

Nhưng vấn đề tái nhập của The DAO xảy ra ở cấp độ ngôn ngữ cấp cao. Tức là bạn nói tiếng Anh không đúng. Ban đầu bạn muốn uống nhưng lại nói muốn ăn cua. bản dịch.

Đối với sự cố Curve này, điều đáng sợ là bạn hiểu đúng nhưng người dịch lại dịch sai nên bạn không hiểu (công ty kiểm toán sẽ không xem lại mã nhị phân biên dịch) nên đưa vào mà không có. có ai nhận ra LỖI chết người! Điều này cũng gióng lên hồi chuông cảnh tỉnh cho toàn bộ ngành DeFi ngày nay và thậm chí toàn bộ ngành công nghiệp blockchain!

Ngày nay, tất cả mọi người từ người viết mã, người đánh giá mã cho đến người kiểm tra bên thứ ba sẽ không xem mã nhị phân đã được biên dịch. Mọi người đều cho rằng sẽ không có vấn đề gì với trình biên dịch miễn là họ thấy ngôn ngữ cấp cao được viết chính xác thì họ cho rằng sẽ không có vấn đề gì.

Tại sao Satoshi Nakamoto không mở rộng tập lệnh BTC với các chức năng hợp đồng thông minh quá mạnh mẽ? Điều này là để tránh những sai lầm không thể tha thứ do sự phức tạp ngày càng tăng. Một số người chỉ trích BTC là bảo thủ, nhưng khi đối mặt với khối tài sản trị giá hàng triệu, hàng chục thậm chí hàng tỷ USD, sự thận trọng và bảo thủ không bao giờ là quá đáng. Hầu hết mọi người vẫn là người bình thường. Việc mất hàng chục hay hàng triệu đô la sẽ là đòn chí mạng cho ai rơi vào đó.

Điều này cũng nêu bật lời cảnh báo của Định luật Murphy: Bất kỳ liên kết nào có thể trục trặc chắc chắn sẽ trục trặc miễn là có đủ thời gian trôi qua. Lần này là Vyper, đó là một điều may mắn. Còn tương lai thì sao? Điều gì sẽ xảy ra nếu có một lỗ hổng nghiêm trọng trong Solidity? Toàn bộ DeFi, với hàng nghìn giao thức, hàng chục tỷ tài sản và những tòa nhà rực rỡ được xây dựng trên cát lún ngay lập tức, đáy vạc đã cạn nước. và tất cả đều sụp đổ. Thật khủng khiếp phải không?

Tại sao khó vượt qua vòng luẩn quẩn? Trước khi theo đuổi mục tiêu mơ ước này hay mục tiêu kia, trước tiên bạn nên xem xét liệu mình có thể “sống đến ngày đó” hay không. Nhiều khi, sống sót là kẻ chiến thắng, kẻ còn sót lại là vua.