
先理解“密码”与签名的关系
这里的“密码”主要指密码学,不是钱包登录口令。数字签名将私钥与特定交易数据联系起来,使验证者能够检查授权是否有效,而不需要取得私钥。签名不是加密:能够验证授权,不代表交易内容被隐藏。
私钥、公钥、地址与钱包各是什么
以太坊账户文档介绍,外部账户由私钥控制,私钥用于签名,公钥用于相关验证,地址由公钥经过规定的哈希处理得到。钱包则是与账户交互的应用或界面,并不等于账户本身。合约账户的行为由代码逻辑控制,没有对应的账户私钥。

这些概念不能互换。公开地址用于标识账户,不是签名凭证;钱包界面能够展示余额,也不意味着资产存放在应用里。加密保存私钥的口令用于保护密钥文件,与直接生成交易签名的私钥承担不同角色。

比特币签名要结合输出条件理解
比特币开发文档以传统P2PKH交易说明:交易输入引用此前的未花费交易输出,即UTXO;花费者提供公钥和签名,满足该输出的脚本条件。节点既检查公钥是否匹配,也检查签名是否有效。这里描述的是特定交易类型,不宜推广为所有比特币交易的固定结构。
两种模型的理解重点不同:账户模型侧重账户状态与授权,UTXO模型侧重被引用的输出及其花费条件。因此,不能仅凭“都有地址和签名”,就认为不同链使用相同的交易结构或验证流程。
签名有效不等于交易已经完成
签名验证回答的是:相应密钥是否对指定数据作出了有效授权。交易能否被接受,还要符合网络的其他规则。生成签名、广播交易、交易被区块收录是不同环节,不能相互替代。
签名对内容的保护也有范围:验证针对的是协议规定的待签名数据。理解签名时应关注它究竟覆盖哪些内容,而不是笼统地认为附带签名的所有信息都不可更改。
常见问题与安全边界
有效签名能证明现实身份吗?它主要证明对相应私钥的控制,不能单独证明签名者的真实姓名,也不能证明交易目的可靠。私钥一旦被他人掌握,对方生成的签名也可能通过密码学验证。
签名能阻止重复执行吗?不能只靠签名。以太坊外部账户使用nonce参与约束交易顺序与重复执行,比特币则检查被引用输出是否仍未花费。入门时应把授权验证、状态检查和执行结果分开理解。