比特幣的宇宙與星空

2024-10-15 04:53:0134:29 72
聲音簡(jiǎn)介

淺友們好~我是史中,我的日常生活是開(kāi)撩五湖四海的科技大牛,我會(huì)嘗試用各種姿勢(shì),把他們的無(wú)邊腦洞和溫情故事講給你聽(tīng)。如果你想和我做朋友,不妨加微信。

比特幣的宇宙與星空

文 | 史中

創(chuàng)造比特幣的中本聰,大概擁有 110 萬(wàn)枚比特幣。

如果按照最近比特幣 6 萬(wàn)美元一枚的價(jià)格,中本聰有 660 億美元。這么算的話(huà),目前的世界首富毫無(wú)疑問(wèn)是——馬斯克。。。

對(duì),馬斯克的身家大概是 2100 億美元。即便你有 110 萬(wàn)枚比特幣,還是不及馬斯克三分之一。

但問(wèn)題是,馬斯克的錢(qián),人家一分也不給你啊。。。

你可能被整笑了:“中本聰?shù)腻X(qián)能給我是咋的?”

誒,他不給,你可以自己拿??!

嚴(yán)格來(lái)說(shuō),你把馬斯克的錢(qián)拿走,肯定會(huì)犯法;但是你把中本聰?shù)膸拍米?,不?huì)犯法。

最近有點(diǎn)兒時(shí)間,中哥就出一個(gè)教程,手把手教你把中本聰?shù)膸拍米?,讓我們開(kāi)始吧!

讓你安心睡大覺(jué)的“二百五十六扇門(mén)”

要想拿走,得先知道幣在哪。

比特幣是“加密數(shù)字貨幣”,我知道很多人一聽(tīng)到“加密”就有點(diǎn)兒蒙圈,覺(jué)得只有學(xué)霸才能懂。

應(yīng)該這么說(shuō),如果你的目標(biāo)只是“拿走中本聰?shù)谋忍貛拧?,而不是像中本聰一樣?chuàng)世出一套完整的比特幣系統(tǒng),那么中哥可以負(fù)責(zé)任地告訴你:你完全不用任何加密知識(shí)。

因?yàn)樵诒忍貛诺氖澜缋?,所有的錢(qián)就這么大搖大擺地?cái)[在那里,只要你*去拿*,它就是你的。

是不是有點(diǎn)兒蒙圈?這他喵的是在說(shuō)比特幣么?怎么跟別人說(shuō)的不一樣?其實(shí)是一樣的,只是很多人都沒(méi)有*從頭*給你講比特幣的原理。

大家都喜歡天上掉餡餅,咱就從一個(gè)爽文場(chǎng)景開(kāi)始:

你結(jié)束了牛馬的一天,下班路上撿了個(gè)飯盒,打開(kāi)一看,里面都?是金幣。

你會(huì)腫么辦?

我猜很多人的選擇都是一樣的:不聲張,找個(gè)地方把金幣藏起來(lái)。

接下來(lái)才是真正的難題:藏哪?

床底下?大衣柜?保險(xiǎn)箱?微波爐?糕點(diǎn)盒?去院子里挖個(gè)坑埋了?上面再放一只死狗,上面再種一株珍稀植物?

這些地方當(dāng)然都可以,但都有一定概率被其他人發(fā)現(xiàn),只是概率有大有小。放在這些地方,你都不能百分百放心,肯定晚上睡不好覺(jué)。

其實(shí),中本聰在構(gòu)想比特幣大廈時(shí),首先就是要解決這個(gè)“基石”問(wèn)題:

能不能設(shè)計(jì)一個(gè)空間,讓你、我、他可以在里面放心地藏金幣嘞?

如果用沉重的鋼筋混凝土造一個(gè)這樣的世界,那成本肯定海了去了。于是,中本聰選了一種完全沒(méi)有重量的東西——數(shù)字。

這個(gè)數(shù)字世界是什么樣的呢?

咱們繼續(xù)來(lái)想象:

你手里捧著小飯盒,面前有兩扇門(mén),左邊寫(xiě)著 0,右邊寫(xiě)著 1。

你得選擇其中一扇門(mén)穿過(guò)去。不用有壓力,沒(méi)有獎(jiǎng)勵(lì)也沒(méi)有懲罰,真就隨便選。假設(shè)你選了 1 吧。

穿過(guò) 1 這扇門(mén),你又看到兩扇門(mén),還是左邊寫(xiě)著 0,右邊寫(xiě)著 1。你還得繼續(xù)選擇一扇門(mén)通過(guò)。

穿過(guò)這扇門(mén),又有兩扇門(mén)。

以此類(lèi)推。

當(dāng)你穿過(guò)第 256 道門(mén)之后,面前出現(xiàn)了一個(gè)星球。

星球不大,就像《小王子》里說(shuō)的那么大,坐在上面,一天能看 44 次日落那種。

你可以把一飯盒金幣藏在這顆星球上。

其實(shí)不是藏,大喇喇放地上就行。

然后你轉(zhuǎn)身回到我們的世界,指著老板鼻子罵一頓,最后寫(xiě)一個(gè)“世界這么大,老子去看看”的辭職告知書(shū)甩他臉上。

當(dāng)你想用這些金幣享受人生的時(shí)候,只需要再推開(kāi)那些門(mén),去你的星球上拿一顆半顆金幣回來(lái)一賣(mài),就妥了。

有了這“二百五十六扇門(mén)”,您就實(shí)現(xiàn)了睡眠自由,想啥時(shí)候睡啥時(shí)候睡,睡死過(guò)去都行。

只要?jiǎng)e人不撬開(kāi)你的腦袋,就不知道你有金幣,更不會(huì)知道你的金幣在哪。

當(dāng)然,這里有個(gè)關(guān)鍵問(wèn)題:你得他喵的記住自己推開(kāi)二百五十六扇門(mén)的順序!

如果你忘了,中間推錯(cuò)了哪怕一扇門(mén),你最后抵達(dá)的都不是之前那顆星球,而是看上去類(lèi)似的另一顆,上面沒(méi)有你的飯盒。。。

