EnglishBahasa IndonesiaTiếng Việt한국어日本語
Mua XLM

Soroban, cỗ máy hợp đồng thông minh của Stellar

Đúng vậy, Stellar có hợp đồng thông minh. Đây là cách Soroban hoạt động, tốn bao nhiêu và khác EVM ở đâu.

Nền tảng có giấy phép & đăng kýThẻ & chuyển khoản ngân hàngHoạt động từ 2013
lib.rs · SorobanRUST

Rút gọn từ ví dụ Hello World chính thức trong tài liệu dành cho nhà phát triển Stellar. Lệnh gọi chỉ được mô phỏng trong trình duyệt của bạn, không gửi lên mạng.

Trong trang này
  1. Stellar có hợp đồng thông minh không? Đôi nét lịch sử
  2. Soroban hoạt động thế nào: Rust, WebAssembly và host
  3. Phí Soroban và mô hình tài nguyên
  4. State archival: trả tiền thuê cho dữ liệu trên chuỗi
  5. Stellar Asset Contract: tài sản gốc gặp hợp đồng
  6. Soroban và EVM khác nhau thế nào
  7. Các bản nâng cấp giao thức từ khi ra mắt, tới P29 và cuộc bỏ phiếu Bell
  8. Công cụ phát triển và nguồn tài trợ
  9. Bài học bảo mật: sự cố oracle YieldBlox
  10. Cộng đồng xây dựng Soroban ở châu Á

Stellar có hợp đồng thông minh không? Có. Soroban là nền tảng hợp đồng thông minh của Stellar, chạy trên mainnet kể từ khi Protocol 20 được bỏ phiếu thông qua ngày 20/2/2024. Nó mở hoàn toàn cho người dùng từ 19/3/2024 (các phiên bản phần mềm của SDF). Lập trình viên viết hợp đồng bằng Rust, biên dịch sang WebAssembly (Wasm) và triển khai lên chính mạng Stellar vốn đã xử lý thanh toán từ năm 2014. Soroban không phải chuỗi riêng hay sidechain.

Điều thú vị ở Soroban không phải chuyện nó tồn tại (hầu hết layer-1 giờ đều có hợp đồng) mà là các lựa chọn thiết kế phía sau. Phí được tính theo từng loại tài nguyên chứ không gom thành một con số “gas”. Dữ liệu lưu trữ phải trả tiền thuê và có thể bị archive. Hợp đồng không thể bị gọi lại lồng nhau (re-entry). Tài sản gốc cắm thẳng vào mà không cần bọc (wrap). Bài này lần lượt giải thích hợp đồng thông minh Stellar vận hành thế nào, tốn bao nhiêu, khác EVM của Ethereum ra sao, và dev ở châu Á có thể tận dụng được gì.

20/2/2024
Bỏ phiếu đưa Soroban (Protocol 20) lên mainnet
nguồn ↗
Rust → Wasm
Ngôn ngữ và môi trường chạy hợp đồng
nguồn ↗
2.000
Giao dịch hợp đồng thông minh tối đa mỗi ledger
nguồn ↗
P29
Giao thức mainnet ở lần kiểm tra gần nhất
nguồn ↗

Stellar có hợp đồng thông minh không? Đôi nét lịch sử

Phần lớn thời gian tồn tại, Stellar cố ý không có hợp đồng đa năng. Giao thức có sẵn sổ lệnh, đa chữ ký, path payment, claimable balance và, từ năm 2021, các pool AMM gốc. Bấy nhiêu đủ cho thanh toán và giao dịch đơn giản, nhưng không ai triển khai được logic tùy biến như một thị trường cho vay.

