Tin nóng ⇢

Phân tích ngắn gọn về Vyper: ngôn ngữ lập trình hợp đồng thông minh phổ biến với các nhà phát triển

Kể từ đêm qua, do lỗi khóa truy cập lại của các phiên bản Vyper riêng lẻ, các nhóm ổn định của Curve như alETH/msETH/pETH đã bị tấn công, điều này đã gây ra một loạt thảm họa thứ cấp và cú sốc DeFi trong thế giới mã hóa, và nó vẫn đang lên men ngày nay

Đây cũng là một sự cố hiếm gặp trong thế giới DeFi nhắm trực tiếp vào các lỗi trong lớp ngôn ngữ của hợp đồng thông minh. Tuy nhiên, so với ngôn ngữ Solidity thường thấy trên báo chí trong giới mã hóa, Vyper thực sự không mấy nổi tiếng.

Vậy Vyper chính xác là gì, nó đóng vai trò gì trong thế giới DeFi và tại sao lỗi của nó lại thu hút sự chú ý của ngành? Trong bài viết này, Foresight News sẽ đưa bạn hiểu về ngôn ngữ Vyper hiện đang trên đỉnh cao. 

Vyper: Ngôn ngữ lập trình hợp đồng thông minh phổ biến thứ hai

Trước khi Vyper được tạo ra vào năm 2017, ngôn ngữ phổ biến nhất được các nhà phát triển sử dụng để viết hợp đồng thông minh là Solidity. Vyper, giống như Solidity, là một ngôn ngữ lập trình theo định hướng hợp đồng thông minh có thể được biên dịch thành mã byte của Máy ảo Ethereum (EVM) và chạy trên EVM.

Tuy nhiên, trình biên dịch của Vyper được viết bằng Python, một ngôn ngữ lập trình dựa trên Python và tương thích với EVM với khả năng gõ mạnh, mã trình biên dịch nhỏ và tạo mã byte hiệu quả, điều này cũng khiến nó trở thành ứng cử viên cho Web3, một trong những lựa chọn tốt nhất cho các nhà phát triển Python.

Do đó, từ góc độ tỷ lệ chấp nhận, Vyper hiện tại cũng là “ngôn ngữ lập trình hợp đồng thông minh tương thích với EVM lớn thứ hai” sau Solidity.

Trong mô hình phát triển DeFi hiện tại (thứ nguyên tỷ lệ TVL), Solidity chiếm vị trí độc quyền tuyệt đối với thị phần 94,71%, trong khi Vyper đứng thứ hai với thị phần 3,04%.

#image_title

Rust (0,9%), Cairo (0,53%) và Haskell (0,26%), bắt đầu từ vị trí thứ ba, đã tụt dốc thảm hại.

Ngoài các tính năng dựa trên Python, Vyper không sử dụng các mẫu hướng đối tượng, lắp ráp nội tuyến và không hỗ trợ tái sử dụng mã, công cụ sửa đổi, kế thừa, nạp chồng hàm, lệnh gọi đệ quy, vòng lặp có độ dài vô hạn và dấu phẩy động có độ dài cố định nhị phân .

Ngoài ra, nó được tối ưu hóa cho tính bảo mật, khả năng đọc, khả năng kiểm toán và hiệu suất gas:

  • Bảo mật: Hỗ trợ xây dựng hợp đồng thông minh an toàn trong Vyper;
  • Khả năng đọc: Việc triển khai trình biên dịch và ngôn ngữ hợp đồng thông minh của Vyper cố gắng trở nên đơn giản để cải thiện khả năng đọc mã, đặc biệt đối với người dùng không có kinh nghiệm với Vyper và thường không có kinh nghiệm lập trình;
  • Khả năng kiểm tra: Mã Vyper càng dễ đọc càng tốt và kiến ​​trúc đơn giản của nó giúp giảm lỗi phần mềm và cải thiện khả năng kiểm tra của các hợp đồng thông minh;

