风险提示:理性看待区块链,提高风险意识!
优化未使用输出选择的挑战
首页 > 币界资讯 > 区块链知识 2015-05-18 16:09:00

91v58PIC6fT

当我们谈论被存储在块链中的比特币时,大多数人会称之为“比特币地址余额”,从会计的角度上这样说是有意义的,然而事实上这不是硬币在区块链数据结构上的呈现方式。不是一个地址包含了币,“币”实际上是存储为“未交易输出”( UTXOs)。一个UTXO可以与一个比特币地址相关联,尽管你也可以有许多不同的UTXOs与同一个比特币地址相关联。“地址余额”是所有与地址相关的UTXOs值的总和。从非技术的角度了解UTXOs,我推荐你阅读Richard Gendel Brown的“欢迎到比特币岛”。如果想大致了解技术方面的东西,就看看开发者指南。

1-5uICL2T5PLZ4arzHXlA6sQ

交易由输入和输出组成;未使用输出是实际的比特币

当比特币钱包软件创建新的交易时,它有安排交易内部数据的同等灵活性。这是因为用户指示钱包:“将 X个比特币发送到地址Y中”,钱包需要梳理用户的UTXOs以便发现足够的输出,即总价值能够达到X个比特币。不幸的是,在选择UTXOs的方式上,没有一个简单而又易懂的方式,因为需要做几种考虑。

天真的方法就是直接寻找最小的输出,数量大于你想花费和使用的量,不然的话,就添加下一个最大的输出,直到你有足够的输出以满足目标的花费。然而,这会导致输出被分裂,并直到钱包里充满了不能再使用的小余额。这可以是一个性能问题,如果用户曾经试图清除只有一笔小小的余额的钱包 ,那么这也可以起到终止用户的作用。这个钱包已被用于许多交易,并且可能已经导致了大量的UTXOs,而把这些UTXOs都花在一个单一的交易中是不可行的。

虽然一笔比特币交易可以包含成百上千个输入和输出数,但这是有代价的。一笔交易拥有的输入和输出越多,这个交易的规模就越大。在写入时,比特币的节点将拒绝超过100KB的交易。同时,由于块的大小是有限的(目前为1 MB)你与其他人共同竞争,去使你的交易得到矿工的确认,矿工会将你的交易加入到一个区块中。如果你广播了一笔无费用或费用微不足道的交易,你将会承担下面两点风险,1.即节点拒绝广播这笔交易 2.矿工选择取消确认它,转而去确认每个字节交易费用更高的数据。供参考,我跟踪了一些交易和费用的指标 -在这里你可以看到,在写入时的平均费用是每个字节 30聪。

1-6YlVIjt5PJAZ7uPOf1niWg

交易数据的大小和费用支付

如果我们要优化算法,钱包要通过这个算法来选择UTXOs建立交易,那么我们必须要确定我们的目标是什么,我们想要优化的交易属性是哪些?我可以想象出的优化UTXO选择的三大目标如下:

1.防止区块链膨胀:

A)如果可能的话,尽量避免创造小的找零输出。因为它们会为钱包以及每个摄取区块链的人产生性能成本。他们也可以因为小额规则和市场竞争而产生费用,这样对于终端用户来说,费用变得更高。

B)小UTXOs的整理:自然地,经过一段时间,钱包就会产生许多小的UTXOs。为了降低钱包的UTXO集合的大小,以及整个区块链的UTXO集的大小,最好是在一笔交易中就花掉许多非常小的UTXOs,以便将它们从UTXO集合中删除。

2.隐私:

A)    UTXOs应该进行非确定性选择,并且多用几个不同的公钥。当钱包选择一个UTXO,分配到同一个公钥的其他UTXOs应优先被选择。

B)    小的输入——比找零输出还要更小,并且没有与一个更大的输入共用一个公钥,那么就不要使用它们,因为这些小的输入会增加交易费用,减少隐私。

C)   如果要创建一个找零输出,那么最好是创建一个其价值与支付价值相同的找零输出。这有助于模糊哪一个输出进入了接受者那里,哪一个是返回给了发送者。

D) 应该把找零输出插在一个随机的位置,因为交易有许多的输出,而且并不总是处于第一个位置或最后一个位置上。

3.减少交易费用:

A)当发送所花的费用少时,应首选交易输入集合。这意味着交易的数据大小要尽可能简单,尽可能小,并且几乎没有输入和输出。优先考虑只使用一个单一的UTXO作为交易的输入。

B)以币龄来优先选择UTXOs ,通过发送足够老的金币,足够大的交易将有资格被矿工确定为“高优先级的”,且没有附加费用。

C)如果花费UTXO的成本(通过要求的附加费)比交易输出更高,就不要添加这个UTXO。

真实世界的钱包怎么运行的?比特币核心钱包使用一些相当复杂的逻辑:

1.如果任何一个UTXO与目标(花费价值)匹配时,这个UTXO将被使用。

2.如果所有UTXOs的总和小于目标,但是恰好匹配目标时,这些UTXOs将被使用。(这可以在扫描钱包的时候防止出现错误。)

