icon_install_ios_web icon_install_ios_web icon_install_android_web

Mô tả ngắn gọn về mô hình lập trình Solana: Sự khác biệt với ETH là gì?

Phân tích6 tháng trước更新 6086cf...
118 0

Tác giả gốc: Foresight News, Alex Liu

Solana là một nền tảng blockchain hiệu suất cao được thiết kế để hỗ trợ các dApp, đượ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 các đặ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) nằm tại một địa chỉ cụ thể trên Ethereum. (Ồ không, mã và dữ liệu được ghép nối) 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, có số dư và có thể giao dịch, nhưng không thể bị con người thao túng và được triển khai trên mạng để chạy dưới dạng chương trình.

Mã thực thi chạy trên Solana được gọi là chương trình trên chuỗi, 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 đến lõi của mạng dưới dạng chương trình gốc hoặc được bất kỳ ai công bố dưới dạng chương trình SPL.

  • Hướng dẫn: Hướng dẫn là thuật ngữ đặc biệt cho các chương trình Solana on-chain. Các chương trình on-chain 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 hoạt động cần thực hiện, bao gồm gọi một chương trình on-chain cụ thể, chuyển tài khoản, danh sách đầu vào và cung cấp mảng byte. Hướng dẫn có giới hạn tính toán, vì vậy các chương trình on-chain nên đượ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.

Mô tả ngắn gọn về mô hình lập trình Solana: Sự khác biệt với ETH là gì?

  • Native Program: Một chương trình gốc cung cấp các chức năng mà một nút xác minh yêu cầu. Nổi tiếng nhất trong số này là System Program, chịu trách nhiệm 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 việc tạo, trao đổi, cho vay, tạo nhóm đặt cược, duy trì các dịch vụ giải quyết 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 là hợp đồng thông minh, tôi gọi là chương trình chuỗi. Mỗi người có thuật ngữ 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à tên của mọi người. Chất lượng của họ vẫn cần được xem xét ở các khía cạnh khác.

Mô hình tài khoản và tách biệt 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 cách khác.

Trong Solana, tài khoản có thể lưu trữ thông tin ví và dữ liệu khác. Các trường do tài khoản xác định bao gồm Lamports (số dư tài khoản), Owner (chủ sở hữu tài khoản), Executable (có phải là tài khoản thực thi hay không) và Data (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 được tài khoản sử dụng làm bộ nhớ trạng thái. Các chương trình trên chuỗi này chỉ đọc hoặc không có trạng thái: tài khoản chương trình (tài khoản 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. Chương trình sẽ lưu trữ trạng thái trong các tài khoản độc lập khác (tài khoản không thực thi), nghĩa là mô hình lập trình Solana tách mã và dữ liệu.

Mô tả ngắn gọn về mô hình lập trình Solana: Sự khác biệt với ETH là gì?

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

Mô tả ngắn gọn về mô hình lập trình Solana: Sự khác biệt với ETH là gì?

Đừ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 như Ethereum:

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

Trong Solana, chủ sở hữu của hợp đồng thông minh là dữ liệu được liên kết với một tài khoản, không phải là một biến toàn cục. Một tài khoản có thể có nhiều chủ sở hữu, thay vì liên kết một-một. Để kẻ tấn công khai thác lỗ hổng bảo mật trong hợp đồng thông minh, chúng không chỉ cần tìm ra hàm có vấn đề mà còn cần chuẩn bị đúng tài khoản để gọi hàm đó. Bước này không dễ 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ư `account 1.owner==account 2.key`). Quá trình từ việc chuẩn bị đúng tài khoản đến khi phát động một cuộc tấn công là đủ để các giám sát viên bảo mật chủ động phát hiện các giao dịch đáng ngờ tạo ra các tài khoản giả mạo được liên kết với hợp đồng thông minh trước khi xảy ra cuộc tấn công.

Hợp đồng thông minh Ethereum giống như một két sắt có mật khẩu duy nhất. Chỉ cần bạn có được mật khẩu, bạn có thể sở hữu toàn bộ. Solana là một két sắt có nhiều mật khẩu, nhưng để có được quyền, bạn không chỉ phải tìm cách lấy được mật khẩu mà còn phải tìm ra số tương ứng với mật khẩu trước khi có thể mở 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 các tính năng về hiệu suất và 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 ít). SDK chính thức cho Rust và C được cung cấp để 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ã bytecode Berkley Packet Filter (BPF) (các tệp có phần mở rộng .so), sau đó triển khai chúng 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.

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

Mô tả ngắn gọn về mô hình lập trình Solana: Sự khác biệt với ETH là gì?

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

Hợp đồng thông minh Ethereum chủ yếu được phát triển trong 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 trưởng thành hơn (khung Hardhat, Remix IDE…), chúng ta thường nghĩ rằng trải nghiệm phát triển Ethereum đơn giản hơn và mới mẻ hơn, trong khi phát triển Solana khó bắt đầu. 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 Ethereum vẫn lớn hơn Solana rất nhiều.

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

Tóm tắt

Mô hình lập trình hợp đồng thông minh của Solana là 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 biệt 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 rất khó khăn. Solana tập trung vào thông lượng cao, chi phí thấp và khả năng mở rộng, và vẫn là lựa chọn lý tưởng cho các nhà phát triển muốn tạo ra các dApp 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/

Bài viết này có nguồn từ internet: Mô tả ngắn gọn về mô hình lập trình của Solana: Sự khác biệt với ETH là gì?

Có liên quan: Sự phổ biến của Runes là một trở ngại trong quá trình phát triển công nghệ mã hóa, nhưng nó cũng là hiện thân tốt nhất của

Tác giả gốc: @Web3 Mario Giới thiệu: Hôm qua, tôi tình cờ biết được từ một người bạn rằng anh ấy đã thu được lợi nhuận đầu tư đáng kể trong lĩnh vực khắc BTC, điều này đã khơi dậy sâu sắc tâm lý bước vào khoảng không của tác giả. Tôi đã lo lắng trong hai ngày liên tiếp, điều đó thực sự đáng xấu hổ. Nhớ lại rằng kiến trúc kỹ thuật Ordinals vừa được phát hành trước đó, tác giả đã nghiên cứu các tài liệu có liên quan, nhưng với tư cách là một nhà phát triển, tôi khá không hài lòng với con đường kỹ thuật này. Vào thời điểm đó, tôi đánh giá rằng đây chỉ đơn giản là sự đảo ngược của công nghệ mã hóa, bởi vì khái niệm thiết kế của nó có vẻ giống với một dự án altcoin xa xôi là Color Coin, tức là cách sử dụng kiến trúc kỹ thuật của BTC để phát hành một số mã thông báo độc lập, nhưng điểm khác biệt là Ordinals không…

 

© 版权声明

相关文章