Người sáng lập Vyper, John Max Skaller, đã tuyên bố rằng Vyper được xây dựng vì hai lý do: “Đầu tiên, tôi thích Python, đặc biệt là sự đơn giản của nó, nhưng tôi không thích sự thiếu xác định phạm vi của nó, nơi mọi thứ đòi hỏi rất nhiều thay đổi để đạt được tiến bộ. , vì vậy tôi quyết định khắc phục những vấn đề này bằng cách xây dựng một ngôn ngữ lập trình cấp cao hơn nhiều và xây dựng một số khái niệm về ngôn ngữ lập trình chức năng trong đó, đồng thời duy trì khả năng tương thích với Python.

Lý do thứ hai là hiệu suất. Tôi có một chương trình Python chính gọi là interscript, một công cụ lập trình xóa mù chữ gặp vấn đề về hiệu suất và cấu trúc kém trong Python”.

Nhìn chung, ý định thiết kế ban đầu của Vyper là tạo ra một quy trình đơn giản hóa các hợp đồng thông minh minh bạch, dễ hiểu đối với những người tham gia hợp đồng thông minh, tập trung vào khả năng đọc và kiểm tra để đảm bảo an ninh.

Ưu và nhược điểm của Vyper

Những ưu điểm và nhược điểm của Vyper được đề cập trong chương này chủ yếu được so sánh với ngôn ngữ Solidity, xét cho cùng, từ góc độ thị phần đã đề cập ở trên, các ngôn ngữ hợp đồng thông minh khác vẫn chưa tạo thành môi trường rộng lớn.

Đầu tiên, một trong những lợi thế lớn nhất của Vyper so với Solidity là bản chất dựa trên Python của nó, vì vậy, mặc dù Vyper không mạnh mẽ và phổ biến như Solidity, nhưng đây là ngôn ngữ lý tưởng được các nhà phát triển quen thuộc với Python lựa chọn.

Đồng thời, trình biên dịch Vyper cũng chọn lưu trữ các biến cục bộ trong bộ nhớ thay vì trên ngăn xếp, giúp hợp đồng trở nên đơn giản và hiệu quả hơn, đồng thời giải quyết vấn đề “ngăn xếp quá sâu” thường gặp ở các ngôn ngữ cấp cao khác.

Vyper cũng cung cấp nhiều chức năng tích hợp hơn để đảm bảo rằng hầu hết mọi chức năng trong Solidity và Yul cũng có thể được triển khai trong Vyper. Các nhà phát triển có thể truy cập các hoạt động bit cấp thấp, cuộc gọi bên ngoài và hoạt động hợp đồng proxy thông qua các chức năng tích hợp sẵn và có thể triển khai bố cục lưu trữ tùy chỉnh bằng cách cung cấp các tệp lớp phủ tại thời điểm biên dịch.

Nhược điểm của Vyper so với Solidity cũng rất rõ ràng, chủ yếu là do đây là một ngôn ngữ tương đối mới so với Solidity, do đó, đương nhiên những thiếu sót trong bảo trì của nhà phát triển và các công cụ cộng đồng phải chịu gánh nặng:

Vyper vẫn thiếu sự hỗ trợ cộng đồng rộng rãi mà Solidity có cho đến nay – Solidity có sẵn một số lượng lớn các công cụ phát triển tuyệt vời, chẳng hạn như OpenZeppelin cung cấp các thư viện nguồn mở để phát triển hợp đồng thông minh an toàn và các IDE như IDE trực tuyến Remix và môi trường dành cho nhà phát triển cục bộ mà Hardhat cung cấp Nó cung cấp các công cụ và chức năng cho phép dễ dàng phát triển DApps.

Tính đến thời điểm viết bài, dữ liệu GitHub cho thấy Solidity có 568 cộng tác viên, trong khi Vyper có 189, chênh lệch gấp 3 lần.

#image_title

Mặc dù Vyper không có bộ công cụ phát triển phong phú, nhưng nó có nhiều công cụ tích hợp chặt chẽ hơn và cũng có thể được cắm vào các công cụ phát triển Solidity – chẳng hạn như trình thông dịch Titanaboa, có nhiều công cụ tích hợp liên quan đến EVM và Vyper, có thể là được sử dụng để thử nghiệm và phát triển; Dasy, một Lisp dựa trên Vyper với việc thực thi mã thời gian biên dịch.

