03.07 可不可能偽造比特幣?

01

區塊鏈的安全性

區塊鏈是什麼?前面我們做過科普,它是去中心化的分佈式數據庫

全球各地散落在不同角落的人,每次寫入符合規則的數據,就是創建一個區塊,也就是俗稱的挖礦。從而成為比特幣鏈條上的一員。

可不可能偽造比特幣?

每個區塊都連接著上一個區塊,所謂的區塊鏈強調的“鏈” chain,就指的是連續的區塊鏈條。

沒有人能夠操控這個鏈條的關鍵,是它的三重加密和聯動機制。

比特幣鏈條上每個區塊包含兩個部分,區塊頭和區塊體。

可不可能偽造比特幣?

第一重加密,首先是區塊體信息經過哈希算法加密,變成一個識別符。而這個識別符儲存在區塊頭上。

第二重加密,是上一個區塊整體經過哈希算法生成的識別符,也存儲在區塊頭上。

第三重加密,就是存儲兩個哈希算法識別符的區塊頭再經過哈希算法處理,視為本區塊整體的識別符

形象點說,如果你自己代表一個區塊的話,那就是你的身體經過一次加密,信息儲存在你的腦袋上。上一個在小隊伍裡的夥伴,身體+腦袋整體加密的信息,也儲存在你腦袋上。然後你現在存儲了兩個加密信息的腦袋,整體再加密一次,再傳遞給下一個小夥伴

可不可能偽造比特幣?

(原諒我用了這個不怎麼雅觀的配圖...)

我們知道,任何人都可以架設服務器,加入區塊鏈網絡,成為一個節點。區塊鏈的世界裡面,沒有中心節點,每個節點都是平等的,都保存著整個數據庫。你可以向任何一個節點,寫入/讀取數據,因為所有節點最後都會同步,保證區塊鏈一致

同步聯動機制的關鍵,就是區塊頭包含很多內容,其中有當前區塊體的哈希,還有上一個區塊的哈希。如果當前區塊體的內容變了,或者上一個區塊的哈希變了,一定會引起當前區塊的哈希改變

如果有人修改了一個區塊,該區塊的哈希就變了。為了讓後面的區塊還能連到它(因為下一個區塊包含上一個區塊的哈希),該人必須依次修改後面所有的區塊,否則被改掉的區塊就脫離區塊鏈了。而短時間內修改多個區塊幾乎不可能發生,除非有人掌握了全網51%以上的計算能力。

02

比特幣究竟有沒有可能攻破呢?

修改本區塊的哈希識別符,將不可避免導致,要同時修改後面所有的區塊內容。這顯然是一個笨方法。

但是破解本區塊的哈希識別符,還原所有被加密的內容,可不可能呢?

哈希算法具體這裡就不做過多解釋了。它其實就是一種數學函數,一個函數必然可逆,但是Hash算法的特點就是,正向計算很容易,而反向計算即使窮盡人類所有的計算資源都做不到。

簡單點說,它最大的特點就是加密信息幾乎不可還原。

而現實中的哈希函數不是完美的,當兩個不同的輸入值對應一個輸出值時,就會產生“碰撞”,即完全一樣的哈希識別符。

哈希算法分很多標準,比如SHA家族的五個算法,分別是SHA-1、SHA-224、SHA-256、SHA-384,和SHA-512,由美國國家安全局(NSA)所設計,並由美國國家標準與技術研究院(NIST)發佈,是美國的政府標準。後四者有時並稱為SHA-2,

比特幣使用的哈希加密算法是SHA-256,屬於SHA-2範疇

2017年年初,在 SHA-1 首次發佈的20年後,Google 宣佈了首次可操作的生成衝突的技術。這是 Google 與 CWI Institute 合作 2 年的研究成果。為了證明他們確實掌握了攻擊的方法,他們發佈了2個 PDF 文件,兩個文件的內容是不同的,但經過 SHA-1 算法哈希後卻能得到相同的信息摘要。

可不可能偽造比特幣?

SHA-1被攻破了,雖然至今尚未出現對SHA-2有效的攻擊,它的算法跟SHA-1基本上仍然相似。

這種情況真令人擔心,因為誰也保不準世界上某個角落有天才數學瘋狂科學家苦心孤詣,找到了破解方法卻不公佈。

美國前幾年的NSA洩密事件,斯諾登就透露過NSA不需要蘋果員工的幫助即可解鎖手機,還有像Intel處理器的硬件漏洞,在如今被外界知曉之前,我想,肯定有人早就發現了,這段時間裡他能幹多少壞事呢...

可不可能偽造比特幣?

而一旦有人能夠通過攻破SHA-256算法,就可以還原區塊儲存的信息,偽造完全一樣的比特幣,也就成為可能。

所以,一切還得看數學加密算法的發展了!

本文作者楊青山,同為“偽geek”作者,內容首發自微信公眾號第一硬聞(搜 n1news)


分享到:


相關文章: