比特幣總量2100萬枚的來龍去脈

訪客 1年前 (2024-05-13) 閱讀數(shù) 238 #區(qū)塊鏈
文章標(biāo)簽 前沿文章

原創(chuàng):劉教鏈

一片花飛減卻春,風(fēng)飄萬點(diǎn)正愁人。且看欲盡花經(jīng)眼,莫厭傷多酒入唇。

五月的加密市場,BTC(比特幣)在6萬刀踟躕不前,春去花落一片紅。無甚熱鬧,但徜徉湖邊,看綠水青山,心底寧靜,倉位致遠(yuǎn)。

BTC乃加密行業(yè)之根。總量2100萬之上限,乃BTC之本。一切都從這個(gè)神奇的數(shù)字展開。可是它,為何是這樣一個(gè)數(shù)字呢?

教鏈在2020年12月5日文章《為什么比特幣最多只會有2100萬枚?》中,就曾介紹過這個(gè)數(shù)字的計(jì)算方法。簡而言之是這樣的:

1. 每區(qū)塊產(chǎn)量 50 BTC

2. 每21萬個(gè)區(qū)塊,產(chǎn)量減半

使用等比數(shù)列求和可以輕松算出,最終BTC的總產(chǎn)量為:(50 + 25 + 12.5 + 6.25 + 3.125 + ...) x 21萬 = 2100萬枚。

進(jìn)一步的,調(diào)節(jié)“挖礦”難度使得大約每10分鐘產(chǎn)生一個(gè)新區(qū)塊,即每小時(shí)6個(gè)新區(qū)塊,21萬個(gè)區(qū)塊就大概是人間4年。

這也就是比特幣4年產(chǎn)量減半周期的來歷。

但是,如此只是對既定事實(shí)的一個(gè)鋪敘而已。一是缺乏一些細(xì)節(jié)的考察;二是并未真正揭示比特幣發(fā)明人中本聰為何要選擇和設(shè)計(jì)這樣一個(gè)數(shù)字的原因。

先說細(xì)節(jié)。

首先,2100萬并非2100萬,而是2,099,999,997,690,000。對,后面這個(gè)數(shù)字比2100萬要大1億倍,即大約是2100萬億。在比特幣系統(tǒng)內(nèi)部,都是這個(gè)萬億級的整數(shù)。

當(dāng)我們把BTC“展示”為這個(gè)整數(shù)點(diǎn)上8位小數(shù)位,也就變成了2 0,99 9,99 9.97 690 000。這里我用空格提示了上面作為整數(shù)時(shí)的千分位分割點(diǎn)。我們一眼就會看到,中本聰選擇8位小數(shù)位其實(shí)有些奇怪的,因?yàn)檫@樣會導(dǎo)致8位小數(shù)的BTC整數(shù)部分的逗號分割點(diǎn),和系統(tǒng)內(nèi)真正的整數(shù)的逗號分割點(diǎn)不一致。

8位小數(shù)位,也就是1億分之一,這個(gè)就不太西方。眾所周知,英文里對數(shù)字采用千分位分割,所以計(jì)數(shù)法的單位是千(thousand)、百萬(million)、十億(billion)、萬億(trillion)。英文里并沒有“億”這個(gè)單位。而中國的計(jì)數(shù)法略有不同,是以4位數(shù)字也就是萬分位為分割的,乃有萬、億、萬億。

2100萬億用萬分位分割就是這樣的:2099 9999 9769 0000;2100萬帶8位小數(shù)則是這樣的:2099 9999.9769 0000。都是4小節(jié),每小節(jié)4位數(shù)字,沒有任何混亂。所以看起來,8位小數(shù)位,1億分之一,嗯,這很東方。

其次,2100萬億之所以是2,099,999,997,690,000而不是精確的2,100,000,000,000,000,也正是因?yàn)?位小數(shù)位的精度限制。

上文的等比數(shù)列(50 + 25 + 12.5 + 6.25 + 3.125 + ...)并非真正的無窮數(shù)列,而是當(dāng)它減小到0.0000 0001之后,再減半就歸零了。因此,這是一個(gè)截?cái)嗔说挠懈F數(shù)列,其加和就要小于無窮數(shù)列求和的結(jié)果100。所以,乘以21萬之后,最終結(jié)果也要略小于2100萬。

