UTXO模型和传输费用/Kb说明

我一直致力于根据本问题所讨论的UTXO模型了解输入/输出和交易细节,并思考它与基于本问题所讨论的交易大小(kb)的交易费用的关系。我想澄清几件事,除了回答我的问题之外,请随意挑出我说的任何错误的话——因为这些问题都源自我的理解。
似乎事务大小主要是输入和输出数量的函数(从某种意义上说,作为发送者,这些是我可以控制的事情,而影响大小的其他组件或多或少是静态的)。
澄清1:(忽略费用和零钱)假设爱丽丝派我来(鲍勃!)2个btc。她得到了这2个btc,因为拉里和格雷格都给她发了1个btc。这意味着她有两个UTXO输出,每个输出对应一个与钱包相关联的btc,当她将它们发送给我时,事务将有两个输入和一个输出,就像我在块资源管理器上发现的这个事务一样。
在此处输入图像描述
一旦这笔交易被处理,我的钱包还记得这2个btc来自不同的UTXO吗?还是像我在第一个链接中提到的那样“融化”了呢。更准确地说,如果我把这2个btc发送给Gerald,它会显示1个输入还是2个输入?
澄清2:(收费和找零)爱丽丝想给我寄2个btc。此前,拉里、格雷格和艾伦分别向她发送了1封btc。所以她钱包里有3个UTXO,每个值1 btc。她给我寄了两个btc,但需要支付费用。为了方便起见,让我们假设一个.5 btc的费用。这是否意味着她现在有3个输入和2个输出,对交易的规模有贡献(从而对费用的规模有贡献)(她需要所有3个硬币来支付我和支付费用,然后我将是一个输出,她的“更改地址”将是另一个。
最后,我想我明白,大多数钱包服务“处理”所有这些细节的意义上说,你可以把btc地址和多少你想发送,他们处理其余的。他们通常是以最有效的方式做到这一点吗?例如,假设我使用一个像Nano Ledger S这样的钱包。如果我有一个25 btc的UTXO,一个1 btc的UTXO,和5个.5 btc的UTXO,我去给某人发送1 btc,它会选择导致最小事务大小的UTXO吗?
附录:我确实计划活跃在这个网站上,所以请批评我的问题是否可以改进,以更好地适应这个社区。
交易

我的钱包记得这两个btc来自不同的UTXO吗?还是像我在第一个链接中提到的那样“融化”了呢。更准确地说,如果我把这2个btc发送给Gerald,它会显示1个输入还是2个输入?
(1) 您有一个2 BTC UTXO,由Alice的事务创建。该事务花费了两个UTXO,但将它们合并为一个UTXO。你的钱包不在乎它的历史-它有一个UTXO,当消费它时,它需要一个输入交易。
钱包或其他软件有可能计算出硬币的历史,并计算出它来自花了两周时间的交易。但这对其未来的交易没有影响。
这是否意味着她现在有3个输入和2个输出对交易的规模有贡献(从而对费用的规模有贡献)
这是正确的。您将创建一个包含3个输入(每个1 BTC)和2个输出(2个BTC中的一个,0.5 BTC中的一个)的事务。差额是0.5 BTC的费用。
他们通常是以最有效的方式做到这一点吗?
通常,不,事实上。因为“最有效”并不是优化的唯一标准。例如,你现在想把交易成本降到最低,但你也不想让你的钱包处于以后增加交易成本的状态。例如,一些硬币选择策略(这个问题被称为)会导致不断地将硬币磨碎,使其在典型工作负载中的变化越来越小,从而使未来的硬币发送成本越来越高。
一些钱包会考虑当前的收费条件来做出这些决定。
总的来说,有大量的工作分析各种硬币选择方案。有些是马克·埃哈特的硕士论文中的特色。
分享
改进这个答案
跟随
昨天编辑的
昨天回答的
彼得·维尔
65.5k88金徽章143143银徽章214214铜徽章
1
谢谢你的链接!我的背景是纯数学——这导致了密码学——这导致了对比特币的研究。很高兴知道这是一个有趣的问题领域。——昨天我是王子
添加评论
2
一旦这笔交易被处理,我的钱包还记得这2个btc来自不同的UTXO吗?还是像我在第一个链接中提到的那样“融化”了呢。更准确地说,如果我把这2个btc发送给Gerald,它会显示1个输入还是2个输入?
您的钱包可能会记录您收到的资金的历史记录,也可能不会。但从那时起,真正重要的是,你有一个UTXO,这是你想做的。
最后,我想我明白,大多数钱包服务“处理”所有这些细节的意义上说,你可以把btc地址和多少你想发送,他们处理其余的。他们通常是以最有效的方式做到这一点吗?例如,假设我使用一个像Nano Ledger S这样的钱包。如果我有一个25 btc的UTXO,一个1 btc的UTXO,和5个.5 btc的UTXO,我去给某人发送1 btc,它会选择导致最小事务大小的UTXO吗?

对于简单的情况,他们通常会这样做。对于非常复杂的情况,考虑到需要考虑的可能性的数量可能会非常大,要确保总是产生绝对最优的结果在计算上相当昂贵。大多数实现并不保证它们总是产生最佳结果,而是使用启发式算法,事实上,对于典型情况,它们在绝大多数时间都能找到最佳结果,并且在可能有数千个UTXO可供选择的荒谬复杂的情况下仍然能提供非常好的结果。
分享
改进这个答案
跟随
昨天回答的
大卫·施瓦兹
49.1k55金徽章11101银徽章172172铜徽章
谢谢你的回答。——昨天我是王子
添加评论
2
我的钱包记得这两个btc来自不同的UTXO吗?还是像我在第一个链接中提到的那样“融化”了呢。更准确地说,如果我把这2个btc发送给Gerald,它会显示1个输入还是2个输入?
它显示为您可以花费的1 UTXO。您的钱包不关心创建您可以使用的UTXO所花费的UTXO。那里没有什么它需要知道的,所以它不在乎。
这是否意味着她现在有3个输入和2个输出,对交易的规模有贡献(从而对费用的规模有贡献)(她需要所有3个硬币来支付我和支付费用,然后我将是一个输出,她的“更改地址”将是另一个。
对。
他们通常是以最有效的方式做到这一点吗?例如,假设我使用一个像Nano Ledger S这样的钱包。如果我有一个25 btc的UTXO,一个1 btc的UTXO,和5个.5 btc的UTXO,我去给某人发送1 btc,它会选择导致最小事务大小的UTXO吗?
不一定。
现在你进入了一个被认为是困难的领域。一般来说,这个问题是关于硬币选择算法,其中有许多,他们优化不同的事情。硬币的选择也是一个多维的问题,什么是好的,坏的,有效的,或无效的没有很好的定义。
分享
改进这个答案
跟随
昨天回答的
麻吉弟弟周立铭♦
50.4k44金徽章4444银徽章9898铜徽章
感谢您对硬币选择的详细说明。我的背景是纯数学——这导致了密码学——这导致了对比特币的研究。很高兴知道这是一个有趣的问题领域。你能告诉我哪里可以找到更多关于btc/加密/区块链的热点研究领域吗?——昨天我是王子

sskoowww.qkl91.com_.com99_thumb

发表评论

邮箱地址不会被公开。 必填项已用*标注