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