如果你永遠(yuǎn)想不起來(lái),你的金幣就永遠(yuǎn)留在之前那顆星星上了。雖說(shuō)別人拿不到,可你也拿不到。

所以要是穩(wěn)妥起見(jiàn)。。。最好還是把“門(mén)的順序”寫(xiě)紙上。

你寫(xiě)在紙上的東西,大概就是一串?dāng)?shù)字:001101011101100101....

現(xiàn)在問(wèn)題變成了:你的紙條不能被別人偷看了去。否則別人也可以拿走你的金幣了。

本質(zhì)上你的門(mén)沒(méi)有“上鎖”,也不用鑰匙。

非要說(shuō)的話(huà),這個(gè)開(kāi)門(mén)的順序就是你的鑰匙。

以上,其實(shí)就是比特幣存儲(chǔ)的基礎(chǔ)原理——它沒(méi)有用到密碼,只是使用了簡(jiǎn)單的數(shù)學(xué)假想出這樣的“二百五十六道門(mén)”和“多如恒河之沙的星球”。

你是不是意識(shí)到了什么?

中本聰老哥的比特幣,不也這么直接放在某個(gè)星球上嗎?

也就是說(shuō):你只要胡亂開(kāi)門(mén),多多嘗試不一樣的順序,有可能恰好碰上跟中本聰開(kāi)門(mén)的順序完全一樣!此時(shí)你就能登上他的星星,把比特幣拿走。

只要 256 次全對(duì)哦~~

怎么樣,雖然有點(diǎn)難,但好像還有點(diǎn)兒希望吧?

而且根據(jù)研究,中本聰?shù)谋忍貛挪恢狗旁谝活w星球上, 而是散落在幾百甚至上千個(gè)星球上。你只要碰對(duì)任何一個(gè)星球,都可以有所斬獲!是不是成功率又大大增加了呢?

成功率到底是多少嘞?

既然一切都構(gòu)建在數(shù)學(xué)之上,那么概率是能計(jì)算出來(lái)的,我們不妨算算。

做一次比特幣宇宙里的“賭狗”?

每次你有 2 個(gè)選項(xiàng),要連選 256 次,所以可能的情況總共有 22?? 個(gè)。

算一下,這個(gè)數(shù)是:

115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,936

這個(gè)數(shù)有多大呢?約等于 1 后面跟 77 個(gè)零。

這基本趕上了宇宙中的原子數(shù)量。

你不妨這樣理解:比特幣用數(shù)學(xué)做了個(gè)“魔法”,把宇宙中每一個(gè)原子都變成了一顆星球。

你隨便登錄一顆星球,它恰好是另一個(gè)人登陸過(guò)的,可能性微乎其微。

說(shuō)白了,如果用世界上最快的計(jì)算機(jī)一個(gè)星球一個(gè)星球地遍歷嘗試,你要想確定性地登陸中本聰那顆星球,最多得耗費(fèi)幾十億年。

這里介紹一個(gè)“信息熵”的概念。

所謂信息熵,可以理解為信息被“瞎蒙”出來(lái)的難易程度。越容易被蒙出來(lái),信息熵越小。

而中本聰設(shè)計(jì)的這個(gè)“比特幣宇宙”,信息熵極大。

但即便如此,如果運(yùn)氣夠好,你仍然可能在嘗試的第一次就碰巧登陸了中本聰星球!

就算天王老子來(lái)了,這種撞大運(yùn)的概率也不!為!零!!

說(shuō)到這,你有沒(méi)有沖動(dòng)想碰碰運(yùn)氣?

沒(méi)問(wèn)題,咱們就來(lái)實(shí)操一把,體驗(yàn)賭狗的刺激。

明確一下,現(xiàn)在我們的目標(biāo)是:選 256 個(gè)數(shù),然后輸入比特幣的錢(qián)包程序里查看,看看是不是恰巧有余額。

下面開(kāi)始。

第一步:撒面。

其實(shí)你隨便寫(xiě) 256 個(gè)“0、1”組成的數(shù)字就行。但這里為了專(zhuān)業(yè)一點(diǎn),咱還是搞個(gè)儀式感。

你找個(gè)骰子?扔一下,如果是 1、2、3 點(diǎn),就寫(xiě)個(gè) 0,如果是 4、5、6 點(diǎn),就寫(xiě)個(gè) 1。怎么樣,有點(diǎn)兒“奉天承運(yùn)”的味兒了吧?

比如寫(xiě)出來(lái)是這樣:

0100001111110101110110010010000010100110100010000100011100010110110010011011111010000011110010000011011111001000010101000001011101100110000110111000010011011011110011100101011110011010000010011100000100001001000001110011100111101011100011001110101101110001

這串?dāng)?shù)字就像你隨便挖了一勺面粉,里面的面粉顆粒以各種姿勢(shì)隨機(jī)排列。

哦對(duì),寫(xiě)的時(shí)候要注意一下格式,每寫(xiě)滿(mǎn) 11 個(gè)數(shù)字就換行。寫(xiě)滿(mǎn) 256 個(gè),意味著你會(huì)寫(xiě)到 24 行第 3 個(gè)數(shù)。

誒,為啥要這么寫(xiě)嘞?第 24 排咋還多出來(lái) 3 個(gè)數(shù)?這讓強(qiáng)迫癥怎么活?

其實(shí)不是多出來(lái) 3 個(gè)數(shù),是少了 8 個(gè)數(shù)。

后面 8 個(gè)數(shù),需要我們對(duì)前面 256 個(gè)數(shù)字進(jìn)行計(jì)算才能得到——它的學(xué)名叫做“校驗(yàn)和”。

第二步:揉面。

我們要對(duì)前面 256 個(gè)數(shù)字進(jìn)行一種名叫 SHA-256 的運(yùn)算。

你可以把 SHA-256 理解為一個(gè)方程,任何一個(gè)數(shù)輸入進(jìn)去,它都能給出一個(gè)結(jié)果,而且這個(gè)結(jié)果還很規(guī)整,一定是長(zhǎng)度為 256 位的二進(jìn)制數(shù)。

