就在5月12日凌晨3:23,比特幣成功完成眾所矚目的第三次減半。
自2009年誕生,比特幣已經走過波瀾壯闊的十年。從交易所、礦機、投資者到媒體,比特幣已經帶動加密貨幣行業形成一個完整的生態系統。比特幣區塊獎勵減半從供給側直接減少一半的貨幣供給,顯然在邊際和投資者心理上都極大彰顯了比特幣的稀缺性。
因此,四年一次的比特幣減半成為整個加密貨幣行業關注的焦點。
但看了那么多比特幣減半的文章,你可能還不知道比特幣具體是怎么減半的,比如四年減半一次的四年是怎么來的,怎么計算當前區塊的獎勵等問題。
值此比特幣第三次減半之際,來跟隨金色財經記者看看Bitcoin Core的代碼是具體怎么執行比特幣區塊獎勵減半的。
比特幣減半代碼
金色熱搜榜:OK居于榜首:根據金色財經排行榜數據顯示,過去24小時內,OK搜索量高居榜首。具體前五名單如下:OK、OKB、HT、LTC、XRP。[2020/11/20 21:30:32]
比特幣減半,是比特幣區塊獎勵減半的簡稱。而比特幣的區塊獎勵減半是比特幣共識的一部分,直接寫在比特幣軟件代碼里。
具體減半代碼在這里,下面是截圖。
比特幣區塊獎勵減半代碼 來源:Bitcoin Core github
就這6行代碼定義的函數GetBlockSubsidy決定著不同區塊高度下的比特幣區塊獎勵。中本聰創造的比特幣共識設置區塊獎勵從50個比特幣開始每210000個區塊比特幣獎勵減半,減半64次后區塊獎勵為0。
金色實力派 | 眾安科技:區塊鏈+供應鏈金融 “雙鏈合一”實現產融結合:12月10日15:00,金色財經重磅推出的“區塊鏈+產業新模式”系列訪談之金色實力派,將與眾安科技供應鏈金融解決方案總監褚維國、西南財經大學中國區塊鏈研究中心CCF區塊鏈專業委員會通訊委員嚴麗娟,一起聊聊眾安科技如何通過區塊鏈+供應鏈金融實現“雙鏈合一”的產融結合。觀看直播可掃碼或戳原文鏈接~[2019/12/10]
210000個區塊的時間大約為四年,這也是幣圈人說的四年一次減半的由來。因為比特幣減半事件是寫進比特幣軟件代碼里并有分布在全世界的比特幣全節點驗證,其共識很難改變,這也是“In Code We Trust”的由來。
逐行解讀比特幣減半
上訴代碼主要有幾個函數和參數:GetBlockSubsidy、nHeight、Consensus.nSubsidyHalvingInterval、halving、nSubsidy。它們的涵義如下:
分析 | 金色盤面:BTC/USD 短線面臨調整壓力:金色盤面綜合分析:BTC/USD 今天反彈幅度較大,短線面臨調整壓力,注意控制風險。[2018/8/17]
GetBlockSubsidy主要是活的當前區塊高度下的區塊獎勵(nSubsidy );
nHeight為當前區塊高度;
Consensus.nSubsidyHalvingInterval為比特幣共識決定的區塊獎勵減半間隔區塊,此值為一個常數,為210000。
halvings為減半次數,是一個整數變量,也就是對nHeight/210000取整;
COIN為常數,為100000000,也就是說,在比特幣代碼里,比特幣的單位是聰。
nSubsidy為區塊獎勵。
金色財經訊:央行金融市場司司長紀志宏:以比特幣為代表的虛擬貨幣,一度投資炒作成性,涉嫌非法集資金融詐騙、傳銷等違法犯罪。[2017/10/29]
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
比特幣已經成功減半,盡管比特幣的價格未能反彈,但投資者情緒依然看漲。 期待已久的比特幣減半已經發生了,本次減半帶來了價格的劇烈波動,在比特幣區塊高度達到630,000最后三個小時內,比特幣價格在.
1900/1/1 0:00:001.硬核解讀比特幣具體是怎么減半的比特幣減半,是比特幣區塊獎勵減半的簡稱。而比特幣的區塊獎勵減半是比特幣共識的一部分,直接寫在比特幣軟件代碼里。帶你硬核解讀比特幣減半代碼.
1900/1/1 0:00:00比特幣于北京時間5月12日03:23在區塊高度630000完成區塊獎勵減半,區塊獎勵從12.5BTC減半至6.25BTC.
1900/1/1 0:00:005月27日消息,以太坊 2.0 多客戶端測試網 Schlesi已更名為Witti。此前4月30日,以太坊2.0多客戶端測試網Schlesi挖出首個測試區塊.
1900/1/1 0:00:00眾所周知,投資加密貨幣,最重要的是判斷二級市場的波段周期,抓住合適的機會買入,抓住合適的機會賣出,在過去的2019年里,表現出眾的周期性投資標的無疑就是比特幣和平臺幣.
1900/1/1 0:00:00文章開始前,先吹波牛,走一波關注!你懂的。前期大餅崩盤前,本人在03月04日參加金色沙龍、即BTC血崩前,就看空2020減半!以及早在大半年之前,2019.09.03比特幣還是一萬刀以上的時候,
1900/1/1 0:00:00