背景
当前位置:首页 > 药品选购 > 【深度】矿工挖的不是币,而是护城河

【深度】矿工挖的不是币,而是护城河

  • 发布时间:2023-05-10 14:56:27

正文共:3668

预计阅读时间4分钟


如果攻击者有能力比其他诚实节点聚集更多算力,他将面临一个选择:到底是用欺诈手段拿回已支付的币,还是应该使用算力获取更多币。

你去食堂吃饭,大厅人山人海,只能和同事们一起排队,轮到自己时再伸手拿下三菜一汤。

领导一行来了,他们径直走进小房间,餐厅经理猫着腰把红烧甲鱼端到桌上,剪下一块裙边,夹进领导碗里。

你从门缝里的看到这幕,表情平静如水,心中却泛起涟漪:凭什么他们可以又快又好?

凭优先级。单位雇领导上班不是为了喂他吃饭,而是让他创造效益。领导年薪尊贵,吃饭省出的时间在单位看来比员工值钱,哪怕用来休息。

资源有限时食堂必须做出选择,而选择必有标准。

标准之一是按级别区别对待:职位越高的人,排队时间越短、菜品越好;另一项标准是排队时长,只要排队总能轮到。

排队吃饭的场景也适用于排队记账。比特币每个账页(一个区块)能记录2,000多笔交易,可如果同时挤进20,000笔,矿工该怎么办?

一、记录交易的优先级

矿工不是加班记录剩下的18,000笔交易,而是排出顺序,挑出最优先的 2,000笔交易填满区块,把剩下的交易压在内存中,大原则是:

优先级 = 交易金额 × 排队时间 ÷ 交易信息大小

交易金额是影响优先级的首要因素:金额越大交易优先级越高——让领导先吃。交易金额的单位不是1个比特币,而是1聪(Satoshi),1聪等于一亿分之一个比特币。

排队时间准确的说法是区块年龄(block age):钱包发起一笔交易,立刻向全网广播,矿工收到时的区块年龄是0,如果等了100个区块依然没被记录,那这笔交易的区块年龄就是100。

交易信息大小指记录交易信息的字节数,字节的单位是byte(比特)。比如交易只有一笔进出,大小约为250bytes,而有的交易却有多笔输入和输出交易信息大小就相对较大(如下图,3913bytes)。

图1 实例:较大Size交易,3913 bytes

如果一笔简单交易(250bytes)金额为1个比特币(1亿聪)苦等1天(约144个区块)还没被记录,那它的优先级是:

100,000,000 × 144 ÷ 250 = 57,600,000

记住这个数字,优先级大于57,600,000的交易称为“高优先级交易”,即使不给小费,矿工也会把它存储到区块的前50K字节中——这时你的交易相当于大领导,可以进小房间,享受特殊服务。

另外,如果你付小费,矿工总是愿意帮你先记账。输入金额与输出金额的轧差数就是给矿工的红包,能帮你加快交易速度。

所以,如果在交易拥堵期,转小金额交易就是添堵。因为一是优先级不够,二是交易总额可能连矿工手续费都不够。

手续费是交易者给矿工的小费,它能加快交易确认速度,那矿工还有没有其他收入呢?

有,Block Reward。

二、挖块奖励

还记得上篇文章中本聪校长给学霸的12.5个比特币么?这就是挖块奖励,但学霸到底做了哪些事值得被如此奖励呢?

第一,挑出优先级最高的2,000多笔交易打包进区块,但这些交易总大小不能超过约1M。

第二,找出一个随机数,使得“区块+随机数”的哈希值前有足够多的“0”。

只要通过网络中其他节点的认证,学霸不仅可以拿到挖块奖励,而且可以通吃2,000多笔交易的手续费。

我们来看一个实例:高度是500,695的区块。

区块高度可以理解为区块编号,一提到区块链我们容易想到长长的链条,但在区块链中,没有“区块长度”的概念,只有“区块高度”,你可以把“区块链”理解为“区块堆”, 创世区块(第0块)位于最底层,然后一块一块向上堆。

图2 高度为500695的区块信息

矿工打包了2,288笔交易,找到随机数(Nonce)101544420,获得全网矿工的认可,于是获得了交易手续费(Transaction Fees)约8.6个币和区块奖励(Block Reward) 有12.5个币。

系统将21.1个币一次打入矿工的地址中,我们习惯称之为Coinbase。

注意,Coinbase不是一笔交易,因为它没有输入(请看上图左侧:No Inputs),Coinbase是一个字段结构,只有挖出此区块的人才能填写,比如#500695区块“由AntPool挖出”:

Coinbase这个词还没有得体的中文翻译,但就是挖矿总奖金的意思,之前有个英语六级没考过人把它翻成“考英被撕”,可惜没有流行。Coinbase包括区块内所有交易的手续费和挖块奖励。

每个区块的挖块奖励在2009年时有50个,每挖21万个区块(约4年)后减半,到2017年已减半两次,这就是为什么现在挖块奖励只有12.5个币的原因,看上去很少,但以后会更少。

比特币的总供给量是这样的:

图3 比特币供给曲线

