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

资料与核验

区块链数字签名 技术相关术语如何理解:密钥、哈希与交易验证

摘要

数字签名把密钥控制权与特定交易数据关联起来。理解私钥、公钥、哈希、交易标识及脚本之间的区别,可以帮助读懂区块链的授权机制,也能分清签名有效、交易有效与执行成功的边界。

玻璃文档与棱镜的原创资料研究概念插画

数字签名证明什么

数字签名是对特定数据生成的密码学证明。签名者使用私钥,验证者依据公钥、签名和相应数据检查它们是否匹配。它支持验证授权及被签数据的完整性,但不直接证明签名者的现实身份,也不保证所授权行为符合其真实意愿。

私钥、公钥与地址

私钥是生成签名所需的秘密信息,公钥用于验证签名。地址则是协议定义的标识,不能直接与公钥画等号。例如,传统比特币P2PKH地址编码了公钥哈希及相关校验信息;这一结构不能推广到所有地址类型。

ECDSA指椭圆曲线数字签名算法,secp256k1指其可采用的一组曲线参数。算法名称说明怎样签名和验证,曲线名称说明运算所使用的数学环境,两者属于不同层次。

哈希、签名与交易标识

哈希把数据映射为摘要,可用于数据识别及完整性检查。签名还引入私钥参与,建立数据与密钥之间的授权关系。因此,仅有交易哈希,并不能替代有效签名。

比特币中的txid用于标识交易,vout用于定位该交易中的某个输出。二者合起来回答“引用哪一笔输出”;签名及其他解锁数据则参与回答“是否满足花费条件”。

比特币:UTXO与脚本

比特币开发者指南的传统P2PKH示例采用UTXO,即未花费交易输出。scriptPubKey规定花费条件,scriptSig提供签名、公钥等数据。验证时先检查公钥哈希是否匹配,再检查签名。这里的scriptSig是承载数据的脚本,不等同于一个数字签名;其他输出类型的数据组织方式可能不同。

以太坊:nonce与交易字段

以太坊交易文档描述了外部账户签署交易的机制。nonce表示账户交易序号,value表示转移金额,input data可承载合约调用数据,gasLimit限制可消耗的计算量。这些字段各有职责:序号约束交易顺序,调用数据表达操作,签名承担授权验证。

合约语境中的“函数签名”也容易混淆。函数名与参数类型用于形成函数标识,其哈希的一部分可作为函数选择器;它用于识别调用入口,并不构成私钥授权证明。

常见问题与适用边界

签名是否能隐藏交易内容?数字签名本身不提供保密性。签名后任何字段都不能改变吗?准确说法是:改变被签名规则覆盖的数据,会使原签名无法通过对应验证;具体覆盖范围取决于协议、交易类型和签名方式。

签名有效是否代表交易成功?还需要检查可用输出或账户状态、序号、费用及执行规则。交易进入区块后,合约执行也可能失败。因此,签名验证、交易接纳和执行结果应分别理解。

← 返回全部文章

延伸阅读 · 相关栏目

区块链基础技术原理数字资产知识资料与核验