区块链成本有多高?一个直观的计算

日前 Cipher 发表了 Mining 向左,Staking 向右——公链的两大演进方向与价值分析 ,对两类公链的价值与应用进行了分析与展望。该文谈到:区块链系统无论如何设计,其 IT 成本一定高于中心化系统。本文希望延续这个话题对区块链成本问题进一步讨论并用具体的数据进行支撑,主要讨论两个方面:区块链系统运行成本,区块链系统与中心化系统的交易费用对比。

区块链系统运行成本

很多文章长篇累牍讨论了区块链的颠覆性价值,却很少讨论区块链系统的运行成本。区块链的成本有多高呢?应当如何衡量呢?Colin Platt 提供了一种视角:区块链系统运行成本是代币通货膨胀与交易费用之和。

该文认为,_维护与保护公链的成本与保护公链抵御审查与外部干预的能力正相关的,公链成本越高,公链的安全性就越强。_在 Bitcoin,维护与保护区块链的是矿工。矿工通过每十分钟解答一道谜题来竞争出块权利,以获得保护区块链的奖励。这种奖励通过两种方式发放:1、通货膨胀(铸币税);2、交易费用。通货膨胀(铸币税)可以这么理解:假设市场有 100 枚比特币,每枚10元,市值1000元。矿工获得保护区块链的奖励 100 枚比特币并流通入市场,此时比特币的市值并没有提升,而货币却增多,火币发生了贬值。通过通货膨胀(铸币税),持币方的财富贬值,部分地转移给了矿工。交易费用比较容易理解,不再赘述。该文作者也论证:当通货膨胀下降时(出块奖励下降),会将保护网络的成本转移到交易费用上,并且提高网络安全性会进一步增加交易成本。Nervos 通过精妙的经济模型对此问题作出了回应。

通过上述论述,我们能够轻易获得目前主流的区块链的运行成本,这些成本是由所有的持币人所付出的。具体信息如下图:

我们发现,比特币一个月的运行成本竟高达5.4亿美元,而以太坊的运行成本也高达1.16亿美元,EOS的运行成本则高达 2800万美元。该图表中使用了 Bitcoin、Ethereum、EOS 6月增发数量、交易费以及代币价格。Bitcoin 数据来自 Blockchain.info , Ethereum 数据来自 Etherscan.io ,其计算方式为(日代币增发数+日交易费)*日平均价格, EOS 数据则来自其每年 5% 的代币增发估算并与6月的平均价格相乘(EOS 是没有手续费的)。在这里值得提出的是,EOS 年增发为5%,而仅 1 %作为 BP 奖励。但是由于这些代币的是有可能流通于市场的,本文依旧将其计算为 5%。

区块链系统与中心化系统的交易成本对比

上文已经对区块链系统的运行成本进行了论述,来到本文的第二部分:区块链系统与中心化系统的交易成本对比。交易成本对比基于一个简单的方法:1)将区块链系统假设为一个黑盒,仅关心该黑盒的运行性能(计算、存储、带宽等);2)预估具备同样性能的中心化系统的成本(本文采用 AWS)。3)分别计算区块链系统与中心化系统的交易成本。

区块链系统由以下的基本操作组成:第一种是收集和验证交易(计算),第二种是保存它们(存储),第三种是从存储中读取。可以了解到 Bitcoin 在今年6月从 221GB 增加到 226GB,其整月所处理的交易数为10486006次,但是若没有进行实际地运行,依旧无法精确测量内存与带宽的使用量。Colin Platt 采用了预估的方案,认为在2018年4月,Bitcoin 相同能力的服务器月成本(AWS)为 127.16 美元,Ethereum 则为 208.9 美元。

本文选择了更为精确的方案:EOS BP 往往会对使用的设备进行公开介绍,譬如大多数 BP 都会选择 AWS x1.32xlarge(128 vCPU,2 TB RAM,4T SSD)作为推荐方案,不过在实际运行中往往采取较低的配置并保证能够快速进行配置升级。根据该设备配置,一台设备的运行成本为:$11538 /Year,$961.5/Month(加利福尼亚北部)。考虑到带宽成本,并对业内真实运作成本进行了咨询,本文预估与 EOS 相同能力的设备成本为每月 1500 美元。事实上,相对于后续得到的结果,预估的误差基本是可以忽略的。