Soroban thay đổi điều đó. Năm 2022, SDF công bố Quỹ thúc đẩy Soroban (Soroban Adoption Fund) trị giá 100 triệu USD để gieo mầm hệ sinh thái, và mã nguồn chạy suốt năm 2023 trên testnet và Futurenet. Protocol 20 lên mainnet ngày 20/2/2024, sau ba tuần trì hoãn để sửa lỗi. SDF sau đó mở theo từng giai đoạn: Phase 0 ngày 20/2, Phase 1 ngày 27/2 và Phase 2, mở mạng cho mọi người dùng, ngày 19/3/2024 (SDF về lộ trình mở theo giai đoạn). Nếu bạn đọc thấy “Soroban ra mắt năm 2023”, đó là nói về mạng thử nghiệm chứ không phải mainnet.

Một lưu ý về tên gọi: các tài liệu mới của SDF ngày càng chỉ gọi là “hợp đồng thông minh Stellar”, và Soroban-RPC đã đổi tên thành Stellar RPC năm 2024. Cái tên Soroban vẫn sống trong crate Rust soroban-sdk và trong câu chuyện hằng ngày của dev, nên hai cách gọi chỉ cùng một thứ.

Soroban hoạt động thế nào: Rust, WebAssembly và host

Một hợp đồng Soroban là một chương trình Rust nhỏ được biên dịch sang Wasm. Trang tổng quan của SDF nói thẳng rằng hiện chỉ hỗ trợ Rust, và hợp đồng không dùng được thư viện chuẩn đầy đủ của Rust. Thay vào đó, chúng xây trên crate soroban-sdk (tổng quan hợp đồng thông minh). Widget phía trên cho thấy hình hài của một hợp đồng tối giản: một struct, một khối impl gắn #[contractimpl], và một hàm nhận handle môi trường cùng các tham số.

Mã Wasm chạy bên trong một “host” tích hợp sẵn trong Stellar Core. Host cung cấp lưu trữ, mật mã, sự kiện, gọi chéo hợp đồng và phân quyền, nhờ vậy hợp đồng gọn nhẹ còn phần việc nặng chạy bằng mã gốc. Để gọi hợp đồng, bạn gửi một giao dịch chứa InvokeHostFunctionOp. Giao dịch hợp đồng thông minh chỉ chứa đúng một thao tác, trong khi giao dịch cổ điển gom được tới 100 thao tác.

Kiểm thử là điểm mạnh. SDK đi kèm một bản host chạy cục bộ khớp với môi trường trên chuỗi, nên bạn có thể debug trong IDE quen thuộc và chạy unit test, fuzz test, property test trước khi đụng tới testnet. Phân quyền cũng có sẵn. Một hàm gọi require_auth() trên một địa chỉ, và host kiểm tra chữ ký tương ứng. Cơ chế này hoạt động với tài khoản thông thường và, từ khi Protocol 21 hỗ trợ secp256r1, với cả ví thông minh dùng passkey.

Màn hình chính điện thoại đầy biểu tượng ứng dụng, minh họa các ứng dụng có thể xây trên hợp đồng thông minh Stellar
Hợp đồng nằm phía sau ứng dụng; người dùng chủ yếu chỉ thấy lời nhắc ký trong ví.

Phí Soroban và mô hình tài nguyên

Mỗi giao dịch Soroban trả hai khoản: phí đưa vào sổ cái (inclusion fee) và phí tài nguyên (resource fee) (phí, giới hạn tài nguyên và đo lường). Phí đưa vào sổ cái hoạt động như mọi khoản phí Stellar khác. Tối thiểu 100 stroop (0,00001 XLM), và khi ledger đầy, cơ chế surge pricing xếp hạng giao dịch theo mức trả giá. Phí tài nguyên là phần riêng của Soroban, và được liệt kê chi tiết: lệnh CPU, số mục sổ cái được đọc và ghi, số byte I/O, kích thước giao dịch, sự kiện và giá trị trả về, cùng tiền thuê lưu trữ.

Một phần trong đó được hoàn lại. CPU, byte đọc ghi và băng thông bị tính theo mức khai báo. Tiền thuê, sự kiện và giá trị trả về được hoàn nếu không dùng hết. Trên thực tế bạn chẳng bao giờ phải đoán các con số này: bạn mô phỏng giao dịch qua Stellar RPC trước, và kết quả mô phỏng trả về dấu chân tài nguyên cùng mức phí cần gắn kèm.

