搖錢樹63:比特幣安全性堅不可摧?
楊惟雯
從比特幣問世之初,其安全性固若金湯成為很多人的共識,但值得一提的是,最近兩家大型加密數字貨幣平臺遭駭客侵襲受到業內關注。開源帳戶管理工具Classic Ether Wallet和韓國比特幣交易平臺Bithumb均已確認,曾遭駭客侵入各自系統,竊取了使用者的數位貨幣資金和電郵位址、手機號碼等個人資訊。
其他數字貨幣業內人士也發出警告。據IT與企業安全領域媒體Threatpost報導,乙太幣區塊鏈網路Ethereum Classic的開發者警告使用者,數位貨幣資金可能被駭客轉移;網路安全公司Couldflare設置了針對Class Ether Wallet網站的攔截網頁,警告有釣魚式攻擊的危險。
過去八個月以來,一個由加密演算法愛好者構成的組織——Large Bitcoin Collider(LBC),正在進行一番唐吉訶德式的努力:暴力破解創建比特幣錢包位址的加密演算法。雖然,這個組織目前的想法也被視為不切實際,但是,一旦LBC獲得成功,那麼就會讓比特幣加密演算法中的一個關鍵部分立即失效。
一、一個比特幣運用的範例
首先,我們先看看一個比特幣運用的範例,說明如下:
假設 Satoshi 創造比特幣(BTC:Bitcoin)與比特幣帳本(BTC ledger)並且給自己 50btc,他想要用 20btc 向 Alice 買一本書,並且記錄在比特幣帳本內,如圖一所示,Alice 第一次聽過有這種東西,她好奇的問 Satoshi:這個叫什麼幣的聽起來好酷,但是我要怎麼用它來和別人買東西呢?
▲ 圖一:Satoshi 創造比特幣與比特幣帳本,並且向 Alice 買一本書。(Source:杜宏毅,《Block Chain 的前世今生與未來》,台灣網路認證公司。
Satoshi 告訴 Alice:這個很簡單,妳可以用同樣的方法,支付 Bob 金額 10btc 買一顆蘋果,並且也記錄在我的比特幣帳本內,如圖二所示。既然比特幣真的可以買到東西,因此 Alice 很開心的收下了這種第一次聽過的虛擬貨幣。
▲ 圖二:Alice 支付 Bob 金額 10btc 買一顆蘋果。(Source:杜宏毅,《Block Chain 的前世今生與未來》,台灣網路認證公司。
後來 Alice 與 Bob 想想,不對呀!我們彼此之間的交易帳本都儲存在 Satoshi 的電腦裡,都是他說了算,我們有什麼保障呢?聽到了這樣的質疑,Satoshi 說:沒關係,那我把比特幣帳本複製給你們,如圖三所示,讓你們手上也有一份,這樣就可以了吧!
▲ 圖三:Satoshi 把比特幣帳本複製給 Alice 和 Bob。(Source:杜宏毅,《Block Chain 的前世今生與未來》,台灣網路認證公司。
但是這樣真的就沒有問題了嗎?
1、將比特幣帳本複製給所有使用者,那電腦記憶體要多少才夠?
2、每一筆交易都要通知所有使用者,那網路的反應夠快嗎?
3、使用者未必熟悉電腦操作,如何使用電腦進行交易?
為了解決最後的幾個問題,Satoshi 用這樣的方式來解決,如圖四所示:
1、由 Satoshi 發起建位第一個節點(Node),節點指的是在伺服器(Server)內安裝「節點軟體」(Node software)與「比特幣帳本」(BTC ledger)。
2、號召網際網路上熟悉電腦操作的自願者在世界各地建立節點,同時在伺服器內安裝節點軟體與比特幣帳本。
3、節點與節點之間經由「點對點網路連線」(Peer to peer network connection)軟體進行資料交換。
4、使用者安裝手機應用程式(App)「比特幣電子錢包」(BTC wallet),並且以手機付款與收款,使用非常簡單。
5、手機應用程式將交易內容回傳至節點,節點再將交易內容「溢散傳遞」(Propagating)給所有的節點。
▲ 圖四:比特幣的運作方式。(Source:杜宏毅,《Block Chain 的前世今生與未來》,台灣網路認證公司。
因此,在比特幣的生態系裡,所有的節點是由網際網路上熟悉電腦操作的自願者在世界各地建立,節點指的是在伺服器內安裝「節點軟體」與「比特幣帳本」;使用者安裝手機應用程式「比特幣電子錢包」,並且以手機付款與收款,資料經由網路傳送給節點,再以溢散傳遞的方式傳遞給所有的節點,最後使全世界的節點內比特幣帳本是同步的。
二、比特幣與現有銀行體系的差異
如果我們將比特幣的生態系比喻為現在的銀行體系,那網際網路上的節點就好像各家銀行的分行一樣,唯一的不同是在目前的銀行體系裡,世界各國都有中央銀行來管理各家銀行,屬於「集中式拓樸」(Centralized topology),而比特幣的生態系沒有中央銀行這樣的角色,而是由分散在世界各地的節點互相溝通自主管理,屬於「分散式拓樸」(Distributed topology),也有人稱為「非集中式拓樸」(Decentralized topology)。
其實,我們靜下來想想,如果世界上真的有一個大帳本可以記錄每一個人所有的資產與每一筆交易,而且大家都信任這個帳本,我們平常使用的紙紗根本就是多餘的東西,其實現在我們常用的悠遊卡、Apple Pay 這種電子貨幣就可以取代紙紗,唯一的不同是目前我們所使用的電子貨幣仍然是在現有的銀行體系裡運作,中央銀行與各家銀行仍然是主角,屬於集中式拓樸,與比特幣的分散式拓樸不同,這是兩者之間最大的差異。
【參考資料】網路的拓樸是區塊鏈很重要的特色,有興趣的人可以參考《知識力專家社群:網路拓撲(Network topology)》。
三、比特幣的問題
前面的方法看起似乎可行,但是仍然隱藏了許多問題,例如:
1、Alice 支付 Bob 金額 10btc 購買一顆蘋果,我們如何確認這個購買的訊息真的是 Alice 發送出來的?另外,如果隔天 Alice 後悔了,否認她曾經做過這件事怎麼辦?最常發生這種事情的就是早期投資人經由電話向證券公司的營業員下單買股票,結果收盤股票跌了,這個時候投資人否認曾經打過這通電話,為了解決這個問題,證券公司只有用電話錄音,但是在虛疑的電子世界裡沒辦法錄音,那麼要用什麼方法讓「使用者不可否認」呢?
2、比特幣帳本是儲存在網路上熟悉電腦操作的自願者所架設的節點(伺服器)內,這是很重要的東西,就好像銀行裡的帳本一樣,這麼重要的東西,我們如何信任這些熟悉電腦操作的自願者不會去篡改呢?
3、比特幣的節點是散布在整個網路的世界裡,當使用者進行交易改變了某一個節點的比特幣帳本,必須把這個改變通知散布在世界各地的節點,要如何把這個改變通知散布在世界各地的節點呢?
四、比特幣的三大特性
上面提到的 3 個問題,也就是比特幣的三大特性,我們簡單說明如下:
1、交易識別確認:使用公開金鑰驗證機制,確認這筆交易的真實性,使用者不可否認,而且是屬於「可驗證的匿名制」,保留貨幣交易的特性。
2、資料無法篡改:使用「區塊」與「鏈結」確保交易資料無法篡改。其中「區塊」主要是利用計算「條件雜湊」(Conditional hash)很不容易來保護資料,而「鏈結」主要是區塊與區塊之間利用「前區塊雜湊」(Previousblockhash)鏈結起來,由於篡改區塊內的交易資料已經很困難,區塊與區塊之間又被鏈結起來,等於篡改一個區塊要把所有的區塊都一起篡改,因此在合理的時間內根本不可能。
3、節點資料同步:使用「工作量證明」(POW:Proof of Work)達成收斂同步,由於比特幣使用「分散式拓樸」,因此保留總困難指數高的分支,刪除困難指數低的分支最後達成節點資料同步。
五、LBC的暴力破解
(一)原理
比特幣錢包會隨機生成一個公共位址,以及相關聯的私人金鑰。隨機生成的公共位址必須足夠“隨機”,才能保證相關聯的私人金鑰不被猜到。
技術上說,一堆私人金鑰可以和任意一個公共位址匹配,但是如果要通過暴力破解獲得相互匹配的位址和金鑰,就需要巨大的電腦資源遍歷無數可能性。
對於任何一個單一團隊來說,這顯然是不可能實現的。因此LBC就希望通過其開發的一款軟體,集結所有使用者的電腦資源,來實現這個想法。
(二)法律問題
LBC這樣做實際上意味著,通過駭客手段從別人的比特幣錢包中拿走比特幣。化名Rico的該組織發起人向vice.com表示,如果使用者通過LBC的網路獲得比特幣,基本上是可以據為己有的。而至於這樣是否合法,LBC建議用戶以淡定的態度視之。
LBC在其網站上這樣表述:
要取決於你怎麼看,這可能會被視為盜竊,因此是違法的。
但是,也有很多其他的說辭,讓你能夠完全合法擁有你所發現的價值的5%-10%。因此,你應該這樣想:你是想擁有100%然後成為一名罪犯,還是僅要10%並繼續當一名守法公民。
LBC上線運作還不到一年,Rico表示,這一專案已經生成了3000萬億條金鑰,並將它們和現有的比特幣錢包位址進行進行了比對。目前總共篩選出了30個匹配的金鑰,不過其中一部分可能是專門針對破解者的“釣魚”金鑰,而真正包含比特幣的匹配金鑰已經有了三個。
(三)業內褒貶不一
從表面上看,試圖破解別人的比特幣錢包顯然是惡意行為。但是,LBC的工作同樣也具有研究價值。
比特幣安全研究人士Ryan Castellucci就曾通過破解比特幣錢包,來模擬攻擊者的行為,以便部署反制措施。對於LBC這個項目,他表示:
讓我感到失望的一點在於,他們僅僅比對擁有餘額的(比特幣錢包)位址,而不是所有使用過的位址。
從研究的角度來看,比對所有曾經使用過的位址更有意思,這是因為它將能夠展現過去生成的位址是否存在安全性薄弱的,以及這些地址是否已經被攻擊者清理掉。
不過破解比特幣錢包只是LBC的目標之一,另一個目標則是通過對撞攻擊,讓使用者自己輸入資料之後經過比特幣位址雜湊演算法處理,直接生成相互匹配的金鑰和位址。如果這個目標達成,那麼比特幣位址的生成,就必須要採用一種全新的演算法。
這就和今年2月谷歌破解網頁加密中的一個主要演算法SHA-1,並實現世界上第一次SHA-1對撞攻擊類似。曾經被廣泛應用的SHA-1演算法,因此而被宣告了命運的終結。
P2PKH是生成比特幣位址的加密演算法之一,Rico解釋稱,如果能夠對其實現對撞,那將意味著這種加密演算法的終結,而不是比特幣本身。他稱:
比特幣會以新的網址類別型繼續進化,因此相當確定的是,它不會“死亡”。
Rico表示,自八個月前成立以來,LBC這個項目獲得了很多標籤:不可能、違法、無意義以及很酷等等。他稱,等待LBC來發現的事情還有更多,包括實現對撞,因此不會在意外界看法。
留言列表