BTC
ETH
HTX
SOL
BNB
Xem thị trường
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

Mô tả ngắn gọn mô hình lập trình của Solana: Khác biệt gì so với ETH?

Foresight News
特邀专栏作者
2024-05-17 03:00
Bài viết này có khoảng 2044 từ, đọc toàn bộ bài viết mất khoảng 3 phút
Bài viết này sử dụng Ethereum làm đối tượng so sánh để giới thiệu ngắn gọn về đặc điểm của mô hình lập trình hợp đồng thông minh Solana.
Tóm tắt AI
Mở rộng
Bài viết này sử dụng Ethereum làm đối tượng so sánh để giới thiệu ngắn gọn về đặc điểm của mô hình lập trình hợp đồng thông minh Solana.

Tác giả gốc: Tin tức tầm nhìn xa, Alex Liu

Solana là một nền tảng blockchain hiệu suất cao được thiết kế để hỗ trợ dApps, được biết đến với tốc độ và khả năng mở rộng, đạt được thông qua cơ chế đồng thuận và thiết kế kiến trúc độc đáo. Bài viết này sử dụng Ethereum làm đối tượng so sánh để giới thiệu ngắn gọn về đặc điểm của mô hình lập trình hợp đồng thông minh Solana.

Hợp đồng thông minh, chương trình trên chuỗi:

Các chương trình chạy trên Ethereum được gọi là hợp đồng thông minh, là một chuỗi mã (chức năng) và dữ liệu (trạng thái) được đặt tại một địa chỉ cụ thể trên Ethereum. (Ồ, mã và dữ liệu được kết hợp với nhau) Hợp đồng thông minh cũng là tài khoản Ethereum, được gọi là tài khoản hợp đồng. Chúng có số dư và có thể trở thành đối tượng giao dịch, nhưng con người không thể kiểm soát và được triển khai trên mạng để chạy dưới dạng chương trình.

Các mã thực thi chạy trên Solana được gọi là chương trình trên chuỗi và chúng có thể diễn giải các hướng dẫn được gửi trong mỗi giao dịch. Các chương trình này có thể được triển khai trực tiếp vào lõi mạng dưới dạng chương trình gốc hoặc được bất kỳ ai xuất bản dưới dạng chương trình SPL.


  • Hướng dẫn: Hướng dẫn là thuật ngữ duy nhất dành cho các chương trình trên chuỗi Solana. Các chương trình trên chuỗi bao gồm các hướng dẫn, là đơn vị nhỏ nhất để thực hiện các hoạt động cụ thể: mỗi giao dịch Solana chứa một hoặc nhiều hướng dẫn. Hướng dẫn chỉ định các hành động sẽ được thực hiện, bao gồm gọi một chương trình cụ thể trên chuỗi, chuyển tài khoản, danh sách đầu vào và cung cấp một mảng byte. Các hướng dẫn có những hạn chế về mặt tính toán, do đó, các chương trình trên chuỗi phải được tối ưu hóa để sử dụng một số lượng nhỏ các đơn vị tính toán hoặc để chia các hoạt động tốn kém thành nhiều hướng dẫn.



  • Chương trình gốc: Một chương trình gốc cung cấp chức năng mà nút xác minh yêu cầu. Nổi tiếng nhất trong số này là Chương trình hệ thống, quản lý việc tạo tài khoản mới và chuyển SOL giữa hai tài khoản.

  • Chương trình SPL: xác định một loạt các hoạt động trên chuỗi, bao gồm tạo, trao đổi và cho vay mã thông báo, cũng như tạo nhóm cầm cố, duy trì dịch vụ phân giải tên miền trên chuỗi, v.v. Trong số đó, Chương trình mã thông báo SPL được sử dụng cho các hoạt động mã thông báo, trong khi Chương trình tài khoản mã thông báo liên kết thường được sử dụng để viết các chương trình tùy chỉnh khác.


