主页 > imtoken国际版 > 比特币数据科学(第 3 部分):尘埃和热力学
比特币数据科学(第 3 部分):尘埃和热力学
我们研究了 dust 的历史和未来——比特币容器 (UTXO),其中发行代币的交易费用大于余额。
区块链的粉尘量是由当前的 UTXO 集合和交易手续费市场决定的。 在交易费用高峰时期(2017 年 12 月左右),比特币区块链中 25-50% 的 UTXO 可以称为灰尘! 同时,这些布满灰尘的 UTXO 中包含的比特币数量很少:仅价值数千万美元。 因此,根据您的测量方式,灰尘要么是一个大问题,要么可以忽略不计。 无论如何,我们讨论了减少新灰尘和清洁现有灰尘的可能解决方案。
在现实世界中,工作量证明强烈地锚定了比特币,并使其服从热力学定律。 矿工消耗的能量确保了区块链的安全,但这项有用的工作伴随着熵和废热的增加。 如果比特币区块链是一个引擎,那么除尘 UTXO 将是它燃烧掉的余热的一部分。 由于没有引擎是完美高效的,比特币永远不会停止制造灰尘。
什么是灰尘,它来自哪里?
比特币使用一种称为未花费交易输出(UTXO)的会计结构。 任何比特币交易的输出都是新的 UTXO,输入是现有的 UTXO——它们完全被该交易消耗掉了。 在区块链上,比特币总是“存储”在这样的 UTXO 中。 有关比特币 UTXO 分布的更多信息,请参阅 。
该图显示了钱包可能构建发送 0.5 BTC 的交易的两种可能方式。 第一笔交易消耗了两个UTXO一个比特币包含几个聪,所以手续费较高。 第二笔交易只消耗一个 UTXO,因此更便宜,但会产生一个余额非常低的找零输出。 虽然对未来交易费用市场将如何变化的了解还不完全,但钱包软件必须在今天平衡这些权衡。 这是一个难题。
当钱包构建交易时,它必须决定使用哪些 UTXO 作为输入。 这可能听起来很简单,但它确实是一个很难的优化问题。 Jameson Lopp 定义了钱包软件作者必须追求的三个同时存在且相互冲突的目标 (@lopp/the-challenges-of-optimizing-unspent-output-selection-a3e5d05d13ef):
通过在钱包中保留许多可用的 UTXO 来支持高交易量。
通过变得不确定并屏蔽哪些输出已更改来保护隐私。
无论是现在还是将来,尽量减少交易费用。
显然,这个问题没有“一刀切”的解决方案,事实上,上面概述的三个广泛的优化目标经常是直接对立的。 ——詹姆森洛普
此外,钱包软件通常是通用的,这意味着由许多不同类型的用户共享。 钱包作者不知道特定用户未来计划进行什么交易,也不知道交易费用市场将如何发展。
这意味着钱包无法对有时会产生低余额的尘土飞扬的 UTXO 做任何事情。 钱包的 UTXO 管理是一个困难的优化问题,没有针对所有用户的全局最优解。 这就是尘埃的最终来源。
什么会产生 UTXO 灰尘?
直觉上,低余额的 UTXO 很可能是灰尘。 下图显示了 UTXO 余额随时间的分布:
UTXO 余额随时间的分布。 冷色(蓝色和绿色)代表低余额 UTXO,暖色(橙色和红色)代表高余额 UTXO。 我们选择绘制的百分位数突出了分布的下端和上端。 UTXO 余额范围广泛:分布上端的 UTXO 包含数千 BTC,而下端的 UTXO 包含不到 100 聪(11-12 个数量级!)。 [~unchained/41/utxo-balance-percentiles/#/]
该图确实证实了存在大量低余额 UTXO,但我们能否更准确地定义哪些低余额 UTXO 是灰尘?
在交易中花费 UTXO 需要引用该 UTXO(通过提供创建它的交易 ID 以及它在该交易中作为输出出现的顺序)并使用所需的密钥对其进行签名。 所有这些都需要一定数量的字节来表示,矿工必须用交易费用来补偿这些字节。
交易从其输入的 UTXO 中扣除其交易费用。 这通常不是问题,因为与它们燃烧的所有 UTXO 余额的总和相比,交易费用通常很小。 但是,如果一个 UTXO 的余额很低,或者交易费用很高,或者花费一个 UTXO 需要大量的字节,那么花费一个输出的 UTXO 的成本可能会超过它包含的币。
我们将 UTXO 的价值密度定义为其余额除以花费它所需的字节数。
UTXO 的价值密度衡量的是每个字节中包含多少个比特币才能发出货币。
根据这个定义,将 UTXO 归类为灰尘需要比较两件事:
这两个数量的单位都是聪/字节,因此它们可以直接比较:如果一个 UTXO 的价值密度低于矿工目前接受的最低交易费用,那么该 UTXO 目前是灰尘。 随着(通常是波动的)交易费用市场的变化,UTXO 可能会随着时间的推移跌至“粉尘线”以下,随后又会升至“粉尘线”之上。
花费一个 UTXO 需要多少字节?
清理 UTXO 需要知道花费多少字节,但这个数字并没有明确定义:在单笔交易中花费的 UTXO 越多,花费平均 UTXO 所需的字节就越少,因为它们可以共享块标头或隔离见证信息。
无论如何,我们至少可以做出任意选择并询问花费多少字节来花费一个 UTXO - 假设交易是单个输入。 答案取决于 UTXO 地址的类型。 下表总结了这种关系:
地址类型与在该地址上花费 UTXO 所需的字节数之间的关系。 复制自 Pérez-Solà、Delgado-Segura、Navarro-Arribas、Herrera-Joancomart 的表 3。 Another Coin Meets Dust:基于 UTXO 的加密货币中的灰尘分析 (2018) []
上表具有“简单”地址类型(例如 P2PK 和 P2PKH)的明确大小。 但是对于特别是 P2SH 地址,不可能先验地计算出从该地址花费 UTXO 所需的字节数。 只有后验,一旦该地址的赎回脚本显示在交易中,就有可能知道从该地址花费了多少字节。
尽管如此,大多数 P2SH 地址都是具有可预测结构的多重签名地址(一旦已知它们是多重签名地址)。 此外,我们可以从区块链历史记录中推断出许多 P2SH 地址:
根据历史数据估计从每个给定地址类型花费 UTXO 所需的字节数。 复制自 Pérez-Solà、Delgado-Segura、Navarro-Arribas、Herrera-Joancomart 的表 6。 Another Coin Meets Dust:基于 UTXO 的加密货币中的灰尘分析 (2018) []
通过 UTXO 跨地址类型的分布,我们可以使用上表中的估计值来计算在任何给定时间花费 UTXO 所需的平均字节数。 下表总结了这些数据:
比特币 UTXO 集地址类型的历史分布图。 黑线显示了当时花费平均 UTXO 所需字节数的最佳估计值。 主导地址已经从 P2PK 转移到今天的 P2PKH 和 P2SH。 []
根据上图,我们估计平均花费一个 UTXO 需要 172 个字节。
注意:根据构造,这个数字被高估了。 在比特币历史的大部分时间里,不仅花费一个 UTXO 所需的平均字节数低于 172 字节,而且智能批量交易可以显着降低这一估计。
存在多少灰尘?
根据比特币历史上任何区块的 UTXO 集合,以及花费一个 UTXO 所需的 172 字节的估计值,我们可以通过将每个 UTXO 的余额除以花费它所需的字节数来构建 UTXO 价值密度分布:
彩色条显示图例中指示的每个百分位数的值密度。 黑色虚线代表一段时间内的平均费用,黑色实线代表最低费用。 价值密度低于最低手续费的UTXO不能被花费,价值密度低于平均手续费的UTXO很难被花费。 该图假设花费任何给定的 UTXO 平均需要 172 个字节。 [~unchained/39/utxo-value-density-percentiles/]
该图与之前的 UTXO 余额分布图非常相似——它只是根据花费每个 UTXO 所需的字节数 (172) 重新缩放。 这个新分配的单位是聪/字节,所以我们可以直接将它与该块(黑线)的转移费用市场进行比较,我们不能单独使用 UTXO 余额。
这幅图说明了什么?
有很多灰尘!
在 2017 年末的高交易费用市场中,15-20% 的 UTXO 的价值密度低于 50-60 聪/字节的最低费用,几乎无法消费。 40%-50% 的 UTXO 的价值密度低于 600-700 聪/字节的平均费用,因此难以花费。 那是很多灰尘!
交易手续费市场在2018年大幅降温,时至今日,10-15% UTXO的价值密度仍低于20-30聪/字节的平均交易手续费,3-5% UTXO的价值密度低于1-2 聪/字节的最低费用。 灰尘少了很多,但还是很多。
所有的灰尘都没有价值!
换个角度来看:算起来,很多UTXO可能是灰尘,但是这些灰尘UTXO到底包含多少比特币呢? 虽然它们很多,但根据定义它们的余额很低,因此总体而言它们并不多。 下图显示了比特币在低价值密度 UTXO 中所占的比例:
彩色条表示给定价值密度的 UTXO 中包含的比特币比例。 由于大多数比特币都包含在高价值密度的 UTXO 中,因此只显示了低价值密度 UTXO(可能是灰尘)的条带。 放大最近几个月,可以看到最近低价值密度 UTXO 的减少。 该图假设花费任何给定的 UTXO 平均需要 172 字节。 [~unchained/33/utxo-value-densities-distribution-satsbyte]
虽然有许多 UTXO 的价值密度非常低,但上图显示灰尘 UTXO 中包含的比特币总量非常小。 即使在交易费用高峰期,按价值计算,也只有 0.01-0.02% 的比特币是尘埃。 当时的市值约为 225 亿美元,相当于 2500 万至 5000 万美元的尘埃。
今天的平均交易费用远低于 2017 年底。按照今天的费用计算,只有 0.0005% 的比特币是灰尘。 以今天低至 650 亿美元的市值计算,这仅代表 300,000 美元!
陷入 BTC 尘埃中的价值已从 2017 年底的 5000 万美元缩水至如今的 30 万美元。
注:这些数字被高估了。 交易的智能批处理可以减少花费 UTXO 所需的平均字节数,从而降低我们对灰尘 UTXO 的数量和价值的估计。
我们可以减少灰尘吗?
比特币是一个无领导的系统。 这使得很难设计出各种自上而下的方法来消除现有粉尘并减少未来粉尘的产生。 我们必须依靠对生态系统中的用户、矿工和企业的激励。 这样的激励措施存在吗?
交易所等业务
是的,他们有。 虽然崩溃的价格和交易费用市场是减少粉尘量的主要原因,但在 2018 年,交易所等大型参与者(尤其是 Coinbase)推出了积极的粉尘减少措施。 下面这张低价值密度 UTXOs 中的余额图直接展示了这些有效措施的影响:
给定值密度的 UTXO 中包含的比特币分数图的注释版本。 整个行情的效果,无论是缓慢的(增币期)还是快速的(反弹期),都是在增加粉尘量。 单个参与者可以大幅增加(2015 年的“压力测试”)或减少(2018 年的 Coinbase)灰尘量。 但是灰尘的产生永远不会停止; 注意最近的增加和正在进行的清理工作。
像 Coinbase 这样的企业已经产生了很多灰尘并且低效地使用区块空间,因为他们没有充分地批处理客户交易。 由于 Coinbase 等主要交易所在 2017 年涨势期间的流行,这种行为影响了比特币网络的其余部分,并受到许多人的合理抱怨。
当交易费用市场在 2018 年初回落时,Coinbase 既有动力也有能力减少其现有的粉尘足迹和未来的粉尘产生。 批量交易可以为 Coinbase 这样的大型公司节省交易费用,也可以减少粉尘的产生。 Antoine Le Calvez 的优秀文章“当比特币尘埃落定”(@alcio/when-the-bitcoin-dust-settles-878f3431a71a) 分析了这段“UTXO 合并”——UTXO 集合清理。
比特币生态中的其他阵营是否有同样的动力和能力来减少灰尘?
用户
用户不会直接受到灰尘的影响。 由于他们使用的钱包软件效率低下一个比特币包含几个聪,他们可能会产生灰尘,但很少有个人比特币用户会产生大量灰尘。
用户不喜欢高手续费,但尘埃并不直接影响交易手续费市场。 产生灰尘的低效 UTXO 管理也会导致更多小额交易,这是交易费用更高的一个更大原因。 因此,只有适度的激励措施来鼓励用户减少粉尘。
即使他们缺乏激励,用户有能力限制灰尘吗? 毕竟,正如 2017 年的 UASF 运动所证明的那样,用户在加密货币方面拥有很大的权力。 但灰尘是一个普遍的问题,是公地的悲剧,因此需要一些协调的解决方案。 用户需要开发者和/或交易所和矿工的帮助来清理他们身上的灰尘。
个人用户可能愿意“捐赠”他们的灰尘,而比特币确实提供机制(例如 ALL|ANYONECANPAY 或 NONE|ANYONECANPAY 类型的签名)供用户捐赠他们的灰尘。 如果钱包支持,社会协调的公共房屋清洁可能是一种有趣的方式来资助各种用户选择的慈善机构或有利于比特币生态系统的项目。
矿工
大多数矿工都忽略了灰尘。
矿池中的矿工只需支付散列费用; 池操作员需要管理 UTXO 集并处理它包含的任何膨胀,但他们也可以自由地从他们的内存池 UTXO 中删除低价值密度的灰尘。 无论如何,没有用户可以消费它们! 这将为清道夫矿池提供尝试挖掘这些尘埃 UTXO 的机会,但这仍然需要用户采取行动来花费它们。 用户可能不会注意到或关心。
担心尘埃落定的独立矿工或矿池运营商可能会选择安排交易费假期——这些矿工将有意允许零费用交易,可能在清除期间(仅)花费低价值密度的 UTXO。 这将允许用户清理他们的钱包,同时帮助矿工和节点运营商大幅减少他们的 UTXO 设置的内存占用。
BetterHash() 等提案分配了选择交易的能力,可能会鼓励更多个体矿工离开传统的矿池(矿池运营商决定开采哪些区块)并构建自己的区块。 好吧,他们可能不得不更多地处理/关心灰尘。
理论上,矿工也可以拒绝挖掘产生尘埃 UTXO 的交易。 但他们真的愿意牺牲短期的交易手续费收入来避免造成长期的尘埃吗? 这似乎不太可能,因为矿池主导着挖矿,而且这些矿池并不特别关心灰尘。
全节点运营商
全节点运营商——那些备份区块链、传播和验证交易但不挖矿的人——也对粉尘产生有一定影响。 bitcoind 软件中的 minRelayTxFee 参数允许节点运营商设置一个最小值密度,低于该值他们将忽略/删除 UTXO(以及创建它们的交易)。 在某种程度上,这种设置阻止了价值密度极低的 UTXO 的创建——如果从未实施过这种设置,今天可能会有更多的灰尘。
但是很少有节点运营商将他们的配置设置调整到这种详细程度。 由于开发者选择了 bitcoind 软件的默认设置,因此开发者可能会对全节点在真实环境中的运行方式产生更大的影响。
开发商
在许多方面,开发商是限制粉尘产生的最佳人选。
开发人员编写钱包软件并为其编写文档。 当面临困难的优化问题时,他们的权衡(和失败)是灰尘的根本原因。 在用户需求的驱动下,从钱包到钱包的新策略和最佳实践是减少未来粉尘产生的最佳方式。
开发人员定义贯穿全节点运营商、矿工、交易所和其他企业网络的默认节点设置。 这提供了一种针对灰尘的群体免疫,过滤来自恶意或低效钱包的灰尘交易。
通过草根运动(如 UASF),开发人员可以直接与用户和矿工合作,构建安排和运营大扫除和交易费用假期所需的社交软件。
通过构建像闪电网络这样的第二层,开发人员甚至可以希望完全超越灰尘问题。
灰尘在所难免
然而,任何对齐或协作都不能完全消除粉尘的产生。 尽管 2017 年对灰尘的认识有所提高,并在 2018 年 3 月尝试清理它,但灰尘仍在继续产生:
灰尘的产生是比特币固有的低效率。
灰尘只影响比特币吗?
并非所有区块链都使用 UTXO 模型进行交易。 例如,以太坊使用账户模型。
这两种差异都大大减少了灰尘的产生,但并没有消除它们。 以太坊开发人员还担心以太坊区块链中的 dust() 及其导致的膨胀。
尘埃的产生,更普遍地定义为使用不经济的代币,似乎是区块链中常见的低效率问题。
区块链热力学?
dust UTXO 和常规 UTXO 之间的区别之一是可用性。 与存储在普通 UTXO 中的相同聪相比,存储在灰尘 UTXO 中的聪更不易花费。 但它们在区块链上是一样的。
矿工为保护区块链而投入的计算能力可以保护尘封的 UTXO,就像保护更有用的 UTXO 一样。 这使得尘土飞扬的 UTXO 中的一些聪显得更加无用,实际上是在浪费能源。
“浪费能源”可能是比特币的一个敏感问题。 一些人已经在哀叹确保比特币交易的工作量证明所需的能量。 如果他们知道不会使用比特币保护的大量资金,他们的反对意见会更加强烈吗?
比特币的安全性能如何?
比特币有能源效率的概念吗? 使用计算能力保护有用经济资产的效率如何? 人们可以通过将其视为加热器来简单地定义比特币矿工的能效——但是对于整个比特币网络,是否有更有趣的区块链级能效定义? 该定义承认,由于灰尘,比特币的效率低于应有的水平。
物理学与经济学
关于能源效率的问题可以用热力学术语来表述,因此可以使用物理学工具来回答。
近几十年来,物理学家多次尝试使用他们的工具来模拟经济系统。 有时,这些尝试的简单性和范围是惊人的:数十亿美元由源自 Black-Scholes 方程(或类似方程)的模型控制,该方程计算类似于物质中热扩散的期权价格。
其他整合这些领域的尝试(“生态物理学”)感觉像是被其父学科拒绝的奇怪而孤立的拼凑而成。
区块链适合物理学家做量化分析和理论模型吗? 考虑:
区块链代表了一个前所未有的机会,可以将经济学和物理学的见解结合起来。
区块链作为热机
这些属性的组合表明,我们可能想要更认真地对待“尘埃 UTXO 是一种能源浪费”这一随意的说法——事实上,更确切地说:UTXO 是一种“能源浪费”,因为它们对任何人都没有任何有用的“功” ”。 这降低了我们寻求衡量的效率。
物理学家定义了一个简单的框架来理解热、功和废物(熵)与机械发动机效率之间的关系:热力学经典理论。
像这样的热力学方程将输入能量和发动机所做的功与其内部能量变化及其产生的熵量联系起来。 这个特定的等式只是暗示性的; 目前尚不清楚这些术语是如何为区块链定义的。
没有经典的引擎是完美的; 有用功的提取总是伴随着熵的增加,通常表现为系统中的废热: 分布在反应室空气和燃料分子中的焦耳能量比发动机热排气中随机振动的分子相同的焦耳能量是更有用。 发动机的效率是发动机避免产生有利于有用的机械功的废热的程度。
灰尘 UTXO 是无用的,但无论如何它们都是安全的,就像发动机排气产生的废热无用但无论如何都会产生一样。 正如工程师设计巧妙的系统来避免产生废热并迅速将其排出一样,区块链工程师正在开发更智能的钱包软件,区块链公司正在“冷却”自己的灰尘以提高链的效率(特别是,冷却 UTXOs 发生在顺序“粒度”的 - 企业在较低价值密度之前清理较高价值密度的灰尘,如 Antoine Le Calvez 在比特币尘埃落定时所示)。
灰尘和废热之间更精确的类比是一个挑战。 支配引擎的相同热力学定律适用于任何系统——包括基于工作量证明的区块链。 困难在于应用他们的定义。 在比特币交易的背景下,“工作”是什么? 如何衡量区块链的“内能”? 比特币处于平衡状态吗? 将系统视为一堆产生物理废热的计算机是正确的,但无趣且过于精简。 比特币的域数据(交易、UTXO、价格、交易量、交易费用等)是否可以被视为热力学系统?
如果我们对工作量证明区块链的热力学有更好的理论,我们也许能够回答这些问题并根据能源使用、交易量、UTXO 创建、价格数据来定义比特币作为市场的“能源效率” , 交易费用等实际数据来计算其方法论。
区块链的热力学理论将是经济学和物理学的进步。 回答“矿工投入比特币哈希的能量去了哪里?”这个问题。 可能是一个非常强大的新框架,以一种帮助我们使用热力学语言理解比特币经济学的方式来理解世界。
-结束-