【比特幣大講堂】比特幣總量為什么是2100萬(wàn)?

區(qū)塊鏈共享礦場(chǎng)?比特幣總量2100萬(wàn)個(gè),這可能是剛接觸比特幣的小白們記得最清楚,也是最迷惑的數(shù)字。

中本聰沒(méi)在任何公開(kāi)的言論中提到:為什么選這個(gè)數(shù)字,于是網(wǎng)上出現(xiàn)了各種各樣的猜測(cè)和邏輯推理。

我們就來(lái)聊聊這個(gè)數(shù):壹2100萬(wàn)是怎么來(lái)的【1】20999999.97690000最終產(chǎn)生的比特幣數(shù)量,準(zhǔn)確的說(shuō)是20999999.97690000個(gè),比2100萬(wàn)少一點(diǎn)。

比特幣產(chǎn)生的時(shí)間表:

區(qū)塊鏈共享礦場(chǎng)??

下面挑幾個(gè)重點(diǎn)分析一下這張表。【2】50.00000000格林威治時(shí)間2009年1月3日18:15:05,創(chuàng)世區(qū)塊誕生。創(chuàng)世區(qū)塊的編號(hào)是0。從創(chuàng)世區(qū)塊開(kāi)始的”階段1”,每個(gè)區(qū)塊產(chǎn)生50個(gè)新的比特幣或者說(shuō)50億聰。

創(chuàng)世區(qū)塊:https://blockchain.info/block-height/0【3】目標(biāo)高度210000格林威治時(shí)間2012年11月28日15:24:38,編號(hào)第210000個(gè)區(qū)塊產(chǎn)生。從這個(gè)區(qū)塊起的”階段2”,每個(gè)區(qū)塊包含的新比特幣數(shù)量減半為25個(gè),這是歷史上第一次減半。今后每產(chǎn)生210000個(gè)區(qū)塊,比特幣數(shù)量都會(huì)依次減半。直到第33次減半時(shí),每個(gè)塊產(chǎn)生0.0021個(gè)新比特幣直接減為0個(gè)。

210000塊:https://blockchain.info/block-height/210000【4】4年1次的約定每4年減半是不太嚴(yán)格的說(shuō)法。實(shí)際情況:比特幣大約每10分鐘產(chǎn)生一個(gè)區(qū)塊,而210000個(gè)10分鐘接近4年(4年等于210384個(gè)10分鐘。這應(yīng)該是中本聰特意選取的數(shù)字)。

【5】2016前,2016后2016年將發(fā)生第二次減半,但現(xiàn)在討論這個(gè)有點(diǎn)早。我要說(shuō)的是2016個(gè)塊的問(wèn)題。

比特幣系統(tǒng)調(diào)節(jié)挖礦難度的原理是:根據(jù)前2016個(gè)塊產(chǎn)生的總時(shí)間,調(diào)整后2016個(gè)塊的挖礦難度,讓挖出這2016個(gè)塊的時(shí)間為14天。因?yàn)?,每小時(shí)6個(gè)10分鐘乘以24小時(shí)再乘以14天=2016。所以,所謂10分鐘只是平均值目標(biāo)。由于目前算力上漲很快,實(shí)際上挖出2016個(gè)塊的速度往往少于14天。

難度調(diào)整的話題涉及到挖礦,以后再一并分析。貳選2100萬(wàn)的真正原因網(wǎng)絡(luò)上有很多種猜測(cè),有些很靠譜,有些不靠譜但很歡樂(lè)。

【答案1】It’s the first half of the answer: 42.

翻譯:因?yàn)?1是終極答案42的一半。

(說(shuō)明:英語(yǔ)里,2100萬(wàn)表示為:21 million。所以,老外一般直接問(wèn):為啥是21。)

當(dāng)然,他是開(kāi)玩笑的。不過(guò),我個(gè)人最喜歡這個(gè)猜測(cè),這也是reddit里頂?shù)娜俗疃嗟摹?/p>

這個(gè)梗來(lái)自電影《銀河系漫游指南》里終極答案的橋段?!敬鸢?】Because we’re living in the 21st century!

翻譯:因?yàn)槲覀兩钤?1世紀(jì)!太天真,不忍吐槽?!敬鸢?】He chose a reward scheme and 10 minute blocks. When he did the math, it came to 21 million. He didn’t choose the 21 million, he just accepted the consequence of the parameters he chose.

翻譯:中本聰訂好10分鐘、50幣、4年減半的原則,結(jié)果自然出來(lái)了。他沒(méi)有選,而是接受了這個(gè)自然的結(jié)果。這個(gè)答案也是有可能的。中本聰在比特幣中的很多選擇確實(shí)是撞大運(yùn)的,但都是“基于經(jīng)驗(yàn)的撞大運(yùn)”。【答案4】All gold mined in human history can be fit into a cube roughly 21 meters on each side.

