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

钱包与账户

区块链转账协议入门需要了解什么:交易结构、签名与确认

摘要

理解区块链转账,需要掌握账本模型、数字签名、交易字段、手续费及确认状态。以以太坊和比特币为例,说明账户模型与UTXO模型的差别,并解释普通转账、合约调用和交易成功之间的关系。

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

转账协议规定了什么

区块链转账协议是一组关于交易表达、授权验证和账本更新的规则。理解它,可以围绕三个问题展开:哪些资产可以被支配,谁有权支配,以及网络在什么条件下接受这次变更。钱包负责组织交易,网络节点依据规则验证交易。

以下以以太坊与比特币开发者文档介绍的基础机制为例。两者的交易结构不同,字段、费用规则和确认方式不能直接混用。

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

账户模型与UTXO模型

以太坊通过交易更新账户相关状态,普通ETH转账会改变发送方与接收方的余额。交易信息涉及接收地址、金额、签名、nonce、输入数据和Gas费用参数;nonce用于标识同一账户的交易顺序。

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

比特币普通交易通过输入引用此前的未花费交易输出,也就是UTXO,再生成新的输出。钱包余额可以来自多个UTXO。输入用此前交易的标识和输出序号定位资金,并提供满足其花费条件的数据。

因此,理解账户模型可从余额变化入手,理解UTXO模型则要追踪输出怎样被引用和花费。“余额”这一相同界面用语,背后可能对应不同的记账结构。

签名证明授权,脚本限定花费条件

数字签名让网络能够核验交易是否得到相应密钥控制者的授权,无须公开私钥。比特币文档中的P2PKH示例,还通过脚本检查公钥与签名是否满足此前输出设定的条件。该示例有特定适用范围,不能代表全部比特币交易类型。

签名验证回答的是授权是否有效,并不判断接收对象是否符合签名者的真实意愿。协议认可的交易与用户理解正确的交易,是两个需要分别考虑的问题。

金额、手续费与合约调用

以太坊的Gas衡量执行交易所需的计算工作,Gas上限与单位Gas价格属于不同维度,不能把Gas数量直接当成ETH费用。普通转账和合约调用执行的工作不同,费用也不能一概而论。

调用合约时,交易接收地址通常是合约地址,输入数据用于表达调用内容。因此,只看接收地址和ETH金额,可能无法理解完整操作;还需要结合合约对数据的解释。

常见问题:广播、入块就代表成功吗

广播表示交易已提交传播,尚不等于被区块收录。对以太坊合约交易而言,被收录也不必然意味着预期操作执行成功,还需区分执行结果与区块最终性。

交易哈希主要用于标识和查询交易,本身不能证明收款完成。入门时应分别理解提交状态、执行结果和确认程度,避免把这些不同层面的信息统称为“成功”。

← 返回全部文章

延伸阅读 · 相关栏目

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