[Series Blockchain Foundation - 03] SOLANA VÀ NHỮNG CẢI TIẾN
Tác giả: Quang Nguyen (quatino#3391)
1. Giới thiệu Solana
1.1. Tổng quan về Solana và vị trí của nó trong hệ sinh thái blockchain
Solana là một nền tảng blockchain layer-1 có khả năng mở rộng cao và tốc độ xử lý nhanh. Nó được phát triển bởi Solana Labs và ra mắt chính thức vào năm 2020. Solana được thiết kế nhằm giải quyết các hạn chế của các blockchain truyền thống, như tốc độ chậm và khả năng mở rộng hạn chế. Với kiến trúc đột phá và công nghệ tiên tiến, Solana đã thu hút sự quan tâm lớn từ cộng đồng blockchain và đang trở thành một trong những nền tảng phát triển nổi bật trong lĩnh vực này.
1.2. Đặc điểm nổi bậc của blockchain Solana
Mục tiêu của Solana là tạo ra một nền tảng blockchain có khả năng mở rộng tuyệt vời và tốc độ xử lý nhanh, với khả năng xử lý hàng ngàn giao dịch mỗi giây. Điều này đặt Solana ở một vị trí hàng đầu trong việc hỗ trợ các ứng dụng và dịch vụ phức tạp như DeFi, NFT và các ứng dụng Web.
Solana sử dụng cấu trúc chuỗi khối tương tự như các blockchain khác, với các block lưu trữ thông tin về giao dịch và hợp đồng thông minh kết nối với nhau theo thứ tự thời gian. Tuy nhiên, Solana sử dụng một số công nghệ đặc biệt để đạt được tốc độ xử lý và khả năng mở rộng cao.
Một trong những đặc điểm quan trọng của Solana là Proof of History (PoH), một thuật toán chứng minh thời gian, giúp đồng bộ hóa các sự kiện trong mạng và xác định thứ tự thời gian một cách chính xác. Ngoài ra, công nghệ Sealevel và kiến trúc blockchain đặc biệt của Solana giúp nền tảng này có thể thực thi song song các smart contract. Điều này đã giải quyết vấn đề thực thi tuần tự trên EVM, tăng tốc độ xử lý giao dịch & hợp đồng thông minh lên nhiều lần.
1.3. Ưu điểm của Solana so với các blockchain khác
So với các blockchain khác, Solana có một số ưu điểm nổi bật. Đầu tiên, tốc độ xử lý nhanh của Solana cho phép xử lý giao dịch và thực thi hợp đồng thông minh một cách hiệu quả, mang lại trải nghiệm người dùng tốt hơn. Thứ hai, Solana có khả năng mở rộng theo chiều ngang, cho phép nhiều node hoạt động song song và chia sẻ công việc mạng, đảm bảo khả năng mở rộng linh hoạt khi có nhiều người dùng và ứng dụng tham gia. Cuối cùng, Solana cung cấp một môi trường lập trình đa dụng, với hỗ trợ cho nhiều ngôn ngữ lập trình như Rust, C và C++, giúp phát triển ứng dụng trở nên dễ dàng và linh hoạt hơn.
Với những cải tiến đáng kể và tiềm năng phát triển trong tương lai, Solana đang trở thành một nền tảng blockchain đáng chú ý cho lập trình viên mới chuyển sang web3 và phát triển smart contract trên nền tảng này.
2. Proof of History
2.1. Vấn đề đồng bộ thời gian giữa các validator trong PoS
Trong Proof of Stake, các validator cần đồng bộ thời gian để xác định thứ tự và độ tin cậy của các giao dịch trong mạng. Tuy nhiên, việc đạt được sự đồng bộ thời gian hoàn hảo trong một mạng phân tán là một thách thức lớn. Các node trong mạng có thể có các đồng hồ thời gian không chính xác hoặc bị tác động bởi các tấn công như tấn công Sybil.
Sự không đồng bộ thời gian có thể dẫn đến các vấn đề như lỗi ký số (signature) không hợp lệ, vi phạm thời gian chờ trước khi đề xuất khối mới, hoặc làm giảm hiệu suất của hệ thống. Điều này làm giảm tốc độ xử lý giao dịch của các hệ thống blockchain và còn có thể gây ra sự không ổn định và đe dọa tính bảo mật của mạng.
2.2. Giải pháp của Solana: Proof of History (PoH)
Solana giới thiệu một giải pháp độc đáo để giải quyết vấn đề đồng bộ thời gian trong mạng blockchain, đó là Proof of History (PoH). PoH không phải là một cơ chế đồng thuận như PoS hay PoW, mà là một cải tiến mới nhằm tăng tốc độ xử lý của của các validator trong mạng blockchain. Nó cho phép Solana xử lý hàng ngàn giao dịch mỗi giây mà không cần chờ đợi thời gian xác nhận như các blockchain truyền thống.
Chuỗi thời gian của PoH được tạo bằng cách kết hợp dữ liệu mới được đưa vào và giá trị hash của đơn vị dữ liệu trước đó, từ đó tính ra mã hash của đơn vị dữ liệu mới.
Ví dụ (như trên hình), để tạo ra hash336, ta cần đầu vào là giá trị hash335 và dữ liệu 336 (tạm gọi: data336). Từ đó, hash336 chính là bằng chứng chứng minh rằng data336 được xử lý ở một thời điểm sau khi đã có hash335. Nói cách khác, data336 được xác thực sau data335. Bằng chứng (proof) này có thể được kiểm tra (verify) dễ dàng bằng cách tính lại giá trị hash336 với đầu vào là hash335 và data336.
Thay vì dựa trên sự đồng bộ hóa thời gian của các validator, Solana sẽ sử dụng chuỗi thời gian PoH được tạo ra bởi một (hoặc nhiều) node gọi là "PoH leader". Leader này sử dụng một quá trình băm (như minh họa ở trên) để tạo ra các timestamp proof không thể sửa đổi được. Các validator sau đó có thể sử dụng các timestamp này để xác định trật tự thời gian của các giao dịch.
Solana áp dụng cải tiến PoH vào quá trình vận hành hệ thống blockchain PoS như trên sơ đồ sau:
Giải thích:
(1) Khi người sử dụng tiến hành đặt lệnh giao dịch, các lệnh này sẽ được gửi vào trong mạng lưới của Solana. Leader sẽ nhận được các lệnh này trước tiên.
(2) Leader (PoH generator) sẽ thực hiện giao dịch và xác định thứ tự thời gian của giao dịch để gắn vào một timestamp hash trong chuỗi giao dịch.
(3) Sau đó các giao dịch này sẽ được truyền đến các verifier để tái thực thi (xác nhận) và tạo trạng thái giao dịch. Nhờ vào PoH, quá trình xác nhận này sẽ được thực thi đa luồng, với tốc độ rất nhanh so với các PoS blockchain khác. Sau khi xác nhận thành công, verifier thông báo lại cho leader để đạt được sự đồng thuận. Solana sử dụng Tower Byzantine để đạt được sự đồng thuận giữa các node (verifier và leader).
Tower Byzantine (Tower Byzantine fault tolerance - BFT) là một phiên bản được Solana tối ưu hóa từ giao thức chịu lỗi Byzantine thực tế (practical Byzantine fault tolerance - pBFT), nhằm thực hiện quá trình đồng thuận hiệu quả trong kiến trúc PoH.
2.3. Lợi ích của Proof of History
Proof of History (POH) là một cơ chế trong Solana giúp đồng bộ hóa thời gian và tạo ra một chuỗi thời gian khái quát. Nó mang lại nhiều lợi ích cho hệ thống:
Tính tin cậy: POH tạo ra một chuỗi thời gian khái quát, trong đó mỗi sự kiện được gắn kết với một dấu thời gian chính xác. Điều này đảm bảo rằng bất kỳ ai trong mạng đều có thể xem xét và xác minh chuỗi thời gian POH mà không cần phụ thuộc vào bất kỳ thành phần nào khác.
Tiết kiệm tài nguyên: PoH tiết kiệm tài nguyên tính toán bằng cách sử dụng một quy tắc đơn giản về hàm băm dựa trên các dữ liệu trước đó. Điều này giúp giảm đáng kể việc sử dụng tài nguyên so với các phương pháp khác để xác thực giao dịch.
Khả năng mở rộng: Việc tạo và xác thực chuỗi thời gian PoH có thể được thực thị song song trên nhiều máy tính khác nhau. Điều này giúp cho Solana có khả năng mở rộng theo chiều ngang, phù hợp với các ứng dụng yêu cầu về tốc độ và khả năng mở rộng lớn.
3. Một số cải tiến nổi bậc khác
Bạn đọc có thể tham khảo loạt bài viết của tác giả Anatoly Yakovenko (kỹ sư khoa học máy tính, đồng sáng lập Solana) về 8 cải tiến quan trọng của blockchain Solana tại đây:
https://medium.com/solana-labs/proof-of-history-a-clock-for-blockchain-cf47a61a9274
8 cải tiến này bao gồm:
Proof of History (POH) - a clock before consensus;
Tower BFT - a PoH-optimized version of PBFT;
Turbine - a block propagation protocol;
Gulf Stream - Mempool-less transaction forwarding protocol;
Sealevel - Parallel smart contracts run-time;
Pipelining - a Transaction Processing Unit for validation optimization;
Cloudbreak - Horizontally-Scaled Accounts Database;
Archivers - Distributed ledger store.
Ở phần 2 của bài viết này, chúng ta đã tìm hiểu về PoH và Tower BFT. Ở phần 3, chúng ta sẽ tìm hiểu sơ lược về 6 mảnh ghép còn lại tạo nên blockchain Solana.
3.1. Turbine - Giao thức luân chuyển block
Turbine là giao thức truyền tải khối của Solana, nó cho phép Solana truyền tải khối nhanh chóng và hiệu quả giữa các nút mạng trong mạng lưới. Giao thức này sử dụng mô hình phân tán để phân phối các khối và sử dụng cơ chế chứng thực để đảm bảo tính toàn vẹn của dữ liệu.
Với Turbine, Solana giải quyết vấn đề truyền tải khối một cách hiệu quả. Giao thức này sử dụng các công nghệ như Forward Error Correction (FEC) và Proof of History (PoH) để tối ưu hóa quá trình truyền tải khối. Turbine giúp giảm thiểu thời gian truyền tải, đồng thời tăng tốc độ xác nhận giao dịch trên mạng lưới Solana.
Turbine đóng vai trò quan trọng trong việc nâng cao khả năng mở rộng của Solana. Giao thức này giúp tăng tốc quá trình xác nhận giao dịch và đồng bộ hóa mạng lưới, đồng thời giảm thiểu rủi ro về truyền tải và tăng cường tính toàn vẹn của dữ liệu.
3.2. Gulf Stream - Giao thức chuyển tiếp Transaction không dùng Mempool
Gulf Stream là một giao thức mới trên Solana, được thiết kế để chuyển giao dịch tới các node trong mạng mà không cần sử dụng mempool.
* Mempool, hay memory pool, là một vùng nhớ tạm thời để lưu trữ các giao dịch chưa được đóng gói vào khối. Nó được sử dụng bởi Bitcoin, Ethereum và một số blockchain khác.
Do leader node đã được biết từ trước, transaction từ người dùng sẽ gửi thẳng tới leader nhờ Gulf Stream. Cụ thể là như sau: các giao dịch sớm nhất sẽ được đưa cho leader node, các giao dịch trễ hơn sẽ rơi vào các validators sắp được chọn là leader node. Thứ tự leader node đã được định sẵn nên việc này trở nên dễ dàng hơn.
Gulf Stream giúp loại bỏ mempool, nhờ vậy mà giảm tải cho các node và tăng tốc độ giao dịch trên Solana. Bởi vì mỗi nodes trong hệ thống sử dụng mempool sẽ phải tải toàn bộ dữ liệu về mempool rồi mới chọn transaction để xác minh giao dịch.
3.3. Sealevel - Trình thực thi song song smart contract
Sealevel là một thành phần quan trọng trong kiến trúc của Solana, cho phép xử lý hàng ngàn hợp đồng thông minh cùng một lúc mà không gây tắc nghẽn hoặc giảm hiệu suất của mạng. Công nghệ này giúp Solana đạt được khả năng mở rộng ngang hàng (horizontal scalability) cho việc xử lý hợp đồng thông minh, mở ra tiềm năng lớn cho các ứng dụng phức tạp trên nền tảng Solana.
Trong Solana, Sealevel là môi trường thực thi cho các hợp đồng thông minh. Nó sử dụng một cơ chế đa luồng (multithreading) để thực hiện các hợp đồng thông minh song song trên nhiều nhân CPU. Điều này cho phép Solana xử lý hàng ngàn hợp đồng thông minh cùng một lúc mà không gây gián đoạn hoặc ảnh hưởng đến hiệu suất chung của mạng.
Một điểm đặc biệt của Sealevel là khả năng chia sẻ dữ liệu trong quá trình thực thi. Các hợp đồng thông minh có thể truy cập vào cùng một bộ nhớ chia sẻ (shared memory), giúp tăng tốc độ truy xuất dữ liệu và tương tác giữa các hợp đồng. Đồng thời, Sealevel cũng hỗ trợ việc xử lý các giao dịch liên quan đến nhiều hợp đồng thông minh cùng một lúc, tạo điều kiện thuận lợi cho các ứng dụng phức tạp có sự tương tác phức tạp giữa các hợp đồng.
Sự mở rộng ngang hàng trong việc xử lý hợp đồng thông minh mang lại khả năng mở rộng toàn diện cho các ứng dụng trên Solana, đồng thời tăng cường hiệu suất và tốc độ xử lý của mạng. Sealevel đóng vai trò quan trọng trong việc định hình Solana như một nền tảng blockchain đa năng và mạnh mẽ cho các ứng dụng phức tạp và quy mô lớn.
3.4. Pipelining - Cơ chế tối ưu hóa quá trình xác thực giao dịch
Pipelining là một cách tiếp cận mới để xử lý giao dịch trên Solana, tăng cường hiệu suất và khả năng mở rộng của mạng lưới. Bằng cách sử dụng Transaction Processing Unit (TPU), Solana có thể thực hiện hàng ngàn giao dịch mỗi giây, mở ra tiềm năng cho các ứng dụng blockchain phức tạp.
Pipelining trong Solana tập trung vào việc chia nhỏ quá trình xử lý giao dịch thành các giai đoạn nhỏ gọi là "stages". Mỗi stage thực hiện một công việc cụ thể như xác thực giao dịch, tính toán chữ ký số, xác minh các ràng buộc và ghi dữ liệu vào khối. Các giai đoạn này được xếp hàng và thực hiện song song, giúp tăng tốc quá trình xử lý.
Một điểm đặc biệt của Pipelining là sự tối ưu hóa cho việc xử lý đa luồng (parallel processing). Bằng cách sử dụng nhiều bộ xử lý đồng thời, Solana có thể xử lý nhiều giao dịch cùng một lúc, đồng bộ và song song. Điều này giúp nâng cao khả năng mở rộng của mạng lưới và đáp ứng yêu cầu của các ứng dụng phức tạp trên blockchain.
Pipelining cung cấp một cơ chế mạnh mẽ để xử lý giao dịch trên Solana. Với việc chia nhỏ và thực hiện song song các giai đoạn xử lý, Solana đạt được hiệu suất cao và khả năng mở rộng đáng kinh ngạc.
3.5. Cloudbreak - Cơ sở dữ liệu mở rộng theo chiều ngang
Cloudbreak giải quyết vấn đề về lưu trữ và xử lý trạng thái hiệu quả trong một môi trường blockchain quy mô lớn. Với Solana, Cloudbreak cho phép chia nhỏ trạng thái toàn cục thành các đơn vị nhỏ hơn được gọi là "chunk" và phân tán chúng trên nhiều nút mạng. Điều này giúp tăng cường khả năng mở rộng ngang hàng của Solana và cho phép xử lý trạng thái một cách song song trên nhiều nút mạng, giảm đáng kể thời gian phản hồi và tăng tốc độ xử lý.
Mô hình Cloudbreak được xây dựng dựa trên một hệ thống lưu trữ có cấu trúc phân tán, nơi các chunk được phân bố trên nhiều nút mạng. Điều này cho phép mạng Solana mở rộng lưu trữ trạng thái theo nhu cầu và duy trì hiệu suất cao ngay cả khi có hàng triệu tài khoản và nhiều giao dịch được thực hiện đồng thời. Mỗi chunk được xử lý và xác minh bởi một tập hợp các validator đồng thời, đảm bảo tính toàn vẹn và an toàn của dữ liệu.
Cloudbreak cũng cung cấp cơ chế cập nhật trạng thái một cách hiệu quả. Thay vì cập nhật trạng thái toàn cục, Solana sử dụng các phiên bản trạng thái (state versioning) để ghi lại các thay đổi. Điều này cho phép các phiên bản trạng thái chỉ được cập nhật trong các chunk tương ứng, giúp giảm bớt tài nguyên và thời gian cần thiết cho việc cập nhật trạng thái.
Tổng kết lại, Cloudbreak là một thành phần quan trọng trong kiến trúc của Solana, mang lại khả năng mở rộng ngang hàng cho việc lưu trữ và xử lý trạng thái trên mạng blockchain. Với Cloudbreak, Solana có thể xử lý các ứng dụng quy mô lớn với hiệu suất cao, thời gian phản hồi nhanh và khả năng mở rộng linh hoạt.
3.6. Archivers - Lưu trữ sổ cái phân tán
Archivers là những node đặc biệt trong mạng Solana, chịu trách nhiệm lưu trữ toàn bộ lịch sử giao dịch và trạng thái của blockchain Solana. Chúng giúp duy trì tính toàn vẹn của dữ liệu và đảm bảo rằng mọi nút trong mạng có thể truy cập và đồng bộ hóa thông tin một cách hiệu quả.
Solana sử dụng một mô hình lưu trữ có cấu trúc phân tán và ghi lại dữ liệu trên nhiều nút Archiver trên khắp mạng. Mỗi Archiver lưu trữ một phần của dữ liệu và chịu trách nhiệm xác minh và ghi nhận các giao dịch trên mạng Solana. Điều này giúp phân tán tải công việc và tăng khả năng mở rộng của mạng.
Một đặc điểm quan trọng của Archivers là khả năng nén dữ liệu và lưu trữ một cách hiệu quả. Solana sử dụng các thuật toán nén mạnh mẽ để giảm kích thước dữ liệu lưu trữ và tối ưu hóa việc truy cập và truy vấn dữ liệu. Điều này giúp giảm băng thông mạng và tăng tốc độ đồng bộ hóa dữ liệu trên mạng Solana.
Với sự kết hợp của Archivers và các thành phần khác trong hệ thống Solana, mạng blockchain này có thể đạt được khả năng lưu trữ và xử lý quy mô lớn với hiệu suất cao và khả năng mở rộng. Archivers đóng vai trò quan trọng trong việc duy trì tính toàn vẹn và sẵn sàng sử dụng dữ liệu trên mạng Solana, đồng thời giúp tăng cường bảo mật và sự tin cậy của hệ thống.
4. Sự khác biệt giữa Solana program và Ethereum smart contract
* Program là cách gọi các chương trình hợp đồng thông minh trên Solana
4.1. Ngôn ngữ lập trình Rust trong Solana
a. Giới thiệu Rust và lợi ích của nó trong việc phát triển trên Solana
Rust là một ngôn ngữ lập trình tổng quát được phát triển bởi Mozilla, nổi tiếng với hiệu suất cao và tính bảo mật mạnh mẽ. Sự lựa chọn Rust trong phát triển Solana mang lại nhiều lợi ích đáng kể.
Một trong những lợi ích lớn nhất của Rust là tính bảo mật. Với các tính năng an toàn như quản lý bộ nhớ tĩnh và kiểm tra biên dịch tĩnh, Rust giúp tránh được các lỗi phổ biến như tràn bộ nhớ, xung đột dữ liệu và lỗ hổng bảo mật. Việc có một hệ sinh thái lập trình bảo mật giúp Solana đạt được tính ổn định và đáng tin cậy trong quá trình xử lý giao dịch.
Rust cũng được biết đến với hiệu suất cao. Ngôn ngữ này tối ưu hóa mạnh mẽ cho việc sử dụng tài nguyên hệ thống và khả năng xử lý đa luồng. Điều này cho phép Solana thực hiện xử lý hàng ngàn giao dịch mỗi giây mà vẫn đảm bảo tính nhất quán và đồng thuận trên mạng.
b. So sánh Rust với ngôn ngữ Solidity của Ethereum
Rust và Solidity là hai ngôn ngữ lập trình phổ biến trong việc phát triển blockchain. Mỗi ngôn ngữ có những ưu điểm và đặc điểm riêng.
Rust là một ngôn ngữ lập trình tổng quát, trong khi Solidity là ngôn ngữ đặc thù cho việc viết hợp đồng thông minh trên Ethereum. Rust cung cấp cú pháp rõ ràng và mạnh mẽ, với kiểm tra biên dịch tĩnh và quản lý bộ nhớ an toàn. Điều này giúp phát hiện lỗi sớm và tạo ra các ứng dụng có tính bảo mật cao trên Solana. Rust cũng được biết đến với hiệu suất cao, ngôn ngữ này tối ưu hóa mạnh mẽ cho việc sử dụng tài nguyên hệ thống và khả năng xử lý đa luồng.
Solidity là một ngôn ngữ lập trình hướng đối tượng, dựa trên cú pháp của JavaScript. Điều này giúp lập trình viên có thể dễ dàng chuyển từ việc phát triển ứng dụng web truyền thống sang việc xây dựng hợp đồng thông minh trên Ethereum. Solidity hỗ trợ nhiều tính năng phức tạp, như khả năng xử lý sự kiện, thừa kế và giao tiếp với các hợp đồng khác. Ngoài ra, Ethereum có một hệ sinh thái phát triển hợp đồng thông minh phong phú, với nhiều thư viện và công cụ hỗ trợ, như Truffle và Remix.
Tuy nhiên, khi so sánh Rust và Solidity, Rust nổi bật với tính bảo mật, hiệu suất và khả năng mở rộng. Với Rust, Solana có thể xây dựng ứng dụng blockchain mạnh mẽ và đáng tin cậy, vượt qua được một số hạn chế về hiệu suất và bảo mật mà Solidity có thể gặp phải.
4.2. So sánh kiến trúc hợp đồng thông minh của Solana và Ethereum
Solana và Ethereum đều là hai nền tảng blockchain hàng đầu trong việc phát triển hợp đồng thông minh. Tuy hai nền tảng này có mục tiêu chung là hỗ trợ việc tạo và triển khai hợp đồng thông minh, nhưng có những khác biệt quan trọng về kiến trúc và cách thức hoạt động.
Kiến trúc xử lý hợp đồng thông minh của Ethereum
Ethereum sử dụng ngôn ngữ lập trình Solidity để viết các hợp đồng thông minh. Hợp đồng thông minh trên Ethereum được triển khai và thực thi trên Ethereum Virtual Machine (EVM), một môi trường ảo chạy trên các nút của mạng Ethereum. Mỗi hợp đồng thông minh trên Ethereum có địa chỉ duy nhất và có thể giao tiếp với các hợp đồng khác thông qua các giao thức và cơ chế của Ethereum.
Ví dụ minh họa: Xét ví dụ một hợp đồng thông minh đơn giản trên Ethereum để gửi và nhận tiền. Sử dụng ngôn ngữ Solidity, lập trình viên có thể viết các hàm để thực hiện chức năng gửi và nhận tiền, kiểm tra số dư và xác minh chữ ký. Hợp đồng được triển khai trên Ethereum và có thể được gọi từ các ứng dụng hoặc các hợp đồng khác thông qua địa chỉ của nó.
Kiến trúc hợp đồng thông minh của Solana
Solana sử dụng ngôn ngữ lập trình Rust để viết các hợp đồng thông minh. Tuy nhiên, Solana không sử dụng một máy ảo riêng như Ethereum. Thay vào đó, Solana sử dụng một kiến trúc đa luồng và lưới máy tính phân tán để xử lý các giao dịch và hợp đồng thông minh.
Ví dụ minh họa: Xét ví dụ một hợp đồng thông minh đơn giản trên Solana để gửi và nhận tiền. Sử dụng ngôn ngữ Rust, lập trình viên có thể viết mã để xác minh chữ ký và thực hiện các thao tác chuyển tiền. Hợp đồng thông minh được triển khai trên Solana và sẽ được gửi tới mạng để xử lý. Quá trình xử lý này sẽ được thực hiện song song trên nhiều nút trong mạng Solana, tận dụng sức mạnh tính toán và mạng lưới phân tán.
Tóm lại, Ethereum và Solana có kiến trúc và cách thức hoạt động khác nhau cho việc phát triển hợp đồng thông minh. Lập trình viên cần hiểu rõ kiến trúc của mỗi nền tảng để lựa chọn phù hợp cho dự án của mình. Trong khi Ethereum có môi trường EVM và sử dụng ngôn ngữ Solidity, Solana sử dụng Rust và kiến trúc đa luồng. Việc lựa chọn phụ thuộc vào yêu cầu cụ thể của ứng dụng và mục tiêu phát triển.