未使用的输出选择挑战优化

By | 2015年5月18日

优化未使用输出选择的挑战

当我们谈论的是存储在块链的比特币,大多数人会称之为“比特币地址平衡”,从会计的角度来看,是有意义的。然而,事实上这是不在块链数据结构演示硬币。没有一个地址由一个硬币,“钱”实际上是存储为“非贸易输出”(utxos)。一个比特币地址相关的utxo,虽然也可以有许多不同的utxos和一点钱地址相关的。”地址平衡”是所有与utxos价值相关的地址和。从技术的角度理解utxos,我推荐你阅读李察gendel布朗的“欢迎来到比特币岛”。如果你想了解技术方面的东西,在开发者指南,看看。

优化未使用输出选择的挑战

(交易的输入和输出信息不用的输出实际上是Bitcoin的;)

当比特币钱包软件创建一个新的交易,它的内部数据安排交易相同的灵活性。这是因为用户指令的钱包:“X点钱送到地址y,钱包需要utxos用户排序为了找到足够的输出,即总价值为X的一个比特币。不幸的是,在utxos模式的选择,不是一个简单的和容易的方法,因为需要做一些思考。

幼稚的做法是直接为最小输出搜索,数量超过你想花和使用量,否则,它被添加到一个最大输出直到你有足够的输出,以满足成本目标。然而,这将导致输出被分裂,直到满钱包可以不再使用小平衡。这是一个性能问题,如果用户试图删除只有一小钱包平衡,然后在这也可以在用户终端中发挥作用。钱包已用于许多交易及可能导致,大量utxos一这些utxos和是花在一单一的交易不可行。

虽然比特币的交易包含了输入输出数目数百,但有一个价钱。与输入和输出的更多交易,交易规模大。在写作中,节点的比特币将拒绝交易超过100KB。同时,由于块的大小是有限的(目前为1 MB)你的竞争与其他人,让你确认交易的矿工,矿工们将你的交易被添加到一个块。如果你播放了一笔没有成本或费用最小的交易,你会采取以下两种风险,哪些节点拒绝广播协议。矿工选择取消确认,相反,确认数据的每个字节的交易成本较高。仅供参考,我发现一些指数交易成本-在这里你可以看到,在写作的平均成本是每字节30听力。

优化未使用输出选择的挑战

(对交易数据和支付的大小)

如果我们想优化算法,通过该算法的钱包选择建立了一个贸易utxos,所以我们必须确定我们的目标是什么,我们要优化的交易属性是什么?我可以想象三目标优化utxo选择如下:

1防止块链扩展:

a)如果可能的话,尽量避免创建输出变化小。因为他们将生产钱包,每个块链人体摄入的性能开销。他们也可以导致成本因为琐碎的规则和市场竞争,所以对用户终端,成本变高。

b)小utxos整理:自然,一段时间后,会产生许多小utxos钱包。为了减少集utxo钱包大小和设置整个区块链utxo大小,最好是在交易会花许多非常小的utxos。为了消除他们的utxo收集。

2隐私:

一)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。

优化未使用输出选择的挑战

(utxo集合的大小与数量,不应用于产出增长的比例)

显然,没有一个通用的方式,解决这一问题,事实上,优化的目标去的方向是相反的。在三个不相容的目标,钱包的观点,笔者认为,终端用户utxo选择算法的钱包里有更多的控制。对于高级用户,它是一种先进的功能,但是当用户之间的“成本/性能/隐私”选择一个优化的,我可以想象用户会追求平衡。

的选择取决于钱包的工程师(我称之为“blockchain管家)。我们将写数据是共享资源,因此我们最好小心一点。写作的时候,有17.6 utxos 596 MB的数据存储。如果比特币的人气不断上升,这些数据将上升。但在监理工程师精心捯链下,至少可以防止utxo设定的增长速度快于所需。

————
个文本:HTTPS作者:/ /中。COM / @挽/ the-challenges-of-optimizing-unspent-output-selection-a3e5d05d13ef

詹姆森,笔笔挽译者:特殊的
稿源:http://www.8btc.com/optimizing-unspent-output

文章为作者独立观点,不代表白璧德位置。

发表评论