
先分清虚拟世界与区块链
虚拟世界可以是由软件构建的游戏、社交空间或其他数字环境;区块链则是一种记录账户状态、验证和处理交易的网络技术。两者不是同一概念,也不必然绑定。
如果一个虚拟世界接入区块链,链上账户和交易可以成为应用的一部分,但不代表场景画面、全部规则或所有数据都存放在链上。讨论相关技术时,先区分应用本身与它可能采用的链上功能。

账户与密钥:谁能发起操作
以太坊将账户分为外部拥有账户(EOA)和合约账户。EOA由私钥控制,可以发起交易;合约账户由部署在网络上的代码控制,收到调用后可按代码执行操作。两类账户都能接收、持有和发送 ETH 或代币,也能与合约互动。

公钥和私钥构成密钥对:私钥用于签署交易,网络可借助签名验证操作是否获得相应授权。账户余额记录在链上账本中,并非由钱包应用直接保存为一枚数字货币。私钥则是重要的授权凭证,应避免泄露。
钱包:管理账户与处理交易的工具
钱包通常是帮助用户管理密钥、查看相关记录和发起链上操作的程序或设备,不等于账户本身。比特币钱包体系中,生成或分发公钥、签署交易、连接网络获取信息并广播交易,既可以由一个程序完成,也可以拆分给不同程序。
一种拆分方式是让联网设备准备交易,再由离线设备或硬件钱包审阅并签名,之后把已签名交易交回联网设备广播。这样的分工可以减少私钥接触联网环境的机会,但仍需核对交易内容,并依赖设备和操作流程的安全性。
交易、智能合约与链上状态
交易是向网络提交并经验证的操作。以太坊上的合约账户可在收到调用时执行代码,例如依照预先写定的逻辑处理操作。比特币钱包的说明则展示了交易从准备、签名到广播可以是不同步骤;两种网络各有自己的设计,不能把细节视为通用标准。
以太坊账户状态还包含若干协议字段:nonce用于记录账户的交易或合约创建序次,balance表示余额,codeHash标识账户代码,storageRoot概括账户存储。这些字段描述的是链上账户状态,不等同于虚拟世界中的全部用户资料或应用数据。
适用条件与常见问题
虚拟世界是否需要区块链,取决于应用是否选择将某些账户、资产或操作交由链上机制处理。不接入区块链的应用不需要链上钱包;接入后,具体账户类型、签名方式和交易规则也要看所使用的网络。
常见疑问是“钱包是不是账户”:不是,钱包是交互或管理工具,账户是网络中的实体。另一个疑问是“所有链的账户都像以太坊一样”:也不是。以太坊的账户字段与比特币钱包的功能划分是各自体系中的例子,理解时应保留协议差异。