
数字签名解决什么问题
区块链网络需要判断一项操作是否获得相应授权。数字签名把待签数据与私钥联系起来,验证者可以通过对应公钥检查签名,而不必获取私钥。入门时应抓住两个核心:授权验证,以及签名所覆盖数据的完整性。
签名成立说明数据通过了相应密钥的密码学验证,不直接证明签名者的现实身份,也不说明操作本身合理。理解这些边界,比记住算法名称更重要。

分清私钥、公钥、地址与哈希
私钥用于生成签名,需要保密;公钥用于验证签名,可以公开。二者存在数学关系,但在所用密码学安全假设成立时,从公钥反推私钥在计算上不可行。

地址是协议使用的标识,其生成规则随地址类型而异,不能简单等同于公钥。哈希则把数据映射为摘要,本身不包含私钥授权证明。只有数据摘要,无法回答是谁授权了这份数据。
从两个网络理解应用方式
Bitcoin Developer Guides 的交易说明以 P2PKH 为例:花费者提供公钥与签名,脚本检查公钥哈希是否匹配,并验证签名。这个例子展示了签名如何参与未花费交易输出的花费授权;该类型使用 ECDSA 与 secp256k1 曲线。
Ethereum.org 的账户说明区分外部账户与合约账户:外部账户由私钥控制,合约账户由代码逻辑控制,没有自身私钥。文档还说明,外部账户交易的 nonce 用于限制同一序号交易重复执行。钱包则是与账户交互的应用界面。
验证成立有哪些适用条件
签名与验证必须遵循同一套数据编码和签名规则。具体覆盖哪些字段,取决于协议及签名模式,因此不能把一次有效签名理解为对所有相关内容的无限授权。
签名验证只是交易验证的一部分。节点还要检查可用输出、账户状态及其他协议条件。签名有效并不等于交易已经进入区块,也不等于已经完成网络确认。
常见问题与理解边界
数字签名能隐藏交易内容吗?不能把签名当作加密。签名主要服务于授权与完整性验证,保密需要另外的机制。
私钥泄露后,签名还能区分本人和他人吗?持有私钥的一方可能生成有效签名,所以密码学验证本身无法辨别操作者是否为原持有人。
所有链都采用相同签名方式吗?不同协议和账户类型可能采用不同机制。比特币 P2PKH 的流程适用于这一特定类型,不能直接推广为所有区块链交易的统一流程。