Ngoài ra, từ góc độ chi tiết kỹ thuật, Vyper thiếu các công cụ sửa đổi, kế thừa lớp và các lệnh gọi đệ quy và ngôn ngữ lập trình không phải là Turing hoàn chỉnh.

Tất nhiên, hầu hết trong số này là Vyper cố tình cung cấp ít chức năng hơn, nhằm cải thiện tính bảo mật và khả năng kiểm toán, để làm cho các hợp đồng trở nên an toàn và dễ kiểm toán hơn, nhưng điều này cũng yêu cầu các nhà phát triển phải khắc phục những hạn chế này, điều đó có nghĩa là Vyper, không không có lợi thế về nhân lực, chắc chắn sẽ có hiệu quả phát triển thấp.

Sức ảnh hưởng của Vyper đến từ đâu?

Hiện tại, lỗi Vyper chỉ liên quan đến một số phiên bản cụ thể như 0.2.15, 0.2.16 và 0.3.0, qua những điều trên có thể thấy khối lượng của dự án DeFi chính do Vyper viết là không lớn. Chiếm dưới 5% thị phần TVL.

Vậy tại sao sự thất bại của Vyper lại có tác động lớn như vậy?

Nói tóm lại, mặc dù trong số các giao thức DeFi chính thống, không có nhiều dự án tích cực sử dụng ngôn ngữ Vyper để phát triển và vấn đề lần này là một vài phiên bản cụ thể của Vyper, nhưng có một dự án DeFi hàng đầu được phát triển dựa trên Vyper:

Đúng vậy, đó là Curve.Lý do chính dường như liên quan đến tính năng tối ưu hóa Gas đã đề cập ở trên – vì hợp đồng Curve phức tạp hơn, Vyper làm cho những phức tạp này dễ quản lý hơn và tiết kiệm hơn nữa Gas (sự phát triển dựa trên Vyper nổi tiếng khác Có chỉ là một số ít dự án, chẳng hạn như phiên bản Uniswap v1, hợp đồng tiền gửi ETH 2.0 đầu tiên, v.v.).

Vì Curve đã trở thành cơ sở hạ tầng quan trọng của thế giới DeFi và thậm chí là toàn bộ chuỗi tài chính, nên dưới các lớp lồng nhau, nhóm ổn định của Curve về cơ bản là nguồn tiền và thu nhập cơ bản cho hầu hết các giao thức, đó là lý do tại sao sự cố bảo mật này xảy ra cho đến nay , nguyên nhân chính dẫn đến các dư chấn liên tục của JPEG’d, Alchemix , Metronome , deBridge , Ellipsis Finance, v.v.

Tuy nhiên, phiên bản mới của Vyper đã sửa lỗ hổng này nhưng do không thể nâng cấp hợp đồng nhóm ổn định Curve bị ảnh hưởng nên không thể triển khai và nâng cấp nên chỉ có thể chọn hủy hợp đồng tương ứng và rút tiền.

Bản tóm tắt

Nhìn chung, lý do khiến mọi người lo sợ kéo dài về sự cố bảo mật này chủ yếu là do rủi ro lỗi trong lớp ngôn ngữ của hợp đồng thông minh đã vượt xa phạm vi của chính giao thức DeFi hoặc logic của hợp đồng thông minh.

Thử tưởng tượng xem, nếu không chỉ Vyper mà ngay cả Solidity cũng gặp vấn đề tương tự lần này, thì tất cả các giao thức DeFi trên chuỗi khó lòng thoát ra được, thậm chí chúng ta sẽ thực sự đối mặt với nguy cơ “DeFi không còn tồn tại nữa”.

Nhưng bất hạnh và may mắn phụ thuộc vào nó. Lần này Curve đã thụ động dỡ bỏ vỏ bọc của cuộc tấn công vào lớp ngôn ngữ hợp đồng thông minh, khiến mọi người đều nhận thức được khả năng này. Đối với thế giới DeFi, đó là một thử nghiệm lớn và là Cơ hội tự cứu mình.

Có thể bạn quan tâm

Mục lục