這個(gè)方程非常復(fù)雜,充斥著各種雜糅和重復(fù)。

它有點(diǎn)兒像我們?nèi)嗝妫緛?lái)分離的面粉,經(jīng)過(guò)反復(fù)揉搓最后就變成了一整個(gè)面團(tuán)。

這個(gè)面團(tuán)就叫“哈希值”。

當(dāng)然,我們真實(shí)生活中的揉面是很隨性的,同樣的面粉每次揉出來(lái)的面團(tuán)都不一樣。

但數(shù)學(xué)公式是非常嚴(yán)謹(jǐn)?shù)?,只要初始值不變,?SHA-256 算法“揉”出來(lái)的結(jié)果就永遠(yuǎn)是一樣的。

多說(shuō)一句,既然是方程,就可以用手算。

有一個(gè)頭鐵的老哥真的用手算了一次 SHA-256,我把鏈接貼在底部,對(duì)具體計(jì)算步驟感興趣的同學(xué)可以去看看老哥的自虐過(guò)程。

作為 21 世紀(jì)的人類(lèi),我真誠(chéng)地建議你用電腦算。。。

如果你有 Mac 電腦,可以打開(kāi)“終端”,然后把下面的指令復(fù)制進(jìn)去,一回車(chē)就能得到結(jié)果。

echo 0100001111110101110110010010000010100110100010000100011100010110110010011011111010000011110010000011011111001000010101000001011101100110000110111000010011011011110011100101011110011010000010011100000100001001000001110011100111101011100011001110101101110001 | shasum -a 256 -0

如果你是 Windows 電腦,不太方便,你就直接讓 ChatGPT 幫忙算就好了。

如果你算對(duì)了,得到的哈希值一定是這個(gè):

3F38F4FC5FB00C2A6D0648B16E4D67C206D055524163BDADF4BBD288931AE51D

這是十六進(jìn)制形式,你還得讓 ChatGPT 把它變回二進(jìn)制,也就是下面這樣:

0011111100111000111101001111110001011111101100000000110000101010011011010000011001001000101100010110111001001101011001111100001000000110110100000101010101010010010000010110001110111101101011011111010010111011110100101000100010010011000110101110010100011101

第三步,出鍋。

我們把這個(gè)老么長(zhǎng)的哈希數(shù)列的前八位挑出來(lái),也就是 00111111。

把它補(bǔ)到之前隨機(jī)數(shù)的最后面,得到一個(gè) 264 位的完全體數(shù)列:

010000111111010111011001001000001010011010001000010001110001011011001001101111101000001111001000001101111100100001010100000101110110011000011011100001001101101111001110010101111001101000001001110000010000100100000111001110011110101110001100111010110111000100111111

OK,你的私鑰?已經(jīng)可以出鍋啦!

需要強(qiáng)調(diào)的是,雖然這個(gè)數(shù)字有 264 位,但對(duì)你來(lái)說(shuō),它和之前的 256 位的數(shù)字“信息熵”是一樣大的。

因?yàn)橐坏┻x定了前面的 256 個(gè)數(shù),后面的 8 個(gè)數(shù)字就是確定的嘛,沒(méi)有信息增量。

但如果你不小心把前面的數(shù)字抄錯(cuò)了,校驗(yàn)和就會(huì)變化,比特幣錢(qián)包就可以提醒你輸錯(cuò)了——“校驗(yàn)”的意義就在于此。

看到這兒,最難的部分其實(shí)已經(jīng)過(guò)去了。

接下來(lái)就是驗(yàn)證我們是不是押中了中本聰錢(qián)包的“開(kāi)獎(jiǎng)時(shí)刻”!

遺忘狂魔的福音:助記詞

剛才我讓你每排放 11 個(gè)數(shù)字。

因?yàn)槊?11 個(gè)數(shù)字,其實(shí)對(duì)應(yīng)了一個(gè)單詞。

話(huà)說(shuō),在中本聰神隱之后,仍然有一些技術(shù)大牛自發(fā)維護(hù)著比特幣系統(tǒng),他們不斷提出“改進(jìn)提案”,為比特幣系統(tǒng)添磚加瓦。

其中最牛X的提案配享太廟——可以獲得 BIP 編號(hào) 。

我們接下來(lái)要說(shuō)的 BIP-39,就是比特幣歷史上的第 39 個(gè)重要提案,它的內(nèi)容是:

大家記這么多 0 和 1 太辛苦,還容易抄錯(cuò)。不如把每 11 個(gè)二進(jìn)制數(shù)字作為一組,映射成一個(gè)單詞。

11 個(gè)二進(jìn)制數(shù)字,總共有 2048 種排列可能,這意味著只要選出 2048 個(gè)單詞,就能等效標(biāo)記出所有情況了!

去查 BIP-39 的提案原文,你很容易看到這個(gè)列表,鏈接我放最后了。這里我也直接完整截一張圖給你看看,點(diǎn)雞可以放大:

接下來(lái),你需要查這個(gè)表格,把每一行數(shù)字對(duì)應(yīng)的英文單詞給找到,然后寫(xiě)下來(lái),總共 24 個(gè)單詞。

具體來(lái)說(shuō),剛才那串?dāng)?shù)字等于這些單詞:

dumb put else escape love merge cheap spare sight salad bench conduct giant second hundred slab old evoke drastic attack pact shoe punch child

這就是你的“助記詞”。

注意,這個(gè)助記詞的“信息熵”和你最開(kāi)始擲骰子選出的 256 個(gè)字還是一樣的,也是可以相互轉(zhuǎn)化的。

雖然這些單詞拼成的句子沒(méi)有實(shí)際意義,但是不是好記多了?

而且比特幣核心團(tuán)隊(duì)對(duì)中國(guó)非常友善,還在 BIP-39 里貼心地給出了簡(jiǎn)體、繁體兩種中文助記詞方案,各自也都是 2048 個(gè)字,給你截圖看一下:

本質(zhì)上來(lái)說(shuō),用什么語(yǔ)言都一樣,只要編號(hào)相同,中文字和英文詞的作用就是相同的。

