區塊鏈跨域安全解決方案
一、區塊鏈發展的演變
回首2008年,由次貸危機引發的金融危機蔓延全球,11月份,一篇名為《Bitcoin:A peer-to-peer electronic cash system》的論文橫空出世,當時只是在一小戳圈子里被討論,大概沒幾個人知道論文的意義。時間的年輪很快轉入新的一年,比特幣第一版本代碼發布,1月4日,創世塊被挖出來,5天之后,第二個塊產生,比特幣網絡正式啟動,一個自稱“中本聰”的人悄悄在互聯網應用這片汪洋大海吹起一片漣漪,時至今日,這片漣漪已形成滔滔大浪。
Blockchain V1.0主要應用于比特幣和大型金融分類賬,而Blockchain 2.0則在行業和應用領域獲得動力和投資。然而,區塊鏈從1.0向Blockchain 2.0的演變并不是一個簡單的過程。這個轉變的復雜性和挑戰在下面描述的三個階段被總結:
- 注冊階段:首先要解決注冊相關的問題。區塊鏈是可信和可追溯的,因為它采用“工作證明算法”和其他公認的規則來確保只能添加合法的區塊。一旦一個塊經過徹底的驗證鏈接到區塊鏈,它將被永久保存。互聯網上的本地臺賬鏈數據庫永遠不會被破壞,記錄的信息字段與生成時間相匹配。可信賬本鏈中的所有信息都是獨特的,防篡改的。因此,區塊鏈可以用來記錄各種類型的信息。
- 驗證階段:第二個改進方面是準確的驗證。區塊鏈是開放源代碼和可共享的,允許各種組織和個人進入整個系統的運作。參與維護的每個節點都會收到整個數據庫的完整副本,以確保信息的所有權。區塊鏈是存儲永久記錄(如真實性驗證,土地所有權,股權交易和其他應用程序)的理想解決方案。
- 管理階段:這使我們進入第三階段。在這里,關注智能管理勢在必行。區塊鏈粉絲認為,區塊鏈的核心貢獻是解決多點信息交互過程中的任何可信度問題。這個問題或挑戰被創造為“拜占庭將軍的問題”。顧名思義,這個問題起源于羅馬帝國和拜占庭帝國。鑒于帝國的廣闊領土,帝國軍將領在地理上分離,難以互動。軍隊中還有叛徒,會誤導將軍的決定,阻止他們爭取勝利。由于缺乏準確的信息,這使得難以達成共識。
現在已經進入Blockchain 3.0時代,Blockchain 3.0仍然側重于其衍生領域的應用和規范。區塊鏈3.0的區別特點是引入了一個分散的域名系統 – Namecoin。下面介紹Namecoin及其功能及其挑戰和應用的簡要說明:
1. 什么是Namecoin?
Namecoin提供的功能類似于傳統DNS提供商提供的功能。主要區別在于Namecoin基于分散式區塊鏈技術。正因為如此,Namecoin可以繞過互聯網審查,確保信息的自由和中立的分布。
2. Namecoin的特點
在Namecoin中,沒有可以改變域名的權力機構。例如,美國政府控制.com域名的DNS提供商,并且能夠審查在該域名下注冊的網站。然而,名稱幣對應于.bit域名,它不受任何機構的控制。該域名永久寫入區塊鏈,確保在網站上免費發布信息。
3. Namecoin的運作原理
Namecoin通過點對點網絡共享DNS查詢表。只要有人正在運行Namecoin服務器應用程序,域名就可以訪問,并且不受任何人的控制。
4. Namecoin的應用領域
由于.bit域名可以用來繞開監督和審查,所以適合自由和合法地傳播信息。基于分散域名思想的應用程序Namecoin是首批將區塊鏈技術應用于非貨幣領域的應用程序之一。這些應用程序擁有很高的研究價值。盡管意識形態可以應用于各個領域,但是目前有一些限制使它們不能普及。
5. Namecoin的主要限制
大多數瀏覽器默認不支持解析.bit網址,用戶需要安裝一個插件才能訪問.bit網站。這個問題將阻止大多數用戶訪問.bit網站,使其難以普及。匿名,低成本和對審查的豁免使Namecoin容易被誤用。用戶可以使用.bit來托管非法內容或企業,不會受到法律后果。此外,中國的網站必須備案。由于.bit網站不能在中國錄制,因此在國內無法使用。
二、區塊鏈算法的演進
區塊鏈的技術演進,從另一個層次看,也是算法的不斷優化以及完善,Consensus和Algorithm可以說是區塊鏈技術體系里的重要支柱。
(1) hash算法,為什么呢,中本聰在設計比特幣的時候其實有很多地方用到Hash函數,比如計算區塊ID,計算交易ID,構造代幣地址等。我們說的算法具體是指用何種Hash函數計算區塊ID,所謂算法創新也就是在這個地方下功夫。反正現在只要一出什么山寨幣就說自己發明了什么算法云云之類的話,筆者不妄下斷言了^_^。
(2) sha256算法,除了生成地址中有一個環節使用了REPID-160算法,比特幣系統中但凡有需要做Hash運算的地方都是用SHA256。隨著比特幣被更多人了解,大家開始好奇中本聰為何選擇了SHA256,同時對SHA256的安全性發表各種意見,SHA256妥妥經受了質疑,到目前為止,沒有公開的證據表明SHA256有漏洞,SHA256依然牢牢抗住保衛比特幣安全的大旗。
(3) scrypt算法,后來隨著顯卡挖礦以及礦池的出現,社區開始擔心礦池會導致算力集中,違背中本聰“一CPU一票”的最初設計理念。在那段時間,中心化的焦慮非常嚴重,討論很激烈,比特幣一次又一次“被死亡”,直到現在,針對礦池是否違背去中心化原則的爭論仍在繼續。無論如何,有人將矛頭指向SHA256,認為是算法太容易導致礦機和礦池出現,并試圖尋找更難的算法。恰逢其時,使用SCRYPT算法的萊特幣(Litecoin)橫空出世。據說SCRYPT是由一位著名的黑客開發,由于沒有得到諸如SHA系列的嚴格的安全審查和全面論證,一直沒被廣泛推廣使用。
(4) 串聯算法,2013年7月,夸克幣(Quark)發布,首創使用多輪Hash算法,看似高大上,其實很簡單,就是對輸入數據運算了9次hash函數,前一輪運算結果作為后一輪運算的輸入。這9輪Hash共使用6種加密算法,分別為BLAKE, BMW, GROESTL, JH, KECCAK和SKEIN,這些都是公認的安全Hash算法,并且早已存在現成的實現代碼。這種多輪Hash一出現就給人造成直觀上很安全很強大的感覺,追捧者無數。現今價格依然堅挺的達世幣(DASH,前身是暗黑幣,Darkcoin,)接過下一棒,率先使用11種加密算法(BLAKE, BMW, GROESTL, JH, KECCAK, SKEIN, LUFFA, CUBEHASH, SHAVITE, SIMD, ECHO),美其名曰X11,緊接著X13,X15這一系列就有人開發出來了。
(5) 并聯算法,有人串聯,就有人并聯,Heavycoin(HVC)率先做了嘗試。HVC如今在國內名不見經傳,當時還是名噪一時,首次實現鏈上游戲,作者是俄羅斯人,后來不幸英年早逝,在幣圈引起一陣惋惜。
(6) primecoin算法,正當一部分人在算法探索之路上進行的如火如荼之時,另一部分人的聲音也非常刺耳,那就是指責POW浪費能源(彼時POS機制已經實現)。POW黨雖極力維護,但也承認耗費能源這一事實。這一指責打開了另一條探索之路,即如果能找到一種算法,既能維護區塊鏈安全,這些Hash運算又能在其他方面產生價值,那簡直更完美。在這條探索之路上最讓人振奮人心的成果來自于Sunny King(這大神之前已經開發了Peercoin,點點幣)發明的素數幣(Primecoin)。素數幣算法的核心理念是:在做Hash運算的同時尋找大素數。素數如今已被廣泛應用于各個領域,但人類對他的認識還是有限。素數在數軸上不但稀有(相對于偶數而言),而且分布不規律,在數軸上尋找素數只能盲目搜索探測,這正是POW的特征。POW還有另一個要求是容易驗證,這方面人類經過幾百年探索已經獲得一些成果。素數幣使用兩種方法測試,首先進行費馬測試(Fermat Test),通過則再進行歐拉-拉格朗日-立夫習茲測試(Euler-Lagrange-Lifchitz Test),還通過測試則被視為是素數。需要指出的是,這種方法并不能保證通過測試的數百分百是素數,不過這并不影響系統運行,即便測試結果錯誤,只要每個節點都認為是素數就行。
(7) ethash算法,以太坊(Ethereum)一開始就打算使用POS方式,但由于POS設計存在一些問題,開發團隊決定在以太坊1.0階段使用POW方式,預計在Serenity階段轉入POS。以太坊POW算法叫Ethash,雖只是一個過渡算法,但開發團隊一點也不含糊,一如既往發揚其“簡單問題復雜化,繁瑣細節秀智商”的設計風格。Ethash 是最新版本的 Dagger-Hashimoto改良算法,是Hashimoto算法結合Dagger算法產成的一個新變種。Ethash設計時就明確兩大目標:
- 抵御礦機性能(ASIC-resistance),團隊希望CPU也能參與挖礦獲得收益。
- 輕客戶端可快速驗證(Light client verifiability)。
基于以上兩個目標,開發團隊最后倒騰出來的Ethash挖礦時基本與CPU性能無關,卻和內存大小和內存帶寬成正相關。不過在實現上還是借鑒了SHA3的設計思路,但是使用的”SHA3_256” ,”SHA3_512”與標準實現很不同。
(8) Ethash算法,基本流程是這樣的:對于每一個塊,首先計算一個種子(seed),該種子只和當前塊的信息有關;然后根據種子生成一個32M的隨機數據集(Cache);緊接著根據Cache生成一個1GB大小的數據集合(DAG),DAG可以理解為一個完整的搜索空間,挖礦的過程就是從DAG中隨機選擇元素(類似于比特幣挖礦中查找合適Nonce)再進行哈希運算。可以從Cache快速計算DAG指定位置的元素,進而哈希驗證。此外還要求對Cache和DAG進行周期性更新,每1000個塊更新一次,并且規定DAG的大小隨著時間推移線性增長,從1G開始,每年大約增長7G左右。
(9) equihash算法,最近在國內發展勢頭最猛的莫過于Zcash,該幣種最大的特點是使用零知識證明實現隱私交易。距離發布還有幾天,但從社區討論來看,各方礦工都已在磨刀霍霍。Zcash對于算法的選擇非常慎重,在先后考量了SHA256D,SCRYPT,CUCKOO HASH以及LYRA2等算法后,最終選擇Equihash。Equihash算法由Alex Biryukov 和 Dmitry Khovratovich聯合發明,其理論依據是一個著名的計算法科學及密碼學問題——廣義生日悖論問題。Equihash是一個內存(ARM)依賴型算法,機器算力大小主要取決于擁有多少內存,根據兩位發明者的論文描述,該算法執行至少需要700M內存,1.8 GHz CPU計算30秒,經Zcash項目優化后,目前每個挖礦線程需要1G內存,因此Zcash官方認為該算法在短時間內很難出現礦機(ASIC)。此外,Zcash官方還相信該算法比較公平,他們認為很難有人或者機構能夠對算法偷偷進行優化,因為廣義生日悖論是一個已經被廣泛研究的問題。此外,Equihash算法非常容易驗證,這對于未來在受限設備上實現Zcash輕客戶端非常重要。Zcash官方團隊選擇Equihash完全出于抵御礦機性能的需求,他們在官方博客中也承認并不敢確保Equihash一定是安全的,并表示如果發現Equihash存在問題,或者發現更優算法,Zcash會改變POW算法。
Blockchain 以后的發展肯定是越來越側重于行業領域的發展而不僅僅是貨幣金融體系的發展,安全領域還沒有人進行探索與實踐,筆者先拋磚引玉,談談區塊鏈在安全領域的應用。
三、區塊鏈域安全解決方案
在區塊鏈網絡中,跨域保護的角色將由高安全性平臺(稱為高安全業務節點(HSBN))上安裝的區塊鏈網絡對等執行。 分布式跨域區塊鏈商業網絡內的數據移動采取加密保護的事務更新的形式到由業務網絡的特定成員專用信道中的每個節點持有的共享分類帳。區塊鏈商業網絡的其他對等節點駐留在一個或另一個安全區域,不管是高還是低,接收被批準的分類賬交易的保護區塊。 簽署的分類賬更新通過邊界HSBN發生在對面的安全域上,以保證區塊鏈提供的安全控制不能被繞過或覆蓋。
四、區塊鏈域解決方案優點
區塊鏈跨領域解決方案可以提高您的信息交換過程中的效率,并改善信息交流的可訪問性以及可追溯性。具體來說,它提供了:
- 無論網絡域如何,每個資產在整個生命周期中都是單一的共享視圖。在一個標準的跨域保護中,沒有辦法確保保護的每一邊駐留的信息在其生命周期中保持同步。保護的能見度和控制范圍是有限的。在整個生命周期內對資產信息進行可審計控制和監督。共享分類賬提供了一個確定的,不可改變的記錄,即使是在網絡安全領域,共享的內容和由誰分享的內容。這消除了試圖追蹤并將單獨的僅保護數據流連接在一起的情況。
- 信息共享,而不僅僅是移動數據。數據控制和共享自然而然地通過共享賬本作為正常區塊鏈業務網絡的一部分進行。傳統的保護只是移動數據。將信息共享擴展到其他安全域可以通過部署額外的HSBN托管的節點和通道輕松完成。
- 降低成本,提高安全性。該技術利用現有開源區塊鏈即可能實現,目前在做的商業的有IBM等企業。