门罗币是如何解决困扰比特币的区块大小的扩容问题

每当人们讨论区块链的缺点不足时,能听到最高频的词汇就是可扩展性. 而门罗币在解决该问题上独树一帜,与其它加密货币截然不同,并且如此合理的动态区块大小为什么其它加密货币不能模仿和学习.

可扩展性

每当有人讨论区块链的缺点和不足之处时,能听到最高频的词汇就是可扩展性.区块链可扩展性的缺点并不是什么秘密,但是大多数人其实根本不知道什么是可扩展性和为什么有这个问题.
事实是,可扩展性是一个很笼统的术语,涵盖三个不同的子概念,首先是带宽,也就是客户端,节点之间数据传输的速度,第二,吞吐量,例如,每秒钟整个系统可以记录多少笔转账,第三硬件存储,运行本地节点所需要的硬盘空间. 在本文中,我们将重点放在吞吐量上. 吞吐量基本上是衡量该网络在单位时间里可以处理多少笔交易的程度.
比特币有一个区块大小限制,也就是每个区块1兆大小,在不计算隔离见证的情况下,比特币系统每秒只能处理7笔交易,这意味着一旦一个区块中包含足够的交易,换句话说,每秒想转账的人数超过7个人,其他人交易将不得不排队等待下一个区块. 比特币大约十分钟打包一个区块,打个比方就像每十分钟一班的公共汽车. 当公共汽车到了车站后,人们开始上车.一旦公共汽车满了,外面的任何人都必须等待下一辆公共汽车.
比特币是通过用矿工费多少来确定交易写进区块的优先顺序. 回到公交车的比喻,可以想象每一个乘客,并不是按照先来后到排队上车,而是看谁出的钱多,有人愿意给公交车司机五美元买一个座位. 其他乘客为了上车也纷纷效仿,最终展开了一场价格争夺战,为了争夺优先转账的权力. 当然了,驾驶员也可以决定是否要按照出价高低上车,或者仍旧遵守先到先得的政策,但事实上这是他赚钱的最佳机会,现实里的驾驶员,也就是矿工,往往会选择出价最高的人们来最大化自己的收入.
总的来说,矿工们无论是单独挖矿,还是加入矿池,总之他们之间的算力互相竞争,结果是大约每十分钟会从全体矿工里,抽取一个幸运儿来扮演公交车司机的角色来车站接乘客. 他们这时可以在区块中打包任何他们想要打包的交易,但通常会选择支付最高矿工费的那些.
反之,如果车上有足够的空位,那么人们就没有动力去支付高额的费用给司机,因为有大量的座位可供使用.
在2017年加密货币繁荣的鼎盛时期,比特币充斥着交易拥堵,而那些想要尽快转账和到账的人们,互相竞价,导致矿工费直线上升.而那些不愿支付高额矿工费的人,或者支付不起每笔转账几十元人民币的人们,他们的交易会被推迟数小时,数天,甚至完全退出了等待转账的队列.
比特币的易用性会让每一个使用者痛苦不堪,假如真的像比特粉幻想中那样,有一天比特币被大规模采用了. 那情况将比2017年更糟,除了富人之外,其他任何人都将无法使用比特币,由于固定的区块大小导致主链吞吐量很小,转账权就被高额的费用接管了,更致命的一个问题是,公交司机们可以安排他们的托儿混在排队的人群里,人为造成拥堵,例如垃圾交易,粉尘攻击,还有另一种情况,被称作挖空块,也就是公交司机并不拉人,直接空车交班,为了更快的获取爆块奖励,这将在下面的例子中具体说明,因为矿工费中,爆块所给与的奖励比手续费还要高,这会进一步造成转账排队和拥堵.

矿工&记账权

矿工扮演的什么角色

门罗币设计时预见到这一点,为了不重蹈覆辙. 门罗币实施了动态区块大小.
简单来说,门罗币也有一个区块大小上限,但这是一个软性上限. 当人们等待交易的时间太长时,矿工可以增加区块的大小. 如果还用公交车类比的话,这意味着公交车可以随着等待人数的增加而变得更大,例如排队的人很多的时候,就会有两辆,或者三辆公交车去载客人.而当排队的人减少后,区块将缩小到其原始大小.
这似乎是一个好主意,那么为什么门罗币是唯一的一个实现此机制的加密货币呢. 为什么不将这种机制添加到比特币上以阻止区块拥堵的问题?
不幸的是,这在比特币上是不可能的. 这涉及的知识有点偏技术性,但是我们会尽力在这里通俗易懂的解释.
矿工总是追求利益最大化,所以会做到尽可能打包最大块. 当矿工获得了一个块的记账权并打包完成,他们会将其传播到网络中. 其他矿工必须先下载该矿工打包的最新区块,然后才能开始挖掘下一个区块.想象一下,如果一个块最大为1 GB!当一个矿工打包这个块并将其传播,网络上的其他矿工必须先下载这1 GB的数据,然后才有资格进行挖矿运算去打包下一个区块.这会使他们失去的宝贵时间.与此同时,刚才发现该区块的矿工正在独自挖掘寻找下一个区块,因为这个块就是他自己打包的,因此他不必像其他人一样花时间下载该区块,从而增加了机会. 简而言之,如果让矿工负责增加或减少区块大小,那么他们会总是选择构造较大的区块,以便能够获得采矿优势,而现实中矿霸也是大区块的支持者和推动者.