只不過(guò)在現(xiàn)實(shí)中,大家還是習(xí)慣用英文的,咱們就入鄉(xiāng)隨俗。

接下來(lái),咱們?nèi)ハ螺d一個(gè)支持比特幣的數(shù)字錢(qián)包,把這 24 個(gè)助記詞輸入進(jìn)去。

開(kāi)獎(jiǎng)時(shí)刻來(lái)了。

當(dāng)當(dāng)!這個(gè)星球上比特幣的余額是——0。

別傷心,如果你看懂了之前的概率,就知道這個(gè)結(jié)果并不意外。

比特幣宇宙的絕絕絕大多數(shù)星球都是這樣荒涼的——洶涌的宇宙之風(fēng)中,有人能來(lái)駐足幾秒,已經(jīng)是非常浪漫的相遇了。

如果你珍惜這段緣,不想告別這個(gè)星球,你可以常回來(lái)看看。

當(dāng)然,如果你想讓這個(gè)緣分再發(fā)展一點(diǎn)兒,你可以。。。搞點(diǎn)比特幣放在這個(gè)星球上。。。

之前我把整個(gè)方法形容為“賭狗”,是因?yàn)樵蹅円盟鼇?lái)“邂逅”中本聰?shù)男乔?。但這個(gè)方法的實(shí)際作用,本來(lái)就是讓你邂逅自己的星球。

你找不到中本聰?shù)乃借€,別人當(dāng)然也找不到你的私鑰,這顆“星球”不就是你專(zhuān)屬的么?

就像小王子那樣,他生活在一個(gè)叫做 B-612 的小行星。

星星上有兩座活火山,一座死火山,有一些毛蟲(chóng)、有風(fēng),有一些雜草??傊?,這是一個(gè)普通到極點(diǎn)的星星。

但是小王子的家在那里,因?yàn)樵谶@個(gè)小小星球上,有一支玫瑰。

有了這個(gè)玫瑰,B-612 對(duì)于小王子來(lái)說(shuō),就瞬間不同于其他所有的星星。

這便是“意義”浮現(xiàn)的過(guò)程。

當(dāng)然,如果比特幣只有這個(gè)層面的意義,那么它也只是和《小王子》一樣的寓言。

之所以比特幣被這么多人認(rèn)識(shí)、使用和討論,在于它可以“從一個(gè)星球挪到另一個(gè)星球”。

也就是轉(zhuǎn)賬的能力。

實(shí)際上,為了實(shí)現(xiàn)轉(zhuǎn)賬能力,它必須附加一整套精巧的模塊,而真正所謂的“加密”,也是從這一步開(kāi)始的。

假如你成功登陸了中本聰?shù)男乔?,接下?lái),怎么把他的幣轉(zhuǎn)到自己的星球上嘞?

從門(mén)到窗:卡宇宙的 Bug

只要叫“轉(zhuǎn)賬”,就得有個(gè)基本特點(diǎn):我可以主動(dòng)轉(zhuǎn)給你,但不能強(qiáng)迫你轉(zhuǎn)給我。

它是一種不可逆的單向能力。

單向的能力,一般要基于“單向的結(jié)構(gòu)”。

我們不妨來(lái)一步步設(shè)計(jì)這個(gè)結(jié)構(gòu):

如果我想把 1 顆比特幣放到小王子的星球上,我肯定不能讓他告訴我他怎么選的這 256 扇門(mén),也就是“私鑰”。

因?yàn)槲乙坏┲浪乃借€,不僅可以把幣轉(zhuǎn)給他,還可以把他的幣轉(zhuǎn)給我。

這是可逆的,不符合要求。

有沒(méi)有一種方法,既能定位出小王子的星球,還不會(huì)泄露他的私鑰呢?

中本聰使用的辦法很巧妙——小王子不用給我看他的“門(mén)”,只給我看他的“窗”。

這里使用了“橢圓曲線算法”。

你想象眼前有一個(gè)曲線,這個(gè)圖形對(duì)應(yīng)了一個(gè)方程。方程大概長(zhǎng)這樣:

y2≡x3+ax+b

這里的 p 是一個(gè)超大素?cái)?shù)。

公式不重要。你只需要理解這里的關(guān)鍵,一個(gè)包含了素?cái)?shù)特性的橢圓曲線中,有一種特別的“個(gè)性”:

A 點(diǎn)坐標(biāo)經(jīng)過(guò) x 次的變換可以輕松推出 B 點(diǎn)坐標(biāo),

但是用 B 點(diǎn)和 A 點(diǎn)這兩個(gè)坐標(biāo)卻不能推倒出 x 這個(gè)數(shù)是多少。

這張圖上是一個(gè)橢圓曲線,圖中的 P 是 A 點(diǎn)坐標(biāo)。你可以把 P 和 Q 兩點(diǎn)連線,得到 R,然后你再把 R 點(diǎn)作為新的 Q 點(diǎn),與 P 連線,不斷重復(fù) x 次,最終得到 B 點(diǎn)坐標(biāo)。

畢竟是密碼學(xué)皇冠上的明珠,橢圓曲線理解起來(lái)有點(diǎn)兒門(mén)檻,我找到一個(gè)不錯(cuò)的參考資料,附在最后。

這里你只要知道:這個(gè)性質(zhì),正好用符合“不可逆”的要求。

現(xiàn)在我們就規(guī)定一個(gè)固定點(diǎn)作為 A 點(diǎn),然后拿手里的私鑰作為 x,這不就能推出 B 點(diǎn)坐標(biāo)了嗎?

我就把 B 點(diǎn)坐標(biāo)作為我的星球的標(biāo)識(shí),不就行了嗎?

誒,這個(gè) B 點(diǎn)坐標(biāo),也被稱(chēng)為我們私鑰對(duì)應(yīng)的公鑰。

私鑰變成公鑰,就像面包做成熱狗。

雖然“私鑰”“公鑰”“橢圓曲線”之類(lèi)的名字高大上,但本質(zhì)上,這就是數(shù)學(xué)家們先發(fā)現(xiàn)了宇宙的一個(gè) Bug,中本聰又發(fā)明了一個(gè)系統(tǒng),瘋狂卡這個(gè) Bug。