Satoshi created bitcoin with the idea of being sort of a digital analog of gold (finite supply, mining, etc), as well as the fact that it built upon Nick Szabo’s “Bit Gold” proposal, so I think that 21 million was sort of a clever nod to that.

翻譯:全世界所有黃金熔在一起,是一個(gè)邊長(zhǎng)大約為21米的正方體。中本聰用這個(gè)概念,隱喻比特幣是一種虛擬黃金。原來(lái)陰謀論不止中國(guó)有…【答案5】I was going to say: Satoshi likes to play Vegas blackjack.

翻譯:我覺(jué)得中本聰喜歡玩21點(diǎn)。上帝玩骰子么?

【答案6】計(jì)算機(jī)雙精度浮點(diǎn)數(shù)最多存儲(chǔ)2^53精度的數(shù)。而比特幣按最小單位算的總精度是2^51,剛好夠用。(英文太長(zhǎng)不貼了)這個(gè)答案,出現(xiàn)在一篇很不錯(cuò)的文章里《中本聰?shù)奶觳牛罕忍貛乓砸庀氩坏降姆绞蕉汩_(kāi)了一些密碼學(xué)子彈》詳細(xì):

比特幣有爭(zhēng)議的屬性之一就是它的固定的供應(yīng)量。當(dāng)前每10分鐘又25個(gè)新的比特幣被生產(chǎn)出來(lái),并且這一數(shù)字每4年減半。

總的來(lái)講,不會(huì)有超過(guò)2100萬(wàn)個(gè)比特幣的存在>。另一方面,每個(gè)比特幣可以被劃分成1億份(每份叫做1“聰”),如果一美分都足夠買輛車的話,用美元來(lái)交易就麻煩重重了,但比特幣就算升值到和上面假設(shè)的美元的>狀況,也不會(huì)遇到那樣的問(wèn)題。因此,總之,將永遠(yuǎn)存在的貨幣單位的總數(shù)字是2,100,000,000,000,000,也就是2100萬(wàn)億,或者說(shuō)250.899。在選擇這個(gè)數(shù)值的方>面,中本聰比大多數(shù)人意識(shí)到的要幸運(yùn)的多或者說(shuō)聰明的多。

首先,這個(gè)數(shù)字遠(yuǎn)小于264-1,這是一臺(tái)計(jì)算機(jī)里面可以以標(biāo)準(zhǔn)整數(shù)形式存放的最大整數(shù),超過(guò)那個(gè)值的話,>數(shù)值將像里程表那樣歸零。

其次,然而,還有一個(gè)總“聰”數(shù)要設(shè)法低于的更小的閾值:可以用浮點(diǎn)的格式表示的可能的最大整數(shù)。整數(shù)不是計(jì)算機(jī)可以存儲(chǔ)的唯一一種數(shù)字;為了處理小數(shù),計(jì)算機(jī)>使用一種做浮點(diǎn)表示法的格式。浮點(diǎn)表示法本質(zhì)上就是一個(gè)科學(xué)記數(shù)法的二進(jìn)制版本。

舉個(gè)例子,下面是一個(gè)在你學(xué)習(xí)物理學(xué)的時(shí)候會(huì)遇到的值:

地球的質(zhì)量: 5.972?1024 kg

太陽(yáng)的質(zhì)量: 1.989?1030 kg

光速: 2.998?108 m/s

一光年: 9.460?1015 m

質(zhì)子的質(zhì)量: 1.672?10-27 kg

普朗克長(zhǎng)度: 1.616?10-35 m

我們可以注意到,科學(xué)記數(shù)法是如何使得你可以在合理的精度下表示所有的這些數(shù)值,盡管它們的大小相差極大。浮點(diǎn)表示法本質(zhì)上就是二進(jìn)制的科學(xué)記數(shù)法;當(dāng)你存儲(chǔ)數(shù)>字9.625的時(shí)候,你的計(jì)算機(jī)存放的是“1.001101 * 1011”(或者說(shuō),它存放的是01000000 00100011 01000000 00000000 00000000 00000000 >00000000 00000000,這是高精度序列形式的同樣一回事)。在這個(gè)高精度形式中,系數(shù)(也就是不是指數(shù)的那部分)有52位(52bits)。

這意味著高精度(更加精>確的說(shuō)法是“雙精度”)浮點(diǎn)數(shù)足以存貯高達(dá)253的數(shù)字,但不能再高了,如果超過(guò)了,你就得開(kāi)始砍掉末尾的數(shù)字。比特幣的250.9這一以指數(shù)形式表現(xiàn)的總“聰”數(shù),剛>好低于這個(gè)最大值。

