說到區塊鏈,就繞不開數字貨幣的問題,而談到數字貨幣,就無法迴避數字貨幣的安全問題,從以前的幣安受到攻擊,到不久前因為智能合約漏洞導致的巨額經濟損失 ,直到剛剛才發生的EOS爆發高危漏洞,無一不證明著區塊鍊和數字貨幣安全的問題,絕不是像表面看起來那麼簡單。
而在最近剛剛結束的,由UCloud舉辦的UCan下午茶上海站的活動中,諸多區塊鏈領域的專家就區塊鍊和數字貨幣安全的問題與到場的將近200多名觀眾進行了熱烈的探討 ,場面火爆,現場幾乎被觀眾擠滿,在此次沙龍上探討的諸多問題,也非常值得區塊鏈從業者認真學習和總結:
區塊鏈安全與多重簽名(NEM中國區聯合創始人馬洪彬 )
簽名的作用和特點
在現實生活中,簽名很好理解,就是由個人來簽字,形成一個筆跡,從而作為一種確認和背書。 因為每個人的筆記幾乎都是不同的,因此簽名具有唯一性,可驗證並被法律所認可。 當需要進行驗證時,可以進行簽名對比,確保一致性。 在現實生活,有很多方法可以驗證簽名的安全性,如筆跡鑑定等,因此,簽名被認為是一種很好的證明個人身份的可靠方法。
數字簽名的誕生
隨著互聯網的誕生,有人想把簽名這種可靠的方法應用到互聯網中,於是,數字簽名應運而生。 在數字簽名中,有發送方和接收方,發送方首先利用接收方提供的公鑰加密,然後用Hash算法對文件內容進行加密,並通過簽名算法將發送方的私匙通過互聯網發送給接收方 。 接收方接收到文件後,根據自己的私匙,對文件內容進行解密,並對發送方Hash的簽名進行解謎,接收方接收到文本原始的內容後,自己算一次Hash值,最終兩個Hash 值進行比較,確認文件是否完整的,或者是否被篡改,這就是數字簽名的過程。
數字簽名的作用,是可以比較可靠的保證信息傳輸的安全,因為這種加密是難以被篡改或者被黑客破解的,而且接收方明確的知道是誰發送的消息,並能確定信息的完整性。
區塊鏈中的數字簽名
區塊鏈中的數字簽名,首先需要把區塊鏈公匙、私匙與區塊鏈賬戶緊密結合起來,私匙首先算出公匙,公匙通過Ripemd160算法以及兩次Sha3-256算法,最後用 Base32編碼,算出私匙,並直接控制一個賬戶。 這樣的好處是顯而易見的,對區塊鏈來說,一旦擁有私匙,就完全控制了賬戶裡所有的信息或是內容。 但同時,也存在極大的隱患,一旦私匙丟失,將沒有任何辦法能夠把賬戶再拿回來,因此,私匙的保管是非常非常重要。 但儘管大家對私匙的保管都非常重視,私匙洩露或被盜的現像還是經常發生。
為了解決這個問題,人們發明了多重簽名賬戶技術。 多重簽名賬戶,實際上就是將區塊鏈上原來的一個簽名對應一個賬戶,變化成多個簽名對應一個賬戶,這樣就可以通過對多個簽名驗證交易來保證賬戶的安全性。 多重簽名賬戶最多可支持32個共同簽署人,可以設置1-32中的任意數簽署,交互即生效。 例如,如果三個人都有各自的賬戶,各自的私匙,同時還有一個賬戶,在變化之前也有自己的私匙,當這個賬戶變成多中心的賬戶,把三個人加入到多中心賬戶中 時,多中心賬戶自己本身的私匙就失效了,同時這三個人的私匙在加入賬戶同時生效。 之後,這可以設定該多中心賬號是一個人簽署生效,還是兩個人簽署生效,還是三個人同時簽署才能生效,從而為多中心賬戶提供了相對於單人賬戶2到3倍的安全保障。 多重簽名賬戶不但可以創建還可以編輯,只要提供一個新的賬戶地址即可,原來的帳戶如果離開或者丟失,都可以添加新賬戶進來,這只需要在界面上刪除或變更即可。
多重簽名的應用
多重簽名非常好理解,應用也非常簡單。 1-of-2的共同簽名賬戶,只要有一個簽署人同意,賬戶裡資金就可以動用。 3-of-3的多重簽名賬戶,只有當三個人同時簽署的時候,賬戶資金才可以被動用。 而2-of-2的多簽賬戶,主要是應用在安全方面,例如,一個人手裡有手機,一個支付端,手機上操作一下,服務器發送短信到手機,確認後,服務器再同意,這樣多重 簽名賬戶才可以動用,這是2-of-2的多重簽名賬戶,即使黑客或者病毒攻破了賬戶,資金仍然可以保證安全。
多重簽名的NEM的應用,是存證的系統。 存證創建者,對文件名用SHA-256算法進行Hash並用Key進行簽名,形成私匙,生成賬戶。 多重簽名賬戶,對文件內容做一個Hash,並把Hash值存儲到存證賬戶裡去,最終生成多重簽名賬戶。
多重簽名的發展方向
目前多重簽名都是一層的,將來的發展方向將是是多重簽名支持多層多重簽名,比如在製造商運送藥品的例子中。 集裝箱中的傳感器每隔5分鐘報告溫度數據,並將其合併成每日報告。 藥品只有在其區塊鏈記錄顯示生產日期、安全檢查,並在正確的溫度下裝運時才能收到其質量認可的二維碼。
基於可信區塊鏈的數據流通平台(UCloud平台產業線總監劉源)
如今,數據已經成為資產,數據的匯集會產生更大的價值,社會的效率就是來源於數字化,信息化和數據流動,但是安全永遠是最大的問題。
據IDC近兩年的統計,安全依然是雲計算面臨的首要問題。 數據加密是一個很好的解決安全問題的方法,但是在日常的工作學習中,並不是所有的數據都需要加密的。 比如說個人數據的雲盤的存儲,需要加密,但是涉及到用戶的交易、行為的數據,由於可以被服務提供商用來提供更好的服務,因此,服務的提供者或者說互聯網公司是要在 某種程度具有能夠獲取到明文的能力。
這就會涉及到一個非常大的安全問題,雲上的數據安全到底該怎麼辦? 實際上,數據安全其實包含兩方面,一方面是數據流通安全,另一方面是數據使用記錄的可信,前者通過可信計算芯片TEE的技術支撐,後者通過區塊鏈技術本身的機製做 支撐。
TEE是什麼?
TEE是Tusted Execution Environment可信執行環境,是一個基於CPU硬件安全擴展,且與外部完全隔離的執行環境。 它可能作為協處理器出現,也可能是基於ECV的新的硬件技術體系。 這個環境中運行的CPU空間完全只被硬件授信,軟件和操作系統都不可見。
TEE、安全屋與區塊鏈
基於TEE優化的產品叫做安全屋,安全屋最大的特點是“數據的所有權和使用權的分離”,也就是說,系統只開放基於可信環境的使用方式,在這個可信環境當中,數據擁有 方、算法提供方、結果使用方、計算提供方、算法在TEE中完成對數據的訪問與運算,明文不外洩。
通過TEE、安全屋、區塊鏈,完全可以打造一個基於可信區塊鏈的數據流通平台——TBC,這實際上是一種分佈式的可信數據運算平台,在這個平台之上,可以 運行公有鏈平台的私有智能合約、智能合約通過TEE執行, 從而實現基於硬件保護的合約代碼和數據,並可直接對接以太坊。
這個平台基於Intel® SGX,具有計算可擴展、信任去中心、數據強安全、任務可遷移四大特點,所謂計算可擴展是指全球任何計算節點均可接入計算框架,信任去中心是指從 單一信任模型進化到分佈式信任模型,數據強安全,即計算節點無法洩露計算數據,任務可遷移則是指TEE中運行計算可無縫在線遷移。 而基於這個平台,可以給數據帶來更加精細和可靠的保護。
虛擬貨幣安全(UCloud高級安全工程師陳順航)
數字貨幣安全現狀
近三年來,交易所被盜的損失大概是8.64億美元,一些很著名的交易所都發生過盜竊,盜竊情況越來越猖獗。 2016年為1.48億美元,2017年為2.96億美元,2018年才過去一半已達5億美元,超過了前兩年的總和。
攻擊方法也從Botnet、DDoS逐漸向挖礦轉移。 UCloud通過安全產品共捕獲到了ddg20xx木馬,而這些木馬控制的三個錢包已經合計挖礦90萬到150萬美元。 UCloud目前已經捕捉了30多種類似的樣本,而像星巴克Wifi挖礦,軟件中捆綁挖礦代碼、南方周刊官網挖礦這些熱門攻擊事件說明,以往復雜的攻擊方式變得更加簡單,新的變現 方式,更加容易變現,黑客的門檻也顯著降低,而原本由彈窗和廣告構成的PC端惡意軟件,也加入了挖礦產業。 這種情況的發生,與數字貨幣火熱關係重大,數字貨幣高回報、匿名性、不可溯源的特性,實際上為黑客提供了一個很好的變現途徑。
數字貨幣面臨的安全風險
數字貨幣行業的安全問題主要分為三大類:
第一類,行業發展迅猛,准入門檻非常低,會帶來大量的安全風險。
第二類,傳統的安全問題依舊存在。
第三類,新興的安全風險。
第一類風險,根據劍橋大學和Viso 2017年報告的數據,是行業發展太快帶來的問題,首先是數字貨幣相關開發商、交易所規模小,69%的錢包開發商的員工不到10 個人,交易所員工中位數接近於12。 其次,成立時間短,2017年下半年就發行了4000多種代幣,最後,門檻低,全球大概有500多個所有交易所,很多甚至於只有兩、三個人的微小公司都乾起了交易 所,這樣的公司是沒辦法把事情做好的,也沒有能力和精力把安全做好,但這樣公司佔了69%,這是整個行業發展快速帶來的風險。
第二類風險,就是傳統的安全問題,主要存在:
1、錢包的漏洞,實際上本質就是軟件的漏洞。 比如,Parity多重簽名漏洞,是開發人員在寫代碼的時候沒有實現好設計的協議,導致黑客可以調用不該調用的函數,訪問不該訪問的數據。
2、Web網站漏洞,例如,Coindash的一個Wordpress博客被上傳Webshell導致損失700萬美元的被盜,這個漏洞是非常低級的,原因僅僅是在於Wordpress版本太老。
3、假冒網站釣魚,黑客通過偽造網站,冒充正規的交易所,有人在上面交易,導致被盜。
4、業務安全,比如,網站被黑,打款地址被替換成黑客錢包地址,導致被盜。
5、病毒木馬,如日本Coincheck事件、韓國Bithumb事件,其實都是傳統病毒木馬惹的禍。
這些其實是屬於傳統安全的範疇,但實際卻佔據了數字貨幣安全體系的很大比重。
這三類風險組成了數字貨幣的主要風險,第一類風險是由於行業發展太快,很多公司規模很小,這樣的公司是不可能做好安全的。 第二類新興的安全攻擊,主要是一些大學和研究者提出的論文當中指出的潛在的風險,但在實際中較難實現。 第三類傳統的安全問題,才是佔據比例最大的問題。
如何解決數字貨幣安全三類風險
而要解決這三類風險,首先要建立正確的安全意識,因為區塊鍊或者相關技術,雖然號稱非常安全,但實際上只是指傳輸安全。 但是往往造成被盜或者損失的,並不是發生在傳輸過程中。 可能是某個員工被黑,也可能是某個網站存在漏洞,而區塊鍊及其相關技術是無法解決這些問題的。
其二,要上雲。 因為雲上有更完整的安全產品體系和更完善的基礎設施,有專業的安全團隊,有云上的抗DDoS服務,有云上的防入侵服務,而這些對中小公司是難以負擔的,所 以上雲是解決這個困境的好辦法。
其三,使用成熟的第三方產品。 數字貨幣的大量安全事件來源於傳統安全,而在傳統安全方面,國內外都有大量的廠商已經在這些行業深耕十幾年了,包括綠盟、安恆等等,像網站漏洞、電腦被黑這些 問題,都有非常成熟的安全產品以及解決方案。
作為一個雲提供商,UCloud雲上有非常完善的安全架構,可以通過部署在UCloud的DDoS設備,主機入侵檢測產品,對主機體系進行安全檢測。 可以通過檢測風險掃描器,UHDS兩款入侵檢測商品發現用戶系統業務體係以及架構方面的問題,在黑客入侵之前就解決掉這些問題。 此外,針對運維重點的一些安全問題,比如通過堡壘機保護資產,實現操作記錄的可回溯,UCloud也都支持,而普通用戶通過自己買產品,自己建立安全體係是很難做到這樣完善的 安全體系的。
如何解決區塊鏈性能瓶頸(HPB芯鏈朝夕網絡合夥人,DAPP研發總監胡繼臣)
區塊鏈行業現狀
雖然區塊鏈在近4年時間裡面呈現爆發式發展態勢,但區塊鏈還處在比較早期的階段,應用性差、性能低,還沒有出現大規模的區塊鏈商業應用。 以比特幣為代表的數字資產交易仍是區塊鏈技術應用最成熟的領域。
這樣的早期發展階段,也明顯的反應到了區塊鏈的TPS(每秒並發速度)上。 目前,比特幣的TPS為每秒7筆交易,以太網為每秒25筆交易,這與商業化的要求相差甚遠。 目前,滿足商業化需求的互聯網應用至少要求每秒4.4萬筆交易,淘寶在雙十一的TPS達到每秒35萬筆。
TPS瓶頸分析
區塊鏈的每一筆交易,以太坊大概是144 Bytes大小左右。 TPS如果未來要達到35萬,結合淘寶看,需要提升以下指標:
P:需要轉發的交易數,以以太坊為例,為25個
D:每秒鐘需要處理的數據總量。
Td:每秒的網絡接收和數據發送總量。
要達到35萬TPS,每秒需要處理的數據總量,即D,可以通過以下計算公式計算出來:
D = d*TPS = 144*350000 = 50,400,000 B
而這時,每秒的網絡接收和數據發送總量,即Td為:
Td = D*P*8 = 10,080,000,000 b
這是一個相當巨大的數據量,所以,總結起來,區塊鏈TPS的瓶頸主要來自於:
第一,P2P的網絡帶寬,第二,存儲,第三,共識算法,第四,簽名驗證。
因此,未來解決區塊鏈性能問題,將主要圍繞這幾點展開。
解決方案
HPB(High-performance Blockchain)是一種全新的區塊鏈軟硬件體系架構,其中包含芯片加速引擎和區塊鏈底層平台,旨在實現分佈式應用的性能擴展。 定位為易用的高性能區塊鏈平台,跟產業深度結合,滿足現實世界的真實商業需求。
HPB的核心是芯鏈加速引擎的整體架構,DDR Memory的網絡存儲。 左邊是UA網絡接口,右邊是PC,中間ARM整體解決方案,通過ARM A53 CPU,加上存儲和用戶ARM FPGA的芯片,有一個ARM FPGA整體解決方案。 其中藍色的部分是中間橋樑,左邊的藍色部分是對外的通道入口,右通道藍色是網卡芯片,通過芯片的設計,提升了網絡的連接,擴展,尋址的能力。 可以充分滿足區塊鏈交易中的網絡帶寬需求。 通過這樣的設計,HPB可以達到百萬級的TPS。
HPB技術中一個重要的部分是BOE,BOE其實是軟硬件結合的功能算法,是替代引擎,它通過CPU的功能轉嫁到專用ARM A53架構解決方案,達到高性能的解決方案。
在算法方面,採用多重機制,大約有100個高性能計賬節點,100個後續節點,通過不斷投票產生每個記賬節點和後面的節點,根據自己的貢獻,不斷獲得鏈上的獎勵,其他 的一些節點作為一個同步節點同步數據,從而達到整體的數據的共享公平。
總之,HPB芯鍊是第一個百萬級並發設計的高性能區塊鏈,用戶可以免費使用,採用並行架構,應用程序之間互不影響,同時,它採用了軟硬件一體的體系架構, 設計了HPB專用的區塊鏈服務器,通過軟硬件優化支持大量的共識節點,並採用了超高並發BOE引擎,高性能硬件簽名技術,也是業界首個底層區塊鏈開源的項目。
如何打造下一代公有鏈(Genaro Network創始人,吉羅科技CTO吳為龍)
區塊鏈實質上就是State Machine 和核心數據庫,比特幣其實只乾一件事,就是通過整個分佈系統,進行交易轉賬,Genaro的初衷是做去中心化化的存儲,但後來發現有非常多的 公鏈需要存儲,於是,Genaro就做了一條與存儲相關的公鏈。 並逐漸在公鏈上疊加了相應的東西。
提到存儲網絡,就不能不說Sentinel,Sentinel在POR系統當中提供了驗證的方式,與整個文件大小無關的,並且經過了加密。 而且通過這樣加密之後,還能將文件取回,這是分佈式存儲網絡的兩個特性,即:1.能夠找回存儲的東西,2.保證其中點對點傳輸。
而Genaro在設計自己的分佈式存儲系統時,對Sentinel進行了優化和補充,從而設計出了Genaro自己的分佈式存儲。
Genaro在設計公鏈時,實際上也是考慮了區塊鏈先驅,EOS創立者BM對創業者提出的四個問題:1、下一個區塊更新的時候,數據庫是通過誰來產生的。 2、下一個區塊什麼時候產生。 3、什麼交易數據會被放進區塊。 4、怎麼解決交易數據衝突的問題?
通過對這些問題的認真思考,和對市場上各種共識問題,攻擊問題的詳細研究,Genaro採用了混合SPoR/PoS的共識機制,在維持低消耗的同時,保證了高並發以及存儲。
目前,Genaro 的第一個產品是Genaro Eden,它為每個人提供一個可信任的互聯網,通過數據聯通現實世界與區塊鏈世界。 Genaro APP,則是Genaro Eden的搖控器,也是Genaro 輕錢包,而Genaro相信區塊鍊和存儲在一起,才是區塊鏈技術未來發展的方向。