
一、先建立理解术语的三个层次
面对区块链术语,可以先问三个问题:记录在哪里,谁有权操作,通过什么工具交互?链上状态回答记录问题,密钥与代码规则涉及控制权限,钱包则提供交互能力。把这些层次分开,比把所有概念都理解成一个“数字账户”更准确。
以太坊账户文档与比特币开发者指南中的钱包章节,讨论的是不同系统和层次。两者可以帮助建立概念联系,但不能把以太坊的账户字段直接套用到比特币钱包上。

二、账户与地址:对象不等于标识
以太坊的基础账户分类包括外部拥有账户与合约账户:前者由私钥控制,后者依照合约代码运行。地址用于标识账户,并不是私钥,也不是钱包软件本身。

账户状态中的 balance 表示 ETH 余额;nonce 是与账户活动相关的计数器。codeHash 与代码有关,storageRoot 与账户存储状态有关。这些字段各司其职,不能仅凭某个字段判断账户的全部功能。
三、私钥、公钥与签名:区分秘密和证明
私钥用于生成数字签名,相关公钥可用于验证。签名帮助证明某项请求获得相应密钥的授权,并不意味着签名者公开了私钥。账户地址也不能替代这种授权证明。
因此,“知道地址”和“能够控制账户”不是一回事;“签名有效”和“操作符合本人真实意愿”也不是一回事。前者属于密码学验证,后者还取决于对请求内容的理解。
四、钱包:交互工具,而非链上资产的容器
比特币开发者指南区分钱包程序与钱包文件:程序承担密钥管理、签名或网络交互等功能,文件可保存私钥及相关信息。钱包系统的功能能够拆分,不一定由同一个程序完成。
离线钱包强调签名环境与网络隔离;硬件钱包使用专用设备承担签名功能。两者都旨在减少私钥暴露,但不能据此推断绝对安全。钱包文件加密也不等于能防护设备运行期间的一切风险。
五、常见问题与适用边界
账户就是钱包吗?不是。账户属于链上交互对象,钱包是管理或访问相关能力的工具。“钱包里有资产”是便于交流的说法,不应理解成资产数据只保存在本地文件中。
合约账户也需要自己的私钥吗?按上述以太坊基础分类,合约账户由代码逻辑控制,而不是持有自己的私钥。实际阅读产品说明时,应进一步辨明它讨论的是账户规则、签名方式还是软件功能,避免因名称相似而混淆。