比特幣曾差點胎死腹中?中本聰幸運躲過一場密碼學子彈!

買賣虛擬貨幣

上帝創造天地和萬物後,在第六日造人。

——《聖經:創世紀》

2008年5月,中本聰已經完成了比特幣白皮書的初步構思,開始著手設計比特幣加密系統框架。

在偌大的書房中,中本聰眉頭顰蹙,心情跌宕起伏。

他深知——接下來敲的每一行程式碼,都事關比特幣的生死,容不得半點差池。

畢竟,加密體系是整個比特幣最核心的部分。基於什麼樣的演算法框架去加密,在加密中如何融入個性化、隱蔽性的程式碼邏輯,既能保證比特幣能長期穩定執行,又能避免被駭客攻擊破壞,這都是一門艱深的學問。

退一步萬來說,比特幣唯一不允許有閃失的地方也就是這裡,因為“程式碼即法律”。

事實上,我們可以看到:比特幣執行至今,極客更多討論的話題是圍繞比特幣擴容上,而不是質疑加密問題本身。

從中可以看出,世人對中本聰9年前做出的決定,無疑是近乎完美的肯定。

DECISION

RAS還是ECC

在當時,擺在中本聰面前其實有很多條路,最靠譜的有兩條:RAS和ECC。

前者的原理來自對大數的把握:對天文數字進行因式分解。由於這個分解過程需要耗費電腦大量算力,基於此,成了眾多密碼學家加密取材的首選。

RSA是由Ron Rivest、Adi Shamir

和Leonard Adleman提出

後者的原理源自橢圓曲線演算法,其數學基礎是利用橢圓曲線上的有理點構成Abel加法群上橢圓離散對數的計算困難性。

對於RAS而言,背後的終極邏輯是數學史上一個史詩級難題。

美國數學家蒙哥馬利曾經表示,如果有魔鬼答應讓數學家們用自己的靈魂來換取一個數學命題的證明,絕大多數數學家會選擇它。

沒錯,這個問題就是“黎曼猜想”!

如果中本聰選擇用RAS演算法加密,那麼哪怕是在所有加密貨幣共識建立順利的情況下,它還要保證“黎曼猜想”永無進展,甚至是被後人證偽!

對於比特幣百年大計來說,這點的風險實在是太大了。

他非常清楚,人類文明馬上要步入科技大爆炸時代。在未來100年內,數學和物理將會形成大一統定理。

物理現象將透過數學工具進行總結推演,數學猜想將透過物理的現象得到啟迪,所有學術史上的超級未解之謎都將透過科學間的相互跨界找到答案。

中本聰若用“黎曼猜想”的原理核心去構建比特幣的加密體系,無疑是在為比特幣埋下崩盤的定時炸彈。

“如果這樣一頭猛獸因為這道數學題轟然倒下,那簡直是全人類的災難!”

ECC!中本聰敲定了最終加密演算法的方案。

實際上,ECC演算法加密,是目前全球公認的最高階,最成熟的加密方式。相對於RAS,ECC有三點優勢:

1.安全性更高。160位的橢圓金鑰與1024位的RSA金鑰安全性相同。

2.處理速度更快。在私鑰的加密解密速度上,ECC演算法比RSA、DSA速度更快。

3.儲存空間佔用小、頻寬要求低。

透過密碼學碳量排放評估,破解一個228位元組的RSA秘鑰需要的能量少於把一茶勺水煮沸的能量,但破解一個228位元組的橢圓曲線秘鑰需要把全世界的水煮沸的能量!

破解ECC密碼學已經難到令人髮指,對比RAS加密演算法已經高下立判。

PLOT

ECC背後的陰謀

敲定ECC就萬事大吉了嗎?不,完全不是的!

ECC大勢所趨的發展未來,早已經被一群試圖掌控人類命運的頭部玩家盯上了!

沒錯,它就是美國國安局:NSA。

在2005年2月16日,NSA宣佈決定採用橢圓曲線密碼的戰略作為美國政府標準的一部分。從此以後,ECC演算法已經逐步開始替代RSA 演算法。

