Solana là gì?

Solana là một blockchain được phát triển bởi Solana Labs, tên cũ là Loom. Open Source. Solana được hứa hẹn sẽ là một mạng lưới nhanh, an toàn, phi tập trung và scalable (có khả năng mở rộng). Bài viết này sẽ đề cập và giải thích công nghệ của Solana và một vài vấn đề nổi trội mà Solana đang gặp phải.

Hình thành

Trước khi đi vào giải thích về công nghệ thì hãy xem qua về background của những người đứng đầu trong Solana Labs.

Whitepaper của Solana được published năm 2017 bởi Anatoly Yakovenko, kỹ sư thiết kế các Distributed System (hệ thống phân tán) và thuật toán nén của Qualcomm. Sau đó ông làm cho Dropbox.

Anatoly Yakovenko

Bản Whitepaper này tập trung giải thích và mô tả về Proof-of-History, một giao thức để sắp xếp thứ tự giao dịch một cách tự động và nhanh chóng. Anatoly cùng với Greg Fitzgerald (cùng làm ở Qualcomm) đã cùng nhau chạy testnet cho Solana vào tháng 02 năm 2018. Greg sau này trở thành CTO của Solana Labs.

Solana Labs, công ty đứng sau sự phát triển của Solana Blockchain, trước đây có tên gọi là Loom đã được thành lập trong năm 2018 bởi Anatoly, Greg và Stephen Akridge.

Solana Labs gọi dc $20 triệu đô la tại vòng Seria A, dẫn đầu bởi Multichain vào 2019 và gọi public thông qua Coinlist Platform thêm $1.76 triệu đô la. Beta Mainnet của Solana khởi chạy vào tháng 03 năm 2020 ngay thời điểm Covid-crash.

Hiện nay, Solana Labs vẫn là tổ chức phát triển chính của Solana Blockchain, cùng với Solana Foundation, tổ chức phi lợi nhuận ở Zug, vai trò của Solana Foundation và Solana Labs đối với Solana có thể hiểu là giống như Ethereum Foundation và Consensys đối với Ethereum.

Đặc điểm chính của Solana

Để hiểu hơn về cách Solana vận hành thì chúng ta sẽ nhìn vào 8 công nghệ cốt lõi của Solana.

Proof of History (PoH) — Một chiếc đồng hồ phi tập trung

Dù tên của công nghệ này nghe rất giống cơ chế đồng thuân nào đó mà chúng ta hay nghe từ những blockchain khác nhưng thực chất đây là một dạng đồng hồ được các nodes trong mạng lưới của Solana sử dụng chung để có thể thống nhất được thời gian diễn ra sự kiện (transactions).

Cụ thể các transaction sẽ được mã hóa (hashed) kèm theo thông tin về thời gian và thứ tự của nó do đó việc sắp xếp thứ tự giao dịch thực hiện bởi các nodes sẽ nhanh hơn do không cần tốn thời gian check lại thứ tự cũ của các transactions, từ đó có thể xác minh giao dịch nhanh hơn, dẫn đến tiết kiệm chi phí tính toán hơn.

Tower Byzantine Fault Tolerance (BFT)

Tower BFT là biến thể của practical Byzantine Fault Tolerance (pBFT), được tối ưu cho Proof-of-History. pBFT là cơ chế đồng thuận mà trong đó đòi hỏi có ít nhất 2/3 nodes trong network thực hiện đúng với chức năng và không cố tình đưa giao dịch sai và 1/3 còn lại trong trường hợp bị lỗi hoặc không trung thực thì network cũng sẽ giữ được sự đồng thuận và tiếp tục.

Để đạt được điều này thì các nodes phải liên tục giao tiếp và chứng minh cho nhau là mình trung thực (check với hash cũ của chain và so sánh giữa các nodes gần nhau). Điều này dẫn tới tốc độ xác minh giao dịch sẽ lâu. Tower BFT khắc phục điều này nhờ vào Proof-of-History. Các giao dịch đã được xắp sếp trật tự cho nên các nodes không cần giao tiếp và kiểm tra lẫn nhau mà có thể dễ dàng đạt được đồng thuận.