第三,注意第一點(diǎn)的敘述,8位小數(shù)位和小數(shù)點(diǎn)僅僅是一個(gè)“展示”層面的設(shè)計(jì)。在系統(tǒng)內(nèi)部只有那個(gè)萬億級的整數(shù)。

既然僅僅是“展示”,那么其實(shí)小數(shù)點(diǎn)是可以任意挪動(dòng)的。現(xiàn)在點(diǎn)在8位小數(shù)的位置,以后也可以點(diǎn)在5位或者4位小數(shù)的位置。

比如,20,999,999,976.90000(5位小數(shù)),或者2099 9999 9769.0000(4位小數(shù))。

那么,8位小數(shù)時(shí)的1枚比特幣,當(dāng)移位到5位小數(shù)時(shí),就顯示為1000,移位到4位小數(shù)時(shí),就顯示為10000。相應(yīng)的,原來的0.001或者0.0001 BTC現(xiàn)在就會顯示為1。

這移位的想法并非教鏈杜撰的,而是中本聰真實(shí)的想法。在2009年4月12日中本聰給Mike Hearn的回信[1]中,他這樣寫道:

"My choice for the number of coins and distribution schedule was an educated guess.? It was a difficult choice, because once the network is going it's locked in and we're stuck with it.? I wanted to pick something that would make prices similar to existing currencies, but without knowing the future, that's very hard.? I ended up picking something in the middle.? If Bitcoin remains a small niche, it'll be worth less per unit than existing currencies.? If you imagine it being used for some fraction of world commerce, then there's only going to be 21 million coins for the whole world, so it would be worth much more per unit.? Values are 64-bit integers with 8 decimal places, so 1 coin is represented internally as 100000000.? There's plenty of granularity if typical prices become small.? For example, if 0.001 is worth 1 Euro, then it might be easier to change where the decimal point is displayed, so if you had 1 Bitcoin it's now displayed as 1000, and 0.001 is displayed as 1."

“我對硬幣數(shù)量和發(fā)行時(shí)間表的選擇是經(jīng)過深思熟慮的。這是一個(gè)艱難的選擇,因?yàn)橐坏┚W(wǎng)絡(luò)開始運(yùn)行,它就會被鎖定,我們就會被它困住。我想選擇一種能讓價(jià)格與現(xiàn)有貨幣相近的(數(shù)字),但在不知道未來的情況下,這很難做到。最后,我選擇了中間值。如果比特幣仍然是一種小眾貨幣,那么它的單位價(jià)值就會低于現(xiàn)有貨幣。如果你想象比特幣被用于世界商業(yè)的某個(gè)部分,那么全世界只有 2100 萬個(gè)比特幣,所以它的單位價(jià)值會更高。幣值是小數(shù)點(diǎn)后 8 位的 64 位整數(shù),因此 1 枚硬幣在內(nèi)部表示為 100000000。如果典型(應(yīng)用場景的)價(jià)格變小,則有足夠的粒度。例如,如果 0.001 價(jià)值 1 歐元,那么改變小數(shù)點(diǎn)的顯示位置可能會更容易(查看和使用),所以如果你有 1 個(gè)比特幣,現(xiàn)在顯示為 1000,而 0.001 顯示為 1。”

有人說,對于普遍的64位計(jì)算機(jī)而言,如果我們使用64位二進(jìn)制數(shù)同時(shí)表示整數(shù)和小數(shù)(又稱浮點(diǎn)數(shù)),那么最安全的做法是把整數(shù)限制在浮點(diǎn)數(shù)的整數(shù)部分可表達(dá)的上限內(nèi)。