Bạn gọi nó là hợp đồng thông minh, tôi gọi nó là chương trình trực tuyến. Mọi người đều có ý kiến khác nhau, nhưng tất cả đều đề cập đến mã chạy trên blockchain. Zhang, San, Li, Si và Wang Mazi đều là những tên riêng, phẩm chất của họ cần phải được xem xét ở những khía cạnh khác.

Mô hình tài khoản, tách dữ liệu:

Tương tự như Ethereum, Solana cũng là một blockchain dựa trên mô hình tài khoản, nhưng Solana cung cấp mô hình tài khoản khác với Ethereum và lưu trữ dữ liệu theo những cách khác nhau.

Trong Solana, tài khoản có thể lưu thông tin ví và dữ liệu khác bao gồm Lamports (số dư tài khoản), Chủ sở hữu (chủ sở hữu tài khoản), Có thể thực thi (cho dù đó là tài khoản thực thi) và Dữ liệu (dữ liệu được lưu trữ trong tài khoản). Mỗi tài khoản chỉ định một chương trình làm chủ sở hữu của nó để phân biệt chương trình nào mà tài khoản được sử dụng làm kho lưu trữ trạng thái. Các chương trình trên chuỗi này ở dạng chỉ đọc hoặc không có trạng thái: tài khoản chương trình (tài khoản có thể thực thi) chỉ lưu trữ mã byte BPF và không lưu trữ bất kỳ trạng thái nào trong các tài khoản độc lập khác (tài khoản không thể thực thi), cụ thể là Lập trình của Solana. mô hình tách mã và dữ liệu.

Tài khoản Ethereum chủ yếu tham chiếu đến trạng thái EVM. Hợp đồng thông minh của nó không chỉ chứa logic mã mà còn cần lưu trữ dữ liệu người dùng. Đây thường được coi là một lỗ hổng thiết kế còn sót lại trong lịch sử của EVM.

Đừng đánh giá thấp sự khác biệt này! Hợp đồng thông minh Solana về cơ bản khó bị tấn công hơn so với các blockchain có mô hình lập trình kết hợp (chẳng hạn như Ethereum):

Trong Ethereum, “chủ sở hữu” của hợp đồng thông minh là một biến toàn cục tương ứng với hợp đồng thông minh một-một. Do đó, việc gọi một hàm có thể trực tiếp thay đổi "chủ sở hữu" của hợp đồng.

Ở Solana, "chủ sở hữu" của hợp đồng thông minh là dữ liệu được liên kết với tài khoản chứ không phải biến toàn cục. Một tài khoản có thể có nhiều chủ sở hữu thay vì được liên kết một-một. Để khai thác lỗ hổng bảo mật trong hợp đồng thông minh, kẻ tấn công không chỉ cần tìm ra chức năng có vấn đề mà còn cần chuẩn bị tài khoản “chính xác” để gọi hàm. Bước này không dễ dàng vì hợp đồng thông minh Solana thường liên quan đến nhiều tài khoản đầu vào và quản lý mối quan hệ giữa chúng thông qua các ràng buộc (chẳng hạn như `tài khoản 1.owner==tài khoản 2.key`). Quá trình từ “chuẩn bị đúng tài khoản” đến “phát động tấn công” là đủ để nhân viên giám sát an ninh chủ động phát hiện các giao dịch đáng ngờ tạo tài khoản “giả” liên quan đến hợp đồng thông minh trước cuộc tấn công.

Hợp đồng thông minh của Ethereum giống như một kho tiền có mật khẩu duy nhất, miễn là bạn có được mật khẩu này, bạn có thể có được quyền sở hữu hoàn toàn; trong khi của Solana là một kho tiền có nhiều mật khẩu, nhưng nếu muốn có được quyền, bạn không chỉ phải tìm. có cách lấy mật khẩu nhưng bạn cũng phải tìm ra con số tương ứng với mật khẩu thì mới mở được ổ khóa.

ngôn ngữ lập trình