你别看现在每10分钟才产生12.5个币,百年之后的2117年,挖矿奖励会下降到0.00000037252903个(12.5连除25个2),届时全世界矿工连挖4年(21万个区块)总共能得到0.07823个币。偷偷告诉你,这些币现价约7,823元人民币。

你一定要亲自试算一下,注意:绝对不是让你去买币,没有完全明白的人,杀进去就是去。只是让你感知时间的力量,一次试算够你用一生。

矿工们用钱买设备、付电费,通过为比特币网络提供算力来换取获得比特币奖励的机会,这使得挖矿看起来像是增加比特币货币供给的过程,但同时,挖矿还保护着比特币系统的安全,防止欺诈交易。

你可别误以为挖矿是几个人一锤一镐叮叮当当敲出来的,个体矿工独立工作几乎没有挖到区块的概率,的中奖机会也比这高出一亿倍。

现在矿工们能做的就是组成矿池,汇集更多算力并分享奖励,因为这样做回报稳定。

而且,会有越来越多的算力聚集来记账,这份奖励能鼓励节点保持诚实,这能提高欺诈成本。

但算力的中心化在去中心化的体系中却是一个大问题,因为在去中心化的世界里,算力就是权力,当权力集中到一定程度时,一种可能必然出现:

三、51%攻击

绝大多数矿工出于自己利益最大化的考虑,都会老老实实地记账。然而,当一个矿工拥有整个系统中51%以上的算力后,,在数学上具备了为所欲为的概率。

矿工(或矿池)使用绝对优势的算力实行欺诈,就是51%攻击。

虽然难度极大,但理论上有成立的可能性。比如,攻击者可以分三步走:

第一步:花300万美元正常买入200个比特币,正常打包记账。

第二步:在市场上卖出这些币,拿到300万美元现金。

第三步:启动51%攻击,把第二步卖200个币的交易抹掉,重新打包交易、算随机数。

由于攻击者算力强,他找到随机数的速度将快于其他矿池,所以攻击者最终会挖出最长的区块链,于是全网其他矿工就会顺着攻击者的链再挖下去。

最终攻击成功,攻击者赖掉自己卖币的交易记录,不正当获利200个币。

收款方避免受到51%攻击的方法,是在得到6个确认之后再交付商品。交易的确认数越多,越难被51%攻击篡改。

51%攻击并非指算力一定要达到51%才能开始,一些报告指出,算力达到全网的30%就有一定概率攻成。之所以叫51%攻击,是因为攻击者算力达到51%时,几乎铁定能成。

写这篇文章的时候,全球算力分布如下:

图4 比特币算力分布(来源:http://qukuai.com/pools)

最大的BTC.TOP占据了全网19.59%的算力,在安全边际内。但你看完图之后,有没有想过:如果前三大矿池一牵手,不就超过51%了么,可为什么他们没有这么做呢?

因为自利

中本聪在白皮书里早就揣摩到了人性:

If a greedy attacker is able to assemble more CPU power than all the honest nodes, he would have to choose between using it to defraud people by stealing back his payments, or using it to generate new coins.

如果攻击者有能力比其他诚实节点聚集更多算力,他将面临一个选择:到底是用欺诈手段拿回已支付的币,还是应该使用算力获取更多币。

最终,矿工们发现,按规矩老老实实地挖矿更划算,因为51%攻击只要发生一次,比特币系统的可信度就荡然无存,必然导致币价跳水,花费超大算力非法获取的币将一文不值。

所以,矿池联手做51%攻击的事件不仅没有发生,而且曾经还发生过这样的事情:当某一矿池算力接近40%时,矿池内的矿工自动切换至其他矿池,看起来他们在维护算力均衡,但实际矿工们想的是:如何不让自己挖的币贬值。

所以,多年来保护着比特币的从来不是矿工,而是自利的人性。

结语

让我们跳出挖矿的视角再审视,可以看出,比特币是一家去中心化自治公司的产品,它有两个功能:

第一,从数学上保证私有财产神圣不可侵犯——私钥即财产,任何人都有足够的权利在脑子里记一串字符。

第二,从技术上保证价值通过流动——网络中各节点的挖矿行为像护城河一样抵御着各类攻击。

这是家奇怪的公司:没有董事会 ,没有CEO,只有完全公开规章制度(代码)、员工(矿工)和用户(普通使用者)。

矿工自顾自地攫取利润:投入的设备资源和电费是成本,挖块奖励和手续费是收入,通过自利的行为捍卫比特币系统的安全。

看似很酷、很先进的系统设计,但其实矿工干的活和你楼下面包店老板做的事真没什么区别,亚当·斯密在1776年就在它的《国富论》里说过:

It is not from the benevolence of the butcher, the brewer, or the baker that we expect our dinner, but from their regard to their own interest.

我们每天所需要的饮食,不是出自屠户、酿酒师或面包师的恩惠,而是出于他们自利的打算。

矿工的自利行为让用户享受保有财富的笃定。

从这个角度望过去,比特币甚至已不仅仅是钱,而是这家公司的股份,持股人把这些股份当成钱在市场上卖来卖去。

本文转自:火球财经




长按识别二维码关注我们



友情链接