上图展示了 Bitcoin、Ethereum、EOS、AWS 的交易费用成本。这张图表需要获得区块链的月运行成本及其交易数,其中 AWS 的成本为 1500 美元,其交易数为 EOS 的交易数。为了表达上的美观,只保留了前两位数字。具体数据如下:

是的,Bitcoin 的交易费用是中心化系统的 600 万倍!从 Bitcoin、Ethereum、EOS 等项目的发展来看,区块链系统的交易成本一直都在下降。通过相对中心化的方式,EOS 的交易成本已经显著地低于 Bitcoin,今年 PoS 的火爆也会将交易成本再次拉低。当然,这种交易成本的下降也带来了不少质疑:这还是区块链么?既然少数人可以做出决策,这与中心化系统有什么区别?

这也许需要回到本文最初的论述:区块链运行成本越大,该区块链的安全性就越高,作为账本本身被窜改与干预的可能性也就越低。只有在这种情况下,不可窜改的信任机器假设才能成立,也才能够承担如资产发行、托管,货币系统等这样的重要责任。也就是说,相对于中心化系统,区块链的高成本是必然的。当然,不同的应用场景与安全性要求自然会对应着不同的成本,这就属于另外一个问题了。那么,区块链是否要降低成本呢?是的,但是在这句话的语义中,降低成本是指:如何提高协议的效率,确保相同的安全性下,区块链系统的成本越低,而不是牺牲安全性。

1、https://medium.com/@colin_/analysing-costs-benefits-of-public-blockchains-with-data-104ec5f7d7e0
2、https://www.blockchain.com/charts
3、https://etherscan.io/charts

4 Likes

看完此文如果你觉得“区块链效率太低了,不可能成功”,那么你就错了。区块链低效是一个 feature,而不是问题。事实上,对于比特币这类链来说,运行成本越高,它的价值越大。这是一个反直觉的结论,但理解这一点是理解区块链价值的必经之路。

1 Like

运行成本越大,该区块链的安全性就越高,作为账本本身被窜改与干预的可能性也就越低。只有在这种情况下,不可窜改的信任机器假设才成立,才能够承担如资产发行、托管,货币系统等这样的重要责任。

感觉存在一种递归循环的因果关系,很难说清楚运行成本高和价值大这两个概念孰先孰后:

  • 运行成本越高 —— 提供的安全性越高 —— 所以可承载的价值越大

  • 需要承载的价值越大 —— 需要的安全性越高 —— 因此运用成本会越高

表格加一栏 Cost/Tx count ?这样可能会更加直观一点

1 Like

在某种程度(添加了许多文章中没有明显指出的假设以及定义之后)上,文章中关于“(PoW)区块链的运行成本越高,其安全性(攻击成本)越高” 是有一定道理的。文章讨论的角度我觉得非常有趣。

但是,其一:
从这句话如何得出

这个结论呢?文章对于“安全性”的定义在我理解,是在 rational player 的假设下进行的恶意行为收益的评估。通常的理解里,PoW 区块链更多会遇到诸如 selfish mining 或者 block withholding 等这些并不是“账本本身被篡改或者干预”的攻击,而是直接获取不公平收益的攻击行为。因此如果“(PoW)区块链的运行成本越高,其安全性(攻击成本)越高”,那么“运行成本越高区块链作为账本本身被窜改与干预的可能性也就越低”这个推理在我看来并不显然,有更详细的推理过程吗?

其二:

这个结论光看前文的论述是无法得出的。前文主要得出的结论是,(PoW)区块链的运行成本越高,其安全性越高。假设这个结论成立,它只能说明,足够高的运行成本的(PoW)区块链,其安全性就会足够高,以至于可以实现“不可篡改的信任机器”。但是如果想证明“只有在这种情况下,不可窜改的信任机器假设才能成立”,你还需要论证只有(PoW)区块链且只有足够高运行成本的(PoW)区块链才能实现“不可篡改的信任机器”,然而在我看来,大概是无法给出令人信服的论证的。