门罗如何做到,比特币又为何做不到

对此门罗币解决的答案虽然简单,却很巧妙. 当门罗币的矿工打包的一个区块大于正常区块时,会引入对区块爆块奖励的惩罚. 举例来说,如果,矿工想要增加区块的大小,那么爆块所获得的奖励将少于他们原本会获得的回报. 因此,只有在用户支付的矿工费用超过块奖励的损失部分时,它们才会增加块大小.
回到公交车的例子,如果公交司机派一辆公交车去接客人,那么他的工资是800块固定工资加30个乘客的车费,如果他派两辆公交车,他的工资会被惩罚减少到400,只有第二辆车多拉的客人带来的收入大于400元,司机才会派两辆车,也就是说打包一个更大的块.
让我们再重温一下,加密货币的基本概念,关于矿工的奖励分成两部分,一个是爆块奖励,也是新币发行的过程,另一部分是人们转账时支付给矿工的手续费,举一个例子,2020年8月某个比特币区块的奖励,矿工总收入是6.25+0.8016 BTC,前面的6.25就是爆块奖励,2009年是每十分钟的爆块奖励是50个BTC,第一次减半后为25,第二次减半后12.5,目前第三次减半已经完成,目前是6.25个比特币,所谓的减半就是指这部分新发行的币.
这在公交车例子里,相当于每次公交车司机出发,不论有没有拉到乘客都会获取固定的出车费,也就是爆块费,而排队的人额外收取的高额车票加起来就是0.8016Btc,就是转账费,也叫矿工费.
在门罗币的世界里,同样是这个司机,假设本来正常情况下是每个区块获得1.7个门罗币的奖励+30个人的手续费,现在矿工希望打包一个大区块包含60个人的转账,那么他的区块奖励,会从1.7个门罗币降到1.2个门罗币,通过打包大区块奖励将损失0.5 XMR,而多打包的30笔交易的矿工费之和为0.4 XMR,那么如果他真打包了一个大块,则将有0.1 XMR的净亏损,因此矿工不会这么做.相反,如果所有人的总交易费用加起来为0.7 XMR,那么即使他们从大块奖励罚款中损失了0.5 XMR,也将获得0.2 XMR的净收益,因此矿工将增大区块大小.
以上门罗币奖励和惩罚的数字只是为了好举例子,进行的假设,实际上门罗币没有减半,爆块奖励也是曲线发行的,并且门罗币矿工如果打包的区块大小,超过前一百个区块平均大小一倍,爆块奖励就会为零,矿工只有转账手续费作为收入,也就是门罗币事实上在那个区块没有增发,而是只有现货循环,因此一旦有人恶意制造垃圾交易和试图拥堵门罗币,那么会被矿工自然打包解决.
比特币不能做到这一点!因为该协议中根深蒂固的共识之一就是将有2100万个比特币, 不能多也不能少,每个区块高度所爆块的奖励的比特币是固定好的.因此,如果矿工因为打包大块而受到惩罚会导致比特币发行量少于2100万,这将违背协议层共识.
门罗币可以实现它,因为Monero具有尾部增发功能.比特币的区块达到特定高度以后不再有爆块奖励,门罗币却会在2022年左右进入尾部增发,也就是每个区块持续会有0.6个门罗币新发出来作为爆块奖励. 门罗币的供应量是线性的,虽然总量会缓慢增加,但通货膨胀率会从2022年从千分之8到趋于零,因此,矿工惩罚不会影响所谓的最大供给,也不会违反共识,并且当足够多的人进行门罗币转账的时候,爆块奖励将被惩罚为0也就是说,当足够多的人们使用和转账来维护系统安全的时候,门罗币不会产生爆块奖励,而没有人转账的时候也会有至少0.6个门罗币的爆块奖励激励矿工竞争挖矿,来维护系统安全.
尾部发行释放了动态块的无限潜力,动态区块本身为可拓展性中,关于每秒转账数量,带来了完全不同的解决方案.这是除了隐私之外,门罗币与众不同的另一个原因,目前的网络情况下门罗币每秒处理转账的能力为1700笔每秒,门罗币没有扩容之争,并且动态区块会随着互联网基础设施的升级而自动跟随着升级.