Quy ra tiền thật thì vẫn rất nhỏ. Ở lần kiểm tra gần nhất, mức phí phổ biến nhất trên mainnet là mức tối thiểu 100 stroop, còn trung vị nằm quanh 0,00035 XLM, bị đẩy lên bởi các lần gọi hợp đồng. Tính đến tháng 7/2026, mỗi ledger chứa được 1.000 thao tác cổ điển và 2.000 giao dịch hợp đồng thông minh. Như mọi khoản phí Stellar, XLM được đưa vào một quỹ phí bị khóa chứ không trả cho validator. Hướng dẫn về phí và tốc độ Stellar so sánh mức này với các mạng khác.

Đồng xu nằm trên các đường mạng phát sáng, tượng trưng cho phí XLM chảy qua mạng hợp đồng thông minh đo theo tài nguyên của Stellar
Mỗi lần gọi hợp đồng được đo theo tài nguyên, rồi thanh toán bằng XLM.

State archival: trả tiền thuê cho dữ liệu trên chuỗi

Ethereum lưu dữ liệu hợp đồng vĩnh viễn một khi ai đó đã trả tiền ghi, và mọi node phải gánh khối dữ liệu đó mãi mãi. Soroban chọn cách khác gọi là state archival (tài liệu SDF). Mỗi mẩu dữ liệu hợp đồng có thời hạn sống (TTL) tính bằng số ledger, và muốn tiếp tục “sống” thì phải trả tiền thuê.

Có ba kiểu lưu trữ. Temporary rẻ nhất và bị xóa vĩnh viễn khi TTL về 0, hợp với những thứ như báo giá hay nonce. Persistent hợp với số dư, và khi hết hạn thì được archive chứ không bị xóa. Instance giữ các thiết lập chung của hợp đồng và dùng chung TTL với chính hợp đồng. Các mục đã archive không thể tạo lại, chỉ có thể khôi phục, nên không ai lén cài được một số dư mới vào chỗ số dư cũ.

Protocol 23 “Whisk” (tháng 9/2025) làm lại cơ chế archival: các mục persistent đã archive mà giao dịch liệt kê trong danh sách khôi phục sẽ tự động quay lại trước khi hợp đồng chạy, và bước mô phỏng tự điền danh sách đó cho bạn. Thiết kế này giữ cho bộ nhớ của validator gọn nhẹ, nhưng giao thêm việc cho dev: gia hạn TTL cho mọi thứ quan trọng, hoặc dự trù chi phí khôi phục.

Stellar Asset Contract: tài sản gốc gặp hợp đồng

Một cái khó mà Soroban tránh được là chuyện bọc token. Trên Ethereum, ETH phải đổi thành WETH thì phần lớn hợp đồng mới dùng được. Trên Stellar, mọi tài sản, kể cả XLM, đều có một Stellar Asset Contract (SAC) dành riêng, triển khai giao diện token chuẩn (SEP-41). Tài liệu SDF viết rằng tài sản và SAC của nó “đại diện cho cùng một tài sản” (tài liệu SAC). Ai cũng triển khai được SAC, và nó đọc ghi đúng các số dư trustline mà ví cổ điển đang dùng.

Ý nghĩa không chỉ dừng ở sự tiện lợi. SAC tôn trọng cờ phê duyệt và thu hồi của đơn vị phát hành, đó là lý do các đơn vị phát hành chịu sự quản lý dám cho token của mình tham gia DeFi mà không mất quyền kiểm soát. Ví dụ, PYUSD của PayPal ra mắt trên Stellar dùng SAC nên tương thích với Soroban ngay từ ngày đầu; hướng dẫn về stablecoin nói kỹ hơn. Trang về token hóa tài sản thực giải thích vì sao lớp tuân thủ này thu hút các nhà quản lý quỹ. Protocol 26 (tháng 5/2026) còn đi xa hơn, cho phép chuyển XLM qua SAC tự động tạo tài khoản người nhận.