稍微了解計(jì)算機(jī)原理的朋友都知道,計(jì)算機(jī)內(nèi)部并沒有什么小數(shù),都是0和1的數(shù)位。所謂64位整數(shù),就是指64個(gè)0或者1所組成的二進(jìn)制整數(shù)。對應(yīng)10進(jìn)制就是2^64 = 18446744073709551616。這個(gè)數(shù)字要遠(yuǎn)大于2100萬億。但是,如果要讓計(jì)算機(jī)能夠處理浮點(diǎn)數(shù),那么就要把64位中拆出一部分用來表達(dá)小數(shù)部分,還要留出1位來表示正負(fù)號。這就成了IEEE 754浮點(diǎn)數(shù)編碼標(biāo)準(zhǔn)。其中標(biāo)準(zhǔn)定義,雙精度浮點(diǎn)數(shù)用64位二進(jìn)制是這樣編碼的:

這樣一來,整數(shù)部分就只能使用53位,也就是最大不超過2^53 = 9007199254740992。而如果希望容易測試結(jié)果是否為整數(shù),則最好不要超過2^51 = 2251799813685248。如此,可以選擇22(百萬億),但是22不是一個(gè)“三角數(shù)”(triangular number),所以中本聰選擇了21(百萬億)。

據(jù)此許多人認(rèn)為中本聰選擇2100萬億,大大地方便了各種編程語言處理比特幣數(shù)量相關(guān)的計(jì)算。

不過,教鏈看了中本聰?shù)泥]件后,覺得中本聰也許并沒有這么復(fù)雜的想法。或者他的確思忖過,但是并沒有講透他的全盤考慮。他只是講,也曾經(jīng)考慮過其他數(shù)字,比如4200萬億,但是感覺太大了,于是就折中成了2100萬億。在2011年1月10日中本聰回復(fù)Mike Hearn的郵件[2]中,他是這樣寫的:

"It works out to an even 10 minutes per block:

21000000 / (50 BTC * 24hrs * 365days * 4years * 2) = 5.99 blocks/hour

"I fudged it to 364.58333 days/year.? The halving of 50 BTC to 25 BTC is after 210000 blocks or around 3.9954 years, which is approximate anyway based on the retargeting mechanism's best effort.

"I thought about 100 BTC and 42 million, but 42 million seemed high.

"I wanted typical amounts to be in a familiar range.? If you're tossing around 100000 units, it doesn't feel scarce.? The brain is better able to work with numbers from 0.01 to 1000.

"If it gets really big, the decimal can move two places and cents become the new coins."

看起來,中本聰是先定了時(shí)間諸參數(shù),而后調(diào)整區(qū)塊產(chǎn)量和總量,并思考多大的數(shù)字較為適合。

依中本聰?shù)囊馑迹蠖鄶?shù)人手里的BTC數(shù)量最好在0.01到1000之間,不要?jiǎng)虞m就搞個(gè)6、7位數(shù)的幣,那樣會缺乏稀缺感。

以上就是關(guān)于2100萬枚總量數(shù)字的來龍去脈。

熱門
主站蜘蛛池模板: 182tv免费视视频线路一二三| 国产高清在线精品一区| 亚洲精品二三区伊人久久| 老色鬼久久亚洲av综合| 国产漂亮白嫩的美女| 99久9在线|免费| 尤物在线影院点击进入| 久久亚洲av无码精品色午夜| 欧美一级片观看| 亚洲精品无码久久毛片| 精品乱码一区二区三区在线 | 直接观看黄网站免费视频| 国产乱淫a∨片免费视频| 久热中文字幕在线精品免费| 欧美最猛性xxxx| 免费大片在线观看网站| 老师你的兔子好软水好多的车视频| 国产成人精品久久| 青娱乐欧美视频| 国产麻豆精品精东影业av网站| www.色午夜| 岳打开双腿让我进挺完整篇| 久久99国产精品尤物| 日韩精品在线电影| 亚洲一区动漫卡通在线播放| 欧美日韩高清在线| 亚洲精品高清国产麻豆专区| 福利聚合app绿巨人入口| 哒哒哒免费视频观看在线www | 两个小姨子韩国电影| 日本中文字幕有码视频| 久久综合九色综合欧美就去吻| 欧美怡红院免费全视频| 亚洲欧美日韩精品中文乱码| 玖玖资源站无码专区| 全彩里番acg里番| 精品日韩一区二区| 四虎国产精品成人| 色偷偷亚洲综合网亚洲| 国产精品高清一区二区三区不卡| tube欧美巨大|