Solana程序是什么?一文讲清楚账户、指令与并行执行
很多人第一次听到「Solana 程序」时会以为它和以太坊智能合约一回事,其实差别不小。本文用直白的语言把 Solana 程序的本质讲清楚,让你在 必安、BN交易所 上看到的 SOL 生态项目,背后是怎样一套规则一目了然。
一、程序 ≠ 合约
在以太坊里,「智能合约」既是代码也是账户:部署即同时拥有地址与存储。Solana 把它们拆开:程序(program)只是无状态的可执行代码,所有状态都存放在独立的账户(account)里。调用程序时,必须由调用方显式列出要读取或写入的账户。
这种「显式传参」的设计听起来繁琐,却带来了一个巨大好处:运行时可以判断不同交易之间是否操作同一组账户,从而决定能否并行执行。Solana 的高吞吐很大程度上来自这一点。
二、账户模型直观图
把一个 Solana 账户想象成数据库表中的一行:它有 owner(被哪一段程序管理)、lamports(余额)、data(任意字节数据)、executable(是否可执行)几个核心字段。普通钱包账户由系统程序拥有;存放任意数据的账户由你自己写的程序拥有;可执行账户存放的就是程序代码本身。