![]()
淺友們好~我是史中,我的日常生活是開撩五湖四海的科技大牛,我會嘗試用各種姿勢,把他們的無邊腦洞和溫情故事講給你聽。如果你想和我做朋友,不妨加微信(shizhongmax)。
比特幣的宇宙與星空
文 | 史中
創造比特幣的中本聰,大概擁有 110 萬枚比特幣。
如果按照最近比特幣 6 萬美元一枚的價格,中本聰有 660 億美元。這么算的話,目前的世界首富毫無疑問是——馬斯克。。。
對,馬斯克的身家大概是 2100 億美元。即便你有 110 萬枚比特幣,還是不及馬斯克三分之一。
但問題是,馬斯克的錢,人家一分也不給你啊。。。
你可能被整笑了:“中本聰的錢能給我是咋的?”
誒,他不給,你可以自己拿啊!
嚴格來說,你把馬斯克的錢拿走,肯定會犯法;但是你把中本聰的幣拿走,不會犯法。
最近有點兒時間,中哥就出一個教程,手把手教你把中本聰的幣拿走,讓我們開始吧!
![]()
(一)讓你安心睡大覺的“二百五十六扇門”
要想拿走,得先知道幣在哪。
比特幣是“加密數字貨幣”,我知道很多人一聽到“加密”就有點兒蒙圈,覺得只有學霸才能懂。
應該這么說,如果你的目標只是“拿走中本聰的比特幣”,而不是像中本聰一樣創世出一套完整的比特幣系統,那么中哥可以負責任地告訴你:你完全不用任何加密知識。
因為在比特幣的世界里,所有的錢就這么大搖大擺地擺在那里,只要你*去拿*,它就是你的。
是不是有點兒蒙圈?這他喵的是在說比特幣么?怎么跟別人說的不一樣?其實是一樣的,只是很多人都沒有*從頭*給你講比特幣的原理。
大家都喜歡天上掉餡餅,咱就從一個爽文場景開始:
你結束了牛馬的一天,下班路上撿了個飯盒,打開一看,里面都?是金幣。
![]()
你會腫么辦?
我猜很多人的選擇都是一樣的:不聲張,找個地方把金幣藏起來。
接下來才是真正的難題:藏哪?
床底下?大衣柜?保險箱?微波爐?糕點盒?去院子里挖個坑埋了?上面再放一只死狗,上面再種一株珍稀植物?
這些地方當然都可以,但都有一定概率被其他人發現,只是概率有大有小。放在這些地方,你都不能百分百放心,肯定晚上睡不好覺。
其實,中本聰在構想比特幣大廈時,首先就是要解決這個“基石”問題:
能不能設計一個空間,讓你、我、他可以在里面放心地藏金幣嘞?
如果用沉重的鋼筋混凝土造一個這樣的世界,那成本肯定海了去了。于是,中本聰選了一種完全沒有重量的東西——數字。
這個數字世界是什么樣的呢?
咱們繼續來想象:
你手里捧著小飯盒,面前有兩扇門,左邊寫著 0,右邊寫著 1。
![]()
你得選擇其中一扇門穿過去。不用有壓力,沒有獎勵也沒有懲罰,真就隨便選。假設你選了 1 吧。
![]()
穿過 1 這扇門,你又看到兩扇門,還是左邊寫著 0,右邊寫著 1。你還得繼續選擇一扇門通過。
穿過這扇門,又有兩扇門。
以此類推。
![]()
當你穿過第 256 道門之后,面前出現了一個星球。
星球不大,就像《小王子》里說的那么大,坐在上面,一天能看 44 次日落那種。
![]()
你可以把一飯盒金幣藏在這顆星球上。
其實不是藏,大喇喇放地上就行。
![]()
然后你轉身回到我們的世界,指著老板鼻子罵一頓,最后寫一個“世界這么大,老子去看看”的辭職告知書甩他臉上。
當你想用這些金幣享受人生的時候,只需要再推開那些門,去你的星球上拿一顆半顆金幣回來一賣,就妥了。
有了這“二百五十六扇門”,您就實現了睡眠自由,想啥時候睡啥時候睡,睡死過去都行。
只要別人不撬開你的腦袋,就不知道你有金幣,更不會知道你的金幣在哪。
當然,這里有個關鍵問題:你得他喵的記住自己推開二百五十六扇門的順序!
如果你忘了,中間推錯了哪怕一扇門,你最后抵達的都不是之前那顆星球,而是看上去類似的另一顆,上面沒有你的飯盒。。。
如果你永遠想不起來,你的金幣就永遠留在之前那顆星星上了。雖說別人拿不到,可你也拿不到。
所以要是穩妥起見。。。最好還是把“門的順序”寫紙上。
你寫在紙上的東西,大概就是一串數字:001101011101100101....(總共 256 位)
![]()
現在問題變成了:你的紙條不能被別人偷看了去。否則別人也可以拿走你的金幣了。
本質上你的門沒有“上鎖”,也不用鑰匙。
非要說的話,這個開門的順序就是你的鑰匙。
![]()
以上,其實就是比特幣存儲的基礎原理——它沒有用到密碼,只是使用了簡單的數學假想出這樣的“二百五十六道門”和“多如恒河之沙的星球”。
你是不是意識到了什么?
中本聰老哥的比特幣,不也這么直接放在某個星球上嗎?
也就是說:你只要胡亂開門,多多嘗試不一樣的順序,有可能恰好碰上跟中本聰開門的順序完全一樣!此時你就能登上他的星星,把比特幣拿走。
只要 256 次全對哦~~
怎么樣,雖然有點難,但好像還有點兒希望吧?
而且根據研究,中本聰的比特幣不止放在一顆星球上, 而是散落在幾百甚至上千個星球上。你只要碰對任何一個星球,都可以有所斬獲!是不是成功率又大大增加了呢?
成功率到底是多少嘞?
既然一切都構建在數學之上,那么概率是能計算出來的,我們不妨算算。
![]()
(二)做一次比特幣宇宙里的“賭狗”?
每次你有 2 個選項,要連選 256 次,所以可能的情況總共有 22?? 個。
算一下,這個數是:
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
這個數有多大呢?約等于 1 后面跟 77 個零。
這基本趕上了宇宙中的原子數量。
你不妨這樣理解:比特幣用數學做了個“魔法”,把宇宙中每一個原子都變成了一顆星球。
你隨便登錄一顆星球,它恰好是另一個人登陸過的,可能性微乎其微。
說白了,如果用世界上最快的計算機一個星球一個星球地遍歷嘗試,你要想確定性地登陸中本聰那顆星球,(運氣差的話)最多得耗費幾十億年。
這里介紹一個“信息熵”的概念。
所謂信息熵,可以理解為信息被“瞎蒙”出來的難易程度。越容易被蒙出來,信息熵越小。
而中本聰設計的這個“比特幣宇宙”,信息熵極大。
但即便如此,如果運氣夠好,你仍然可能在嘗試的第一次就碰巧登陸了中本聰星球!
就算天王老子來了,這種撞大運的概率也不!為!零!!
![]()
說到這,你有沒有沖動想碰碰運氣?
沒問題,咱們就來實操一把,體驗賭狗的刺激。
明確一下,現在我們的目標是:選 256 個數,然后輸入比特幣的錢包程序里查看,看看是不是恰巧有余額。
下面開始。
第一步:撒面。
其實你隨便寫 256 個“0、1”組成的數字就行。但這里為了專業一點,咱還是搞個儀式感。
你找個骰子扔一下,如果是 1、2、3 點,就寫個 0,如果是 4、5、6 點,就寫個 1。怎么樣,有點兒“奉天承運”的味兒了吧?
比如寫出來是這樣:
這串數字就像你隨便挖了一勺面粉,里面的面粉顆粒以各種姿勢隨機排列。
哦對,寫的時候要注意一下格式,每寫滿 11 個數字就換行。寫滿 256 個,意味著你會寫到 24 行第 3 個數。
![]()
誒,為啥要這么寫嘞?第 24 排咋還多出來 3 個數?這讓強迫癥怎么活?
其實不是多出來 3 個數,是少了 8 個數。
后面 8 個數,需要我們對前面 256 個數字進行計算才能得到——它的學名叫做 “校驗和” 。
第二步:揉面。
我們要對前面 256 個數字進行一種名叫 SHA-256 的運算。
你可以把 SHA-256 理解為一個方程,任何一個數輸入進去,它都能給出一個結果,而且這個結果還很規整,一定是長度為 256 位的二進制數。
這個方程非常復雜,充斥著各種雜糅和重復。
它有點兒像我們揉面,本來分離的面粉,經過反復揉搓最后就變成了一整個面團。
這個面團就叫“哈希值”(Hash)。
![]()
當然,我們真實生活中的揉面是很隨性的,同樣的面粉每次揉出來的面團都不一樣。
但數學公式是非常嚴謹的,只要初始值不變,用 SHA-256 算法“揉”出來的結果就永遠是一樣的。
多說一句,既然是方程,就可以用手算。
有一個頭鐵的老哥真的用手算了一次 SHA-256,我把鏈接貼在底部,對具體計算步驟感興趣的同學可以去看看老哥的自虐過程。
![]()
作為 21 世紀的人類,我真誠地建議你用電腦算。。。
如果你有 Mac 電腦,可以打開“終端”,然后把下面的指令復制進去,一回車就能得到結果。
echo 0100001111110101110110010010000010100110100010000100011100010110110010011011111010000011110010000011011111001000010101000001011101100110000110111000010011011011110011100101011110011010000010011100000100001001000001110011100111101011100011001110101101110001 | shasum -a 256 -0
如果你是 Windows 電腦,不太方便,你就直接讓 ChatGPT 幫忙算就好了。
![]()
如果你算對了,得到的哈希值一定是這個:
3F38F4FC5FB00C2A6D0648B16E4D67C206D055524163BDADF4BBD288931AE51D
這是十六進制形式,你還得讓 ChatGPT 把它變回二進制,也就是下面這樣:
第三步,出鍋。
我們把這個老么長的哈希數列的前八位挑出來,也就是 00111111。
把它補到之前隨機數的最后面,得到一個 264 位的完全體數列:
OK,你的私鑰已經可以出鍋啦!
![]()
需要強調的是,雖然這個數字有 264 位,但對你來說,它和之前的 256 位的數字“信息熵”是一樣大的。
因為一旦選定了前面的 256 個數,后面的 8 個數字就是確定的嘛,沒有信息增量。
但如果你不小心把前面的數字抄錯了,校驗和就會變化,比特幣錢包就可以提醒你輸錯了——“校驗”的意義就在于此。
看到這兒,最難的部分其實已經過去了。
接下來就是驗證我們是不是押中了中本聰錢包的“開獎時刻”!
![]()
(三)遺忘狂魔的福音:助記詞
剛才我讓你每排放 11 個數字。
因為每 11 個數字,其實對應了一個單詞。
話說,在中本聰神隱之后,仍然有一些技術大牛自發維護著比特幣系統,他們不斷提出“改進提案”,為比特幣系統添磚加瓦。
其中最牛X的提案配享太廟——可以獲得 BIP 編號(Bitcoin Improvement Proposals) 。
我們接下來要說的BIP-39,就是比特幣歷史上的第 39 個重要提案,它的內容是:
大家記這么多 0 和 1 太辛苦,還容易抄錯。不如把每 11 個二進制數字作為一組,映射成一個單詞。
11 個二進制數字,總共有 2048 種排列可能,這意味著只要選出 2048 個單詞,就能等效標記出所有情況了!
去查 BIP-39 的提案原文,你很容易看到這個列表,鏈接我放最后了。這里我也直接完整截一張圖給你看看,點雞可以放大:
![]()
接下來,你需要查這個表格,把每一行數字對應的英文單詞給找到,然后寫下來,總共 24 個單詞。
具體來說,剛才那串數字等于這些單詞:
dumb put else escape love merge cheap spare sight salad bench conduct giant second hundred slab old evoke drastic attack pact shoe punch child
這就是你的“助記詞”。
注意,這個助記詞的“信息熵”和你最開始擲骰子選出的 256 個字還是一樣的,也是可以相互轉化的。
![]()
雖然這些單詞拼成的句子沒有實際意義,但是不是好記多了?
而且比特幣核心團隊對中國非常友善,還在 BIP-39 里貼心地給出了簡體、繁體兩種中文助記詞方案,各自也都是 2048 個字,給你截圖看一下:
![]()
本質上來說,用什么語言都一樣,只要編號相同,中文字和英文詞的作用就是相同的。
只不過在現實中,大家還是習慣用英文的,咱們就入鄉隨俗。
接下來,咱們去下載一個支持比特幣的數字錢包,把這 24 個助記詞輸入進去。
開獎時刻來了。
當當!這個星球上比特幣的余額是—— 0。
![]()
別傷心,如果你看懂了之前的概率,就知道這個結果并不意外。
比特幣宇宙的絕絕絕大多數星球都是這樣荒涼的——洶涌的宇宙之風中,有人能來駐足幾秒,已經是非常浪漫的相遇了。
如果你珍惜這段緣,不想告別這個星球,你可以常回來看看。
當然,如果你想讓這個緣分再發展一點兒,你可以。。。搞點比特幣放在這個星球上。。。
之前我把整個方法形容為“賭狗”,是因為咱們要用它來“邂逅”中本聰的星球。但這個方法的實際作用,本來就是讓你邂逅自己的星球。
你找不到中本聰的私鑰,別人當然也找不到你的私鑰,這顆“星球”不就是你專屬的么?
![]()
就像小王子那樣,他生活在一個叫做 B-612 的小行星。
星星上有兩座活火山,一座死火山,有一些毛蟲、有風,有一些雜草。總之,這是一個普通到極點的星星。
但是小王子的家在那里,因為在這個小小星球上,有一支玫瑰。
有了這個玫瑰,B-612 對于小王子來說,就瞬間不同于其他所有的星星。
這便是“意義”浮現的過程。
![]()
當然,如果比特幣只有這個層面的意義,那么它也只是和《小王子》一樣的寓言。
之所以比特幣被這么多人認識、使用和討論,在于它可以“從一個星球挪到另一個星球”。
也就是轉賬的能力。
實際上,為了實現轉賬能力,它必須附加一整套精巧的模塊,而真正所謂的“加密”,也是從這一步開始的。
假如你成功登陸了中本聰的星球,接下來,怎么把他的幣轉到自己的星球上嘞?
![]()
(四)從門到窗:卡宇宙的 Bug
只要叫“轉賬”,就得有個基本特點:我可以主動轉給你,但不能強迫你轉給我。
它是一種不可逆的單向能力。
單向的能力,一般要基于“單向的結構”。
![]()
我們不妨來一步步設計這個結構:
如果我想把 1 顆比特幣放到小王子的星球上,我肯定不能讓他告訴我他怎么選的這 256 扇門,也就是“私鑰”。
因為我一旦知道他的私鑰,不僅可以把幣轉給他,還可以把他的幣轉給我。
這是可逆的,不符合要求。
有沒有一種方法,既能定位出小王子的星球,還不會泄露他的私鑰呢?
中本聰使用的辦法很巧妙——小王子不用給我看他的“門”,只給我看他的“窗”。
這里使用了“橢圓曲線算法”。(具體來說是橢圓曲線算法中的一種:secp256k1)
你想象眼前有一個曲線,這個圖形對應了一個方程。方程大概長這樣:
y2≡x3+ax+b(mod p)
這里的 p 是一個超大素數。
![]()
公式不重要。你只需要理解這里的關鍵,一個包含了素數特性的橢圓曲線中,有一種特別的“個性”:
A 點坐標經過 x 次的變換 可以輕松推出 B 點坐標, 但是用 B 點和 A 點這兩個坐標卻不能推倒出 x 這個數是多少。
![]()
這張圖上是一個橢圓曲線,圖中的 P 是 A 點坐標。你可以把 P 和 Q 兩點連線,得到 R,然后你再把 R 點作為新的 Q 點,與 P 連線,不斷重復 x 次,最終得到 B 點坐標。
畢竟是密碼學皇冠上的明珠,橢圓曲線理解起來有點兒門檻,我找到一個不錯的參考資料,附在最后。
這里你只要知道:這個性質,正好用符合“不可逆”的要求。
現在我們就規定一個固定點作為 A 點,然后拿手里的私鑰作為 x,這不就能推出 B 點坐標了嗎?
我就把 B 點坐標作為我的星球的標識,不就行了嗎?
誒,這個 B 點坐標,也被稱為我們私鑰對應的公鑰。
![]()
私鑰變成公鑰,就像面包做成熱狗。
雖然“私鑰”“公鑰”“橢圓曲線”之類的名字高大上,但本質上,這就是數學家們先發現了宇宙的一個 Bug,中本聰又發明了一個系統,瘋狂卡這個 Bug。
![]()
熱狗(公鑰)想要變回面包(私鑰),已經不可能了。
那我要給小王子轉幣,他告訴我他的公鑰就可以了嗎?萬萬不可!!!
當時中本聰設計比特幣的時候,留了個心眼兒:
橢圓曲線算法現在看起來是個宇宙級 Bug, 將來哪一天,萬一 Bug 修復了呢?萬一有個數學家研究出來可逆的方法,那不就完蛋了嗎?
所以他最終決定,在公鑰的基礎上,再疊加兩層不可逆的哈希運算(第一層是 SHA-256,第二層是 RIPEMD160),最后把格式統一(用 Base58check 編碼),算出來一串親媽都不認識的數字。
黑客要想破解比特幣系統,就要同時破解橢圓曲線和 SHA-256 這兩個宇宙級 Bug,可謂難上加難。
(事實證明,這個操作還為比特幣系統帶來了意想不到的好處,我們后面說。)
![]()
公鑰轉化成地址,就像熱狗變成了套餐。
這個親媽都不認識的數字,就稱為你的“錢包地址”。
我們總結一下:
1、每個錢包地址都對應著一個公鑰,而每個公鑰又對應著一個私鑰。換句話說,你選定了一個私鑰時,冥冥之中你的公鑰和地址都已經確定了。
2、只不過,別人拿到你的地址也反推不出你的公鑰,拿到你的公鑰也反推不出你的私鑰。你的幣永遠只能由掌握私鑰的人(你自己)來支配。
![]()
如果回到我們《小王子》的比喻,就是:
1、每個星球不僅有一扇門,還有一扇窗。但是從門到窗需要跳轉幾個數學謎題組成的單向蟲洞,從門能走到窗,從窗卻走不到門。
2、幣離開這個星球必須通過門,但是幣進入這個星球通過窗就行(通過門更行)。
![]()
3、由于所有的窗戶都是公開的,人人都可以通過這個窗戶往里面“投幣”,當然只能投幣不能拿幣,就跟功德箱似的。
4、而且窗戶是透明的,人人都可以看到里面。也就是說,你只要知道一個地址,你就能看到里面有多少幣,不僅如此,歷史上每一次有幣進出,數量、時間也全都記錄在案。
![]()
怎么樣,這個設計是不是巧奪天工?
但你有沒有感到,這里隱約有個新問題。
我把它稱為“視奸問題”。
雖然你自己的星球上的幣沒人能動,但卻是所有人能看啊!
就像你在自己家睡覺,雖然沒有壞人進來干(四聲)擾你,但是墻壁都是玻璃的,所有人都參觀你睡覺也受不了啊。。。
![]()
而且細思極恐,這些動賬信息(數額、時間)保不齊也會透露一些星球主人的身份或時區。
想象一下:
你好不容易撞了宇宙級狗屎運,找到中本聰的錢包,把幣轉給了自己,成了比特幣大亨。 但有壞人通過這些動賬信息定位到了現實生活中的你,用最高效的破解方法——槍——逼著你把私鑰交出來。 那數學世界里“門&窗”的設計再精巧,有卵用否?
中本聰早就想到了這個問題,他的解決方案是“一次性星球”。
這是個天才的構想,只不過在具體的實現方案上,稍微有點兒“失水準”。
我們一起來看看。
(五)“次拋星球”和“隱秘的絲線”
假設:我在“A 星球”上有 2 個幣,現在我想給小王子的星球轉 1 個幣。
這時,我必須得先找好另一個星球,就簡稱“B 星球”吧。
小王子會告訴我他的“星球地址”。然后我發起轉賬。
注意!此時這 2 個幣都會從我的 A 星球的門出去,其中一個幣通過窗戶落進小王子的星球,另一個幣會通過窗戶落入“B 星球”。
![]()
幣都從 A 星球跑了,看上去非常不對勁!但你仔細想,你剩下的幣是一分錢都沒少的,只不過落到了 B 星球。
而且你也知道怎么去 B 星球,畢竟 B 星球和 A 星球一樣,都是你親手選的嘛!
![]()
這個“一次性星球”的設計,就叫 UTXO(Unspent Transaction Output),中文是“未花費交易輸出”,也就是沒花的錢也要輸出。
這樣一來,所有的錢都是“看上去沒被花過的錢”。(有點繞,你品品)
它的好處很明顯:如果有壞人想要追蹤某個地址的資金流,他就很難判斷到底哪個是收款星球,哪個是找零星球。
當然人的行為還是有深層規律的。如果使用大數據,有可能發現蛛絲馬跡,我們在和里,都講過這個技術劈開黑暗拯救世界的故事。
但畢竟,追蹤的難度大多了,你要不是什么十惡不赦的大壞蛋,不會有人花這么大的代價分析你的比特幣資金流。
UTXO 是一個天才的設計,但這里有個非常不優雅的特性,那就是你每次轉賬,都得換一個星球(地址),都得重新記錄一次私鑰,萬一搞丟了最后那個私鑰,你的幣就永遠留在那個星球上了。。。這太瘆人了呀!!
中本聰的意思是,想要安全,就得這么搞,別 BB 了。
他設計的比特幣錢包軟件里,預留了 100 個星球的位置,也就是可以放 100 個私鑰,一次轉賬就廢掉一個。100 個用完,你還得重新放進去 100 個。
![]()
復雜吧?
幸虧,真正的好東西終會進化!
中本聰神隱之后,比特幣的后繼開發者們找到了一個特別優雅的方法,讓你只需要記住 A 星球,就能按照一種算法,計算出 BCDEFG.... 星球的位置。
這就是大名鼎鼎的BIP-44 提案。
提案里的方法其實很容易理解:
首先,你有一個256 位的隨機數,這是你進入 A 星球的私鑰,沒錯吧?
然后,你還得選出另一個 256 位的隨機數,這個數字叫 A 星球的“鏈碼”。
![]()
最后,你需要把比特幣核心團隊研究的“秘鑰派生算法”拿來。這個算法工作時需要三樣東西:私鑰、鏈碼、序號。
前兩樣你已經有了,序號是啥?你可以簡單理解為就是:1、2、3 這樣的順序。
這三樣輸入派生算法,你會得到一個“B 星球”的私鑰,同時也會得到“B 星球”的鏈碼。
![]()
對于一個固定的星球來說,私鑰和鏈碼都是永遠不變的。但序號你可以隨便改。
所以只要把序號定為 1、2、3、4、5,你就可以為 A 星球派生出 B、C、D、E、F 五個星球。它們是 A 星球的“子星球”。
![]()
如果你去 B 星球,用它的私鑰和鏈碼再派生出 G、H、I、J、K 五個星球,它們就是 B 星球的“子星球”,是 A 星球的“孫星球”。
![]()
如此類推,你只靠 A 星球和它的鏈碼,就派生出無數個子子孫孫星球。
這招就叫“分層確定錢包”——HD Wallet。
你看,這樣的話你只需要記住兩串數字(私鑰和鏈碼),比中本聰的方案不知高到哪里去了吧?
但是話說回來,你仍然需要記住兩串數字。。。
比特幣開發者社區的老鐵們覺得還不夠,他們集思廣益,想到了一個更優的辦法!
(六)屬于你的億萬顆“私人星球”
他們使用了一個“秘鑰衍生”算法:用 24 個助記詞來衍生出 A 星球的私鑰和鏈碼。
這樣的話,效果炸裂:
1、你需要記住的,仍然只是 24 個單詞;
2、但你能控制的,卻是無數個星球的私鑰!
注意,在這種情況下,這 24 個助記詞就不等同于你的私鑰了——助記詞可以推導出私鑰和鏈碼,但私鑰和鏈碼反推不出助記詞。
![]()
想想看,這套系統具備一個神奇的特性:
在外人看來,所有的星球都一樣,但是從你“月之暗面”的角度看,卻像蜘蛛俠一樣,用無數隱秘的絲線把這些星球串聯起來。
![]()
這種分層確定的模式,有很多非常實用的場景,我給你舉倆例子:
1、由于單向推倒的特性,父星球是純純的“渣男”。它能確定哪些是自己的子星球,但子星球并不知道誰是自己的父星球。
也就是說,父星球可以隨時動子星球上的幣,但是子星球無法動父星球的幣。
這種情況下,你作為一個比特幣大亨,就可以雇傭一些小弟,每個人幫你管理一些資產。
你只需要給他們 一個子星球的私鑰就行,為了管理方便,他們還可以用這個子星球派生出孫星球等等,但是哪天你對他們的工作不滿意,就可以直接收回他們手中的幣。(當然這種情況最好使用多簽錢包,相當于把私鑰分成幾份,篇幅有限就不多說了。)
![]()
2、子星球之間,也并不知道彼此的存在。
由于計算子星球需要“父私鑰”、“父鏈碼”和“序號”,這三個要素子星球都不知道。從子星球的角度看,它就是這樣孤獨地存在著,跟誰都沒有關系。
這樣設計的精巧之處在于“最小化關系鏈”:
1)壞人即便知道了你的某個星球的公鑰,也不能推算出它和哪些星球是兄弟關系; 2)壞人即便偷到了你的某個星球的私鑰,由于不知道鏈碼,它也只能動這個星球上的幣,不能動它的下級星球的幣; 3)就算某個星球的私鑰和鏈碼都泄露了,壞人也只能動它的下級星球的幣,層級比它高的一律動不了。
![]()
但是,這里有個小問題,如果使用公鑰和鏈碼,是有可能推出所有子星球的公鑰的。 雖然只有公鑰不能動賬,但是卻可以了解所有子星球的譜系關系。
你還記得我們之前賣的關子嗎?
由于中本聰謹慎的設計,他沒有把公鑰直接當做地址,而是又做了兩層加密才生成地址。
這就在“公鑰”前面又加了一層黑洞,即便是公鑰也不可能從地址被推算出來,這就讓黑客即便只是倒推“分層錢包之間的關系”,也是不可能的。
![]()
說到這,我猜你也明白了,比特幣的機制之所以極其安全,是因為最要緊的地方全都有“密碼超級英雄”在守護,有的最關鍵的地方甚至不只有一個英雄,而是站了一整個“復聯”。
這套安全機制能保護你的幣,自然也能保護中本聰的幣。所以,即便所謂的“方法”就在這里,你破解中本聰錢包的概率也是“宇宙毀滅”級別的。
你肯定知道,中哥寫這篇文章不是帶你破解中本聰錢包的,而是和你一起走一遍“破解失敗”的旅程,帶你體會比特幣宇宙中,那種飽滿的、震懾人心的數學之美。
價值來自于共識,無論是黃金、法幣還是比特幣,皆是如此。
但在最后,我完全不想討論比特幣的價值。我想討論的是,用來儲存比特幣的,那些“星球”的價值。
也許你不一定和我有共鳴,但我非常想試試。
(六)重要的東西,眼睛是看不見的
我們重新回到童話《小王子》。
小王子的故事里出現了 8 個星球,他自己居住的星球,他短暫拜訪的六個星球,他最終拜訪的地球。
這幾顆星球到底有什么特別呢?
在旁人看來,它們沒有任何特別,甚至他們之間也沒有區別。但小王子不會同意。
他先后抵達了這些星球,并且在這些星球上遇到了不同的生靈,與他們進行了互動。這些記憶是個人化的,其中所背負的信息對小王子本人來說是真實存在的。
像是有某個靈魂專屬的“鏈碼”,在冥冥中定義了他的生命軌跡。
正如小王子遇到的那只狐貍所說:
“對我來說,你無非是個孩子,和其他成千上萬個孩子沒有什么區別。我不需要你。你也不需要我。對你來說,我無非是只狐貍,和其他成千上萬只狐貍沒有什么不同。但如果你馴化了我,那我們就會彼此需要。你對我來說是獨一無二的,我對你來說也是獨一無二的……”
![]()
地球上有一座盛開著 5000 朵玫瑰的花園,花朵嬌艷欲滴,卻與小王子的玫瑰不同。
如果向前追溯,一顆玫瑰的種子隨機飄到了小王子的 B-126 星上,那才是所有的開端。
重要的是:你我這樣的普通人,也和小王子一樣。
我們平等而泯然,卻擁有各自的狐貍、各自的玫瑰。而這種特殊,可能只源自某個誰也不能預先知道的種子,也許是——256 次擲骰子。
真正重要的東西,眼睛是看不見的。
![]()
作家陳春成寫過一篇短小的故事,《竹峰寺》。
在特殊的歷史時期,竹峰寺住持為了防止鎮寺之寶“蛺蝶碑”被毀,趁著夜色把它藏起來。
從此,這塊石碑好似人間蒸發了,即便歷史已改換了旋律,它也繼續沉寂,再不露真容。
幾十年后,“我”來寺廟小住。因為我的老屋已被拆遷,僅剩一把鑰匙,作為和孩提時空的玄妙連接。我私心想在寺廟附近找到一個絕對安全的地方把鑰匙藏起來。
“我”想把鑰匙藏在一個無人知道的,千秋萬載不會動搖的地方。只要不去取它,就能一直藏到世界末日。但又不能把鑰匙扔進湖中或懸崖下,必須要“我”想取,就能夠取到的地方。
什么時候來取,不一定,但這種可能性必須保留。這一點可能性會將我和它永遠地聯系在一起。
“我”苦心尋找藏鑰匙的地點,卻意外參悟了老住持的心意,于是,兩個“藏東西的人”,跨越幾十年的時光走到了一處。
原來,幾十年前的夜里,老師傅和信賴的徒弟一起到寺廟外的小溪上,把小石橋搬走扔進山澗,用“蛺蝶碑”鋪在原處取而代之。
這些年,各色尋找蛺蝶碑的人都從上面匆匆行過,無一人參透真相,而碑上的經文卻默默馱負,擺渡了無明眾生。
“我”摸黑走到了橋底,借手電微光飽覽了“蛺蝶碑”威嚴婉麗的文字,最后一次握緊連接著故鄉舊時光的鑰匙,把它塞進了橋墩的縫隙。
“我”當然沒有告訴任何人,兩個秘密就此同眠。
在這個世界上,知道中本聰私鑰的人只有中本聰嗎?
想到這個問題,我腦海里劃過一道閃電。
中本聰的 110 萬個比特幣,如今已經成了比特幣世界的“定海神針”,它們如果永遠沉睡,一切都會繼續。
一旦其中有一個幣被移動分毫,都會讓所有人恐慌,因為這些“星球”的復活意味著中本聰不僅在世,而且可以甩賣掉所有的比特幣。不用真的賣,這個“可能性”已足夠讓比特幣的價值共識崩塌。
事實是,這些年中本聰的錢包地址如死去的火山一樣沉寂。
那些星球的巖漿已經凝結,窗欞沉默黯然,只是時不時有些比特幣信徒向里面投一些幣,仿佛以此能貼近這位神秘的“造物主”,聊表敬意。
這個世界上正在活著的人,已經死去的和尚未出生的人,他們曾經或將會發現中本聰的遺藏嗎?
假如真有絕頂聰明的人,破解了中本聰的某一顆私鑰,面對放在星球上價值連城的比特幣,他最好的選擇是什么?
沒錯,當然是在此駐足片刻,然后悄然離開,讓這個秘密在時間的浪涌中繼續長眠。
我們的世界線不會因此產生任何波瀾。
唯有他知道,在那個瞬間,自己曾與一個驕傲的靈魂對視。
![]()
參考資料:
老哥手搓比特幣私鑰
https://armantheparman.com/bitcoin-seed-with-dice/
橢圓曲線在密碼學中的原理
https://www.allaboutcircuits.com/technical-articles/elliptic-curve-cryptography-in-embedded-systems/
BIP-39(助記詞提案)
https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki
BIP-44(分層確定錢包提案)
https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki
![]()
一枝
心錨
再自我介紹一下吧。我叫史中,是一個傾心故事的科技記者。我的日常是和各路大神聊天。如果想和我做朋友,可以搜索微信:shizhongmax。
哦對了,如果喜歡文章,請別吝惜你的“在看”或“分享”。讓有趣的靈魂有機會相遇,會是一件很美好的事情。
Thx with in Beijing
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.