Soroban và EVM khác nhau thế nào

Dev quen Ethereum, BNB Chain hay các mạng EVM khác sẽ gặp lại nhiều ý tưởng quen thuộc nhưng với mặc định khác. Bài viết về thiết kế của SDF coi nhiều lựa chọn trong số đó là bài học từ Ethereum, trong đó có một quy tắc dứt khoát: không cho phép hợp đồng bị gọi lại lồng nhau, “Don’t allow contract re-entry” (blog SDF).

Chủ đềSoroban (Stellar)EVM (Ethereum và các mạng khác)
Ngôn ngữ / môi trường chạyRust biên dịch sang WasmChủ yếu Solidity trên bytecode EVM
PhíPhí tài nguyên chi tiết + phí đưa vào sổMột chỉ số gas duy nhất
Lưu trữTTL, tiền thuê và archiveLưu vĩnh viễn sau khi ghi
Re-entrancyHost chặn gọi lại lồng nhauĐược phép; tự chặn trong mã ứng dụng
Coin gốc trong hợp đồngXLM qua SAC, không cần bọcETH thường phải bọc thành WETH
Phê duyệt tokenPhân quyền có sẵn, một giao dịchMô hình approve + transferFrom

Có hai lưu ý. Chặn re-entry loại bỏ được một nhóm lỗi kinh điển, nhưng không khiến hợp đồng mặc nhiên an toàn. Lỗi logic, kiểm soát truy cập kém và vấn đề oracle vẫn còn nguyên. Và không có lớp tương thích EVM, nên mã Solidity phải viết lại. Muốn so sánh rộng hơn giữa Stellar với một đối thủ cùng tập trung vào thanh toán, hãy xem XLM và XRP.

Các bản nâng cấp giao thức từ khi ra mắt, tới P29 và cuộc bỏ phiếu Bell

Validator bỏ phiếu cho các bản nâng cấp, và mỗi bản có hiệu lực ngay khi phiếu bầu thông qua. Từ khi Soroban lên mainnet, nền tảng hợp đồng đã thay đổi rất nhiều:

  • Protocol 21 (tháng 6/2024): xác minh chữ ký secp256r1 cho ví passkey, cùng các tinh chỉnh mô hình chi phí.
  • Protocol 22 (tháng 12/2024): hàm khởi tạo (constructor) cho hợp đồng và mật mã BLS12-381.
  • Protocol 23 “Whisk” (tháng 9/2025): hợp nhất sự kiện, thay đổi state archival và thực thi hợp đồng song song.
  • Protocol 25 “X-Ray” (tháng 1/2026): BN254 và hàm băm Poseidon, nền móng cho bằng chứng không tiết lộ (zero-knowledge).
  • Protocol 26 “Yardstick” (tháng 5/2026): đóng băng các mục sổ cái bị xâm phạm qua đồng thuận validator, phép toán 256-bit có kiểm tra tràn và cải tiến SAC.
  • Protocol 27 “Zipper” và 28 “Adapter” (tháng 7 và tháng 9/2026): ủy quyền xác thực cho tài khoản thông minh, sau đó là executable hợp đồng do bên ngoài quản lý và các hàm sparse map.
  • Protocol 29 (1/10/2026): chỉ vá bảo mật, không có CAP mới.

Tiếp theo là Protocol 30 “Bell”, hiện chưa chạy. Cuộc bỏ phiếu trên mainnet được lên lịch ngày 23/11/2026, và lịch có thể thay đổi. Bell sẽ bổ sung địa chỉ hợp đồng muxed, xác minh chữ ký hậu lượng tử ML-DSA dưới dạng hàm host, và dấu thời gian ledger tính bằng mili giây (hướng dẫn nâng cấp Bell). SDF lưu ý chữ ký tài khoản thông thường vẫn là Ed25519, và bản thân Bell không làm ledger chốt nhanh hơn mức khoảng năm giây.

Hình minh họa tên lửa phóng lên, tượng trưng cho chuỗi nâng cấp giao thức của Stellar từ khi Soroban lên mainnet
Mười phiên bản giao thức, từ P20 tới P29, đều được validator bỏ phiếu thông qua.