熱狗想要變回面包,已經(jīng)不可能了。

那我要給小王子轉(zhuǎn)幣,他告訴我他的公鑰就可以了嗎?萬(wàn)萬(wàn)不可!??!

當(dāng)時(shí)中本聰設(shè)計(jì)比特幣的時(shí)候,留了個(gè)心眼兒:

橢圓曲線算法現(xiàn)在看起來(lái)是個(gè)宇宙級(jí) Bug, 將來(lái)哪一天,萬(wàn)一 Bug 修復(fù)了呢?萬(wàn)一有個(gè)數(shù)學(xué)家研究出來(lái)可逆的方法,那不就完蛋了嗎?

所以他最終決定,在公鑰的基礎(chǔ)上,再疊加兩層不可逆的哈希運(yùn)算,最后把格式統(tǒng)一,算出來(lái)一串親媽都不認(rèn)識(shí)的數(shù)字。

黑客要想破解比特幣系統(tǒng),就要同時(shí)破解橢圓曲線和 SHA-256 這兩個(gè)宇宙級(jí) Bug,可謂難上加難。

公鑰轉(zhuǎn)化成地址,就像熱狗變成了套餐。

這個(gè)親媽都不認(rèn)識(shí)的數(shù)字,就稱(chēng)為你的“錢(qián)包地址”。

我們總結(jié)一下:

1、每個(gè)錢(qián)包地址都對(duì)應(yīng)著一個(gè)公鑰,而每個(gè)公鑰又對(duì)應(yīng)著一個(gè)私鑰。換句話(huà)說(shuō),你選定了一個(gè)私鑰時(shí),冥冥之中你的公鑰和地址都已經(jīng)確定了。

2、只不過(guò),別人拿到你的地址也反推不出你的公鑰,拿到你的公鑰也反推不出你的私鑰。你的幣永遠(yuǎn)只能由掌握私鑰的人來(lái)支配。

如果回到我們《小王子》的比喻,就是:

1、每個(gè)星球不僅有一扇門(mén),還有一扇窗。但是從門(mén)到窗需要跳轉(zhuǎn)幾個(gè)數(shù)學(xué)謎題組成的單向蟲(chóng)洞,從門(mén)能走到窗,從窗卻走不到門(mén)。

2、幣離開(kāi)這個(gè)星球必須通過(guò)門(mén),但是幣進(jìn)入這個(gè)星球通過(guò)窗就行。

3、由于所有的窗戶(hù)都是公開(kāi)的,人人都可以通過(guò)這個(gè)窗戶(hù)往里面“投幣”,當(dāng)然只能投幣不能拿幣,就跟功德箱似的。

4、而且窗戶(hù)是透明的,人人都可以看到里面。也就是說(shuō),你只要知道一個(gè)地址,你就能看到里面有多少幣,不僅如此,歷史上每一次有幣進(jìn)出,數(shù)量、時(shí)間也全都記錄在案。

怎么樣,這個(gè)設(shè)計(jì)是不是巧奪天工?

但你有沒(méi)有感到,這里隱約有個(gè)新問(wèn)題。

我把它稱(chēng)為“視奸問(wèn)題”。

雖然你自己的星球上的幣沒(méi)人能動(dòng),但卻是所有人能看??!

就像你在自己家睡覺(jué),雖然沒(méi)有壞人進(jìn)來(lái)干擾你,但是墻壁都是玻璃的,所有人都參觀你睡覺(jué)也受不了啊。。。

而且細(xì)思極恐,這些動(dòng)賬信息保不齊也會(huì)透露一些星球主人的身份或時(shí)區(qū)。

想象一下:

你好不容易撞了宇宙級(jí)狗屎運(yùn),找到中本聰?shù)腻X(qián)包,把幣轉(zhuǎn)給了自己,成了比特幣大亨。

但有壞人通過(guò)這些動(dòng)賬信息定位到了現(xiàn)實(shí)生活中的你,用最高效的破解方法——槍——逼著你把私鑰交出來(lái)。

那數(shù)學(xué)世界里“門(mén)&窗”的設(shè)計(jì)再精巧,有卵用否?

中本聰早就想到了這個(gè)問(wèn)題,他的解決方案是“一次性星球”。

這是個(gè)天才的構(gòu)想,只不過(guò)在具體的實(shí)現(xiàn)方案上,稍微有點(diǎn)兒“失水準(zhǔn)”。

我們一起來(lái)看看。

“次拋星球”和“隱秘的絲線”

假設(shè):我在“A 星球”上有 2 個(gè)幣,現(xiàn)在我想給小王子的星球轉(zhuǎn) 1 個(gè)幣。

這時(shí),我必須得先找好另一個(gè)星球,就簡(jiǎn)稱(chēng)“B 星球”吧。

小王子會(huì)告訴我他的“星球地址”。然后我發(fā)起轉(zhuǎn)賬。

注意!此時(shí)這 2 個(gè)幣都會(huì)從我的 A 星球的門(mén)出去,其中一個(gè)幣通過(guò)窗戶(hù)落進(jìn)小王子的星球,另一個(gè)幣會(huì)通過(guò)窗戶(hù)落入“B 星球”。

幣都從 A 星球跑了,看上去非常不對(duì)勁!但你仔細(xì)想,你剩下的幣是一分錢(qián)都沒(méi)少的,只不過(guò)落到了 B 星球。

而且你也知道怎么去 B 星球,畢竟 B 星球和 A 星球一樣,都是你親手選的嘛!

這個(gè)“一次性星球”的設(shè)計(jì),就叫 UTXO,中文是“未花費(fèi)交易輸出”,也就是沒(méi)花的錢(qián)也要輸出。

這樣一來(lái),所有的錢(qián)都是“看上去沒(méi)被花過(guò)的錢(qián)”。

它的好處很明顯:如果有壞人想要追蹤某個(gè)地址的資金流,他就很難判斷到底哪個(gè)是收款星球,哪個(gè)是找零星球。