Gulf Stream — Hệ thống chuyển tiếp Transaction không dùng Mempool của Solana.

Do Node Leader đã được biết từ trước, transactions từ users sẽ gửi thẳng tới validators sắp được chọn nodes leaders nhờ Gulf Stream. Cụ thể sẽ là như sau:

Thứ tự giao dịch đã được biết từ trước nhờ Proof-of-History nên các giao dịch sớm nhất sẽ được đưa cho node leader, các giao dịch trễ hơn sẽ rơi vào các validators sắp được chọn là node leaders. Thứ tự node leader đã được định sẵn nên việc này trở nên dễ dàng hơn.

Gulf Streams giúp loại bỏ mempool, một hệ thống hàng chờ mà ETH và BTC chọn dùng. Nhờ vậy mà giảm tải cho các node và tăng tốc độ giao dịch vì mỗi nodes trong hệ thống ETH 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.

Turbine — Giao thức để luân chuyển block

Thuật toán của Turbine cho phép data của một block được tách thành nhiều mảnh nhỏ, như cách mà Filecoin hay Bittorrent sử dụng (Erasure encoding) , điều này cho phép data của một block được chuyển tới các validators nhanh hơn, cải thiện tốc độ truyền tải dẫn tới Finality nhanh hơn rất nhiều.

Sealevel — Parallel Smart Contracts Run-time

Sealevel là một Engine cải tiến trong việc xử lý các transactions một cách song song giúp cho Solana có thể scale horizontally. Với Sealevel, các công việc tính toán gần như sẽ được xử lý ở cấp độ máy tính nhờ Berkeley Packet Filter (một dạng filter phổ biến giúp tăng tốc độ xử lý của máy tính). Do đó, điểm mạnh của Sealevel là khi hardware của các nodes được nâng cấp (GPUs, SSDs) thì tốc độ xử lý hàng ngang cũng từ đó mà tăng lên. Khác với Virtual Machine của ETH (EVM), máy ảo của ETH chỉ cho phép tính toán Single-threaded thì Solana thật sự có cải tiến về khả năng tính toán.

Pipeline — A transaction processing unit for validation optimization

Có thể hiểu Pipeline là hệ thống phân phối dữ liệu của Solana. Việc gửi dữ liệu của các block đi các nodes sẽ được định sẵn nhờ vào Pipeline, việc này giúp cho tăng tốc độ xác minh giao dịch của các nodes. Các nodes nhận được data nhanh hơn nên sẽ xác minh nhanh hơn.

Cloudbreak — Horizontally-scaled accounts database

Cloudbreak là một dạng cấu trúc dữ liệu để gia tăng tính mở rộng của Solana. Nó giúp cơ cấu lại cơ sở dữ liệu của accounts một cách hợp lý và phù hợp với các cấu trúc khác của Solana. Cloudbreak kết hợp với thiết kế Proof-of-History của mỗi giao dịch, giúp cho các validators khi cần có thể truy xuất state (trạng thái) của các accounts (các địa chỉ ví) một cách nhanh chóng, thậm chí là trước khi giao dịch được mã hóa và đưa vào block.

Archivers — Distributed ledger storage

Solana cũng có một hệ thống lưu trữ lại toàn bộ blocks của chain gọi là Archivers. Archiver nodes có thể hiểu là những máy tính đóng vai trò lưu trữ lại thông tin về các giao dịch đã được đóng block của chain. Những lịch sử giao dịch của chain và trạng thái hiện giờ sẽ được tách nhỏ và erasure encoded (đọc bài Decentralized Storage). Mỗi 1 archivers sẽ lưu trữ 1 phần nhỏ của lịch sử giao dịch. Solana dùng Proofs of Replicatio,mượn của filecoin và Proof-of-History (PoH) để buộc các Archiver nodes phải chứng minh mình có lưu trữ data. Hệ thống Archiver này, hiện nay chỉ thực hiện duy nhất một chức năng đó là lưu trữ data của chain nên không phải là sản phẩm cạnh tranh với các Decentralized Storages khác như Filecoin, Arweave, Swarm,..

Điểm mạnh và các vấn đề.

