没有区块大小限制的交易手续费市场
摘要。 本论文阐述了,当构建新区块时,在没有区块大小限制的情况下,为了使利润最大化,一个理性的比特币矿工应如何在他节点内存池中挑选交易。为了说明,本文引入了区块空间供应曲线和内存池需求曲线。前者描述了考虑被孤块的风险后矿工供应区块空间的成本。后者表现了内存池中的交易提供的收益,并通过对比计算出为了获得相应收益需要打包的最小区块尺寸。这篇文章解释了传统经济学中的供应需求曲线是如何与这两个曲线的衍生品相关联的,证明了它们交叉点指示的区块空间的生产数量使矿工的利润最大化。本文接着阐述了一个不健康的手续费市场—-在这个市场中,矿工被激励去生产任意的过大区块—-过大区块是不能存在的,因为它要求极端快速地交流信息。本文最后通过考虑理性矿工生产大区块,小区块或者空区块的条件和预估垃圾交易攻击的成本来得出结论。
关键词
1. 比特币 2. 区块大小限制 3.交易手续费市场 4. 区块链垃圾交易攻击
1. 引言
比特币协议里最迫切的一个是否要修改(或不修改)的规则是区块大小限制。这个规则设定了网络交易容量的上限,或者更简单来说,是网络每秒可以确认的交易数量的上限。它的起源可追溯到2010年夏末,当时中本聪——因为担心初出茅庐的比特币网络的可能面临垃圾交易攻击——修改了源代码1,设置了允许新添加到区块链上的区块尺寸的最大值。这个上限设置为1 兆字节,大致对应于每秒三个交易。虽然这和Visa交易容量相比是非常小的,2 但在当时,它比它实际要求的还要大800多倍,3中本聪说,当需要的时候,未来可以提高这个限制。
在2015年7月8日至7月15日期间,积压了六万多个待处理的已生成交易5。区块的容量已接近饱和6,用户体验很差7。写本文时,交易频率是引入区块大小限制时的300多倍8,现在扩容已经成为很严肃的问题。然而,关于网络是否可以支持更大区块的问题已经被提出过。其中一个特别关注的问题是—-没有区块大小限制的情况下或者区块大小远远大于交易需求,是否能够建立一个健康的手续费市场,要求用户支付全部费用以发布交易。( 健康的手续费交易市场的定义在第7节)。我们担心——如果无法建立健康手续费市场—-相当于鼓励用户发起垃圾交易攻击,导致“公地悲剧”——维护网络的费用急剧上升甚至失控。本文的目的是讨论如果矿工,而不是协议规则,限制区块大小,手续费市场是否会出现。
在这方面,很多人已经做了相关的努力。Houy表示,如果矿工添加交易到区块的边际成本是0,那么矿工将“[打包]所有交易,无论交易附加的手续费是多少”。他认为,设置一个最低手续费或者限制区块大小是有必要的。9 Andresen解释说,然而,由于被孤块的风险增加,边际成本不是0;一个理性的矿工,,应该只会打包包含了一定额度手续费的交易,以让交易手续费足以弥补被孤块的额外风险。10 在Houy的工作基础上, 我们将Andresen的孤块因素考虑进去,证明了矿工基本上不会无视手续费去打包所有交易。事实上,如果区块大小不被协议限制,(尽管第10节中明确说明了这个假设),一个健康的交易市场就是矿工理性行为的可预期结果。
在第3节中,我们得出矿工的利润方程——考虑孤块风险的因素——一个用来计算每个区块矿工利润的简单模型。然后我们引入两个新概念,称为内存池需求曲线和区块空间供应曲线,分别在第四和第五节。我们推演了需求曲线是如何从节点内存池中的交易构造而来。同时我们用区块大小对矿工的利润进行微分,将结果设置为零,然后求解随后的微分方程得到供应曲线。我们发现供应区块空间的成本随着区块的大小呈指数增加。我们解释供应曲线是有用意的,因为它具体说明了矿工生产一个给定区块空间数量的成本。我们引入需求曲线也是有用意的,因为它体现了矿工生产特定大小的区块能得到的最大费用。
在第6节中,我们用两条曲线形象地表达矿工利润最大化的区块大小。我们还阐述了这两条曲线是如何与更为人们熟悉的经济学上的供需曲线相关联。在第7节,我们展示了一个不健康的收费市场——矿工被激励生产任意的过大区块——是不可能的。因为它要求在极端高比特率的信道上交流信息,因此违反了Shannon-Hartley理论11。此结果适用于不管是区块广播使用完整区块来传递,还是先被压缩后传递的方案(例如:使用可逆的布隆查找表(bloom look-up tables))。第8节,我们考虑了更多交易手续费市场的细节;最后,在第9节,我们预估了垃圾交易攻击的成本。让我们从定义使用的符号开始吧。
2. 符号列表
在本文的余下部分,以下符号具有指定的含义:
3. 矿工的利润方程式和孤块的影响
通过挖区块,矿工希望每个区块在哈希成本〈C 〉上赚取利润,生成收益〈V 〉
矿工的预计算力成本等于他的矿机等硬件每次计算哈希的摊销价格12η ,他的算力ℎ和他期望在区块上工作的时间长度(通常是区块时间T)的乘积。 表示为以下等式:
矿工的预期收入等于挖到的区块金额乘以他挖到区块的概率。他将赚取的金额就是区块奖励R和交易手续费M的总和。假设所有的区块立即广播,他获胜的概率等于他的哈希率(ℎ)与比特币网络总哈希率的比(H)。放在一起,他的预期收入〈V 〉=(R+M)h/H。
这个方程的问题是,无法反映出矿工因为广播区块给其他矿工的速度变慢而导致的而成功挖矿概率在减小。 即使他是第一个找到有效区块的矿工,如果他的区块是在大多数矿工在另一个区块上工作之后收到的,那他的区块也很可能被丢弃。这种效应称为孤块。
如果添加的手续费收益不足以抵消增加的风险,低手续费的交易将失去吸引力。考虑到这种效应,矿工预期收入方程因为被孤块的风险大打折扣,考虑ℙorphan后公式变成:
直观地看,如果传播时间短,孤块化的可能性应该低;如果传播时间长,则应该是高的。基于区块时间遵循泊松分布的事实,Andresen 将孤块化的可能性约等于10:
中τ是区块传播的时间。图1 直观地显示了这种效果。 必须强调的是,τ是指从矿工挖到区块到该区块已经广播到其他节点和被接受之间的总时间。13
通过代入方程,(2-4)代入式 (1),我们现在可以写出矿工的利润公式:
一个理性的矿工以最大化他的利润预期值的方式选择他区块上的交易。 为了更好地理解他如何进行选择,我们接着将介绍内存池需求曲线和区块空间供给曲线的概念。
4. 内存池需求曲线
内存池是一组矿工知道但是尚未添加到区块中的有效交易的集合。我们将此集合表示为Ν,其中包含的交易数量是n。没有区块大小限制的情况下,矿工可以从Ν中自由选择b≤n个交易创建一个新区块ℬ⊂Ν。
为了构建内存池需求曲线, 我们首先设想从最大费用密度(即交易手续费除以交易的字节数得到的每字节手续费)到最小值进行排序,然后排列成一个列表{i ∶ 1,2,…,n− 1,n} 。如图2所示。一个三角形代表一个交易,三角形高度代表其手续费费用,三角形宽度表示其大小(以字节为单位),三角形斜率表示其费用密度。
如图3所示,通过将角对角堆叠图2中的三角形画出该曲线。 曲线上的一个点表示矿工通过生产给定区块空间大小可以获得的最大费用。这个内存池需求曲线帮助我们将多维选择问题简化为一维选择问题。
5. 区块空间供给曲线
一个矿工选择生产的区块大小决定了他可以得到的手续费M(Q), 以及他选择承担的传播时间的风险。这些变量都影响着他利润的预期值。
为了进行更详细的研究,我们定义将矿工挖空块获得的利润(或损失)定义为中性利润。我们构建一个手续费曲线Msupply(Q), 在M-plane中,通过假设矿工对任意区块大小的利润(cf. Eq. 5) 是一个恒定值,曲线上所有的点将落在中性利润(译者注:这一句暂时未能理解透,原文是We can construct a fee curve, Msupply(Q), in the M-plane where all points on the curve return the neutral profit by requiring that the miner’s profit (cf. Eq. 5) remains constant for any block size:):
公式(6) 是一个常微分方程, 我们在附录中有说明:
其中
。我们称之为区块空间供给曲线。它表现了矿工需要补偿的供应额外区块空间的成本(图4);这些成本随着传播时间呈指数增长。如果一个区块处在MQ-曲线上方的坐标点构成,则矿工有盈余;否则,他会出现赤字,并最好挖一个空区块。我们接下来思考。他如何使用这条曲线和内存池需求曲线,来最大化他的利润。
6.矿工利润最大化
矿工为了最大化他的利润,矿工从他内存池待处理的实际交易中构建了一个内存池需求曲线,并从有关区块广播延迟对比区块大小(估计为 )的经验数据中构造了一个区块空间供应曲线。最大的区块大小Q∗,代表着利润最大的点,即矿工的盈余Mdemand − Msupply是最大的(图5a)。这是理性矿工应该创造的区块大小。
稍微多做一点工作,我们就可以画出一个类似于传统经济学上的供需曲线。14传统的供应曲线代表着一定生产水平Q下商品的单价。然而,到目前为止,我们的分析已经考虑了完整区块的价格。对Q求导得到矿工生产给定数量区块空间的每字节价格15
我们可以通过对Mdemand 和Q进行微分来画出类似于传统需求曲线的图表:
如图5(b)所示,当矿工的利润最大时,区块大小Q∗出现在
我们可以把
看作微分曲线, Msupply and Mdemand看作积分曲线。二者都是有用的。有了这些结果,现在让我们考虑一个健康的手续费市场出现的条件。
7.健康手续费市场的条件
对于比特币手续费市场,我们考虑了三个市场条件:健康,不健康和不存在。健康的手续费市场中,在有限数量的区块空间下,矿工的收益得到最大化(图6a)。在不健康的市场中,矿工的收益随着区块空间而增长,因此理性矿工应该任意生产大区块(图6b)。在一个不存在的市场中,添加任何交易会导致矿工产生赤字,因此矿工生产空区块会更好。(图6c)。
如果我们假设区块空间是一个被要求服从现行市场规律的常规商品(即,区块空间会随单位字节的价格的下降而增加),那我们可以给每一类市场给出更详细的定义条件。虽然我们不能证明这一点,但经过简单计算可以针对每一类型的市场给出区块供应曲线和广播时间的对应表(表1)
如表1所述,当随区块渐进增长而增长的区块广播时间增长速度比log Q 慢时,就会形成一个不健康的手续费市场。使用现实证据,我们可以证明这是不可能的。接下来,将幂指数
代入Q=0并展开得到:
第一项表示通信信道的滞后:因为本文的目的, 它指的是通过信道沟通区块头所花费的时间。由于光速率的限制条件
它拥有一个物理上的下界。其中d是传送信息的距离,c是光速率。
第二项,部分与信道的承载能力有关,并拥有Shannon-Hartley定理11所描述的下界。我们可以通过以下的设置更清楚得地看到这一点:
其中γ是编码增益,C是信道容量(以每秒/信息字节为单位)。通信信道的承载能力限于:
其中B是信道的带宽,S是信号功率,N是信道的噪声功率。
第三项是Q2的一阶和更高阶求导所得项的总和。 在任何实际实施中,这些项都因为真实世界的混乱,简单地存在着;然而,作者不知道任何他们必须存在的物理原因。本文的余下部分,我们假设这些项相比于常数和线性项是可忽略不计的,在这种情况下,我们取近似值。
该等式表明,额外的传播时间约等于生产的区块大小除以可以传输区块方案的编码增益,并除以通信信道的有效容量。因为C或者都不能是无穷大,这个项就不可能是为零。此外,因为C是信道的物理属性,是交易信息在区块中被压缩的程度,所以没有理由支持找到C或者和Q之间可以构成函数关系。这意味着,没有任何物理通信信道的区块传播时间渐进增长得比O(Q)还慢。因为这比实现健康手续费市场的O(log Q) (假设R> 0)还快。所以不健康的手续费市场在物理上是不可能的。
8. 大区块,小区块和空区块
为了将数字用于我们的分析,我们根据编码增益和信道容量(参考方程9)来表现方程(8)
这个方程描述了矿工能够获益地往区块大小为Q的区块上添加另一个交易所需要的边际费用密度。用图7(R/T=25BTC/10min,即绘图)来表示,通过图阐明了在不同区块方案传播速率下,费用密度是如何激励矿工生产大区块,小区块和空区块的。需要注意的重要关系是:(1)如果更多的交易对区块空间投标,手续费用会呈指数增长; (2) 提高广播速率,手续费会变得更便宜(单位是比特币)。(3)在面对最小的手续费密度时,理性的矿工将会生产空区块。
手续费密度对区块传播阻抗的假定值是敏感的。表2总结了传播阻抗4个不同的估计,以及与每个估计对应的最小费用密度。在下一节,对这四个估计,我们计算了每个估计填充128MB垃圾交易攻击的区块成本。
9. 粉尘攻击的成本
我们可以将区块空间供应曲线解释为攻击者必须承担的生产大量区块链垃圾交易攻击的最小成本边界。在攻击者是矿工的情况下,它代表被孤块的风险成本。(例如,在一个“sticks”之前,他可能因为垃圾交易区块失去区块奖励)。在攻击者不是矿工的情况下,它表示诱使理性矿工打包大区块所必需的最小费用。 垃圾交易攻击成本(公式7和9)与等于:
成本随着填入区块中的垃圾交易数量Q呈指数增长。图8 绘制了恒定垃圾交易数量的轮廓线;它说明了垃圾交易攻击成本是如何随着攻击者使用额外交易数据填充区块而增加的;以及垃圾交易成本是如何随着网络互联性的增加而减少的。 表3列出了预计的垃圾交易攻击成本,并与第8节算出的最小手续费密度作对比。根据方程式(10)中指数,生产特别大的垃圾交易攻击区块需要攻击者付出明显大于最小手续费的有效手续费。
有趣的是,在引入块大小限制(2010年9月6日) 时,比特币4周平均浮动价格是$0.068。 区链垃圾交易攻击千兆字节的成本是几千美元,而不是如今的数百万美元。由于垃圾交易攻击成本是用比特币衡量的,比特币的高市场价值是一种有效的反垃圾交易攻击措施。
10 结论
我们证明了如果矿工以利润期望值最大化的方式添加交易,就会出现一个没有区块大小限制的手续费市场。建立这个结论的关键是考虑孤块风险来计算矿工供应额外区块空间的成本。不出意料,我们证明了区块空间成本与比特币的通胀率R/T和每次传递未压缩兆字节区块给其他矿工所花费的时间成比例,1/γC。然而,更有趣的是,我们证明了孤块成本不是静态的,而是随着区块大小,Q,和需求等呈指数增长:
据Andresen观察,10不仅存在一个最小手续费密度,理性的矿工不会添加任何手续费低于最小手续费密度的交易,而且如果一个区块内的空间需求增加,所需的费用密度也自然增加。21确实,一个理性矿工不会无视交易的手续费的多少而随意打包所有交易,因为紧急且手续费更高的交易必然将手续费较低的交易踢出局。最低手续费密度会随需求呈指数级增长。类似地,希望生产垃圾交易攻击的大区块的攻击者—不管这个攻击者是矿工还是使用者,必须支付远远大于支付给适量区块空间每字节成本的有效手续费密度。一个收费市场自然应运而生。
我们在本文中做了三个重要的简化假设:(1)我们假设被孤块的概率是以一个时间参数为特征的。这个参数是矿工计算挖到一个区块后将他的区块广播并被同行所接受的这段时间。(2)在第7至9节,某种程度上,因为用于传递区块的信道容量和被用于被压缩的编码增益,导致这个时间参数具有下限。就如Shannon-Hartley 理论所描述的那样。以及(3)因为孤块化,我们忽略了矿工把交易打包进区块的时间成本这些简化假设使得这个课题值得进一步研究:
(1)将信息广播给其他矿工所花费的时间在整个网络上通常不是恒定的,22 而内存池(打包交易的时间)很大程度上是一样的。这表明,假设相等的算力成本,能够更快广播他们区块的矿工将赚取更大利润。与此相关的,最近的证据还表明,矿工可能在完全接收和验证新区块之前开始挖矿。23 这些现象将如何影响当前的分析?
(2)想象一下建立一个挖矿联盟,与高容量中继信道相连接,并致力于规范化矿池政策(以促进区块方案的密集压缩),这样一个联盟可以大大减少将区块广播到其他成员所需的时间。我们期望形成这样一个联盟吗? 以及它们的效果是什么?
(3) 当矿工确认了一笔交易,从而使得未花费输出值(UTXO)集合增加时,这相当于他以现在的收益承担了未来无限期地存储这些新的输出的成本。这种情况下,一个健康的手续费市场是否会出现,收取用户扩大比特币的UTXO集合的成本?
必须强调的是当区块奖励下降到0时,本文提出的分析将不成立。这表明区块空间成本为0;然而这也表明算力为0, 反过来说明交易将永远不会被打包,那任何区块空间将不会产生,这是自相矛盾的。幸运的是,关于后区块奖励的前景可以慢慢探索,这在开始成为现实之前还有四分之一个世纪。进入遥远的未来,一个健康的交易手续费市场预计将不存在区块大小限制。
附录
区块空间攻击曲线通过区块大小函数 Msupply(Q)得到,该函数描述了精确补偿孤块化风险所需的费用。数学上来说,我们要求矿工的利润(参见等式5)对于任何数量的区块空间保持恒定,Q :
因此
其中等式
(A2)描述了计入孤块化风险生产区块空间Q的成本。对于本文的目的,应该被解释为传播区块头所花费的时间。
致谢
作者非常感谢Christopher E. Wilmer 博士的指正和建议。作者还想要感谢比特币论坛上许多有思想的人,是他们帮助我建立了本文的基础,还有r/bitcoin社区,感谢大家的热情和鼓励。
附录:
请查看原文。
本文的doc版和pdf版,以及原文的pdf版已经上传的巴比特文库,欢迎下载阅读。您也可以使用百度云盘下载:https://pan.baidu.com/s/1bz9kAE 密码: e96r
声明:此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。本网站所提供的信息,只供参考之用。