當(dāng)然人的行為還是有深層規(guī)律的。如果使用大數(shù)據(jù),有可能發(fā)現(xiàn)蛛絲馬跡,我們?cè)凇侗忍貛抛穬础泛汀栋稻W(wǎng)生死疲勞》里,都講過(guò)這個(gè)技術(shù)劈開(kāi)黑暗拯救世界的故事。

但畢竟,追蹤的難度大多了,你要不是什么十惡不赦的大壞蛋,不會(huì)有人花這么大的代價(jià)分析你的比特幣資金流。

UTXO 是一個(gè)天才的設(shè)計(jì),但這里有個(gè)非常不優(yōu)雅的特性,那就是你每次轉(zhuǎn)賬,都得換一個(gè)星球,都得重新記錄一次私鑰,萬(wàn)一搞丟了最后那個(gè)私鑰,你的幣就永遠(yuǎn)留在那個(gè)星球上了。。。這太瘆人了呀??!

中本聰?shù)囊馑际?,想要安全,就得這么搞,別 BB 了。

他設(shè)計(jì)的比特幣錢(qián)包軟件里,預(yù)留了 100 個(gè)星球的位置,也就是可以放 100 個(gè)私鑰,一次轉(zhuǎn)賬就廢掉一個(gè)。100 個(gè)用完,你還得重新放進(jìn)去 100 個(gè)。

復(fù)雜吧?

幸虧,真正的好東西終會(huì)進(jìn)化!

中本聰神隱之后,比特幣的后繼開(kāi)發(fā)者們找到了一個(gè)特別優(yōu)雅的方法,讓你只需要記住 A 星球,就能按照一種算法,計(jì)算出 BCDEFG.... 星球的位置。

這就是大名鼎鼎的 BIP-44 提案。

提案里的方法其實(shí)很容易理解:

首先,你有一個(gè)256 位的隨機(jī)數(shù),這是你進(jìn)入 A 星球的私鑰,沒(méi)錯(cuò)吧?

然后,你還得選出另一個(gè) 256 位的隨機(jī)數(shù),這個(gè)數(shù)字叫 A 星球的“鏈碼”。

最后,你需要把比特幣核心團(tuán)隊(duì)研究的“秘鑰派生算法”拿來(lái)。這個(gè)算法工作時(shí)需要三樣?xùn)|西:私鑰、鏈碼、序號(hào)。

前兩樣你已經(jīng)有了,序號(hào)是啥?你可以簡(jiǎn)單理解為就是:1、2、3 這樣的順序。

這三樣輸入派生算法,你會(huì)得到一個(gè)“B 星球”的私鑰,同時(shí)也會(huì)得到“B 星球”的鏈碼。

對(duì)于一個(gè)固定的星球來(lái)說(shuō),私鑰和鏈碼都是永遠(yuǎn)不變的。但序號(hào)你可以隨便改。

所以只要把序號(hào)定為 1、2、3、4、5,你就可以為 A 星球派生出 B、C、D、E、F 五個(gè)星球。它們是 A 星球的“子星球”。

如果你去 B 星球,用它的私鑰和鏈碼再派生出 G、H、I、J、K 五個(gè)星球,它們就是 B 星球的“子星球”,是 A 星球的“孫星球”。

如此類(lèi)推,你只靠 A 星球和它的鏈碼,就派生出無(wú)數(shù)個(gè)子子孫孫星球。

這招就叫“分層確定錢(qián)包”——HD Wallet。

你看,這樣的話(huà)你只需要記住兩串?dāng)?shù)字,比中本聰?shù)姆桨覆恢叩侥睦锶チ税桑?/p>

但是話(huà)說(shuō)回來(lái),你仍然需要記住兩串?dāng)?shù)字。。。

比特幣開(kāi)發(fā)者社區(qū)的老鐵們覺(jué)得還不夠,他們集思廣益,想到了一個(gè)更優(yōu)的辦法!

屬于你的億萬(wàn)顆“私人星球”

他們使用了一個(gè)“秘鑰衍生”算法:用 24 個(gè)助記詞來(lái)衍生出 A 星球的私鑰和鏈碼。

這樣的話(huà),效果炸裂:

1、你需要記住的,仍然只是 24 個(gè)單詞;

2、但你能控制的,卻是無(wú)數(shù)個(gè)星球的私鑰!

注意,在這種情況下,這 24 個(gè)助記詞就不等同于你的私鑰了——助記詞可以推導(dǎo)出私鑰和鏈碼,但私鑰和鏈碼反推不出助記詞。

想想看,這套系統(tǒng)具備一個(gè)神奇的特性:

在外人看來(lái),所有的星球都一樣,但是從你“月之暗面”的角度看,卻像蜘蛛俠一樣,用無(wú)數(shù)隱秘的絲線把這些星球串聯(lián)起來(lái)。

這種分層確定的模式,有很多非常實(shí)用的場(chǎng)景,我給你舉倆例子:

1、由于單向推倒的特性,父星球是純純的“渣男”。它能確定哪些是自己的子星球,但子星球并不知道誰(shuí)是自己的父星球。

也就是說(shuō),父星球可以隨時(shí)動(dòng)子星球上的幣,但是子星球無(wú)法動(dòng)父星球的幣。

這種情況下,你作為一個(gè)比特幣大亨,就可以雇傭一些小弟,每個(gè)人幫你管理一些資產(chǎn)。

你只需要給他們一個(gè)子星球的私鑰就行,為了管理方便,他們還可以用這個(gè)子星球派生出孫星球等等,但是哪天你對(duì)他們的工作不滿(mǎn)意,就可以直接收回他們手中的幣。

2、子星球之間,也并不知道彼此的存在。

由于計(jì)算子星球需要“父私鑰”、“父鏈碼”和“序號(hào)”,這三個(gè)要素子星球都不知道。從子星球的角度看,它就是這樣孤獨(dú)地存在著,跟誰(shuí)都沒(méi)有關(guān)系。

這樣設(shè)計(jì)的精巧之處在于“最小化關(guān)系鏈”:

