You are on page 1of 3

Ngôn ngữ:

- Vyper là một ngôn ngữ lập trình Blockchain mới có nguồn gốc từ Python 3. Vì
vậy, cú pháp Vyper cũng là cú pháp Python 3 hợp lệ, mặc dù Vyper không có tất
cả các tính năng của Python. Vyper được tạo ra để thay thế cho Solidity. Nó
thường được sử dụng cho Máy ảo Ethereum (EVM), giống như Solidity. Tuy
nhiên, Vyper có cấu trúc điều khiển khác với Solidity và nó cũng xử lý các vấn đề
bảo mật theo cách khác. Ba nguyên tắc và mục tiêu thiết kế cơ bản của Vyper
cung cấp nền tảng vững chắc cho tính hiệu quả của nó trong việc phát triển hợp
đồng thông minh:

Auditability: Mã Vyper phải ở mức tối đa mà con người có thể đọc được. Hơn
nữa, sẽ rất khó để viết mã gây hiểu lầm. Sự đơn giản đối với người đọc quan
trọng hơn tính đơn giản đối với người viết và sự đơn giản đối với những độc giả
có kinh nghiệm trước đó với Vyper (và kinh nghiệm trước đó về lập trình nói
chung) là đặc biệt quan trọng.
Security: Một nguyên tắc thiết kế đáng chú ý khác của Vyper là khả năng phát
triển các hợp đồng thông minh một cách tự nhiên với khả năng bảo mật tốt hơn.
Bảo mật là một trong những đặc điểm cơ bản được ưu tiên trong các hợp đồng
thông minh và Vyper đóng vai trò như một ngôn ngữ lập trình hiệu quả cho các
hợp đồng thông minh vì lý do duy nhất này.
Simplicity: Yếu tố quan trọng tiếp theo trong các nguyên tắc thiết kế của Vyper là
sự đơn giản của ngôn ngữ và trình biên dịch của nó. Nó nên tập trung vào việc
đảm bảo rằng việc triển khai ngôn ngữ và trình biên dịch là đơn giản và dễ hiểu

- Vì điều này Vyper cung cấp các tính năng sau:


 Kiểm tra giới hạn và tràn số: Trên các truy cập mảng và số học.
 Hỗ trợ số nguyên và số thập phân
 Độ phân giải: Có thể tính toán giới hạn trên chính xác cho mức tiêu thụ
khí của bất kỳ lệnh gọi hàm Vyper nào.
 Strong type
 Mã trình biên dịch nhỏ và dễ hiểu
 Hỗ trợ hạn chế cho các chức năng thuần túy: Bất kỳ thứ gì được đánh
dấu là hằng số đều không được phép thay đổi trạng thái.
- Vyper cố tình có ít tính năng hơn Solidity để làm cho các hợp đồng an toàn hơn và
dễ kiểm tra hơn, và do đó:

 Không có bổ ngữ. Các công cụ sửa đổi có thể làm tăng thêm độ phức
tạp và làm cho mã khó đọc hơn - điều này đi ngược lại với mục tiêu của
Vypers là làm cho mã dễ đọc nhất có thể. Chúng tôi không muốn lo lắng
về việc hiểu các quy tắc ưu tiên trong hợp đồng của mình khi xung đột
xảy ra, cũng như không muốn nhảy xung quanh nhiều tệp hợp đồng để
tìm nơi xảy ra xung đột.
 Không có lắp ráp nội tuyến.
 Không có chức năng quá tải. Điều cuối cùng chúng tôi muốn làm là lo
lắng về phiên bản của hàm nào đang được gọi, tạo ra sự nhầm lẫn khi lỗi
xảy ra và lãng phí thời gian khắc phục sự cố không nhất quán.
 Không có toán tử quá tải. Vyper cho rằng việc sử dụng cú pháp như vậy
có +=vẻ gây hiểu lầm. Vận hành quá tải cũng không phải là Pythonic.
 Không có kế thừa lớp. Một lần nữa, nhảy qua nhiều tệp để hiểu mã đang