3.如果所有UTXO的总和小于目标,也不超过目标,那么比目标要大的最小的UTXO将被使用。

4.比特币核心把UTXO进行1000次的随机结合,直到他们的总和大于或等于目标。如果碰巧找到一个精确的匹配,它就较早的停止并使用它。关于这一步的推理,代码中也指出了:“这是随机的,不能起到真正的安全作用,仅仅是用来防止退化行为。”

5. 否则最后落定的要么是大于目标的最小UTXO,要么是步骤4中最小的UTXO组合。

6.当构建最终的交易时,如果任何找零输出足够小,被认为是“灰尘”,而不是创建输出,那么比特币核心会将它们剔除出去,把价值捐给矿工作为交易的一部分费用。

优化比特币核心的逻辑来减少找零输出的大小,即 上面列出的目标1A。这是选择UTXOs 的“最好”或“正确”的方法吗?这取决于你的视角——如果你重视隐私,减少交易费用,或者UTXO整合,那么它就是次优的。

1-pgWIGUYxxRTjRTBcdq-UPg

UTXO集合的大小相对于未使用输出的数目,比例在增长

很明显,在解决这一问题上没有一个万能的办法,事实上,上述三大优化目标所走的方向是相反的。鉴于这三大不相容的目标,钱包作者认为终端用户在选择钱包的UTXO的算法上会有更多的控制权。对高级用户来说,它是一种先进的功能,但是当用户在“费用/性能/隐私”之间选择一个来优化时,我可以想象用户会妥协以追求平衡。

这些选择取决于钱包工程师(我称它们为区块链的好管家)。我们将数据写入的是一个共享资源,因此我们最好要谨慎。在写入时,有17.6 UTXOs需要596 MB的数据来存储。如果比特币的人气继续上升,这些数据也一定会上升。但在细心的区块链工程师的监督下,至少可以防止UTXO集的增长速度超过所需。

----
原文:https://medium.com/@lopp/the-challenges-of-optimizing-unspent-output-selection-a3e5d05d13ef
作者:Jameson Lopp
译者:比比特
稿源: http://www.8btc.com/optimizing-unspent-output

上一篇: 防篡改防偷窥,OS X 上发送 PGP 加密邮件
下一篇: stratum协议原理
推荐专栏
web3首席知识博主
一位相信价值投资的币圈KOL。稳定盈利的缠论野生交易员 #BTC行情分析师 #价值投资 #链上数据分析
爱Web 3,爱生活,爱科技,爱炒币的老韭菜
热门币种
更多
币种
价格
24H涨跌幅
BTC比特币
¥264,810.46
37,103.37 USDT
+0.1%
ETH以太坊
¥14,413.37
2,019.50 USDT
0%
USDT泰达币
¥7.20
1.01 USDT
0%
BNB币安币
¥1,629.54
228.32 USDT
+0.63%
XRP瑞波币
¥4.32
0.60480 USDT
+0.45%
USDC
¥7.14
1.00 USDT
+0.04%
SOLSolana
¥400.45
56.11 USDT
+1.59%
OKBOK币
¥399.37
55.96 USDT
-1.23%
ADA艾达币
¥2.67
0.37480 USDT
-1.32%
DOGE狗狗币
¥0.55330
0.07753 USDT
-1.01%
热搜币种
更多
币种
价格
24H涨跌幅
Terra Classic
¥0.00
9.481E-5 USDT
-18.15%
Gala
¥0.18
0.025383 USDT
-4.86%
dYdX
¥22.63
3.1984 USDT
-0.73%
比特股
¥0.05
0.006569 USDT
-1.93%
PancakeSwap
¥15.60
2.2054 USDT
-2.16%
Conflux
¥1.08
0.1531 USDT
-2.36%
Filecoin
¥31.55
4.4597 USDT
-0.5%
FTX Token
¥29.65
4.1911 USDT
+15.24%
Yield Guild Games
¥2.56
0.3615 USDT
-0.55%
Shiba Inu
¥0.00
8.15E-6 USDT
-2.16%
比特币
¥262,467.38
37103.37 USDT
+0.1%
比原链
¥0.07
0.010022 USDT
-4.68%
最新快讯
更多
汇丰、恒生、渣打、富邦华一四家外资银行入围首批“数字人民币”业务试点名单
2023-11-28 19:06:57
摩根大通和Apollo计划建立代币化“企业主网”
2023-11-28 19:03:57
Nansen2公测版本上线,新增链上数据异动、智能搜索等功能
2023-11-28 18:59:52
西班牙公民需在明年3月底前申报其海外平台上加密货币持仓
2023-11-28 18:53:43
Nansen2已公开测试
2023-11-28 18:53:38
dYdX基金会:主网启动以来超过1645万DYDX被质押
2023-11-28 18:52:07
NicCarter等比特币倡导者发文:比特币挖矿是清洁能源和平衡电网的关键工具
2023-11-28 18:47:58
下载币界网APP