读比特币减半代码

In Code We Trust:读比特币减半代码

比特币减半的代码前后一共十来行,简洁地令人发指。减半的代码如此简洁,减半事件如此瞩目。每四年的奥运会都会推迟或者取消,但是减半永远都会如期进行。

加密数字朋克们喜欢把 “Code is Law” 挂在嘴边,但是大部分时候 “代码即法律” 不过是加密朋克的理想主义口号,普通人根本无法看懂代码,大部分时候我们还是需要依赖技术的封装,接口处的人机交互部分需要傻瓜都能用才会带来大规模的普及。编程教育也许到了下一代会变为通识教育,由于机器翻译的高度发展人们不需要为了减少沟通摩擦而学习一门第二人类外语。对信息获取的摩擦将来自于机器语言盲区,第二语言将会变成机器语言。“代码即法律” 对社会整体的计算机通识教育水平要求甚高,所以在我们这一代应该是一个美好的愿景罢了。

每个人可以有减半对币价的不同解读,但是减半的本质是一个比特币货币政策的完美预期管理机制。从去年开始在很多场合我都说过对 “减半行情” 的看法

1. 聪明的资本不会因为减半这个已经预先设置好的时间点而突然蜂拥入场

2. 合约和衍生品平台全面成熟,合约主导的市场结构以及合约/现货交易量倒挂会导致价格经常性均线回归

3. 比特币要面临第一次大的经济周期,比特币是上一次全球金融危机下的产物,还没有经历过第二次全球性金融危机 (比特币在这次的表现在很长一段时间都成为了标普的高beta)

减半机制的如期、顺利进行,是比特币代表的 “机器自治经济体” 可以承担起人类货币政策或者一部分经济活动指引的的一个强大例证。之前在微博上有一个关于这个和朋友的讨论,其中一个类比是比较接近的:

1.国家发债(法币)依靠的是政府信用。比特币也是债,只是这个债的信用被去中心化的信任(trustless trust) 取代

2.区块奖励和手续费是国防预算,矿工是军队,拿着国防预算维护这个“国度” 的安全和稳定

3.开发者是类似立法机构和制定政策机构

4.全节点是国会议员,决定了开发者的出台的某项新的法案或者政策是否能被采纳接受

5.不同的开发团队充当了不同的党派,哪个党派的主导政策,那要看全节点最终选择了谁

6.持币者是这个国家中的“国民”,转账费用其实是某种意义上这个国度里的“税收”,不过税收直接给了军队,而不是通过政府进行再分配(当然政府可以有再分配的提案,譬如一些比特币的分叉币尝试过“开发者税” 就是把固定的矿工奖励直接打给属于开发者的固定钱包)

7.矿机厂家扮演了军火商的角色

去年比特币网络支付了52亿美元给矿工用来确保网络安全。如果比特币是一个国家,这52亿美元视作国防支出的话,那么他能在全球国防支出中能排41位,和越南乌克兰等国相当。

美元作为全世界市值最大的永续债,维系美元信用的成本也是同样的高昂。美国的军费开支已经达到了二战以来最高水平(上图)。过去60年美国继续输出自身国家的通货膨胀,国内喜乐安康,物价稳定,一片欣欣向荣。国外区域性危机不断,战乱不停,一有不听话会威胁到美元核心地位的(譬如萨达姆,譬如卡扎伊)就拿起大炮+镰刀。基本每次的区域性危机,譬如亚洲金融危机,拉美金融危机等等,我们都会 看到“美元流动性危机”在危机后厚重的影子。虽然美国政府在这些危机中是否有意收割不得知,但是美国掌握了美元流动性这个可以救命也可以杀人的管子是毫无质疑的。随着美元的流通性陷阱和信用危机涌现,这个信用成本将会只增不减。

在减半之际,我想来想去最有意义的事情应该是让更多人了解比特币减半的真实执行层面的机理。这篇文章我会尝试逐行给大家解释比特币减半代码,希望每个人都能相信的是自己理解的东西,而不是某个人,某个虚幻的概念,或者“信仰”本身。
美元本是美联储发行的永续债,在墨绿色的纸上印上In God We Trust后变得似乎异常神圣。可是每个地方,每个人的 “上帝” 都各有各的不同,该相信哪个“上帝” 呢?骨子里千百年来不相信鬼神的中华民族的上帝又是什么的?
代码真实可见,执行逻辑可被校验。与人类自发形成的社会协议不同,代码的存在让执行变得“不可逆”。所以可能更准确的说法应该是 “Code is Law Enforcement" (代码即执法) 而不是 “Code is Law"。当国家机器垄断了暴力机构,当立法执法成为了巨大的黑盒,选择相信一个可审查的“enforcement” 机制,是比特币带给我们的一个选项。

下面上代码和解释,in code we trust

int halvings = nHeight / consensusParams.nSubsidyHalvingInterval

这里定义了减半次数halvings,即“减半次数”为整数变量

nHeight 是当前区块高度,后面那一堆调用了共识里的一个“减半间隔区块数”,在比特币代码里是210,000

halvings 在每次代码执行的时候都会返回 当前区块高度/210000, 因为定义为整数变量,当不被210,000整除的时候,小数部分不会被存储,所以在5月11号晚上之前(区块高度630,000),都是2

每到新的整除高度,譬如630,000 -变为3,再下次的840,000- 变为4,halvings变量都会相应增加

if (halvings >= 64) return 0;

如果减半次数大于等于64,区块奖励返回0

这个可以保证最多只有64次减半,到了64次之后,矿工将不再有奖励

届时的比特币网络必须依靠手续费来保证网络的安全和矿工的激励制度