1)壞人即便知道了你的某個(gè)星球的公鑰,也不能推算出它和哪些星球是兄弟關(guān)系;

2)壞人即便偷到了你的某個(gè)星球的私鑰,由于不知道鏈碼,它也只能動(dòng)這個(gè)星球上的幣,不能動(dòng)它的下級(jí)星球的幣;

3)就算某個(gè)星球的私鑰和鏈碼都泄露了,壞人也只能動(dòng)它的下級(jí)星球的幣,層級(jí)比它高的一律動(dòng)不了。

但是,這里有個(gè)小問(wèn)題,如果使用公鑰和鏈碼,是有可能推出所有子星球的公鑰的。雖然只有公鑰不能動(dòng)賬,但是卻可以了解所有子星球的譜系關(guān)系。

你還記得我們之前賣(mài)的關(guān)子嗎?

由于中本聰謹(jǐn)慎的設(shè)計(jì),他沒(méi)有把公鑰直接當(dāng)做地址,而是又做了兩層加密才生成地址。

這就在“公鑰”前面又加了一層黑洞,即便是公鑰也不可能從地址被推算出來(lái),這就讓黑客即便只是倒推“分層錢(qián)包之間的關(guān)系”,也是不可能的。

說(shuō)到這,我猜你也明白了,比特幣的機(jī)制之所以極其安全,是因?yàn)樽钜o的地方全都有“密碼超級(jí)英雄”在守護(hù),有的最關(guān)鍵的地方甚至不只有一個(gè)英雄,而是站了一整個(gè)“復(fù)聯(lián)”。

這套安全機(jī)制能保護(hù)你的幣,自然也能保護(hù)中本聰?shù)膸拧K?,即便所謂的“方法”就在這里,你破解中本聰錢(qián)包的概率也是“宇宙毀滅”級(jí)別的。

你肯定知道,中哥寫(xiě)這篇文章不是帶你破解中本聰錢(qián)包的,而是和你一起走一遍“破解失敗”的旅程,帶你體會(huì)比特幣宇宙中,那種飽滿(mǎn)的、震懾人心的數(shù)學(xué)之美。

價(jià)值來(lái)自于共識(shí),無(wú)論是黃金、法幣還是比特幣,皆是如此。

但在最后,我完全不想討論比特幣的價(jià)值。我想討論的是,用來(lái)儲(chǔ)存比特幣的,那些“星球”的價(jià)值。

也許你不一定和我有共鳴,但我非常想試試。

重要的東西,眼睛是看不見(jiàn)的

我們重新回到童話(huà)《小王子》。

小王子的故事里出現(xiàn)了 8 個(gè)星球,他自己居住的星球,他短暫拜訪的六個(gè)星球,他最終拜訪的地球。

這幾顆星球到底有什么特別呢?

在旁人看來(lái),它們沒(méi)有任何特別,甚至他們之間也沒(méi)有區(qū)別。但小王子不會(huì)同意。

他先后抵達(dá)了這些星球,并且在這些星球上遇到了不同的生靈,與他們進(jìn)行了互動(dòng)。這些記憶是個(gè)人化的,其中所背負(fù)的信息對(duì)小王子本人來(lái)說(shuō)是真實(shí)存在的。

像是有某個(gè)靈魂專(zhuān)屬的“鏈碼”,在冥冥中定義了他的生命軌跡。

正如小王子遇到的那只狐貍所說(shuō):

“對(duì)我來(lái)說(shuō),你無(wú)非是個(gè)孩子,和其他成千上萬(wàn)個(gè)孩子沒(méi)有什么區(qū)別。我不需要你。你也不需要我。對(duì)你來(lái)說(shuō),我無(wú)非是只狐貍,和其他成千上萬(wàn)只狐貍沒(méi)有什么不同。但如果你馴化了我,那我們就會(huì)彼此需要。你對(duì)我來(lái)說(shuō)是獨(dú)一無(wú)二的,我對(duì)你來(lái)說(shuō)也是獨(dú)一無(wú)二的……”

地球上有一座盛開(kāi)著 5000 朵玫瑰的花園,花朵嬌艷欲滴,卻與小王子的玫瑰不同。

如果向前追溯,一顆玫瑰的種子隨機(jī)飄到了小王子的 B-126 星上,那才是所有的開(kāi)端。

重要的是:你我這樣的普通人,也和小王子一樣。

我們平等而泯然,卻擁有各自的狐貍、各自的玫瑰。而這種特殊,可能只源自某個(gè)誰(shuí)也不能預(yù)先知道的種子,也許是——256 次擲骰子。

真正重要的東西,眼睛是看不見(jiàn)的。

作家陳春成寫(xiě)過(guò)一篇短小的故事,《竹峰寺》。

在特殊的歷史時(shí)期,竹峰寺住持為了防止鎮(zhèn)寺之寶“蛺蝶碑”被毀,趁著夜色把它藏起來(lái)。

從此,這塊石碑好似人間蒸發(fā)了,即便歷史已改換了旋律,它也繼續(xù)沉寂,再不露真容。

幾十年后,“我”來(lái)寺廟小住。因?yàn)槲业睦衔菀驯徊疬w,僅剩一把鑰匙,作為和孩提時(shí)空的玄妙連接。我私心想在寺廟附近找到一個(gè)絕對(duì)安全的地方把鑰匙藏起來(lái)。

“我”想把鑰匙藏在一個(gè)無(wú)人知道的,千秋萬(wàn)載不會(huì)動(dòng)搖的地方。只要不去取它,就能一直藏到世界末日。但又不能把鑰匙扔進(jìn)湖中或懸崖下,必須要“我”想取,就能夠取到的地方。

什么時(shí)候來(lái)取,不一定,但這種可能性必須保留。這一點(diǎn)可能性會(huì)將我和它永遠(yuǎn)地聯(lián)系在一起。

“我”苦心尋找藏鑰匙的地點(diǎn),卻意外參悟了老住持的心意,于是,兩個(gè)“藏東西的人”,跨越幾十年的時(shí)光走到了一處。