Công cụ phát triển và nguồn tài trợ

Bộ công cụ khá gọn. Stellar CLI dùng để build, test, triển khai, gọi hợp đồng và quản lý khóa, mạng. Stellar Lab, công cụ web của SDF, có thể tải lên, triển khai, gọi và mô phỏng hợp đồng trên Mainnet, Testnet và Futurenet mà không cần cài đặt gì trên máy. Stellar RPC là API dữ liệu được khuyến nghị cho người mới xây dựng. SDK phía client có cho JavaScript, Python và nhiều ngôn ngữ khác, còn Stellar Wallets Kit kết nối ứng dụng với các ví Stellar như Varial (trước đây là Freighter), LOBSTR và xBull.

Về bảo mật, SDF ký hợp tác hai năm với OpenZeppelin, kéo dài từ tháng 1/2025 đến tháng 12/2026. Thỏa thuận gồm một thư viện hợp đồng Stellar đã được kiểm toán, 40 tuần-kiểm toán viên và một chương trình bug bounty (thông báo của SDF). Soroban Security Audit Bank của SDF ghép các dự án đủ điều kiện với công ty kiểm toán, dự án chỉ đồng chi trả 5%, và được hoàn lại nếu sửa xong các lỗi mức nghiêm trọng, cao và trung bình trong vòng 20 ngày làm việc.

Nguồn tài trợ chủ yếu đến từ Stellar Community Fund. Nhánh Build cấp tới 150.000 USD bằng XLM cho mỗi dự án, và các khoản Instaward nhỏ hơn được trao qua các chi hội đại sứ địa phương. Thành viên cộng đồng bỏ phiếu chọn dự án nhận tài trợ. Các vòng gần đây mỗi vòng chi khoảng 1,2 đến 2,2 triệu USD. Chẳng hạn SCF #29 đã phân bổ khoảng 2,2 triệu USD cho 39 dự án.

Linh vật gấu trúc ngồi cạnh cây tre
Pan-chan nhắn
Hãy bắt đầu trên testnet với Stellar Lab, mô phỏng mọi lệnh gọi, rồi mới chĩa CLI vào mainnet. XLM testnet miễn phí vẫn hơn một bài học đắt giá.

Bài học bảo mật: sự cố oracle YieldBlox

Bài học đắt nhất của Soroban tới nay không đến từ lỗi trong một hợp đồng lõi. Ngày 22/2/2026, một kẻ tấn công nhắm vào pool cho vay do YieldBlox DAO vận hành trên Blend. Pool này định giá tài sản thế chấp qua oracle Reflector, vốn lấy giá từ một thị trường USTRY/USDC rất mỏng trên DEX của Stellar. Chỉ một giao dịch đã đẩy giá USTRY được báo cáo từ khoảng 1,05 USD lên khoảng 106,73 USD. Kẻ tấn công sau đó vay khoảng 10,2 triệu USD bằng XLM và USDC dựa trên tài sản thế chấp bị thổi phồng (phân tích hậu sự cố của Blockaid).

Khi Blockaid xác định được các ví của kẻ tấn công, các validator Tier-1 phối hợp từ chối giao dịch từ những địa chỉ đó, qua đó “cách ly” khoảng 48,07 triệu XLM (khoảng 7,3 triệu USD). Bản thân Blockaid cũng tham gia xử lý sự cố, nên hãy đọc số liệu của họ với lưu ý đó. Bài học cho người xây dựng là những bài học DeFi kinh điển: đừng bao giờ định giá tài sản thế chấp từ một thị trường mỏng, hãy dùng nguồn giá bình quân theo thời gian hoặc đa nguồn, và giới hạn mức phơi nhiễm với tài sản kém thanh khoản. Hướng dẫn DeFi trên Stellar nhìn sự cố này từ phía người dùng.

Cộng đồng xây dựng Soroban ở châu Á