当年有人问过中本聪,担心不担心“无奖励终局” 中本聪的回答其实非常好: “到了那个时候(100多年以后),比特币要么已经灭亡,要么挖出来的比特币已经成为大规模的流通价值载体。” 两种情况都不需要担心没有无挖矿奖励矿工拒绝挖矿的情况

CAmount nSubsidy = 50 * COIN;

这里的nSubsidy = 挖矿奖励

每次代码执行都会把挖矿奖励设置成50个比特币* COIN

COIN是常数变量100,000,000 用来把挖矿奖励变成聪的单位

nSubsidy >>= halvings;  return nSubsidy;

最后两行是真正的减半执行命令

挖矿奖励>>= 减半数中用了C++里的一个右移操作。因为是是二进制右移,所以 x>>=y 表示 x = x除以2的y次方

当到了630,000 区块高度的时候,y在这里是减半数halvings,减半数从2变成了3

所以挖矿奖励从50个比特币除以2的2次方,变成了50个比特币除以2的3次方,由此完成了减半

下面我把完整的减半代码贴上,感兴趣的同学可以去点击阅读原文的比特币源代码自行查阅

CAmount GetBlockSubsidy(int nHeight, const Consensus::Params& consensusParams){int halvings = nHeight / consensusParams.nSubsidyHalvingInterval;// Force block reward to zero when right shift is undefined.if (halvings >= 64)return 0;
CAmount nSubsidy = 50 * COIN;
// Subsidy is cut in half every 210,000 blocks which will occur approximately every 4 years.nSubsidy >>= halvings;return nSubsidy;
}

最后,减半不是什么大节日,你庆祝也好,看衰也罢,减半都会如期进行,直到全世界只剩下最后一个比特币全节点。安安静静找个喜欢的人,看看夜光白皮书,一起读一读完成减半的代码,聊聊人生,这也许是作为比特币爱好者你我最好的安排。

‍Dovey  写于比特币区块高度629940

作者简介: Dovey Wan, Primitive Ventures 创始合伙人,非盈利比特币开发基金 Hardcore Fund 执行董事,Coindesk顾问委员会董事,前丹华资本董事总经理。Dovey在2018年被Coindesk提名为年度最有影响力的行业领袖,被BlockExplorer评选为行业最重要的女性,被Block123评选为最有影响力的100位加密数字货币领袖之一。

24小时热点

狗狗币一夜暴涨700倍创下历史新高!

最近一段时间狗狗币暴涨幅度达到700倍,出现了巨大的涨幅,这 ...

3186796

波场区块链浏览器

诈骗披露:成功学周文强

又一个“成功学”大师周文强翻车 你想一夜暴富吗?你想年薪百 ...

3855809

Lazy Lions

链圈打诈之缅北将女子虐待打傻后开火车、四轮定位

缅北将女子虐待打傻后遣返,不能正常进食享受电击,回国时人已疯 ...

1481976

抹茶

链圈打诈之缅北十大酷刑之:吃冰棍

吃冰棍 对女孩的另一种残忍惩罚,先用模型注水放进冰箱 ...

2406116

中币交易所

2024年美元兑人民币汇率预测:会涨到8元吗?市场密切关注

2024年美元兑人民币汇率吸引了许多投资者的关注,涨到8元的 ...

4251335

波场区块链浏览器

F8Coin货币交易所交易量如何?

F8Coin是一种加密货币,它是在比特币发展了八年之后推出的 ...

209901

YoBit

中国十大传销币之:派币(π币、pi币、pi network、兀币)

是骗局。pi币”的数字货币,有不少人在购买,不知道是不是所谓 ...

692511

中值联资讯

链圈打诈:缅北恐怖视频截图

缅北诈骗集团真实画面,电击剁手只算最轻惩罚,自杀都成一种奢望 ...

949949

ZPLAN元宇宙

链圈打诈之缅北十大酷刑之:开火车

缅北美梦,女性酷刑:吃冰棍,开火车,喝珍珠奶茶... ...

1640641

ZT GLOBAL 交易所

Token在线解析

Token在线解析是一种在线token解析工具,可以帮助用户 ...

1228410

IOST

热点专题

2024年美元兑人民币汇率预测:会涨到8元吗?市场密切关注

2024年美元兑人民币汇率吸引了许多投资者的关注,涨到8元的 ...

4247167

波场区块链浏览器

诈骗披露:成功学周文强

又一个“成功学”大师周文强翻车 你想一夜暴富吗?你想年薪百 ...

3855530

Lazy Lions

狗狗币一夜暴涨700倍创下历史新高!

最近一段时间狗狗币暴涨幅度达到700倍,出现了巨大的涨幅,这 ...

3186312

波场区块链浏览器

专门忽悠企业家的中国十大骗子大师

区块链网创立于2015年初,为国内第一批有资质的区块链媒体, ...

2825546

希壤

中国十大骗局之pi network(π币、pi币、派币、兀币)

中国十大骗局之pi network(π币、pi币、派币、兀币 ...

2578800

Gemini 交易所

2023年打假总结:Pi Network项目的传销性质Pi币

曾经,号称“走路就能赚钱”拥有大量用户和广泛影响的国内APP ...

2471845

文昌链

国内460种传销币套路和骗子币名单大曝光

打着区块链旗号,以聚集性传销、网络传销为手段,以每枚3元的价 ...

2173330

Coin Metrics

原力元宇宙佛萨奇骗局

原力元宇宙佛萨奇骗局是一种不可思议的幻想计划,它由一群英勇可 ...

2108576

聚币网

柴犬币SHIB来了

因其可爱形象和马斯克代言,近段时间最耀眼的加密货币非狗狗币莫 ...

1295270

Luart

链圈打诈:3000名解放军去缅甸真的假的?

3000名解放军去缅甸这个是假新闻,出兵这是个大问题,如果我 ...

1231199

a16z