❶ 區塊鏈技術,怎麼才能正確應用到金融產業
回望2008年, 區塊鏈 技術展示了它可以在不同商業領域帶來的變化。這項技術雖然還在初期,但是已經改變了很多產業。區塊鏈的各種特性,例如去中心化,不可篡改以及透明性,可以改變商業模式。尤其是對於銀行和金融業來說。
雖然現在還有很多問題,但是,區塊鏈有潛力能夠為金融和銀行產業減少成本和勞動力。根據德勤的報告,全世界24%的金融機構對區塊鏈技術很熟悉,北美地區會比其他地方更加熟悉這些技術。考慮到這項技術的廣泛應用性,企業也在逐漸尋找區塊鏈能夠應用的不同領域。
特別是銀行和金融業,成百上千的基金每天正在從世界的消哪一端到另一端。這就讓全球金融系統成為了能夠從區塊鏈應用獲利的行業之一。銀行和金融業需要大量的人工,這時候如果有任何錯誤,對於金融系統來說會產生很大的影響。根據全球金融科技的報告,2017年,77%的金融科技機構希望在2020年將區塊鏈作為金融生產系統。
區塊鏈在銀行業的應用
對於區塊鏈技術和運行方式的基本理解,你腦中真正的問題,可能是:區塊鏈真地能夠應用在銀行產業嗎?如果是的,我們如何才能最好地利用區塊鏈技術?而且,最重要的是,區塊鏈會停留在原地還是繼續往前走?
根據哈佛商學院的報道,區塊鏈此時對於銀行業,就像互聯空橋旁網對於媒體那樣。區塊鏈能夠解決銀行和金融產業的很多問題。區塊鏈技術擁有所有可靠技術應該有的特性,其中也包括金融相關的業務。
區塊鏈可以提供高級別的安全性,特別是在交換數據,信息和金錢等方面。同時,這也讓用戶可以利用透明的網路架構,操作成本很低,同時,也可以獲得去中心化的幫助。這些特性會使得區塊鏈會成為銀行和金融行業非常穩定,可靠以及受歡迎的解決方案。
金融機構想要保證資金安全,就需要很多中介機構。然而這些中介機構卻使得整個產業更加昂貴。而且,由於其中有太多的人參與整個過程,發生錯誤的幾率也在增加。區塊鏈技術可以保證轉賬安全,同時也可以讓用戶獲得更好的體驗,成本也更低。
銀行使用區塊鏈技術案例
雖然在早期,銀行和金融機構對於區塊鏈技術仍舊是持懷疑態度,但是,現在,事情已經變了。隨著區塊鏈在多個領域獲得成功,銀行業正在尋找區塊鏈新的領域和應用。
有些大企業,例如,JP摩根對於區塊鏈的未來發展充滿信心。美國投資銀行總部也開始了對區塊鏈技術的研究和實施。Quorum項目是一個企業分布式賬本和智能合約平台,能夠支持快速轉賬和吞吐量,來解決金融行業,銀行等的問題。根據目前的消息,他們已經基於分布式注冊機構發布了不同 利率 的 年金 證明書。
除了這些斗橡,主要的美國銀行已經得到了由美國專利局發放的專利證明。這份文件提到關於許可性區塊鏈的部署,這是為了保證記錄的安全性,同時,也是為了認證企業和個人數據。
這個系統會讓通過認證的成員獲得數據並且記錄下所有的個體成員。此外,系統會使用區塊鏈技術,將多個現有的數據存儲平台進行整合。這個安全的單個網路會提供整體效率,同時也減少用戶數據的存儲地址數量。
另一個機構就是高盛。高盛也在積極地融入分布式注冊技術的研究之中。為了給區塊鏈行業的初創公司服務,解決數字貨幣的波動性,高盛已經投資了數字貨幣項目。
高盛集團旨在成為華爾街數字貨幣的領導者。設定自己的數字貨幣交易,可以幫助他們很好地管理數字交易。
金融使用區塊鏈技術案例
隨著更多應用案例出現,區塊鏈技術已經有潛力來改變目前的金融和銀行產業。該技術可以通過以下幾點,改變目前的銀行產業:
減少欺詐
任何牽涉到金融相關的項目,就會有欺詐。此外,從最基本的金融模型來看,安全性也是最重要的。有超過40%的金融主體和中介機構,例如股票交易所,每年都會因為金融盜竊事件,蒙受重大損失。
中心化資料庫系統是用來進行金融管理和操作。但是中心化的資料庫很容易被入侵,如果有單點出現問題,那麼就會形成網路攻擊。一旦黑客進入到這種系統,盜竊資金很容易。這就會使對於更加安全系統的需求產生,需要足夠的安全保證來防止這類攻擊。
由於區塊鏈是分布式的,不可能會出現單點的破壞。按照區塊形式存儲的每個轉賬都會有加密機制的保護,很難被攻擊。
而且,所有的區塊都是互相連接的。由於這個連接的機制,如果有區塊被改變,那麼區塊鏈上所有其他區塊都會立刻表現出這個改變。因此,這會幫助追蹤這個入侵,同時也讓黑客沒有機會來對整個系統進行改變。通過一個安全的區塊鏈系統,我們能夠防止網路攻擊以及現在的銀行和金融業攻擊。
客戶身份驗證銀行和金融機構對於這點是非常擔憂的,所以他們必須要進行AML和KYC,從而減少損失。所有這些過程都會花費很多時間,並且所有的銀行和金融機構都需要獨立地進行所有的驗證。
根據調查報告,每年這類過程都需要花費從600萬美金到5000萬美金不等的金額。有些客戶盡調是為了減少洗錢以及攻擊行為。目前,銀行需要上傳客戶的KYC數據到中心化的注冊機構,被用來檢驗老客戶或者新客戶的信息。
隨著區塊鏈系統的應用,每個銀行或者金融機構的客戶驗證,也可以被其他銀行使用,這些KYC認證不需要進行多次。
也就是說,通過區塊鏈技術,可以免去很多重復工作。而且,在不遠的未來,所有金融機構都會獲得客戶更新的相關信息,使得管理員以及管理機構的成本減少。
智能資產
當所有資產都需要通過清晰的日期和時間戳來記錄,貿易金融就會變得很困難。全球的供應鏈包含了很多機構和個體,參與方在不停地進行交易。這其中的文件更加復雜。區塊鏈可以通過數字形式來存儲這些智能資產的記錄。智能資產系統不會僅限於把物品轉移,同時還會追蹤物品的軌跡。
銀行和金融機構的智能資產追蹤系統現在也面臨很大的競爭。擁有豐富數據的銀行可以通過區塊鏈將這些數據轉變為客戶價值。
智能合約
智能合約的應用可以證明銀行和金融行業的重要性。智能合約是在某些條件滿足的時候,可以自我執行的代碼。
在使用到金融轉賬的時候,智能合約對於提高速度和簡化復雜的流程很有幫助。只有在代碼中的條件滿足,合約才會執行,也會保證轉賬的信息十分准確。而且,由於這些條款對於所有人都是可見的,出現錯誤的概率就會下降很多。
貿易金融
貿易金融被認為是區塊鏈技術在銀行產業最有用處的應用之一。所有參與方,例如復雜的轉賬可以在區塊鏈網路進行記錄,貿易商和銀行通過一個共有賬本 共享 這些信息。一旦某個條件滿足,那麼智能合約就會自動運行,相關的參與方可以看到所有發生的行為。
根據有關消息,有初創企業已經成功進行基於區塊鏈的交易轉賬,通常這一過程需要花費7-10天,但是現在只需要4小時。和現在的基礎架構相比,使用區塊鏈可以大幅減少證書、票據以及其他費用的產生。
為什麼銀行業需要區塊鏈?
1.目前銀行系統高度依賴於紙質文件和現在的系統。現在需要可信穩定的系統升級,來防止任何欺詐,解決擴容和安全問題。區塊鏈技術和去中心化本質,可以讓銀行系統擁有正在尋找的高端技術。
2.銀行不能獨立地運行,現在很多轉賬都是通過中介的。跨國轉賬需要花費5天時間,其中也會有不少風險。銀行通過區塊鏈系統,能夠讓轉賬非常快速,而且不需要承擔任何風險,銀行自身就足夠解決這些問題。
3.世界正在向著數字化邁進。經濟發展的速度也在逐漸增加,並且毫無疑問,這個速度還會更快。區塊鏈技術會讓小額轉賬變得更加快速,同時能保證更低的費用和轉賬擴容性。
4.除了銀行以外的金融服務企業也逐漸通過最新科技來改革自己的系統,通過提供可靠的服務、更低的 費率 ,來保證市場的安全。銀行和其他金融機構應該接受新型區塊鏈技術,讓他們的生態系統保證安全。
區塊鏈技術融入還有很多挑戰
區塊鏈技術當然有它的優勢,但其中也包含著很多挑戰,特別是對於金融和銀行產業的機構來說。
交互性:區塊鏈技術不會被任何國際條例所束縛,所以這其中並沒有標准。隨著大型產業,例如銀行對交互性要求的提升,區塊鏈需要和不同的系統兼容,並且還需要能夠被大眾所接受。現有系統和區塊鏈的整合對於目前的系統是個非常大的挑戰,因為現有的系統不能被完全地替代。如果區塊鏈技術可以讓多個系統完美地一起工作,那麼操作可行性就完全可以滿足。
隱私:銀行和金融機構的背書,是人們將資金存入其中的信任。如果想讓區塊鏈替代它們,很重要地就是要保證存入區塊鏈的數據被安全存放,並且不會改變任何人的身份。由於轉賬信息是在區塊鏈上公開進行,也需要對私鏈進行研究,這同時也有助於解決交互性問題。
加密性:私鑰是區塊鏈系統的必要元素,因為他們對於保證區塊鏈上個人數據有著非常重要的作用。但是,一旦獲得私鑰,就必須要非常安全地進行存儲,因為如果丟失,就再也沒辦法找回了。而且,存儲數據的加密方式也會存在漏洞,這也導致了區塊鏈很容易被黑客攻擊。
安全性:區塊鏈網路是安全並且可靠的,因為它其中融入了加密學的技術,為防止黑客攻擊,這類系統中任何的加密性能都需要大量的算力。當區塊鏈網路被應用在任何銀行機構,就必須要通過多個安全協議來進行加密。網路需要能夠有足夠多的算力去防止任何人進行控制,除非是根據特定的准入許可。根據這些需求,融入區塊鏈的這類系統或者機構可以是許可的或者非許可的。在這些機構中的人需要能夠處理不同級別的准入許可,從而能夠從欺詐和網路攻擊者,來拯救整個網路。
可擴容性:現有數據的增長是不可否認的。隨著人口數量的增長,資料庫的增長也會隨之而來。這就會給區塊鏈的應用帶來很大的挑戰。通過區塊鏈創建的網路應該能夠處理逐漸增加的流量,同時也能維持網路參與者的速度。如果區塊鏈技術能夠應用在目前的銀行系統和機構,就必須要能保證處理這些數據流量的能力。
能源消耗:大多數區塊鏈網路都是基於工作量證明機制,其中網路參與者會根據他們解決問題的速度來獲得獎勵,這也會基於他們解答問題的速度,從而將新的區塊放入網路。這可以讓整個網路穩定運行,同時也增加了能源消耗。這類算力會消耗很多的電力,從而對環境造成影響。在接受區塊鏈技術之前,這些問題需通過其他激勵機制來解決。
法律監管:如果區塊鏈應用到銀行業,那麼國際監管條例就是非常必要的。現在,數字貨幣作為區塊鏈最受歡迎的應用,目前還沒有監管條例,有利有弊。但是,如果區塊鏈在銀行和金融業進行應用,那麼就一定需要監管,避免人們因為有所損失而造成麻煩。
結論
盡管對於銀行業來說,監管條例非常嚴格,金融機構也開始了將區塊鏈技術作為解決方案的征程。銀行業巨頭已經開始進行測試,去尋找去中心化技術的潛在用途。
機構正在大力投資研究區塊鏈解決方案。通過讓區塊鏈進入現在的產業,很多問題都會得到解決。因為這項技術讓系統更加透明,可靠,也容易使用。
❷ 區塊鏈 金融 應用
區塊鏈金融應用是其在現實當中發揮作用的重點領域,金融業需要這樣的高端技術,傳統的運作方式會因為這樣的技術而發生深刻的變化。區塊鏈金融應用有著很多鮮明的特點,也讓人們對此津津樂道,更因為實際產生的效果而倍受眾人的關注,產生了越來越大的影響。
提要:發達國家和科技公司在區塊鏈技術的研究和應用方面已經走在了前面。從專利技術的申請來看,我國與 美國 區塊鏈技術或有一年半左右的差距。基於上述形勢,中國如何實現「非對稱」趕超?首先是要看清形勢,抓住機遇,迎接挑戰。其次,在了解區塊鏈底層建設對於金融業現有業務及未來發展的必要性後,在各金融企業之間達成建立「中國的金融區塊鏈聯盟」的共識。最後是要協同推進,迎接變革。
如何理解區塊鏈?
比特幣:一種點對點的電子現金系統。2009年,論文發表之後,比特幣作為一種虛擬貨幣在 互聯網 的數字世界裡誕生了。目前,比特幣總市值65億美元左右,雖然市值在不斷變化,但它仍然是全球最大的虛擬貨幣。
還有一個重要的概念就是區塊鏈。區塊鏈是比特幣的一個底層技術,而比特幣只是區塊鏈的一個應用。眾所周知,比特幣可以實現點對點的價值傳遞,除比特幣區塊鏈外,還有很多其他的區塊鏈,例如,以太坊的區塊鏈等。所以,我們應該區分比特幣、比特幣區塊鏈、區塊鏈以及區塊鏈技術等概念。
目前,人們對區塊鏈有幾個誤讀。可以用英文描述區塊鏈為「Decentralized Blockchain」,其中Decentralized被翻譯成「去中心化」。但是,我認為區塊鏈實現了價值的無中介傳播,就是點對點的價值傳播,這並不是說進入區塊鏈時代以後就不需要中心了,而是應當從一個單一的集中化向中心與中心之間的並聯發展。那麼,現有的中心很可能變成分中心或者弱中心。目前所有銀行都擁有自己的數據中心,如果今後成立金融區塊鏈聯盟,那麼它們就可以成為區塊鏈聯盟里的各個節點,所以區塊鏈並不是不需要中心。
區塊鏈不是不需要信用
我們經常會看到一些文章觀點認為區塊鏈是要「去信用」,其實,區塊鏈是通過共識演算法建立信任,通過各個節點之間的共識保證交易的正確性。通過數學、演算法以低成本建立信任,而不是「去信用」。只不過人與人之間的數字資產交易不需要兩個人相互認識,或者是相互有信任關系,也不需要第三方信用機構,只需要大家信任區塊鏈這個可信網路即可。
為什麼說或滲它可信呢?因為它是一個分布式的資料庫,有一套基於共識的機制:一套加密演算法,使得它不可篡改。一方面通過公鑰使得信息透明化、可追溯;另一方面,私鑰可以保護隱私。
區塊鏈並非成熟技術,也非萬能目前區塊鏈技術還處於發展初期。今年年初我們派團去巴克萊 南非 的區塊鏈研究室學習,在研討會上,巴克萊非洲區塊鏈專家認為,區塊鏈技術要成為真正成熟的技術至少需要五到十年的時間。目前,區塊鏈存在計算速度相對較慢、存儲空間小的缺陷,而且,並非所有的數據處理都需要使用區塊鏈。
區塊鏈在國外的研究、運用
我們發現,老牌金融發達國家在區塊鏈技術的研究方面已經走在了前面。英國政府認為,政府參與數字貨幣和區塊鏈網路的立法是非常重要的,政府鼓勵對區塊鏈技術的深入研究。英國政府正在積極評估區塊鏈技術的潛力,考慮將它用於減少金融欺詐,降低成本。此外,英國政府計劃開發能夠在政府和公共機構之間使用的應用系統。
今年2月,歐盟委員會把加密數字貨幣放在快速發展目標領域的空枝首位,這項舉措推動了各個機構針對數字貨幣的政策研究。科技公司在區塊鏈技術的研究方面也走在了前面。
IBM推出了「開放賬本項目」(Open Ledger Project),開發企業級的區塊鏈軟體結構,推動區塊鏈技術的商用,通過IBM雲計算平台的Bluemix和API基礎架構來支持外部數據的對接。IBM在區塊鏈技術方面的實踐還有很多,近期,它與 韓國 的一家公司利用區塊鏈技術和物聯網做了富有創意的試驗,取得了一些成果。
微軟利用Azure平台,為用戶提供「區塊鏈即服務」,可以使得R3以及其銀行成員加快試驗和學習進程,加速分布式台賬的開發、測試和部署。
Intel也發布了用來搭建、部署和運行分布式賬本的高效模塊化平台SawtoothLake;同時,Intel還斗團敏研究為區塊鏈應用的硬體晶元創造可信任的執行環境,提供更高的安全性和隱私。
與此同時,華爾街也在積極行動。盡管創建比較晚,但是R3的核心職能是制定 銀行業 區塊鏈技術開發的行業標准,以及探索實踐用途,並建立銀行的區塊鏈聯盟。
從我們了解的情況來看,華爾街除了有這兩家迎合數字金融時代到來的新公司之外,大型金融機構都在研究區塊鏈技術,都在建立自己的區塊鏈概念和技術團隊。
目前,區塊鏈技術已經有了實際應用的案例。
在加拿大,區塊鏈初創公司「區塊鏈科技有限公司」(Blockchain Tech Ltd )已經成功在多倫多證券交易所 創業板 上市;愛沙尼亞政府將推出政府的區塊鏈醫保記錄。
國內對區塊鏈技術的關注和研究情況
區塊鏈是可選的技術。此前,中國人民銀行還召開了數字貨幣研討會。除了央行以外,去年 浙江 省、 北京 市等有關部門也表達了對區塊鏈應用研究工作的支持。
從企業角度來看, 布比區塊鏈已經應用於股權、供應鏈、積分等領域,並正在與交易所、銀行開展試驗和應用測試。布比區塊鏈專注於區塊鏈技術和產品的創新,已擁有多項核心技術,開發了自有的區塊鏈服務平台。而且很多區塊鏈創新創業企業不斷涌現。
此外,一批行業聯盟正在建立起來。在金融機構方面,目前我國大型銀行和金融機構對區塊鏈應用的案例仍有待破題。
2015年末美國銀行已經獲得15項關於區塊鏈的專利。我國與美國區塊鏈技術或有一年半左右的差距。
區塊鏈金融應用正在全面的進入新的階段,各種應用將會越來越深入,相關的改變也會越來越受人矚目,也將會形成一股極大的新潮流。
❸ 區塊鏈行業應用有哪些
區塊鏈技術有廣泛的應用領域,以下是一些主要的行業應用:1. 加密貨幣:比特幣、以太幣等數字貨幣的發行與交易。2. 金融:用於交易結算、證券交易、銀行貸款、交易融資等業務。3. 物流和供租並啟應鏈管理: 用於優化物流過程和減少物流成本。4. 物聯網:與物聯網相關的數據、應用和通信,保證數據的安全和一致性。5. 版權管理: 用於版權信息的打包、存儲、管理和交易。6. 選舉: 用於公開、透明、安全的虛擬選舉。7. 公共服弊如務:政府的文件和數據集的管理,例如出生證明、死蔽擾亡證明等。8. 醫療:用於管理醫療檔案和提供更好的醫療服務。9. 慈善事業:用於捐贈和籌款。10. 游戲:游戲虛擬貨幣的發行管理。
❹ 區塊鏈的加密技術
數字加密技能是區塊鏈技能使用和開展的關鍵。一旦加密辦法被破解,區塊鏈的數據安全性將受到挑戰,區塊鏈的可篡改性將不復存在。加密演算法分為對稱加密演算法和非對稱加密演算法。區塊鏈首要使用非對稱加密演算法。非對稱加密演算法中的公鑰暗碼體制依據其所依據的問題一般分為三類:大整數分化問題、離散對數問題和橢圓曲線問題。第一,引進區塊鏈加密技能加密演算法一般分為對稱加密和非對稱加密。非對稱加密是指集成到區塊鏈中以滿意安全要求和所有權驗證要求的加密技能。非對稱加密通常在加密和解密進程中使用兩個非對稱暗碼,稱為公鑰和私鑰。非對稱密鑰對有兩個特點:一是其間一個密鑰(公鑰或私鑰)加密信息後,只能解密另一個對應的密鑰。第二,公鑰可以向別人揭露,而私鑰是保密的,別人無法通過公鑰計算出相應的私鑰。非對稱加密一般分為三種首要類型:大整數分化問題、離散對數問題和橢圓曲線問題。大整數分化的問題類是指用兩個大素數的乘積作為加密數。由於素數的出現是沒有規律的,所以只能通過不斷的試算來尋找解決辦法。離散對數問題類是指基於離散對數的困難性和強單向哈希函數的一種非對稱分布式加密演算法。橢圓曲線是指使用平面橢圓曲線來計算一組非對稱的特殊值,比特幣就採用了這種加密演算法。非對稱加密技能在區塊鏈的使用場景首要包含信息加密、數字簽名和登錄認證。(1)在信息加密場景中,發送方(記為A)用接收方(記為B)的公鑰對信息進行加密後發送給
B,B用自己的私鑰對信息進行解密。比特幣交易的加密就屬於這種場景。(2)在數字簽名場景中,發送方A用自己的私鑰對信息進行加密並發送給B,B用A的公鑰對信息進行解密,然後確保信息是由A發送的。(3)登錄認證場景下,客戶端用私鑰加密登錄信息並發送給伺服器,伺服器再用客戶端的公鑰解密認證登錄信息。請注意上述三種加密計劃之間的差異:信息加密是公鑰加密和私鑰解密,確保信息的安全性;數字簽名是私鑰加密,公鑰解密,確保了數字簽名的歸屬。認證私鑰加密,公鑰解密。以比特幣體系為例,其非對稱加密機制如圖1所示:比特幣體系一般通過調用操作體系底層的隨機數生成器生成一個256位的隨機數作為私鑰。比特幣的私鑰總量大,遍歷所有私鑰空間獲取比特幣的私鑰極其困難,所以暗碼學是安全的。為便於辨認,256位二進制比特幣私鑰將通過SHA256哈希演算法和Base58進行轉化,構成50個字元長的私鑰,便於用戶辨認和書寫。比特幣的公鑰是私鑰通過Secp256k1橢圓曲線演算法生成的65位元組隨機數。公鑰可用於生成比特幣交易中使用的地址。生成進程是公鑰先通過SHA256和RIPEMD160哈希處理,生成20位元組的摘要成果(即Hash160的成果),再通過SHA256哈希演算法和Base58轉化,構成33個字元的比特幣地址。公鑰生成進程是不可逆的,即私鑰不能從公鑰推導出來。比特幣的公鑰和私鑰通常存儲在比特幣錢包文件中,其間私鑰最為重要。丟掉私鑰意味著丟掉相應地址的所有比特幣財物。在現有的比特幣和區塊鏈體系中,現已依據實踐使用需求衍生出多私鑰加密技能,以滿意多重簽名等愈加靈敏雜亂的場景。
❺ 區塊鏈之加密原理總結(一)
先放一張以太坊的架構圖:
在學習的過程中主要是採用單個模塊了學習了解的,包括P2P,密碼學,網路,協議等。直接開始總結:
秘鑰分配問題也就是秘鑰的傳輸問題,如果對稱秘鑰,那麼只能在線下進行秘鑰的交換。如果在線上傳輸秘鑰,那就有可能被攔截。所以採用非對稱加密,兩把鑰匙,一把私鑰自留,一把公鑰公開。公鑰可以在網上傳輸。不用線下交易。保證數據的安全性。
如上圖,A節點發送數據到B節點,此時採用公鑰加密。A節點從自己的公鑰中獲取到B節點的公鑰對明文數據加密,得到密文發送給B節點。而B節點採用自己的私鑰解密。
2、無法解決消息篡改。
如上圖,A節點採用B的公鑰進行加密,然後將密文傳輸給B節點。B節點拿A節點的公鑰將密文解密。
1、由於A的公鑰是公開的,一旦網上黑客攔截消息,密文形同虛設。說白了,這種加密方式,只要攔截消息,就都能解開。
2、同樣存在無法確定消息來源的問題,和消息篡改的問題。
如上圖,A節點在發送數據前,先用B的公鑰加密,得到密文1,再用A的私鑰對密文1加密得到密文2。而B節點得到密文後,先用A的公鑰解密,得到密文1,之後用B的私鑰解密得到明文。
1、當網路上攔截到數據密文2時, 由於A的公鑰是公開的,故可以用A的公鑰對密文2解密,就得到了密文1。所以這樣看起來是雙重加密,其實最後一層的私鑰簽名是無效的。一般來講,我們都希望簽名是簽在最原始的數據上。如果簽名放在後面,由於公鑰是公開的,簽名就缺乏安全性。
2、存在性能問題,非對稱加密本身效率就很低下,還進行了兩次加密過程。
如上圖,A節點先用A的私鑰加密,之後用B的公鑰加密。B節點收到消息後,先採用B的私鑰解密,然後再利用A的公鑰解密。
1、當密文數據2被黑客攔截後,由於密文2隻能採用B的私鑰解密,而B的私鑰只有B節點有,其他人無法機密。故安全性最高。
2、當B節點解密得到密文1後, 只能採用A的公鑰來解密。而只有經過A的私鑰加密的數據才能用A的公鑰解密成功,A的私鑰只有A節點有,所以可以確定數據是由A節點傳輸過來的。
經兩次非對稱加密,性能問題比較嚴重。
基於以上篡改數據的問題,我們引入了消息認證。經過消息認證後的加密流程如下:
當A節點發送消息前,先對明文數據做一次散列計算。得到一個摘要, 之後將照耀與原始數據同時發送給B節點。當B節點接收到消息後,對消息解密。解析出其中的散列摘要和原始數據,然後再對原始數據進行一次同樣的散列計算得到摘要1, 比較摘要與摘要1。如果相同則未被篡改,如果不同則表示已經被篡改。
在傳輸過程中,密文2隻要被篡改,最後導致的hash與hash1就會產生不同。
無法解決簽名問題,也就是雙方相互攻擊。A對於自己發送的消息始終不承認。比如A對B發送了一條錯誤消息,導致B有損失。但A抵賴不是自己發送的。
在(三)的過程中,沒有辦法解決交互雙方相互攻擊。什麼意思呢? 有可能是因為A發送的消息,對A節點不利,後來A就抵賴這消息不是它發送的。
為了解決這個問題,故引入了簽名。這里我們將(二)-4中的加密方式,與消息簽名合並設計在一起。
在上圖中,我們利用A節點的私鑰對其發送的摘要信息進行簽名,然後將簽名+原文,再利用B的公鑰進行加密。而B得到密文後,先用B的私鑰解密,然後 對摘要再用A的公鑰解密,只有比較兩次摘要的內容是否相同。這既避免了防篡改問題,有規避了雙方攻擊問題。因為A對信息進行了簽名,故是無法抵賴的。
為了解決非對稱加密數據時的性能問題,故往往採用混合加密。這里就需要引入對稱加密,如下圖:
在對數據加密時,我們採用了雙方共享的對稱秘鑰來加密。而對稱秘鑰盡量不要在網路上傳輸,以免丟失。這里的共享對稱秘鑰是根據自己的私鑰和對方的公鑰計算出的,然後適用對稱秘鑰對數據加密。而對方接收到數據時,也計算出對稱秘鑰然後對密文解密。
以上這種對稱秘鑰是不安全的,因為A的私鑰和B的公鑰一般短期內固定,所以共享對稱秘鑰也是固定不變的。為了增強安全性,最好的方式是每次交互都生成一個臨時的共享對稱秘鑰。那麼如何才能在每次交互過程中生成一個隨機的對稱秘鑰,且不需要傳輸呢?
那麼如何生成隨機的共享秘鑰進行加密呢?
對於發送方A節點,在每次發送時,都生成一個臨時非對稱秘鑰對,然後根據B節點的公鑰 和 臨時的非對稱私鑰 可以計算出一個對稱秘鑰(KA演算法-Key Agreement)。然後利用該對稱秘鑰對數據進行加密,針對共享秘鑰這里的流程如下:
對於B節點,當接收到傳輸過來的數據時,解析出其中A節點的隨機公鑰,之後利用A節點的隨機公鑰 與 B節點自身的私鑰 計算出對稱秘鑰(KA演算法)。之後利用對稱秘鑰機密數據。
對於以上加密方式,其實仍然存在很多問題,比如如何避免重放攻擊(在消息中加入 Nonce ),再比如彩虹表(參考 KDF機制解決 )之類的問題。由於時間及能力有限,故暫時忽略。
那麼究竟應該採用何種加密呢?
主要還是基於要傳輸的數據的安全等級來考量。不重要的數據其實做好認證和簽名就可以,但是很重要的數據就需要採用安全等級比較高的加密方案了。
密碼套件 是一個網路協議的概念。其中主要包括身份認證、加密、消息認證(MAC)、秘鑰交換的演算法組成。
在整個網路的傳輸過程中,根據密碼套件主要分如下幾大類演算法:
秘鑰交換演算法:比如ECDHE、RSA。主要用於客戶端和服務端握手時如何進行身份驗證。
消息認證演算法:比如SHA1、SHA2、SHA3。主要用於消息摘要。
批量加密演算法:比如AES, 主要用於加密信息流。
偽隨機數演算法:例如TLS 1.2的偽隨機函數使用MAC演算法的散列函數來創建一個 主密鑰 ——連接雙方共享的一個48位元組的私鑰。主密鑰在創建會話密鑰(例如創建MAC)時作為一個熵來源。
在網路中,一次消息的傳輸一般需要在如下4個階段分別進行加密,才能保證消息安全、可靠的傳輸。
握手/網路協商階段:
在雙方進行握手階段,需要進行鏈接的協商。主要的加密演算法包括RSA、DH、ECDH等
身份認證階段:
身份認證階段,需要確定發送的消息的來源來源。主要採用的加密方式包括RSA、DSA、ECDSA(ECC加密,DSA簽名)等。
消息加密階段:
消息加密指對發送的信息流進行加密。主要採用的加密方式包括DES、RC4、AES等。
消息身份認證階段/防篡改階段:
主要是保證消息在傳輸過程中確保沒有被篡改過。主要的加密方式包括MD5、SHA1、SHA2、SHA3等。
ECC :Elliptic Curves Cryptography,橢圓曲線密碼編碼學。是一種根據橢圓上點倍積生成 公鑰、私鑰的演算法。用於生成公私秘鑰。
ECDSA :用於數字簽名,是一種數字簽名演算法。一種有效的數字簽名使接收者有理由相信消息是由已知的發送者創建的,從而發送者不能否認已經發送了消息(身份驗證和不可否認),並且消息在運輸過程中沒有改變。ECDSA簽名演算法是ECC與DSA的結合,整個簽名過程與DSA類似,所不一樣的是簽名中採取的演算法為ECC,最後簽名出來的值也是分為r,s。 主要用於身份認證階段 。
ECDH :也是基於ECC演算法的霍夫曼樹秘鑰,通過ECDH,雙方可以在不共享任何秘密的前提下協商出一個共享秘密,並且是這種共享秘鑰是為當前的通信暫時性的隨機生成的,通信一旦中斷秘鑰就消失。 主要用於握手磋商階段。
ECIES: 是一種集成加密方案,也可稱為一種混合加密方案,它提供了對所選擇的明文和選擇的密碼文本攻擊的語義安全性。ECIES可以使用不同類型的函數:秘鑰協商函數(KA),秘鑰推導函數(KDF),對稱加密方案(ENC),哈希函數(HASH), H-MAC函數(MAC)。
ECC 是橢圓加密演算法,主要講述了按照公私鑰怎麼在橢圓上產生,並且不可逆。 ECDSA 則主要是採用ECC演算法怎麼來做簽名, ECDH 則是採用ECC演算法怎麼生成對稱秘鑰。以上三者都是對ECC加密演算法的應用。而現實場景中,我們往往會採用混合加密(對稱加密,非對稱加密結合使用,簽名技術等一起使用)。 ECIES 就是底層利用ECC演算法提供的一套集成(混合)加密方案。其中包括了非對稱加密,對稱加密和簽名的功能。
ECC 是 Elliptic Curve Cryptography的簡稱。那麼什麼是橢圓加密曲線呢?Wolfram MathWorld 給出了很標準的定義: 一條橢圓曲線就是一組被 定義的且滿足 的點集。
這個先訂條件是為了保證曲線不包含奇點。
所以,隨著曲線參數a和b的不斷變化,曲線也呈現出了不同的形狀。比如:
所有的非對稱加密的基本原理基本都是基於一個公式 K = k*G。其中K代表公鑰,k代表私鑰,G代表某一個選取的基點。非對稱加密的演算法 就是要保證 該公式 不可進行逆運算( 也就是說G/K是無法計算的 )。
ECC是如何計算出公私鑰呢?這里我按照我自己的理解來描述。
我理解,ECC的核心思想就是:選擇曲線上的一個基點G,之後隨機在ECC曲線上取一個點k(作為私鑰),然後根據k*G計算出我們的公鑰K。並且保證公鑰K也要在曲線上。
那麼k*G怎麼計算呢?如何計算k*G才能保證最後的結果不可逆呢?這就是ECC演算法要解決的。
首先,我們先隨便選擇一條ECC曲線,a = -3, b = 7 得到如下曲線:
在這個曲線上,我隨機選取兩個點,這兩個點的乘法怎麼算呢?我們可以簡化下問題,乘法是都可以用加法表示的,比如2*2 = 2+2,3*5 = 5+5+5。 那麼我們只要能在曲線上計算出加法,理論上就能算乘法。所以,只要能在這個曲線上進行加法計算,理論上就可以來計算乘法,理論上也就可以計算k*G這種表達式的值。
曲線上兩點的加法又怎麼算呢?這里ECC為了保證不可逆性,在曲線上自定義了加法體系。
現實中,1+1=2,2+2=4,但在ECC演算法里,我們理解的這種加法體系是不可能。故需要自定義一套適用於該曲線的加法體系。
ECC定義,在圖形中隨機找一條直線,與ECC曲線相交於三個點(也有可能是兩個點),這三點分別是P、Q、R。
那麼P+Q+R = 0。其中0 不是坐標軸上的0點,而是ECC中的無窮遠點。也就是說定義了無窮遠點為0點。
同樣,我們就能得出 P+Q = -R。 由於R 與-R是關於X軸對稱的,所以我們就能在曲線上找到其坐標。
P+R+Q = 0, 故P+R = -Q , 如上圖。
以上就描述了ECC曲線的世界裡是如何進行加法運算的。
從上圖可看出,直線與曲線只有兩個交點,也就是說 直線是曲線的切線。此時P,R 重合了。
也就是P = R, 根據上述ECC的加法體系,P+R+Q = 0, 就可以得出 P+R+Q = 2P+Q = 2R+Q=0
於是乎得到 2*P = -Q (是不是與我們非對稱演算法的公式 K = k*G 越來越近了)。
於是我們得出一個結論,可以算乘法,不過只有在切點的時候才能算乘法,而且只能算2的乘法。
假若 2 可以變成任意個數進行想乘,那麼就能代表在ECC曲線里可以進行乘法運算,那麼ECC演算法就能滿足非對稱加密演算法的要求了。
那麼我們是不是可以隨機任何一個數的乘法都可以算呢? 答案是肯定的。 也就是點倍積 計算方式。
選一個隨機數 k, 那麼k * P等於多少呢?
我們知道在計算機的世界裡,所有的都是二進制的,ECC既然能算2的乘法,那麼我們可以將隨機數k描 述成二進制然後計算。假若k = 151 = 10010111
由於2*P = -Q 所以 這樣就計算出了k*P。 這就是點倍積演算法 。所以在ECC的曲線體系下是可以來計算乘法,那麼以為這非對稱加密的方式是可行的。
至於為什麼這樣計算 是不可逆的。這需要大量的推演,我也不了解。但是我覺得可以這樣理解:
我們的手錶上,一般都有時間刻度。現在如果把1990年01月01日0點0分0秒作為起始點,如果告訴你至起始點為止時間流逝了 整1年,那麼我們是可以計算出現在的時間的,也就是能在手錶上將時分秒指針應該指向00:00:00。但是反過來,我說現在手錶上的時分秒指針指向了00:00:00,你能告訴我至起始點算過了有幾年了么?
ECDSA簽名演算法和其他DSA、RSA基本相似,都是採用私鑰簽名,公鑰驗證。只不過演算法體系採用的是ECC的演算法。交互的雙方要採用同一套參數體系。簽名原理如下:
在曲線上選取一個無窮遠點為基點 G = (x,y)。隨機在曲線上取一點k 作為私鑰, K = k*G 計算出公鑰。
簽名過程:
生成隨機數R, 計算出RG.
根據隨機數R,消息M的HASH值H,以及私鑰k, 計算出簽名S = (H+kx)/R.
將消息M,RG,S發送給接收方。
簽名驗證過程:
接收到消息M, RG,S
根據消息計算出HASH值H
根據發送方的公鑰K,計算 HG/S + xK/S, 將計算的結果與 RG比較。如果相等則驗證成功。
公式推論:
HG/S + xK/S = HG/S + x(kG)/S = (H+xk)/GS = RG
在介紹原理前,說明一下ECC是滿足結合律和交換律的,也就是說A+B+C = A+C+B = (A+C)+B。
這里舉一個WIKI上的例子說明如何生成共享秘鑰,也可以參考 Alice And Bob 的例子。
Alice 與Bob 要進行通信,雙方前提都是基於 同一參數體系的ECC生成的 公鑰和私鑰。所以有ECC有共同的基點G。
生成秘鑰階段:
Alice 採用公鑰演算法 KA = ka * G ,生成了公鑰KA和私鑰ka, 並公開公鑰KA。
Bob 採用公鑰演算法 KB = kb * G ,生成了公鑰KB和私鑰 kb, 並公開公鑰KB。
計算ECDH階段:
Alice 利用計算公式 Q = ka * KB 計算出一個秘鑰Q。
Bob 利用計算公式 Q' = kb * KA 計算出一個秘鑰Q'。
共享秘鑰驗證:
Q = ka KB = ka * kb * G = ka * G * kb = KA * kb = kb * KA = Q'
故 雙方分別計算出的共享秘鑰不需要進行公開就可採用Q進行加密。我們將Q稱為共享秘鑰。
在以太坊中,採用的ECIEC的加密套件中的其他內容:
1、其中HASH演算法採用的是最安全的SHA3演算法 Keccak 。
2、簽名演算法採用的是 ECDSA
3、認證方式採用的是 H-MAC
4、ECC的參數體系採用了secp256k1, 其他參數體系 參考這里
H-MAC 全程叫做 Hash-based Message Authentication Code. 其模型如下:
在 以太坊 的 UDP通信時(RPC通信加密方式不同),則採用了以上的實現方式,並擴展化了。
首先,以太坊的UDP通信的結構如下:
其中,sig是 經過 私鑰加密的簽名信息。mac是可以理解為整個消息的摘要, ptype是消息的事件類型,data則是經過RLP編碼後的傳輸數據。
其UDP的整個的加密,認證,簽名模型如下:
❻ 區塊鏈在金融領域的應用
一、區塊鏈的應用與發展
部分互聯網、互聯網初創企業以及傳統金融行業開始在部分項目進行嘗試應用
二、國內金融機構試水區塊鏈
各個金融機構紛紛試水,基本上都處於概念實驗階段,尚未大規模商用。
三、區塊銀隱鏈在金融領域應用的全景圖
四、代筆
五、數字票據
票據是金融市場中一種重要的金融產品,它具備支付和融資雙重功能,具有價值高、承擔銀行信用或商業信轎塵用等特點。票據一經開立,其票面金額、日期等重要信息不得更改。票據還具備流通屬性,在特定生命周期內可進行承兌、背書、貼現、轉貼現、托收等交易,交易行為一旦完成,交易就不可被撤銷。票據在流通上有兩個特點:一是票據流通主要發生在銀行承兌匯票,商業承兌匯票的數量和流通量都較少;二是由各銀行獨立對票據業務進行授信和風險控制,單個銀行的風控結果可能會影響到票據市場交易鏈條上的其他參與者。
數字票據交易平台實驗性生產系統使用SDC(Smart Draft Chain,數金鏈)區塊鏈技術,藉助同態加密、零閉搏禪知識證明等密碼學演算法進行隱私保護,通過實用拜占庭容錯協議(PBFT)進行共識,採用看穿機制提供數據監測。
實驗性生產系統包含票交所、銀行、企業和監控四個子系統:票交所子系統負責對區塊鏈進行管理和對數字票據業務進行監測;銀行子系統具有數字票據的承兌簽收、貼現簽收、轉貼現、托收清償等業務功能;企業子系統具有數字票據的出票、承兌、背書、貼現、提示付款等業務功能;監控子系統實時監控區塊鏈狀態和業務發生情況
六、
❼ 知鏈區塊鏈金融應用實踐平台成績怎麼算
1. 工作量證明(PoW)
中本聰在2009年提出的比特幣(Bitcoin)是區塊鏈技術最早的應用,其採用PoW作為共識演算法,其核心思想是節點間通過哈希算力的競爭來獲取記賬權和比特幣獎勵。PoW中,不同節點根據特定信息競爭計算一個數學問題的解,這個數學問題很難求解,但卻容易對結果進行驗證,最先解決這個數學問題的節點可以創建下一個區塊並獲得一定數量的幣獎勵。中本聰在比特幣中採用了HashCash[4]機制設計這一數學問題。本節將以比特幣採用的PoW演算法為例進行說明,PoW的共識步驟如下:
節點收集上一個區塊產生後全網待確認的交易,將符合條件的交易記入交易內存池,然後更新並計算內存池中交易的Merkle根的值,並將其寫入區塊頭部;
在區塊頭部填寫如表1.1所示的區塊版本號、前一區塊的哈希值、時間戳、當前目標哈希值和隨機數等信息;
表1.1 區塊頭部信息
隨機數nonce在0到232之間取值,對區塊頭部信息進行哈希計算,當哈希值小於或等於目標值時,打包並廣播該區塊,待其他節點驗證後完成記賬;
一定時間內如果無法計算出符合要求的哈希值,則重復步驟2。如果計算過程中有其他節點完成了計算,則從步驟1重新開始。
比特幣產生區塊的平均時間為10分鍾,想要維持這一速度,就需要根據當前全網的計算能力對目標值(難度)進行調整[5]。難度是對計算產生符合要求的區塊困難程度的描述,在計算同一高度區塊時,所有節點的難度都是相同的,這也保證了挖礦的公平性。難度與目標值的關系為:
難度值=最大目標值/當前目標值 (1.1)
其中最大目標值和當前目標值都是256位長度,最大目標值是難度為1時的目標值,即2224。假設當前難度為,算力為,當前目標值為,發現新區塊的平均計算時間為,則
根據比特幣的設計,每產生2016個區塊後(約2周)系統會調整一次當前目標值。節點根據前2016個區塊的實際生產時間,由公式(1.4)計算出調整後的難度值,如果實際時間生產小於2周,增大難度值;如果實際時間生產大於2周,則減小難度值。根據最長鏈原則,在不需要節點同步難度信息的情況下,所有節點在一定時間後會得到相同的難度值。
在使用PoW的區塊鏈中,因為網路延遲等原因,當同一高度的兩個區塊產生的時間接近時,可能會產生分叉。即不同的礦工都計算出了符合要求的某一高度的區塊,並得到與其相近節點的確認,全網節點會根據收到區塊的時間,在先收到的區塊基礎上繼續挖礦。這種情況下,哪個區塊的後續區塊先出現,其長度會變得更長,這個區塊就被包括進主鏈,在非主鏈上挖礦的節點會切換到主鏈繼續挖礦。
PoW共識演算法以算力作為競爭記賬權的基礎,以工作量作為安全性的保障,所有礦工都遵循最長鏈原則。新產生的區塊包含前一個區塊的哈希值,現存的所有區塊的形成了一條鏈,鏈的長度與工作量成正比,所有的節點均信任最長的區塊鏈。如果當某一組織掌握了足夠的算力,就可以針對比特幣網路發起攻擊。當攻擊者擁有足夠的算力時,能夠最先計算出最新的區塊,從而掌握最長鏈。此時比特幣主鏈上的區塊大部分由其生成,他可以故意拒絕某些交易的確認和進行雙花攻擊,這會對比特幣網路的可信性造成影響,但歷派這一行為同樣會給攻擊者帶來損失。通過求解一維隨機遊走問題,可以獲得惡意節點攻擊成功的概率和算力之間的關系:
圖1.1 攻擊者算力與攻擊成功概率
2. 權益證明(PoS)
隨著參與比特幣挖礦的人越來越多,PoW的許多問題逐漸顯現,例如隨著算力競爭迅速加劇,獲取代幣需要消耗的能源大量增加,記賬權也逐漸向聚集了大量算力的「礦池」集中[6-9]。為此,研究者嘗試採用新的機製取代工作量證明。PoS的概念在最早的比特幣項目中曾被提及,但由於穩健性等原因沒被使用。PoS最早的應用是點點幣(肢肢賀PPCoin),PoS提出了幣齡的概念,幣齡是持有的代幣與持有時間乘積的累加,計算如公式(1.4)所示。利用幣齡競爭取代算力競爭,使區塊鏈的證明不再僅僅依靠工作量,有效地解決了PoW的資源浪費問題。
其中持有時間為某個幣距離最近一次在網路上交易的時間,每個節點持有的幣齡越長,則其在網路中權益越多,同時幣的持有人還會根據幣齡來獲得一定的收益。點點幣的設計中,沒有完全脫離工作量證明,PoS機制的記賬權的獲得同樣需要進行簡單的哈希計算:
其中proofhash是由權重因子、未飢逗消費的產出值和當前時間的模糊和得到的哈希值,同時對每個節點的算力進行了限制,可見幣齡與計算的難度成反比。在PoS中,區塊鏈的安全性隨著區塊鏈的價值增加而增加,對區塊鏈的攻擊需要攻擊者積攢大量的幣齡,也就是需要對大量數字貨幣持有足夠長的時間,這也大大增加了攻擊的難度。與PoW相比,採用PoS的區塊鏈系統可能會面對長程攻擊(Long Range Attack)和無利害攻擊(Nothing at Stake)。
除了點點幣,有許多幣也使用了PoS,但在記賬權的分配上有著不同的方法。例如,未來幣(Nxt)和黑幣(BlackCion)結合節點所擁有的權益,使用隨機演算法分配記賬權。以太坊也在逐步採用PoS代替PoW。
3. 委託權益證明(DPoS)
比特幣設計之初,希望所有挖礦的參與者使用CPU進行計算,算力與節點匹配,每一個節點都有足夠的機會參與到區塊鏈的決策當中。隨著技術的發展,使用GPU、FPGA、ASIC等技術的礦機大量出現,算力集中於擁有大量礦機的參與者手中,而普通礦工參與的機會大大減小。
採用DPoS的區塊鏈中,每一個節點都可以根據其擁有的股份權益投票選取代表,整個網路中參與競選並獲得選票最多的n個節點獲得記賬權,按照預先決定的順序依次生產區塊並因此獲得一定的獎勵。競選成功的代表節點需要繳納一定數量的保證金,而且必須保證在線的時間,如果某時刻應該產生區塊的節點沒有履行職責,他將會被取消代表資格,系統將繼續投票選出一個新的代表來取代他。
DPoS中的所有節點都可以自主選擇投票的對象,選舉產生的代表按順序記賬,與PoW及PoS相比節省了計算資源,而且共識節點只有確定的有限個,效率也得到了提升。而且每個參與節點都擁有投票的權利,當網路中的節點足夠多時,DPoS的安全性和去中心化也得到了保證。
4. 實用拜占庭容錯演算法(PBFT)
在PBFT演算法中,所有節點都在相同的配置下運行,且有一個主節點,其他節點作為備份節點。主節點負責對客戶端的請求進行排序,按順序發送給備份節點。存在視圖(View)的概念,在每個視圖中,所有節點正常按照處理消息。但當備份節點檢查到主節點出現異常,就會觸發視圖變換(View Change)機制更換下一編號的節點為主節點,進入新的視圖。PBFT中客戶端發出請求到收到答復的主要流程如圖4.1所示[10] [11],伺服器之間交換信息3次,整個過程包含以下五個階段:
圖4.1 PBFT執行流程
目前以PBFT為代表的拜占庭容錯演算法被許多區塊鏈項目所使用。在聯盟鏈中,PBFT演算法最早是被Hyper ledger Fabric項目採用。Hyperledger Fabric在0.6版本中採用了PBFT共識演算法,授權和背書的功能集成到了共識節點之中,所有節點都是共識節點,這樣的設計導致了節點的負擔過於沉重,對TPS和擴展性有很大的影響。1.0之後的版本都對節點的功能進行了分離,節點分成了三個背書節點(Endorser)、排序節點(Orderer)和出塊節點(Committer),對節點的功能進行了分離,一定程度上提高了共識的效率。
Cosmos項目使用的Tendermint[12]演算法結合了PBFT和PoS演算法,通過代幣抵押的方式選出部分共識節點進行BFT的共識,其減弱了非同步假設並在PBFT的基礎上融入了鎖的概念,在部分同步的網路中共識節點能夠通過兩階段通信達成共識。系統能夠容忍1/3的故障節點,且不會產生分叉。在Tendermint的基礎上,Hotstuff[13]將區塊鏈的塊鏈式結構和BFT的每一階段融合,每階段節點間對前一區塊簽名確認與新區塊的構建同時進行,使演算法在實現上更為簡單,Hotstuff還使用了門限簽名[14]降低演算法的消息復雜度。
5. Paxos與Raft
共識演算法是為了保障所存儲信息的准確性與一致性而設計的一套機制。在傳統的分布式系統中,最常使用的共識演算法是基於Paxos的演算法。在拜占庭將軍問題[3]提出後,Lamport在1990年提出了Paxos演算法用於解決特定條件下的系統一致性問題,Lamport於1998年重新整理並發表Paxos的論文[15]並於2001對Paxos進行了重新簡述[16]。隨後Paxos在一致性演算法領域占據統治地位並被許多公司所採用,例如騰訊的Phxpaxos、阿里巴巴的X-Paxos、亞馬遜的AWS的DynamoDB和谷歌MegaStore[17]等。這一類演算法能夠在節點數量有限且相對可信任的情況下,快速完成分布式系統的數據同步,同時能夠容忍宕機錯誤(Crash Fault)。即在傳統分布式系統不需要考慮參與節點惡意篡改數據等行為,只需要能夠容忍部分節點發生宕機錯誤即可。但Paxos演算法過於理論化,在理解和工程實現上都有著很大的難度。Ongaro等人在2013年發表論文提出Raft演算法[18],Raft與Paxos同樣的效果並且更便於工程實現。
Raft中領導者占據絕對主導地位,必須保證伺服器節點的絕對安全性,領導者一旦被惡意控制將造成巨大損失。而且交易量受到節點最大吞吐量的限制。目前許多聯盟鏈在不考慮拜占庭容錯的情況下,會使用Raft演算法來提高共識效率。
6. 結合VRF的共識演算法
在現有聯盟鏈共識演算法中,如果參與共識的節點數量增加,節點間的通信也會增加,系統的性能也會受到影響。如果從眾多候選節點中選取部分節點組成共識組進行共識,減少共識節點的數量,則可以提高系統的性能。但這會降低安全性,而且候選節點中惡意節點的比例越高,選出來的共識組無法正常運行的概率也越高。為了實現從候選節點選出能夠正常運行的共識組,並保證系統的高可用性,一方面需要設計合適的隨機選舉演算法,保證選擇的隨機性,防止惡意節點對系統的攻擊。另一方面需要提高候選節點中的誠實節點的比例,增加誠實節點被選進共識組的概率。
當前在公有鏈往往基於PoS類演算法,抵押代幣增加共識節點的准入門檻,通過經濟學博弈增加惡意節點的作惡成本,然後再在部分通過篩選的節點中通過隨機選舉演算法,從符合條件的候選節點中隨機選舉部分節點進行共識。
Dodis等人於1999年提出了可驗證隨機函數(Verifiable Random Functions,VRF)[19]。可驗證隨機函數是零知識證明的一種應用,即在公私鑰體系中,持有私鑰的人可以使用私鑰和一條已知信息按照特定的規則生成一個隨機數,在不泄露私鑰的前提下,持有私鑰的人能夠向其他人證明隨機數生成的正確性。VRF可以使用RSA或者橢圓曲線構建,Dodis等人在2002年又提出了基於Diffie-Hellman 困難性問題的可驗證隨機函數構造方法[20],目前可驗證隨機函數在密鑰傳輸領域和區塊鏈領域都有了應用[21]。可驗證隨機函數的具體流程如下:
在公有鏈中,VRF已經在一些項目中得到應用,其中VRF多與PoS演算法結合,所有想要參與共識的節點質押一定的代幣成為候選節點,然後通過VRF從眾多候選節點中隨機選出部分共識節點。Zilliqa網路的新節點都必須先執行PoW,網路中的現有節點驗證新節點的PoW並授權其加入網路。區塊鏈項目Ontology設計的共識演算法VBFT將VRF、PoS和BFT演算法相結合,通過VRF在眾多候選節點中隨機選出共識節點並確定共識節點的排列順序,可以降低惡意分叉對區塊鏈系統的影響,保障了演算法的公平性和隨機性。圖靈獎獲得者Micali等人提出的Algorand[22]將PoS和VRF結合,節點可以採用代幣質押的方式成為候選節點,然後通過非互動式的VRF演算法選擇部分節點組成共識委員會,然後由這部分節點執行類似PBFT共識演算法,負責交易的快速驗證,Algorand可以在節點為誠實節點的情況下保證系統正常運行。Kiayias等人提出的Ouroboros[23]在第二個版本Praos[24]引入了VRF代替偽隨機數,進行分片中主節點的選擇。以Algorand等演算法使用的VRF演算法為例,主要的流程如下:
公有鏈中設計使用的VRF中,節點被選為記賬節點的概率往往和其持有的代幣正相關。公有鏈的共識節點范圍是無法預先確定的,所有滿足代幣持有條件的節點都可能成為共識節點,系統需要在數量和參與度都隨機的節點中選擇部分節點進行共識。而與公有鏈相比,聯盟鏈參與共識的節點數量有限、節點已知,這種情況下聯盟鏈節點之間可以通過已知的節點列表進行交互,這能有效防止公有鏈VRF設計時可能遇到的女巫攻擊問題。
7. 結合分片技術的公式演算法
分片技術是資料庫中的一種技術,是將資料庫中的數據切成多個部分,然後分別存儲在多個伺服器中。通過數據的分布式存儲,提高伺服器的搜索性能。區塊鏈中,分片技術是將交易分配到多個由節點子集組成的共識組中進行確認,最後再將所有結果匯總確認的機制。分片技術在區塊鏈中已經有一些應用,許多區塊鏈設計了自己的分片方案。
Luu等人於2017年提出了Elastico協議,最先將分片技術應用於區塊鏈中[25]。Elastico首先通過PoW演算法競爭成為網路中的記賬節點。然後按照預先確定的規則,這些節點被分配到不同的分片委員會中。每個分片委員會內部執行PBFT等傳統拜占庭容錯的共識演算法,打包生成交易集合。在超過的節點對該交易集合進行了簽名之後,交易集合被提交給共識委員會,共識委員會在驗證簽名後,最終將所有的交易集合打包成區塊並記錄在區塊鏈上。
Elastico驗證了分片技術在區塊鏈中的可用性。在一定規模內,分片技術可以近乎線性地拓展吞吐量。但Elastico使用了PoW用於選舉共識節點,這也導致隨機數產生過程及PoW競爭共識節點的時間過長,使得交易延遲很高。而且每個分片內部採用的PBFT演算法通訊復雜度較高。當單個分片中節點數量較多時,延遲也很高。
在Elastico的基礎上,Kokoris-Kogias等人提出OmniLedger[26],用加密抽簽協議替代了PoW選擇驗證者分組,然後通過RandHound協議[27]將驗證者歸入不同分片。OmniLedger。OmniLedger在分片中仍然採用基於PBFT的共識演算法作為分片中的共識演算法[28],並引入了Atomix協議處理跨分片的交易,共識過程中節點之間通信復雜度較高。當分片中節點數量增多、跨分片交易增多時,系統TPS會顯著下降。
Wang等人在2019年提出了Monoxide[29]。在PoW區塊鏈系統中引入了分片技術,提出了連弩挖礦演算法(Chu ko-nu mining algorithm),解決了分片造成的算力分散分散問題,使得每個礦工可以同時在不同的分片進行分片,在不降低安全性的情況下提高了PoW的TPS。
❽ 區塊鏈的應用方面
區塊鏈主要應用的范圍包括:數字貨幣、金融資產的交易結算、數字政務、存證防偽數據服務等領域。區塊鏈是將數據區塊有序鏈接,每個區塊負責記錄一個文件數據,並進行加密來確保數據不能夠被修改和偽造的資料庫技術。
區塊鏈本質上是一個應用了密碼學技術的多方參與、共同維護、持續增長的分布式資料庫系統也稱為分布式共享賬本。共享賬本中的每一頁就是一個區塊,每一個區塊寫滿了交易記錄,區塊鏈技術匿名性、去中心化、公開透明、不可篡改等特點讓其備受企業的青睞,得到了更加廣泛的應用嘗試。
區塊鏈能夠提供信任機制,具備改變金融基礎架構的潛力,各類金融資產如股權、債券、票據、倉單、基金份額等都可以被整合到區塊鏈技術體系中,成為鏈上的數字資產,在區塊鏈上進行存儲、轉移和交易。
區塊鏈技術的去中心化,能夠降低交易成本,使金融交易更加便捷、直觀和安全。區塊鏈技術與金融業相結合,必然會創造出越來越多的業務模式、服務場景、業務流程和金融產品,從而給金融市場、金融機構、金融服務及金融業態發展帶來更多影響。隨著區塊鏈技術的改進及區塊鏈技術與其他金融科技的結合,區塊鏈技術將逐步適應大規模金融場景的應用。
傳統的公共服務依賴於有限的數據維度,獲得的信息可能不夠全面且有一定的滯後性。區塊鏈不可篡改的特性使鏈上的數字化證明可信度極高,在產權、公證及公益等領域都可以以此建立全新的認證機制,改善公共服務領域的管理水平。
公益流程中的相關信息如捐贈項目、募集明細、資金流向、受助人反饋等,均可存放於區塊鏈上,在滿足項目參與者隱私保護及其他相關法律法規要求的前提下,有條件地進行公開公示,方便公眾和社會監督。
利用區塊鏈可追溯、不可篡改的特性,可以確保數據來源的真實性,同時保證數據的不可偽造性,區塊鏈技術將從根本上改變信息傳播路徑的安全問題。
區塊鏈對於信息安全領域體現在以下三點:
區塊鏈的分布式存儲架構則會令黑客無所適從,已經有公司著手開發基於區塊鏈的分布式互聯網域名系統,絕除當前 DNS 注冊弊病的禍根,使網路系統更加干凈透明。
區塊鏈+物聯網,可以讓物聯網上的每個設備獨立運行,整個網路產生的信息可以通過區塊鏈的智能合約進行保障。
安全性:傳統物聯網設備極易遭受攻擊,數據易受損失且維護費用高昂。物聯網設備典型的信息安全風險問題包括,固件版本過低、缺少安全補丁、存在許可權漏洞、設備網路埠過多、未加密的信息傳輸等。區塊鏈的全網節點驗證的共識機制、不對稱加密技術及數據分布式存儲將大幅降低黑客攻擊的風險。
可信性:傳統物聯友毀網由中心化的雲伺服器進行管控,因設備的安全性和中心化伺服器的不透明性,用戶的隱私數據難以得到有效保障。而區塊鏈是一個分布式賬簿,各區塊既相侍尺互聯系又有各自獨立的工作能力,保證鏈上信息不會被隨意篡改。因此分布式賬本可以為物聯網提供信任、所有權記錄、透明性和通信支持。
效益性:受限於雲服務和維護成本,物聯網難以實現大規模商用。傳統物聯網實現物物通信是經由中心化的雲伺服器。該模式的弊端是,隨著接入設備的增多,伺服器面臨的負載也更多,需要企業投入大量資金來維持物聯網體系的正常運轉。
而區塊鏈技術可以直接實現點對點交易,省略了中間其他中介機構或人員的勞務支出,可以有效減少第三方服務所產生的費用,實現效益最大化。
供應鏈由眾多參與主體構成,存在大量交互協作,信息被離散地老告高保存在各自的系統中,缺乏透明度。信息的不流暢導致各參與主體難以准確地了解相關事項的實時狀況及存在問題,影響供應鏈的協同效率。當各主體間出現糾紛時,舉證和追責耗時費力。
區塊鏈可以使數據在各主體之間公開透明,從而在整個供應鏈條上形成完整、流暢、不可篡改的信息流。這可以確保各主體及時發現供應鏈系統運行過程中產生的問題,並有針對性地找到解決方案,進而提升供應鏈管理的整體效率。
去年宣布合夥使用區塊鏈建立一個概念證明來簡化汽車租賃過程,並把它建成一個「點擊,簽約,和駕駛的過程。未來的客戶選擇他們想要租賃的汽車,進入區塊鏈的公共總賬;然後,坐在駕駛座上,客戶簽訂租賃協議和保險政策,而區塊鏈則是同步更新信息。這不是個想像,對於汽車銷售和汽車登記來說,這種類型的過程也可能會發展為現實。
很多年來,許多公司致力於使得買進、賣出、交易股票的過程變得容易。新興區塊鏈創業公司認為,區塊鏈技術可以使這一過程更加安全和自動化,並且比以往任何解決方案與此同時,區塊鏈初創公司 Chain 正和納斯達克合作,通過區塊鏈實現私有公司的股權交
政務信息、項目招標等信息公開透明,政府工作通常受公眾關注和監督,由於區塊鏈技術能夠保證信息的透明性和不可更改性,對政府透明化管理的落實有很大的作用。政府項目招標存在一定的信息不透明性,而企業在密封投標過程中也存在信息泄露風險。區塊鏈能夠保證投標信息無法篡改,並能保證信息的透明性,在彼此不信任的競爭者之間形成信任共只。並能夠通過區塊鏈安排後續的智能合約,保證項目的建設進度,一定程度上防止了腐敗的滋生。
區塊鏈技術應用還有很多很多,這只是區塊鏈應用的一下支點。未來區塊鏈技術將應用各個地方