区块链 · 数字资产知识 · 行业资讯
文章库关于本站

钱包与账户

区块链密码交易签名入门需要了解什么:密钥、验证与适用边界

摘要

交易签名用于验证授权,并约束被签名的数据,不是对交易内容进行加密。理解私钥、公钥、地址与钱包的区别,再区分以太坊账户模型和比特币未花费交易输出模型,有助于认识签名能证明什么、不能保证什么。

冷钱包和热钱包的区别的科技主题配图

先理解“密码”与签名的关系

这里的“密码”主要指密码学,不是钱包登录口令。数字签名将私钥与特定交易数据联系起来,使验证者能够检查授权是否有效,而不需要取得私钥。签名不是加密:能够验证授权,不代表交易内容被隐藏。

私钥、公钥、地址与钱包各是什么

以太坊账户文档介绍,外部账户由私钥控制,私钥用于签名,公钥用于相关验证,地址由公钥经过规定的哈希处理得到。钱包则是与账户交互的应用或界面,并不等于账户本身。合约账户的行为由代码逻辑控制,没有对应的账户私钥。

冷钱包硬件钱包的科技主题配图

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

区块链纸钱包的科技主题配图

比特币签名要结合输出条件理解

比特币开发文档以传统P2PKH交易说明:交易输入引用此前的未花费交易输出,即UTXO;花费者提供公钥和签名,满足该输出的脚本条件。节点既检查公钥是否匹配,也检查签名是否有效。这里描述的是特定交易类型,不宜推广为所有比特币交易的固定结构。

两种模型的理解重点不同:账户模型侧重账户状态与授权,UTXO模型侧重被引用的输出及其花费条件。因此,不能仅凭“都有地址和签名”,就认为不同链使用相同的交易结构或验证流程。

签名有效不等于交易已经完成

签名验证回答的是:相应密钥是否对指定数据作出了有效授权。交易能否被接受,还要符合网络的其他规则。生成签名、广播交易、交易被区块收录是不同环节,不能相互替代。

签名对内容的保护也有范围:验证针对的是协议规定的待签名数据。理解签名时应关注它究竟覆盖哪些内容,而不是笼统地认为附带签名的所有信息都不可更改。

常见问题与安全边界

有效签名能证明现实身份吗?它主要证明对相应私钥的控制,不能单独证明签名者的真实姓名,也不能证明交易目的可靠。私钥一旦被他人掌握,对方生成的签名也可能通过密码学验证。

签名能阻止重复执行吗?不能只靠签名。以太坊外部账户使用nonce参与约束交易顺序与重复执行,比特币则检查被引用输出是否仍未花费。入门时应把授权验证、状态检查和执行结果分开理解。

← 返回全部文章

延伸阅读 · 相关栏目

安全防护钱包与账户风险识别信息核验