其三:

这句话也有问题。这句话是基于“(PoW)区块链的运行成本越高,其安全性越高”得出的,但是中心化系统是(PoW)区块链系统吗?如果是,那是否意味着中心化系统运行成本越高,其安全性越高?

这段一出来我完全不理解这篇文章想要讲啥。前面在试图论述

这一结论。如果这一结论成立,那么理应不存在不牺牲安全性的降低运行成本的方法,但是结尾却又给出完全相反的论点。

不明白,所以我们应该尽可能使得区块链变慢?

这个我也不明白,所以如果我们把比特币的区块间隔调增或者将它的挖矿算法换成抗 ASIC 的,那么它的价值会增加?

参考第一段引用的文章。

参考了,不明白。第一篇引用的文章都是在论证区块链低效的充分性,但是有提及必要性吗?然而想说明“区块链低效是一个 feature”,当然要说明它的必要性。

你没有论证“增加运行复杂度就一定会增加运行成本”,增加复杂度只是增加单机成本,并不必然增加总体成本。PoW 系统的成本是综合成本,不论如何调整设计,我只需要考虑最终系统总的投入成本。对手方要作恶就需要投入与总成本成正比的成本,所以运行成本越高,安全性越高,价值越大。

理解了,按照这篇文章的计算方法,总运行成本是代币通胀和交易费用。那么为什么对手方作恶需要投入的成本与总成本成正比?你的作恶指的是什么作恶?

分享一张比特币自举三角 :smiley:

image

这不是学术论文,没打算面面俱到。所有的细节都解释清楚反而会让受众模糊焦点。不过既然你提了,我可以简单解释下。第一类公链出块权与 stake 无关,那么决定出块权重只能靠某种链外的投入,否则无法解决女巫攻击问题(引入 KYC 的情况不考虑,也不考虑强时钟同步等不现实情况),不论是 PoW、PoC 还是什么其他类型,一定是出块权或话语权与投入成正比。那么这时候,只有投入足够的资源才能获得攻击系统的话语权。

作恶有很多种,但对用户最大影响的作恶就是双花攻击。翻转区块至多需要占系统 51% 的话语权,如前所述,话语权是与投入成正比的。

另外,讨论的时候希望可以对我的观点做补充,填补我没有想到或没有描述清楚的地方,感激不尽。

这里的“资源”是与区块间隔以及挖矿算法相关的,攻击是与单机成本有关的,但是

比如这样定义总体成本:

因此与

矛盾?

此外,学术论文并不必然面面俱到,好的学术论文实际上是要避免面面俱到,而要达到一篇文章解决一件事情的目的。

清楚的细节与突出的焦点并不冲突。不过论坛的帖子完全可以出于其他理由忽略掉细节,但是这也是我提出疑问的原因啊,因为对于我来说,没有这些细节我就无法理解清楚你想要表达的东西。

所以

在做出进一步的评价或者补充之前,我得先理解你的逻辑。:wink:

我没看到矛盾点在哪,因为均衡市场下总投入等于总收益。我不可能把类似背景知识全部解释一遍。

这条可以不回复,下面的问题我会稍后自己尝试搞明白。

我觉得我指出的矛盾可能并不需要背景知识,如果有,能否直接针对我的推理进行反驳,只撂一句结论我即使猜到你想表达啥,也不知道我的理解哪里出现了偏差。

命题 A:只有投入足够的资源才能获得攻击系统的话语权。(第一个引用)
命题 B:增加复杂度只是增加单机成本,并不必然增加总体成本。(第二个引用)
命题 C:对手方要作恶首先要获得攻击系统的话语权
命题 D:对手方要作恶必须要投入足够的资源
命题 E:若单机成本增加,则对手方投入同样的多的资源需要更多的成本
命题 F:若单机成本增加,对手方作恶所需成本增加
命题 Q:存在一种情况,对手方作恶所需成本增加但是总成本不增加。
命题 P:对手方要作恶就需要投入与总成本成正比的成本。(第四个引用)

定义 1:区块链系统运行成本是代币通货膨胀与交易费用之和。(第三个引用)