làm gì là chống Vyper.
 Không gọi đệ quy và không có vòng lặp vô hạn. Những điều này rất nguy
hiểm khi chúng ta cần tiêu tốn gas cho mọi hoạt động theo hợp đồng, làm
tăng khả năng xảy ra các cuộc tấn công bằng gas.
 Không có điểm cố định nhị phân. Như đã thảo luận ở trên, Vyper chọn
hiển thị các giá trị dưới dạng đại diện chính xác.

- Vyper được xây dựng để giải quyết các vấn đề bảo mật hiện có trong Solidity. Nó
được phát triển để bổ sung cho Solidity, không thay thế nó. Phiên bản beta đầu
tiên được release vào ngày 22/08/2020 và Vyper vẫn đang trong thử nghiệm,
chưa sẵn sàng về mặt thương mại

Ưu điểm
- Các nhà phát triển Python bắt đầu với nó dễ dàng hơn.
- Mục đích của ngôn ngữ vyper tạo nên minh bạch bảo mật và dễ đọc.
- Việc xây dựng các hợp đồng thông minh an toàn là có thể và tự nhiên với Vyper,
vì chúng ít bị tấn công hơn
- Nó đã chứng kiến sự gia tăng trong các công cụ phát triển như:
o + Brownie: Một khung phát triển dựa trên Python để kiểm tra các hợp
đồng thông minh.
o + Etherscan cung cấp một trình soạn thảo trực tuyến để biên dịch các hợp
đồng của bạn.
- Các giao thức DeFi như Curve sử dụng Vyper để phát triển các hợp đồng của
họ.
- Có một giới hạn đối với chuỗi và mảng. Nó làm cho hợp đồng ít bị tấn công hơn.
- Có thể tính toán giới hạn trên chính xác cho mức tiêu thụ gas của bất kỳ lệnh gọi
hàm nào.
Nhược điểm
• Rất ít dự án sử dụng Vyper làm ngôn ngữ hợp đồng thông minh của họ. Số lượng
hợp đồng Vyper và hợp đồng Solidity trên Github là 1200 https://github.com/search?
q=def+path%3Acontracts+extension%3Avy so với 911K https://github.com/search?
q=contract+path%3Acontracts+extension%3Asol tại thời điểm viết bài.
• Ít tài liệu và ví dụ hơn để bắt đầu.Có nhiều đồng Coin sử dụng hay không (Layer 0)
Số lượng lập trình viên toàn cầu sự dụng ngôn ngữ (Khó tuyển hay không? Để phát
triển dự án)
Cộng đồng Solidity Developer
- Còn rất ít và ít nơi tuyển dụng do vẫn đang trong thử nghiệm, chưa sẵn sàng về
mặt thương mại. Vd tại github: Solidity: 13.8k sao, 3.4k forks. Vyper: 3.5k sao,
584 forks. Gitter chatroom: Solidity: 8445 người, Vyper: 591 người.
Các dự án dùng Vyper:
- Uniswap v1.
- Curve finance
Lifetime funding received
- Not in an active matching round
Ref
https://reference.auditless.com/cheatsheet/
https://gitter.im/ethereum/solidity/
https://gitter.im/vyperlang/community
https://ethereum.org/en/developers/docs/smart-contracts/languages/#vyper-advatages
https://github.com/vyperlang/vyper/tags?after=v0.2.9
https://vyper.readthedocs.io/en/latest/index.html
https://pontem.network/posts/comparison-of-the-top-10-smart-contract-programming-
languages-in-2021
https://www.quicknode.com/guides/vyper/solidity-vs-vyper
https://ichi.pro/vi/bat-dau-voi-vyper-ngon-ngu-hop-dong-thong-minh-ethereum-pythonic-
252774015633534
https://helpex.vn/article/chon-mot-giao-thuc-chuoi-khoi-doanh-nghiep-de-phat-trien-tren-
phan-2-so-dai-bieu-...-608de595d81a39f961b3fc31
https://gitcoin.co/grants/200/vyper-smart-contract-language

You might also like