区块链的TXID(交易标识符)说明

TXID(交易标识符)说明

诸如比特币之类的网络上的交易使用UTXO(未使用交易输出)模型进行操作。使用此模型,网络上的节点跟踪所有可用的可花费事务输出,也称为未使用的事务输出或UTXO。然后将这些未花费的交易输出用作在网络上形成新交易的输入。TXID,也称为事务标识符或事务散列,是用于标识事务的唯一数据。

资料来源:Bitcoin.org

如上图所示,每个事务都拥有至少一个输入和一个输出,每个输入花费比特币包含在先前的输出中。输出(现在是UTXO)位于UTXO中心化,直到稍后输入为止。因此,当用户的钱包指示5比特币的可花费余额时,这可以被解释为意味着用户具有在一个或多个UTXO中等待的5个比特币。

事务以称为原始事务格式的序列化字节格式进行广播。在计算机科学中,序列化是将数据结构的内部表示转换为可以一次传输一个字节的格式的过程。然后使用加密货币去中心化算法对该原始事务格式进行两次散列,在比特币的情况下为SHA-256,以产生事务的TXID。

TXID和隔离证人(SegWit)

在网络确认交易之前,不保证TXID。但是,使用TXID进行的付款跟踪可能会受到交易延展性的影响。当事务的TXID在块中确认之前被更改时,会发生这种情况。这是有问题的,因为它为攻击编码不良的钱包软件创造了机会,假设未经证实的TXID是不可变的。使用比特币,Segregated Witness或SegWit 的引入旨在作为交易延展性的解决方案。

SegWit是对比特币共识规则和网络协议的升级,它是作为BIP-141软分叉提出和实现的。在密码学领域,术语见证用于描述加密货币拼图的解决方案。通过比特币,见证人可以解决UTXO上的难题。此加密货币拼图也称为锁定脚本,见证脚本或scriptPubKey,它确定了在花费UTXO之前必须首先满足的条件。在比特币协议的背景下,数字签名是一种证据,可用于解决加密货币难题以便花费资金。然而,术语见证可以更广泛地被认为是能够满足强加于UTXO的条件的任何解决方案。在比特币的情况下,术语见证可以被认为是解锁脚本的更通用的术语,也称为签名脚本或脚本。解锁脚本是由花费者生成的数据参数的集合,以满足锁定脚本所放置的条件。

当交易消耗(花费)UTXO时,它必须提供证人。附加到UTXO的锁定脚本要求在消耗UTXO的事务的输入部分中提供见证数据。但是,使用SegWit UTXO模型,可以使用输入之外的见证数据来满足锁定脚本(隔离)。通过在证券交易之外移动证人,用作交易标识符的TXID不再包括证人数据。由于见证数据是可以由第三方修改的事务的唯一元素,因此将这两者分开也消除了交易延展性攻击的机会。

通过SegWit的实现,比特币网络上的事务现在具有两个标识符TXID和WTXID。TXID是传统的事务ID,它是没有见证数据的序列化事务的双SHA-256哈希。虽然WTXID的新事务是具有见证数据的事务的新序列化格式的双SHA-256哈希。因此,由于SegWit事务在每个输入中都不包含见证数据,因此不存在可由第三方修改的事务的任何部分。

提示:投资有风险,入市需谨慎,本资讯不作为投资理财建议。请理性投资,切实提高风险防范意识;如有发现的违法犯罪线索,可积极向有关部门举报反映。
你可能还喜欢