
地址的含义取决于账本模型
区块链转账地址涉及哪些技术概念,首先取决于具体网络如何记录资产。以太坊地址用于标识账户;比特币地址则可以编码构造交易输出所需的信息。地址是可公开传递的标识,理解其作用还需要了解背后的授权规则。以下比特币说明主要适用于传统P2PKH交易,不涵盖所有地址类型。
公私钥、哈希与数字签名
以太坊外部账户和比特币P2PKH交易都涉及公私钥。私钥用于签名,公钥用于验证相关授权;哈希运算参与地址信息的生成。签名把授权与相应交易数据关联起来,网络据此检查花费请求。
这些概念承担不同任务:地址帮助表达接收目标,签名帮助证明花费权限。知道地址不等于取得私钥,地址也不能直接证明持有者的现实身份。
以太坊:地址对应账户
以太坊外部账户地址取公钥Keccak-256哈希的最后20字节,以0x前缀加40个十六进制字符表示。合约账户也使用这种长度的地址,但由合约逻辑控制,没有对应的合约私钥。
账户状态包含余额和nonce等字段。外部账户的nonce用于交易排序,防止同一账户中相同nonce的交易重复执行。钱包则是与账户交互的应用或界面,因此地址、账户和钱包属于不同层次的概念。
比特币:地址关联输出的花费条件
比特币使用未花费交易输出,即UTXO。普通交易的输入引用已有输出,新的输出记录金额及花费条件;钱包显示的余额来自相关UTXO的汇总。
传统P2PKH地址编码公钥哈希、版本信息和校验信息。支出对应输出时,需要提供满足脚本要求的公钥与签名。交易标识txid与输出序号共同定位某个输出,接收地址本身不能替代这一定位信息。
常见问题与适用边界
地址格式正确,是否就意味着接收目标正确?格式与校验只能检查特定结构或输入错误,无法证明地址属于预期对象。比特币P2PKH的编码方式,也不能套用到以太坊地址上。
地址是否就是资产存放的位置?更准确的理解是,账本记录账户状态或未花费输出,地址参与标识账户或表达花费条件。判断地址含义时,需要同时明确网络、地址类型和授权机制。