
钱包与账户不是同一个概念
钱包通常指帮助用户管理密钥、查看链上资产记录、创建交易并完成签名的软件或设备。账户则是区块链网络中的身份和状态记录。钱包可以作为操作账户的界面,但资产记录仍然保存在区块链账本中。用户实际控制的是能够签署交易的密钥,钱包负责以更方便的方式使用这些密钥。
不同区块链对账户和钱包的设计并不完全相同。以太坊资料明确区分了账户与钱包;比特币资料则把钱包程序和钱包文件分别讨论。钱包程序可以连接网络、查询链上交易并广播已签名交易,钱包文件则主要保存私钥以及可能与交易有关的其他信息。

地址、公钥与私钥如何配合
私钥是一段应当由控制者保管的秘密数据,用于对交易进行签名。公钥可以由私钥推导出来,地址通常又由公钥经过特定编码或哈希处理得到。因此,地址适合公开给他人用于收款,私钥则用于证明交易确实获得了账户控制者的授权。

这种关系具有单向性:可以从私钥推导公钥和地址,但不能根据公开的地址或公钥反推出私钥。数字签名让网络中的其他节点能够验证交易来源,同时无需公开私钥本身。丢失私钥通常意味着无法再签署相关交易;私钥泄露则可能让他人获得相应账户的控制权。
以太坊中的两类账户
以太坊账户主要分为外部拥有账户和合约账户。外部拥有账户由密钥对控制,可以主动发起交易;合约账户由部署在网络上的代码控制,通常需要在收到外部交易或消息调用后执行预设逻辑。两类账户都可以接收、持有或转移以太币和代币,也可以与已部署的智能合约交互。
外部拥有账户的状态包括余额和交易计数等信息。交易计数器通常被称为 nonce,它有助于区分交易顺序,并避免同一笔已签名交易被重复执行。合约账户还包含与合约代码和持久化存储有关的状态,因此其创建和运行会涉及网络资源消耗。
理解这一差别有助于避免把所有地址都看成同一种钱包账户。一个钱包应用可能同时帮助用户操作外部拥有账户,也可能读取或调用合约账户,但合约账户本身并不等同于保存私钥的钱包。
比特币钱包的常见形态
比特币钱包资料将钱包系统拆分为几个可以分离的功能:生成或分发用于收款的公钥或地址、创建交易并签名,以及连接网络查询区块链和广播交易。普通的全功能钱包通常把这些功能集中在一个应用中,使用较为直接,但私钥可能保存在联网设备上。
只签名钱包会把私钥放在相对隔离的环境中,联网设备负责生成或接收未签名交易,签名设备审核交易细节后完成签名,再由联网设备广播。离线钱包通过没有网络连接的设备实现这种分离;硬件钱包则把签名功能放在专用设备内。它们减少了联网环境直接接触私钥的机会,但会增加设备管理和交易确认的步骤。
观察型或仅分发型钱包可以只使用公钥、扩展公钥或地址来生成收款信息、监控交易,而不保存能够花费资产的私钥。这种设计适合需要查询或收款、但不希望联网服务直接签名的场景,具体能力取决于所使用的区块链和钱包软件。
常见问题与适用边界
“钱包里有币”是一种便于理解的说法。更准确地说,区块链账本记录着地址或账户的余额及相关状态,钱包保存或调用控制这些记录所需的密钥,并提供查看和签名功能。删除应用本身不一定会删除链上记录,但没有可恢复的密钥或备份信息时,用户可能无法重新控制账户。
地址可以公开用于收款,私钥、助记词或能够恢复私钥的敏感信息则应当严格保密。交易签名前,应核对收款地址、资产类型和金额等关键信息,因为签名表示授权网络执行相应操作。不同区块链可能采用不同的地址格式、密钥体系和交易模型,不能把某一条链上的钱包术语直接套用到所有网络。
因此,理解“钱包—账户—地址—密钥—签名”这条关系链,就能读懂大多数基础说明:钱包负责交互,账户代表链上状态,地址用于识别收款对象,私钥负责控制,签名负责证明授权。具体操作仍应以对应区块链和钱包软件的技术文档为准。