Hoạt động Soroban đã được xác minh ở châu Á còn khiêm tốn nhưng đang lớn dần. Năm 2026, SDF và nền tảng giáo dục Rise In tổ chức APAC Stellar Hackathon với tổng giải thưởng tới 60.000 USD. Cuộc thi mời các đội khắp Đông Nam Á xây ứng dụng DeFi, thanh toán, ví và cổng nạp rút trên Soroban, có hỗ trợ tại chỗ và vòng chung kết trực tiếp ở Philippines, Việt Nam và Indonesia (BitPinas). Ở mảng tổ chức, Marketnode của Singapore, đơn vị nhận khoản đầu tư chiến lược của SDF vào tháng 10/2026, đang phân phối quỹ token hóa trên Stellar cho nhà đầu tư châu Á - Thái Bình Dương. Trang châu Á của chúng tôi theo dõi mặt pháp lý ở từng thị trường.

Với một dev ở TP.HCM hay Bandung, con đường thực tế cũng như ở bất cứ đâu: học Rust, ra sản phẩm trên testnet, nộp hồ sơ SCF, và kiểm toán trước khi tiền thật đổ vào. Nếu muốn hiểu mạng lưới trước, hãy bắt đầu với bài Stellar Lumens là gì và mở sẵn bảng thuật ngữ Stellar để tra những từ như TTL, SAC hay trustline.

Câu hỏi thường gặp

Stellar có hợp đồng thông minh không?

Có. Nền tảng hợp đồng thông minh của Stellar là Soroban, chạy trên mainnet cùng Protocol 20 từ ngày 20/2/2024 và mở hoàn toàn cho người dùng từ 19/3/2024. Hợp đồng được viết bằng Rust và biên dịch sang WebAssembly. Trước đó, Stellar chỉ có các tính năng tích hợp sẵn như sàn DEX, đa chữ ký (multisig) và claimable balance, chứ chưa có hợp đồng đa năng.

Hợp đồng Soroban viết bằng ngôn ngữ gì?

Rust. Tài liệu của SDF cho biết hiện chỉ hỗ trợ Rust để viết hợp đồng, dùng crate soroban-sdk thay cho thư viện chuẩn đầy đủ của Rust. Các ứng dụng gọi hợp đồng thì có thể dùng SDK phía client bằng JavaScript, Python và nhiều ngôn ngữ khác.

Một giao dịch Soroban tốn bao nhiêu phí?

Một lần gọi hợp đồng trả phí đưa vào sổ cái (tối thiểu 100 stroop, tức 0,00001 XLM) cộng phí tài nguyên cho CPU, đọc ghi sổ cái, kích thước giao dịch, sự kiện và tiền thuê lưu trữ. Ở lần kiểm tra gần nhất, phí trung vị của mọi giao dịch khoảng 0,00035 XLM, bị đẩy lên bởi các lần gọi hợp đồng. Mô phỏng giao dịch trước sẽ cho bạn biết chính xác chi phí; xem thêm hướng dẫn về phí.

State archival trên Stellar là gì?

Dữ liệu hợp đồng trên Stellar có thời hạn sống (TTL) và phải trả tiền thuê để tiếp tục hoạt động. Dữ liệu tạm thời bị xóa khi hết TTL. Dữ liệu persistent và instance thì được lưu trữ (archive) thay vì xóa, và có thể khôi phục sau; từ Protocol 23, việc khôi phục diễn ra tự động khi giao dịch đưa chúng vào danh sách cần khôi phục.

Protocol 30 đã chạy trên Stellar chưa?

Chưa. Ở lần kiểm tra gần nhất, mainnet đang chạy Protocol 29. Protocol 30, tên Bell, được lên lịch để validator bỏ phiếu vào ngày 23/11/2026 và sẽ bổ sung địa chỉ hợp đồng muxed, xác minh chữ ký hậu lượng tử ML-DSA cho hợp đồng và dấu thời gian ledger tính bằng mili giây. Cho tới khi bỏ phiếu thông qua, hãy coi nó là đang chờ.

Khám phá thêm