原來(lái),幾十年前的夜里,老師傅和信賴(lài)的徒弟一起到寺廟外的小溪上,把小石橋搬走扔進(jìn)山澗,用“蛺蝶碑”鋪在原處取而代之。

這些年,各色尋找蛺蝶碑的人都從上面匆匆行過(guò),無(wú)一人參透真相,而碑上的經(jīng)文卻默默馱負(fù),擺渡了無(wú)明眾生。

“我”摸黑走到了橋底,借手電微光飽覽了“蛺蝶碑”威嚴(yán)婉麗的文字,最后一次握緊連接著故鄉(xiāng)舊時(shí)光的鑰匙,把它塞進(jìn)了橋墩的縫隙。

“我”當(dāng)然沒(méi)有告訴任何人,兩個(gè)秘密就此同眠。

在這個(gè)世界上,知道中本聰私鑰的人只有中本聰嗎?

想到這個(gè)問(wèn)題,我腦海里劃過(guò)一道閃電。

中本聰?shù)?110 萬(wàn)個(gè)比特幣,如今已經(jīng)成了比特幣世界的“定海神針”,它們?nèi)绻肋h(yuǎn)沉睡,一切都會(huì)繼續(xù)。

一旦其中有一個(gè)幣被移動(dòng)分毫,都會(huì)讓所有人恐慌,因?yàn)檫@些“星球”的復(fù)活意味著中本聰不僅在世,而且可以甩賣(mài)掉所有的比特幣。不用真的賣(mài),這個(gè)“可能性”已足夠讓比特幣的價(jià)值共識(shí)崩塌。

事實(shí)是,這些年中本聰?shù)腻X(qián)包地址如死去的火山一樣沉寂。

那些星球的巖漿已經(jīng)凝結(jié),窗欞沉默黯然,只是時(shí)不時(shí)有些比特幣信徒向里面投一些幣,仿佛以此能貼近這位神秘的“造物主”,聊表敬意。

這個(gè)世界上正在活著的人,已經(jīng)死去的和尚未出生的人,他們?cè)?jīng)或?qū)?huì)發(fā)現(xiàn)中本聰?shù)倪z藏嗎?

假如真有絕頂聰明的人,破解了中本聰?shù)哪骋活w私鑰,面對(duì)放在星球上價(jià)值連城的比特幣,他最好的選擇是什么?

沒(méi)錯(cuò),當(dāng)然是在此駐足片刻,然后悄然離開(kāi),讓這個(gè)秘密在時(shí)間的浪涌中繼續(xù)長(zhǎng)眠。

我們的世界線不會(huì)因此產(chǎn)生任何波瀾。

唯有他知道,在那個(gè)瞬間,自己曾與一個(gè)驕傲的靈魂對(duì)視。

參考資料:

老哥手搓比特幣私鑰

橢圓曲線在密碼學(xué)中的原理

往期推薦:

?不腐的罪證:比特幣白夜追兇紀(jì)實(shí)

?暗網(wǎng)生死疲勞:梟首、重生與漫長(zhǎng)的自由之歌

一枝

心錨

用戶(hù)評(píng)論

表情0/300
喵,沒(méi)有找到相關(guān)結(jié)果~
暫時(shí)沒(méi)有評(píng)論,下載喜馬拉雅與主播互動(dòng)
猜你喜歡
囤比特幣

你若走進(jìn)我的世界,你將看到不一樣的世界

by:8分鐘每日幣聽(tīng)

話(huà)說(shuō)比特幣

比特大陸聯(lián)合創(chuàng)始人畢業(yè)于北京大學(xué),獲經(jīng)濟(jì)學(xué)和心理學(xué)雙學(xué)位。創(chuàng)業(yè)前,曾從事私募股權(quán)母基金投資分析師和投資經(jīng)理的工作。2011年,參與比特幣社區(qū),是中國(guó)比特幣社區(qū)重...

by:努力拼搏999

精通比特幣

郎咸平說(shuō)過(guò):比特幣白給我都不要巴菲特:比特幣是泡沫,不是一種能夠生產(chǎn)價(jià)值的資產(chǎn)紫色的股:為什么說(shuō)比特幣是典型的泡沫也有人說(shuō),區(qū)塊鏈?zhǔn)亲顐ゴ蟮陌l(fā)明,堪比互聯(lián)網(wǎng)。到...

by:區(qū)塊鏈先知集合

九神|囤比特幣

九神已于2020年遠(yuǎn)離我們,但他的作品放到今日看,依然并不過(guò)時(shí)。因?yàn)樗牡讓舆壿嫑](méi)有變化,比特幣最大的屬性就是價(jià)值存儲(chǔ),總數(shù)有限,安全,可分割。這些屬性不變,它...

by:PineH

比特幣每日分析

這是記錄自己比特幣和區(qū)塊鏈分析的的節(jié)目~大家好,我是凱歌,是一名金融市場(chǎng)交易員,在B圈也摸爬滾打了8年,也略有收獲。因此身邊朋友喜歡這塊與我交流,我也喜歡幫人解...

by:凱歌說(shuō)幣

劉教鏈比特幣原理

課程簡(jiǎn)介眾所周知,過(guò)去20年是信息互聯(lián)網(wǎng)的20年,未來(lái)20年將是價(jià)值互聯(lián)網(wǎng)的20年。站在時(shí)代轉(zhuǎn)折點(diǎn)上,如何掌握最正宗的中本聰思想體系和區(qū)塊鏈技術(shù)原理,抓住未來(lái)2...

by:劉教鏈

比特幣賽道的投資

一個(gè)大餅10年漲了1000倍?你見(jiàn)過(guò)比這更魔幻的嗎?一路走來(lái)超越了哪些資產(chǎn),還有哪些尚未超越?專(zhuān)注大餅賽道看多大餅持有大餅價(jià)值投資喜歡點(diǎn)個(gè)訂閱~

by:小優(yōu)說(shuō)幣

囤比特幣|九神語(yǔ)錄

ahr999指數(shù)作者,九神語(yǔ)錄。做標(biāo)準(zhǔn)囤幣黨,HODL

by:黃帝內(nèi)經(jīng)威