實際上,NSA採用的這條ECC是偽隨機曲線,引數a和b是從某個“種子”透過一個特定的演算法來選擇。

 對於NSA事先標定的secp256r1來說,它的“種子”:


c49d360886e704936a6678e1139d26b7819f7e90

後來,美國中情局斯諾登曝光了NSA透過這種方式顛覆加密標準的真相:只要你透過secp256r1這種方式進行加密——那麼不好意思,NSA總有辦法破解你的秘鑰。

事實上,全球有很多頂級密碼學家因為採用了secp256r1紛紛中招,他們的加密邏輯在NSA眼裡就是一個玩具罷了,只是NSA是否願意去擺弄,什麼時候去擺弄而已。

作為曾效力美國情報局的一員,中本聰曾參與了幾次世界級絕密破解行動,對於這個伎倆實在熟悉不過。在這一關,他悄然繞道國際公認的偽隨機曲線,而是選擇了沒被動過手腳的Koblitz曲線。

高效密碼學組標準的現任主席Dan Brown驚聞此事表示:“我不知道比特幣正在使用secp256k1。但是,我對於有人會採用secp256k1而不是secp256r1感到驚訝。”

中本聰看到這番言論,或許只會笑而不語。

敲定完大方向的演算法和框架,接下來就是補充比特幣加密細節部分。

DESIGN

敲下最後程式碼


面對21世紀加密貨幣的巨集圖征程,傳統單一的對稱性密碼設計已經無法適應高節奏的時代發展。

正因如此,中本聰設計了一組密碼對,反映在比特幣就是公鑰和私鑰。

1.中本聰敲下了加密演算法的第一行程式碼,他設計了一個隨機發生器,透過這個發生器,系統可以自動生成一個私鑰。

2.緊接著,他將這個私鑰透過Koblitz曲線(secp256k1),生成一個公鑰;

就此,最重要的兩把秘鑰已經生成,接下來就是如何透過進一步加密來保障兩把秘鑰的安全。

那麼,中本聰是怎麼做的呢?

3.他先從這個公鑰下手,透過兩次雜湊運算(SHA256)和(RIPEMD160),生成一個公鑰雜湊值;

4.然後,他將一個位元組的地址版本號連線到這個公鑰雜湊頭部,然後再對其進行兩次SHA256運算,取前4位元組作為公鑰雜湊的校驗值,再排列到公鑰雜湊值的尾部。

為了防止遭遇量子計算機攻擊,第4部分中本聰特別進行了兩次一模一樣的雜湊運算,這也是比特幣問世之初爭議最大的程式碼部分,如今所有人都在崇拜中本聰的遠見,認為是天才之舉。

5.最後,他對4這個結果進行BASE58編碼,就形成了比特幣最終錢包地址。

編碼物件=比特幣版本號+公鑰雜湊值+校驗值

就此為止,公鑰和私鑰都已經順利生成,並且得到極強的保護。

縱觀全域性,你會發現除了4和5這個步驟是可逆的,其餘步驟無法倒推。

公鑰雜湊值——>公鑰(不可逆),是因為每次雜湊演算法都會丟掉一部分資訊,兩次雜湊演算法幾無可解;

公鑰——>私鑰(不可逆),是因為呼叫了secp256k1演算法加密,人類還沒有能力湊足煮沸全世界水的能量;

透過整個加密過程,作為第三方唯一能收穫的就是錢包地址,私密性由兩扇永不可逆的演算法大門牢牢把關。

所以,哪怕錢包地址是由公鑰生成而來,人類也沒有辦法尋找私鑰的蹤跡。

這股力量實在殘暴無情,強大到私鑰一旦丟失就會永久丟失比特幣——至今已經有400萬枚比特幣由此長眠於財富永寂之界!

後來的事實也證明,這種精心複雜的加密方式是如今眾多密碼學家無法企及的!

寫完最後一條註釋,中本聰長長地吁了一口氣。

“這是一次偉大的嘗試,即將接受全人類的檢閱。”

時值黎明破曉前,而屬於比特幣的9年坎坷征途才剛剛開始……

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;