
账户、地址与钱包不是同一个概念
区块链账户可以理解为网络中记录余额、交易状态或代码的对象,地址则是用于识别和接收资产的公开标识。钱包是帮助用户管理密钥、查看账户信息、创建交易并与区块链网络交互的工具,可能表现为手机应用、桌面程序、网页界面、硬件设备或钱包文件。使用钱包时,资产记录仍然存在于区块链账本中,钱包主要负责访问和操作这些记录。
因此,“钱包里存着币”是一种便于理解的说法。更准确地说,钱包保存或调用控制资产所需的密钥,并通过地址查询链上状态。不同钱包界面可能连接到同一账户,也可能管理多个账户。

以太坊中的两类账户
以太坊账户主要分为外部拥有账户和合约账户。外部拥有账户由一组公钥和私钥控制,用户可以使用私钥签名并主动发起交易。它可以接收、持有和发送以太币及代币,也可以调用已经部署的智能合约。账户地址通常由公钥经过特定密码学计算得到,公开地址可以用于收款,但不能反推出私钥。

合约账户由部署到网络中的智能合约代码控制,没有与外部账户相同意义上的私钥。它通常需要在收到外部账户发起的交易后执行代码,并可根据代码规则完成转账、代币操作或其他合约行为。部署合约会占用网络存储,因此通常涉及网络费用。
以太坊账户状态包含多个字段。nonce用于区分交易或合约创建次序,帮助防止同一签名交易被重复执行;balance表示账户持有的以太币数量;合约账户还包含代码哈希和存储根等与程序代码、持久化数据有关的信息。普通用户在钱包界面中通常不会直接操作这些底层字段。
公钥、私钥和签名如何配合
私钥是一项必须保密的控制凭证,用于对消息或交易进行签名。公钥和地址可以公开,网络参与者能够依据签名验证交易是否确实由相应私钥的控制者发起。私钥通常可以推导出公钥和地址,但从公开地址或公钥反向恢复私钥在设计上不可行。
当用户发起转账时,钱包会根据交易内容生成签名,并把签名后的交易提交给网络验证和传播。钱包软件可能把私钥加密保存在设备或专用设备中,也可能通过助记词等方式帮助用户备份密钥材料。无论采用哪种形式,丢失控制凭证都可能导致无法签名操作,泄露则可能让他人冒用账户发起交易。
比特币钱包的常见组成
比特币资料中,钱包可以指钱包程序,也可以指保存私钥及相关信息的钱包文件。钱包程序通常需要生成公钥或地址、监测链上收款、创建和签署交易,并通过网络广播已签署交易。这些功能也可以拆分到不同程序中,例如一个联网程序负责查看余额和广播交易,另一个更安全的程序专门保存私钥并签名。
全功能钱包把生成密钥、监测交易、构造交易和广播交易集中在一起,使用方便,但私钥可能位于联网设备上。离线钱包把签名设备与联网设备分开,联网设备生成待签名交易,离线设备审核交易内容并签名,再由联网设备广播。硬件钱包则把签名功能放入专用设备,用户可以在设备屏幕上核对交易信息后完成签名。
观察钱包或仅分发钱包只保存公开信息,能够查看余额、生成或分配收款地址,却不保存可用于花费资产的私钥。它适合需要查询或接收信息的场景,但要发起转账仍需连接能够签名的设备或程序。
如何选择和理解这些术语
如果重点是日常收款和转账,首先要确认钱包管理的是哪条区块链、支持哪些资产,以及私钥由谁控制。看到“账户”时,可以进一步问它是由私钥控制的外部账户,还是由代码控制的合约账户;看到“地址”时,应确认地址所属网络和使用规则;看到“钱包”时,则要弄清它是软件界面、密钥文件、联网观察工具,还是专门的签名设备。
常见问题是:钱包删除后资产是否消失?通常,链上记录不会因删除本地应用而改变,但能否恢复控制取决于是否仍保有正确的私钥或备份信息。另一个问题是:公开地址能否直接转走资产?公开地址主要用于识别和收款,转账通常还需要有效签名。还要注意,不同区块链的地址格式、交易模型和签名机制可能不同,不能仅凭外观判断它们可以互换。