Hình bên dưới diễn tả lại transaction flow của Solana. Nhờ vào Proof-of-History nên các leader đã được sắp xếp sẵn để tạo block và các transactions cũng đã có sẵn thứ tự của mình, việc này tránh việc các validators tranh đóng block trước leader của mình (Proof-of-History sẽ bị incorrect). Transaction sẽ được gửi tới nhờ Gulf Stream qua leader và các validators, lúc này Sealevel sẽ thu thập trạng thái của network nhờ vào Cloudbreak rồi tính toán để đưa ra trạng thái mới. Leaders có nhiệm vụ sẽ tạo ra block mới và đưa trạng thái mới này vào block. Block sẽ được gửi đi tới các validators còn lại nhờ Turbine và Hệ thông Pipeline (tăng tốc độ luân chuyển block). Các validators sẽ xác minh block đó xem có giao dịch gian lận hay không. Khi có được đồng thuận giữa các validators thì giao dịch chính thức không thể đảo ngược và trở thành một phần của chain.

Solana với những cải tiến nói trên có thể nói là một trong những Chain có nhiều innovation nhất trong thiết kế cấu trúc. Nhìn vào thiết kế có thể thấy team Solana đang cố gắng gia tăng trải nghiệm người dùng nhất có thể và đang là một trong những blockchain có tốc độ xác minh giao dịch cao nhất và rẻ nhất.

Network hiện giờ có 1819 validators và Nakamoto Coefficient hiện giờ là 30. Có thể hiểu là để tấn công mạng lưới của Solana hay thay đổi cấu trúc của blockchain thì cần 30 cá thể. Con số này có thể tăng lên trong tương lai để tăng tính bảo mật của Solana và tăng tính phân quyền. Tuy nhiên Solana cũng có những vấn đề cần phải giải quyết:

  • Network Halting: Network Halting hay outage có thể hiểu là khi các validator dừng sản xuất block vì một lý do gì đó. Solana đã trải qua vấn đề này khoảng 7 lần kể từ khi bắt đầu. Nguyên nhân cốt lõi của việc này có thể hiểu là do cơ chế đồng thuận và thiết kế của Solana. Khi mà chỉ có 1 leader được phép tạo ra block, điều này dễ dẫn tới không đạt được đồng thuận giữa các validators, đặt biệt là khi có bug trong software của các validators. Việc này không ảnh hưởng tới decentralization, immutability của Solana nhưng sẽ anh hưởng tới UX. Việc này có thể khắc phục được trong tương lai nhờ vào nâng cấp phần mềm của các validators.
  • Economically Unsustainable: Để một mạng lưới có thể tồn tại bền vững lâu dài thì sẽ cần có incentives cho các tác nhân đóng góp vào. Hiện nay, incentive cho các Stakers đến chủ yếu là từ việc lạm phát token. Lạm phát hiện nay đang ở mức 7.75% 1 năm và sẽ giảm dần về 1.5% vào năm 2030. Để giải quyết vấn đề về incentive thì phí giao dịch mà mạng lưới thu về (1 phần phí sẽ được đốt) sẽ phải gia tăng lên rất nhiều đồng nghĩa hoạt động kinh tế trên Solana phải tăng theo cấp số nhân. Đây sẽ là câu hỏi lớn cho những năm tiếp theo nhất là với tình hình downtrend như hiện nay. May mắn là Solana có sự tăng trưởng rất mạnh vào năm 2020-2021 cho nên dù mùa đông của Crypto rất khắc nghiệt nhưng incentive cho các stakers vẫn rất cao.
  • Performance Improvement: Mặc dù đã và đang là một chain rẻ và nhanh nhất Crypto nhưng để có thể gia tăng user activity trên chain thì Solana phải cải thiện performance của mình hơn nữa. Việc này có thể thực hiện thông qua sử dụng Modular Blockchain System giống Ethereum, build thêm các Layer 2. Tối ưu hóa cơ chế đồng thuận của mình. Đặc điểm của Solana chính là việc network có thể scale dựa trên hardware, khi hardware phát triển hơn thì tốc độ xử lý của Solana từ đó có thể cũng tăng theo.