就在5月12日凌晨3:23,比特幣成功完成眾所矚目的第三次減半。
自2009年誕生,比特幣已經走過波瀾壯闊的十年。從交易所、礦機、投資者到媒體,比特幣已經帶動加密貨幣行業形成一個完整的生態系統。比特幣區塊獎勵減半從供給側直接減少一半的貨幣供給,顯然在邊際和投資者心理上都極大彰顯了比特幣的稀缺性。
因此,四年一次的比特幣減半成為整個加密貨幣行業關注的焦點。
但看了那么多比特幣減半的文章,你可能還不知道比特幣具體是怎么減半的,比如四年減半一次的四年是怎么來的,怎么計算當前區塊的獎勵等問題。
值此比特幣第三次減半之際,來跟隨金色財經記者看看Bitcoin Core的代碼是具體怎么執行比特幣區塊獎勵減半的。
比特幣減半代碼
金色財經挖礦數據播報:BTC今日全網算力下跌5.33%:金色財經報道,據蜘蛛礦池數據顯示:
BTC全網算力144.539 EH/s,挖礦難度21.05T,目前區塊高度687001,理論收益0.00000620/T/天。
ETH全網算力603.775TH/s,挖礦難度7639.27T,目前區塊高度12604022,理論收益0.00264959/100MH/天。
BSV全網算力0.696EH/s,挖礦難度0.10T,目前區塊高度690981,理論收益0.00129182/T/天。
BCH全網算力2.046 EH/s,挖礦難度0.33T,目前區塊高度691542,理論收益0.00043977/T/天。[2021/6/10 23:26:29]
比特幣減半,是比特幣區塊獎勵減半的簡稱。而比特幣的區塊獎勵減半是比特幣共識的一部分,直接寫在比特幣軟件代碼里。
金色晚報 | 10月27日晚間重要動態一覽:12:00-21:00關鍵詞:比特幣算力、摩根大通、火幣冷錢包、Filecoin創始人、螞蟻集團
1. 摩根大通為區塊鏈及數字貨幣項目設立新部門。
2. 數據:比特幣算力在觸及月中的歷史高位后出現回落。
3. 火幣交易所已支持Visa和萬事達卡直接支付服務。
4. 數據:火幣冷錢包以20萬枚BTC余額排名第一。
5. Filecoin創始人胡安:數據存儲需求未來會增長3倍。
6. 螞蟻集團CEO:數字貨幣對于螞蟻集團是正向的增量,而不是負向的減量。
7. BM:B1和EOS都是實現自由市場解決方案的一部分。
8. 火幣集團李林:區塊鏈行業未來有三大機遇。
9. Vitalik:公鏈的價值來自于不同應用的鏈接。[2020/10/27]
具體減半代碼在這里,下面是截圖。
金色財經合約數據播報丨市場情緒平穩BTC縮量盤整:據火幣BTC季度合約行情顯示,截至16:00(GMT+8),BTC價格暫報6686美元(+1.44%),24小時季度合約成交量15.51億美元(-28.79%)。
昨日至今,BTC季度合約從6500美元左右震蕩沖高至6850美元一帶,之后回落,成交量較昨日下降28.79%。根據火幣合約數據看,BTC總持倉量保持穩定,大戶多頭持倉相比空頭較昨日小幅增加。季度合約貼水小幅增加。BTC在30日均線下方縮量盤整,目前市場基本保持平衡狀態。
USDT于火幣全球站OTC的報價為7.23美元,溢價率為1.95%。溢價率維持穩定。[2020/3/27]
金色午報 | 12月20日午間重要動態一覽:7:00-12:00關鍵詞:美國國會、加密貨幣法案、監管、芝商所
1.美國國會起草2020年加密貨幣法案,明確監管數字資產聯邦機構。
2. 接近監管人士:涉及提供非法交易通道的行為都要被嚴懲。
3. 中鈔信用卡董事長范貴甫:中鈔的區塊鏈服務平臺可有效解決企業的融資問題。
4. 中行前行長李禮輝:在數字技術產業,中國將是全球規模最大的市場。
5. 西班牙銀行將測試智能合約的可編程支付。
6. 芝商所比特幣期貨迄今成交近250萬份合約,平均日成交量復合年增長率約為109%。
7. 佛山市禪城區區塊鏈+中小企業融資服務平臺將試運行。
8. “青島家政服務信用信息平臺”將引入區塊鏈技術。[2019/12/20]
比特幣區塊獎勵減半代碼 來源:Bitcoin Core github
就這6行代碼定義的函數GetBlockSubsidy決定著不同區塊高度下的比特幣區塊獎勵。中本聰創造的比特幣共識設置區塊獎勵從50個比特幣開始每210000個區塊比特幣獎勵減半,減半64次后區塊獎勵為0。
210000個區塊的時間大約為四年,這也是幣圈人說的四年一次減半的由來。因為比特幣減半事件是寫進比特幣軟件代碼里并有分布在全世界的比特幣全節點驗證,其共識很難改變,這也是“In Code We Trust”的由來。
逐行解讀比特幣減半
上訴代碼主要有幾個函數和參數:GetBlockSubsidy、nHeight、Consensus.nSubsidyHalvingInterval、halving、nSubsidy。它們的涵義如下:
GetBlockSubsidy主要是活的當前區塊高度下的區塊獎勵(nSubsidy );
nHeight為當前區塊高度;
Consensus.nSubsidyHalvingInterval為比特幣共識決定的區塊獎勵減半間隔區塊,此值為一個常數,為210000。
halvings為減半次數,是一個整數變量,也就是對nHeight/210000取整;
COIN為常數,為100000000,也就是說,在比特幣代碼里,比特幣的單位是聰。
nSubsidy為區塊獎勵。
1239行代碼調用GetBlockSubsidy函數。
1240行代碼:halvings=nHeight/Consensus.nSubsidyHalvingInterval,計算當前區塊對應的減半次數。比如截止本文發稿,區塊高度為629929,629929/210000=2.99,取整halvings=2。當區塊高度達到630000時,halvings=3。
1242和1243行代碼:if (halvings >= 64) return 0;判斷減半次數是否大于64,如果減半次數大于等于64,則區塊獎勵為0。這也是來自比特幣共識,只有64次減半,64次減半后區塊獎勵為0。
1245行代碼nSubsidy=50*COIN,比特幣軟件每次執行代碼都把區塊獎勵設置成50* COIN,也就是5000000000。
1247行代碼nSubsidy>>=halvings,這一句是真正起作用的比特幣區塊獎勵減半代碼。>>= 是二進制右移操作,nSubsidy>>=halvings等價于nSubsidy=nSubsidy除以2的halvings次方。
1248行代碼返回比特幣當前高度的區塊獎勵值。
上述代碼最后的實質是下面的公式:
因此,1-209999區塊每個區塊獎勵為50/(2^0) =50枚比特幣;210000-419999區塊獎勵減半為50/(2^1)=25枚比特幣,420000-629999區塊獎勵減半至50/(2^2)=12.5個BTC。區塊高度630000后減至50/(2^3)=6.25枚比特幣。
大神也有BUG
不過,上述6行代碼不是中本聰的原始代碼,中本聰的原始代碼如下:
盡管中本聰是大神,但不代表其代碼就沒有bug。因為nSubsidy是個64位的有符號整數,而>>= 超過64在C++中屬于未定義行為,會導致數值環回,最終導致BTC數量不斷重復2100萬個比特幣的釋放過程,見下圖。
Pieter Wuille修復了這個bug,有一個專門的比特幣改進協議BIP042描述這個bug,文檔見這里。
參考資料:
Where in the Code Does the Halving Take Place
BIP042
Overview 概述 Staking 幾乎是區塊鏈世界最特殊的產品,它提供了可預期的現金流和相對固定的收益。即便這樣類似于傳統金融市場債券的產品,背后依然隱藏了容易被忽視的風險.
1900/1/1 0:00:00金色財經行情播報丨BTC小幅拉升,多頭有發力空間:據火幣行情顯示,昨日晚間BTC小幅拉升,最高探至9253.25USDT,隨后回調震蕩徘徊在9250USDT價格附近.
1900/1/1 0:00:00OTC一直是數字貨幣交易的剛需,我們都需要拿錢買幣或者拿幣換錢。但是OTC里滿當當的坑——跑路、洗錢、標價貓膩著實讓人腦殼疼,女俠今天就給大家分享一下曾經的悲慘經歷.
1900/1/1 0:00:001. 減半臨近 比特幣FOMO情緒發酵隨著減半的臨近,市場上比特幣FOMO情緒持續發酵。glassnode數據顯示,持有1000個以上 BTC的巨鯨數量不斷增加.
1900/1/1 0:00:00昨日,木里縣發展改革和經濟信息化局發布了關于報送虛擬貨幣"挖礦"活動情況的通知文件,該文件表示:及時制止水電發電企業從事虛擬貨幣挖礦招商行為.
1900/1/1 0:00:00比特幣在今天早上強勢突破10000萬大關,傳奇做空比特幣巨鯨J0E007清空推特賬號信息,消失在人海。有網友猜測是巨鯨爆倉離場.
1900/1/1 0:00:00