
数字签名验证什么
数字签名是通过私钥对特定消息生成的密码学数据。验证者利用公钥、消息和签名检查它们是否匹配,从而判断授权是否符合相应密钥的验证条件,以及签名覆盖的内容是否被修改。
它不直接证明签署者的现实身份,也不负责隐藏消息。可以把签名理解为绑定在特定内容上的授权凭据:内容发生变化,原签名通常就无法通过对应验证;签名有效,也仍需检查其他协议条件。

私钥、公钥和地址的区别
以太坊账户文档介绍了外部账户的密钥关系:私钥用于签名,公钥由私钥通过椭圆曲线运算导出,外部账户地址则由公钥的Keccak-256哈希按规则截取得到。钱包是与账户交互的应用或界面。

这些术语对应不同职责:私钥承担授权能力,公钥用于验证,地址用于标识。公开地址不等于公开私钥;地址也不能在所有场景下直接替代公钥参与验签。
哈希、ECDSA与secp256k1
哈希把数据映射为固定长度的摘要,便于协议处理和检查数据。单独的哈希没有证明授权的能力,因为任何人都可以计算公开数据的摘要。数字签名则加入了私钥参与的验证关系。
ECDSA指椭圆曲线数字签名算法,secp256k1指其可采用的一组椭圆曲线参数。比特币开发文档中的P2PKH示例使用这一组合。算法名称、曲线名称和地址格式属于不同层次,理解时需要分别辨认。
账户与UTXO中的适用方式
以太坊外部账户交易中的nonce是计数器,同一账户的同一nonce只能执行一次,有助于防止交易被重复执行。普通合约账户由代码逻辑控制,没有自身对应的私钥。
比特币P2PKH示例围绕UTXO,即未花费交易输出展开:输入引用先前输出,并提供公钥与签名;脚本检查公钥哈希是否匹配、签名是否有效。这是特定输出类型的说明,不能直接套用于所有比特币输出。
常见问题:验签通过就足够了吗
验签通过不代表交易已经上链或执行成功。签名解决授权验证的一部分问题,节点还需要检查账户状态、引用输出是否可用等条件。
签名是否保护全部交易内容,要看具体协议和签名规则所覆盖的数据。阅读技术说明时,应先确认签署对象、覆盖范围和验证条件,再判断签名能够证明什么,避免把局部验证结果理解为对整项操作的保证。