如果我們有了整數(shù),我們?yōu)槭裁催€要關(guān)心浮點(diǎn)值呢?因?yàn)楦嗟母唠A編程語(yǔ)言(比如說(shuō)Javascript)并不開(kāi)放低階的“浮點(diǎn)”和“整數(shù)表示法”,而只給程序員提供“數(shù)”的>概念 – 當(dāng)然以浮點(diǎn)的形式提供。如果中本聰當(dāng)時(shí)選擇了2億1千萬(wàn)而不是2100萬(wàn)這個(gè)值的話,用很多語(yǔ)言里比特幣編程就會(huì)比現(xiàn)在要麻煩得多了。

注意,Stefan Thomas不幸的在他寫B(tài)itcoinJS的時(shí)候沒(méi)有及時(shí)留意到這個(gè),以至于那個(gè)庫(kù)使用了一個(gè)專門的‘大數(shù)big number’對(duì)象,而不是一個(gè)普通數(shù)來(lái)存儲(chǔ)教程輸出值;我自己分叉的的BitcoinJS(同時(shí)還加入了其他的改進(jìn))使用了普通數(shù)?!敬鸢?】That explanation is close but not entirely compelling. IEEE double-precision floating-point format has 53 bits of significand precision, meaning it can address up to 253 ? 1 satoshis without any rounding error. Well, that’s 9,007,199,254,740,991 satoshis, which is not anywhere close to 2,100,000,000,000,000 satoshis (or even 2,099,999,997,690,000 satoshis, which is the actual asymptotic limit).

I think a much more compelling explanation is that a signed 32-bit integer can store values up to 231 ? 1, which is 2,147,483,647. If you assume a fixed-point format with two decimal digits of fractional precision (which is typical for money), then a signed 32-bit integer can address up to 21,474,836.47 bitcoins, which we might as well round off to 21 million. My guess is that Satoshi derived the 21-million limit from here early in development and then later realized that this wouldn’t be enough currency units and so extended the number of decimal places from 2 to 8 and changed the variables from 32-bit to 64-bit.

翻譯:答案6的解釋很接近,但有點(diǎn)牽強(qiáng)。IEEE雙精度浮點(diǎn)數(shù)是53bits,能表示的最大數(shù)是9,007,199,254,740,991聰,而比特幣是2,099,999,997,690,000聰,差別還是很大的。

我覺(jué)得更好的解釋:有符號(hào)32位整數(shù)可存儲(chǔ)最大2^32-1的數(shù),是2,147,483,647。如果比特幣是小數(shù)點(diǎn)后兩位的話,就是21,474,836.47個(gè)比特幣。也就是21-million。我猜中本聰在最初開(kāi)發(fā)的時(shí)候用32位精度的整數(shù),后來(lái)發(fā)現(xiàn)對(duì)于一種全球通用貨幣來(lái)說(shuō)這個(gè)精度不夠,所以把小數(shù)點(diǎn)后2位延展成8位,從32位存儲(chǔ)改成64位存儲(chǔ)。

這是我覺(jué)得最靠譜的答案,因?yàn)閺闹斜韭數(shù)倪^(guò)往言論可以看出,他不是一個(gè)完美主義者,而是一個(gè)實(shí)用主義者。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 比特幣發(fā)行總量真的是2100萬(wàn)枚嗎? 比特幣是一個(gè)點(diǎn)對(duì)點(diǎn)的現(xiàn)金支付系統(tǒng),可以認(rèn)為是一個(gè)不依賴于任何國(guó)家/任何組織的...
    博學(xué)于文約之以禮閱讀 10,211評(píng)論 10 5
  • 一、快速術(shù)語(yǔ)檢索 比特幣地址:(例如:1DSrfJdB2AnWaFNgSbv3MZC2m74996JafV)由一串...
    不如假如閱讀 16,578評(píng)論 4 87
  • 皎潔的月灑下冷漠的光,灑在森林中一座宏偉的城堡的墻壁上,發(fā)出淺淺銀光。 空無(wú)一人的玻璃走廊上散發(fā)著寒氣,樹(shù)葉沙沙作...
    Yrainy汐汐閱讀 466評(píng)論 0 1
  • 在CSS中經(jīng)常會(huì)用到對(duì)一個(gè)元素進(jìn)行變換(Transform)但希望元素的內(nèi)容保持不變的效果;但當(dāng)我們對(duì)元素進(jìn)行變換...
    科研者閱讀 810評(píng)論 2 1
  • 這場(chǎng)為我們準(zhǔn)備的畢業(yè)晚會(huì),雖然前一天晚上十一點(diǎn)多還在排練,雖然影響了睡覺(jué),但是還是滿滿的感動(dòng),還自欺欺人的覺(jué)得不去...
    小冬菇閱讀 305評(píng)論 0 1

友情鏈接更多精彩內(nèi)容