过程如下:
在定义 1 之下,
命题 a: 若 A 且 C,则 D
命题 b: 若 D 且 E,则 F
命题 c: 若 B 且 F,则 Q
已知 P 且 Q 为恒假式。
可以得出 A,B,C,E,a,b,c 不可能同时为真。所以哪个命题为假?我觉得最有可能为假的是 B 或者 c。

最后我想说,写作当然不必解释所有背景知识,但是当这篇文章发在一个并不是经济学专业的论坛时,非经济学专业的读者有上述这些疑问很正常,或者你可以在文章前标注一下这篇文章需要怎样的背景。我当然也可以发帖子只写一句:

“拜占庭容错最多只能容忍少于 1/3 的恶意节点。”

你觉得这句话不需要更多的细节吗?其实大部分觉得自己理解了的人根本不理解这句话什么意思。同步拜占庭,部分同步拜占庭,异步拜占庭,拜占庭共识,拜占庭广播,有认证拜占庭,无认证拜占庭,随机化拜占庭,确定性拜占庭,允许诚实离线节点的拜占庭共识的阈值是有差别的,不全是 1/3。我想说,这些细节对于真正理解观点是非常有必要的,这也是为什么我要不厌其烦地问,因为我是经济学小白,我不是那种看到一句话就可以帮助作者自我脑补出一篇文章的人,我认为只要我脑补了,就有可能会有偏差,就会变成“我以为的作者的观点”,而不是“作者想要表达的观点”。

以上只是在解释我有这些疑问的合理性,我并没有要求他人应当如何做。

1 Like

我认为显然不需要对这么多类别的方案都一一介绍,除非是针对性的文章。

对复杂逻辑的解释分析有一个不可能三角的理论,即简洁、易懂和准确三者不可能同时达到。

”火箭上升的时候靠的是燃烧燃料反向推进“。这句话并不准确,但足够简洁易懂。至于出了大气层还怎么燃烧,反向推进为什么正向就能走,只靠推进不靠导航系统行不行,这些问题读者感兴趣可以自己思考和分析。如果作者开始就把这些全写出来(大概率也写不出来,因为不是所有领域的专家),那就是一本如何造火箭的书了。

我没说要一一介绍呀,我举这个例子是为了说明补充细节的必要性。文章可以只针对一种进行介绍,但是细节丧失到直接讲出上面那句话就是完全没有意义的。当你讲出”拜占庭容错“这个词的时候,如果你不打算准确定义它,那至少要指出你要讨论的是大家都耳熟能详的拜占庭将军问题,以及这个问题包含了什么要素。同样,火箭的这个例子,如果你不打算准确定义火箭是什么,那就要指出它是我们经常在电视上见到的我们能叫出名字的哪一种火箭,缩小讨论范围。这是最基本的”破题“要做的事情。

复杂逻辑或许是有这样的 trilemma,但是在我的理解里,取舍服务于表达目的。如果是为了简洁易懂,那就不要用专业术语;如果是为了简洁准确,那就可以直接上公式用符号系统;如果是为了易懂且准确,那就不要吝惜字数。第一种和第三种都属于适宜弱专业背景的读者。一篇文章如果既用专业术语又不想过多解释,那我理解就是为了给专业背景的读者看的,这样的文章如果发在一个区块链论坛,我会在前面加一个所需背景之类的提示。

此外

这个类比不合理。是否在大气层内,反向推进的原理,是否具有导航系统都不影响“燃料的燃烧为火箭提供推进动力”的正确性。然而拜占庭容错是否是同步的却会直接影响“1/3 是上界”的正确性。

所以你可以回帖说什么情况下结论成立,什么情况下需要补丁,甚至结论不成立,以及为什么,这是对每个读者都有益的讨论。而不是仅仅指出细节不足,因为我本来就是为了清晰易懂省去了他们。

我觉得已经偏离主题了,继续讨论的话私信或者微信吧。

抱歉,但是我们上述讨论对于理解你的文章没有益吗?我想文章里应该没有显式指出“均衡市场下总投入等于总收益”这一条,并且你也没有假设比特币交易和挖矿是一个均衡市场。这是一个 common knowledge 并且普遍成立不需要假设的吗?