Rust là ngôn ngữ lập trình chính để phát triển hợp đồng thông minh trên Solana. Do hiệu suất và tính năng bảo mật, nó phù hợp với môi trường rủi ro cao của blockchain và hợp đồng thông minh. Solana cũng hỗ trợ C, C++ và các ngôn ngữ khác (rất bất thường). Nhân viên này cung cấp SDK Rust và C để hỗ trợ phát triển các chương trình trên chuỗi. Các nhà phát triển có thể sử dụng các công cụ để biên dịch chương trình thành mã byte Berkley Packet Filter (BPF) (tệp có phần mở rộng .so), sau đó triển khai nó vào chuỗi Solana và thực thi logic của hợp đồng thông minh thông qua thời gian chạy hợp đồng thông minh song song Sealevel.

Bởi vì bản thân ngôn ngữ Rust rất khó để bắt đầu và không được tùy chỉnh để phát triển blockchain nên nhiều yêu cầu đòi hỏi phải phát minh lại nhiều lần và dự phòng mã. (Nhiều dự án trong quá trình sản xuất sử dụng khung Anchor do Backpack và Armani tạo ra để đơn giản hóa việc phát triển) Nhiều ngôn ngữ lập trình mới được tạo dành riêng cho phát triển blockchain dựa trên Rust, chẳng hạn như Cairo (Starknet), Move (Sui, Aptos).

Nhiều dự án đang trong quá trình sản xuất sử dụng Anchor framework

Hợp đồng thông minh Ethereum chủ yếu được phát triển bằng ngôn ngữ Solidity (cú pháp tương tự như javascript và tệp mã có phần mở rộng .sol). Do cú pháp tương đối đơn giản và các công cụ phát triển hoàn thiện hơn (Hardhat framework, Remix IDE...), chúng tôi thường nghĩ rằng trải nghiệm phát triển Ethereum đơn giản và mới mẻ hơn, trong khi việc bắt đầu phát triển Solana khó khăn hơn. Vì vậy, mặc dù Solana hiện rất phổ biến nhưng trên thực tế số lượng nhà phát triển trên Ethereum vẫn nhiều hơn Solana rất nhiều.

Trong những điều kiện đường nhất định, những chiếc xe đua hàng đầu không nhanh bằng những chiếc xe đã được sửa đổi. Rust giống như một chiếc xe đua đỉnh cao, đảm bảo hiệu quả cho hiệu suất và sự an toàn của Solana. Tuy nhiên, nó không được thiết kế để phát triển đường đua này cho các chương trình trực tuyến mà thay vào đó làm tăng độ khó khi lái xe (phát triển). Sử dụng chuỗi công khai dựa trên Rust và phát triển ngôn ngữ tùy chỉnh cho chuỗi tương đương với việc sửa đổi chiếc xe đua để phù hợp hơn với điều kiện đường xá. Solana đang gặp bất lợi ở đây.

Tóm tắt

Mô hình lập trình hợp đồng thông minh của Solana rất sáng tạo. Nó cung cấp phương pháp phát triển hợp đồng thông minh không trạng thái, sử dụng Rust làm ngôn ngữ lập trình chính và kiến trúc tách logic khỏi trạng thái, cung cấp môi trường mạnh mẽ cho các nhà phát triển xây dựng và triển khai hợp đồng thông minh, đảm bảo tính bảo mật và hiệu suất, nhưng việc phát triển gặp nhiều khó khăn hơn. Với việc tập trung vào thông lượng cao, chi phí thấp và khả năng mở rộng, Solana vẫn là lựa chọn hiện tại cho các nhà phát triển muốn tạo dApps hiệu suất cao.

Liên kết tham khảo

https://solana.com/docs

https://ethereum.org/en/developers/docs

https://www.anchor-lang.com/


Solana
ETH
Chào mừng tham gia cộng đồng chính thức của Odaily
Nhóm đăng ký
https://t.me/Odaily_News
Nhóm trò chuyện
https://t.me/Odaily_CryptoPunk
Tài khoản chính thức
https://twitter.com/OdailyChina
Nhóm trò chuyện
https://t.me/Odaily_CryptoPunk
Tìm kiếm
Mục lục bài viết
Tải ứng dụng Odaily Nhật Báo Hành Tinh
Hãy để một số người hiểu Web3.0 trước
IOS
Android