由鑫链财经小编分享(xinchaincaijing.com),由于比特币区块链上的每个区块大小限制为1MB,这相当于大约2,500笔交易。然而,节点内存池中的交易通常比块中的空间多,这意味着矿工必须选择一个子集以包含在他们的下一个候选块中。他们通常会选择交易费用最高的人,因为如果他们成功挖出区块,那么他们将获得这些交易费用和新挖出的6.25比特币作为奖励。下文是对比特币交易的年龄、费用和优先级的解释。
当一个交易被创建和传播时,它被保存在本地存储到节点的内存池中,通常被称为他们的“mempool”或“transaction pool”。这是尚未包含在区块中的交易的等候室,矿工将从该池中为其候选区块选择交易。基于输入中所花费的UTXO的“年龄”来对交易进行优先级排序,从而允许旧的和高价值的输入优先于新的和较小的输入。如果块中有足够的空间,优先交易可以免费发送。
交易优先级的计算方法是,输入的价值和期限之和除以交易的总规模:优先级=总和(输入值*输入年龄)和交易规模。
在这个等式中,输入的值以基本单位satoshis(比特币的1/100m)来衡量。UTXO的年龄是自区块链记录UTXO以来经过的块数,用于测量它深入区块链的块数。交易的大小以字节为单位。对于被视为“高优先级”的交易,其优先级必须大于57,600,000。这对应于一个比特币(100m satoshis),老化一天(144个区块),在总大小为250字节的交易中:高优先级>100,000,000 satoshis*144块/250字节=57,600,000
块中前50千字节的交易空间是为高优先级交易预留的。矿工的节点将填充前50千字节,优先处理优先级最高的交易,而不考虑费用。这允许高优先级的交易被处理,即使它们收取零费用。然后,矿工的挖掘节点用至少携带最低费用的交易填充块的剩余部分,直到最大块大小(代码中的MAX_BLOCK_SIZE),优先处理每千字节交易中费用最高的交易。
如果块中还有剩余空间,矿工的挖掘节点可能会选择用免费交易来填充它。一些矿商选择在尽最大努力的基础上免费开采交易。其他矿商可能会选择忽略不收费的交易。在块被填满之后,留在内存池中的任何交易都将保留在池中,以便包含在下一个块中。随着交易保留在内存池中,它们的输入会“老化”,因为它们花费的UTXO会随着新块添加到顶部而更深入区块链。由于交易的优先级取决于其输入的年龄,所以保留在池中的交易将会老化,从而提高优先级。最终,不收费的交易可能会达到足够高的优先级,从而被免费包含在块中。
只要的比特币交易没有到期超时。那么,现在有效的交易将永远有效。但是,如果一个交易只在网络上传播一次,那么只有当它保存在挖掘节点内存池中时,它才会持久存在。当挖掘节点重新启动时,它的内存池将被清除,因为它是一种短暂的非持久性存储形式。尽管一个有效的交易可能已经在网络上传播,但是如果它没有被执行,它可能最终不会驻留在任何挖掘器的内存池中。
如果在合理的时间内未能成功执行,钱包软件将重新传输此类交易或以更高的费用重建交易。当矿工的节点聚集来自内存池的所有交易时,新的候选块具有418个交易,总交易费用为0.09094928比特币。
总结
以上内容就是对比特币的交易年龄、费用和优先级的解释。另外,比特币核心代码曾经有一个功能,即一个块中的前50kb被保留用于“高优先级”交易。这些被定义为花费最旧的UTXO(未花费的交易输出)的高价值交易。UTXO的年龄是在它创建的块之上构建了多少块,这可以被认为是在你的钱包里花费较旧的生锈硬币而不是新的闪亮硬币。这确保了花费较旧UTXO的高价值交易优先于新价值、较小的交易;即使他们的交易费用为零。
风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。