鏈客,專爲開發者而生,有問必答!算法
此文章來自鏈客區塊鏈技術問答社區,未經容許拒絕轉載。數據庫
在信息網絡化的大背景下,當須要與不熟悉的對手方進行價值交換活動時,人們如何作才能防止不會遭受惡意欺騙,從而作出準確的決策?區塊鏈技術則正能夠解決這一問題——它提供了一種無需信任單個節點、還能建立共識網絡的方法。完備可追溯、去中心化和去信用化是區塊鏈技術的三大特色。區塊鏈的全部核心技術均圍繞這三大問題設計。安全
1. 區塊鏈的結構設計保證了其記錄數據完備可追溯服務器
區塊鏈是由「區塊+鏈」構成。區塊(block),是指存放已記錄數據的文件,裏面按時間前後順序記錄了已發生的全部價值交換活動。每一個區塊均由三部分構成:本區塊的ID(本區塊塊大小、生成時間等全部信息)、全部交易單(每一筆交易的詳細狀況)與在其前後的區塊ID(即先後區塊中全部價值交換信息通過算法壓縮後造成的一個字符串)。區塊的生成時間由系統設定,一般平均每幾分鐘會生成一個區塊。因爲每一個區塊中都包括了前一個區塊和後一個區塊的ID,這種設計使得每一個區塊都能找到其先後節點,從而能夠一直倒推至起始節點,造成一條完整的交易鏈條,即構成區塊鏈。網絡
「區塊」+「鏈」=完整歷史:從第一個區塊開始,到最新產生的區塊爲止,區塊鏈上存儲了系統所有的歷史數據。「區塊」+「鏈」=時間戳(time stamp):區塊鏈讓全網全部節點都在每個區塊上蓋一個時間戳來記帳,表示這個信息是這個時間寫入的,造成了一個不可篡改、不可僞造的數據庫。時間戳能夠證實某人在某天確實作過某事,能夠證實某項活動的最早創造者是誰。任何事情的「存在性」證實變得十分簡單,區塊鏈上的每一條交易數據,均可以經過鏈式結構追本溯源,一筆一筆進行驗證。架構
2. 區塊鏈使用的對等網絡技術可實現去中心化區塊鏈
區塊鏈存儲數據時使用的是對等網絡技術(peer-to-peer,P2P,又稱點對點技術),是沒有中心服務器、依靠用戶羣交換信息的互聯網體系。與有中心服務器的中央網絡系統不一樣,對等網絡的每一個用戶端既是一個節點,也有服務器的功能。網絡中的資源和服務分散在全部節點上,信息的傳輸和服務的實現都直接在結點之間進行,能夠無需中間環節和服務器的介入。加密
P2P架構天生具備耐攻擊、高容錯的優勢。因爲服務是分散在各個結點之間進行的,部分結點或網絡遭到破壞對其餘部分的影響很小。對等網絡技術要求各節點「人人皆兵」。對等網絡設計了一整套協議機制,讓全網每個節點在參與記錄的同時也來驗證其餘節點記錄結果的正確性。spa
對等網絡技術經過「鏈式防守」保障數據安全。對等網絡讓數據能實時記錄的同時,並在每個參與數據存儲的網絡節點中不斷實時更新,這就極大地提升了數據庫的安全性。即便個別節點發生故障(如數據丟失、遭到黑客攻擊等),整個數據庫系統也不會受到任何影響,由於其餘節點存儲的數據依然可用。設計
3. 區塊鏈使用的非對稱加密技術可實現去信用化
區塊鏈使用了密碼學中的「非對稱加密」,解決了節點間的相互信任問題。所謂非對稱加密,是指咱們在「加密」和「解密」的過程當中分別使用兩個密碼,這兩個密碼具備非對稱的特色。加密時的密碼(被稱爲公鑰)和解密時的密碼(被稱爲私鑰)是一對:若是用公鑰對數據進行加密,只有用對應的私鑰才能解密,從而獲取對應的數據價值;若是用私鑰對數據進行簽名,那麼只有用對應的公鑰才能驗證簽名,驗證信息的發出者是私鑰持有者。
在中心化的系統中,咱們只須要向中介組織證實本身身份,便可進行交易。例如,咱們在銀行系統進行交易時,只需輸入密碼,就能證實本身是帳戶主人,支配帳戶內的資產。而在區塊鏈的系統中,因爲沒有中心節點,任何節點之間的權利都是平等的。這就意味着,想要證實「我是張三」,就必須向全網全部節點亮出證據,即讓全網全部節點都相信我擁有「張三的密碼」,但還不能讓他們知道密碼是什麼。
非對稱加密就是能達到這一效果的「神器」。當甲把某項資產轉移給乙時,他使用乙的公鑰對交易進行加密,而後將交易信息向全網公開,該交易惟有使用乙的私鑰才能打開。使用橢圓離散對數的非對稱加密算法很是安全,在不擁有私鑰的狀況下,破解難度極高,可能性幾乎爲零。所以,當乙解開了交易密碼後,便可證實本身是資產的擁有者,並獲得全網承認與記錄。可見,完善的加密技術保證了,咱們無需辨別交易對方是「好人」仍是「壞人」,也不須要第三方機構對交易進行信用背書,就可放心地與任何對手方進行交易。區塊鏈憑藉其嚴謹的加密算法與認證體系,真正實現了去信用化。
區塊鏈應用在哪些地方
管比特幣是區塊鏈技術最著名也是最成功的應用,但區塊鏈的用途很是廣闊。咱們甚至能夠認爲,區塊鏈具有顛覆一切行業的可能性!近年來,區塊鏈應用已經從第一代的比特幣,進化到了第二代的支付清算、證券交易、醫療、物流、政務服務、博彩娛樂等各個領域。
1. 支付清算
因爲區塊鏈可摒棄中轉銀行的角色,實現點到點快速且成本低廉的支付,所以在支付清算尤爲是跨境支付行業有着顯著的優點。經過區塊鏈平臺,不但可繞過中轉銀行,減小中轉費用,還因區塊鏈安全、透明、低風險的特性,提升了跨境匯款的安全性與清算速度,大大加快資金利用率。
2. 證券交易
證券交易市場是很是適合區塊鏈技術的應用領域。傳統的證券交易須要通過中央結算機構、銀行、證券公司和交易所這四大機構協調工做,才能完成股票交易,不只效率低、並且成本高。引入區塊鏈後,就可獨立地完成一條龍式服務。目前,美國納斯達克與英國倫敦證券交易所均在私人股權交易領域開始試水區塊鏈應用。納斯達克在2015年10月正式推出了它的區塊鏈平臺Nasdaq Linq。經過Nasdaq Linq進行股權交易的用戶們將享有一種「數字化」的全部權。
3. 醫療
醫療領域是除了金融領域外區塊鏈應用的第二大領域。因爲包括病歷在內的不少用戶資料極具私密性,這就須要很高的安全措施進行信息保護。然而,當前中心化管理的信息系統在各種網絡攻擊下愈加力不從心,容易出現大規模數據泄漏問題。即使是安全技術很高、採用封閉系統的蘋果公司,也出現屢次數據泄漏,形成惡劣影響。
4. 物流
區塊鏈技術能夠記錄貨物從發出到接受過程當中的全部環節。經過建立共識網絡,能直接定位到快遞中間環節的問題所在,也能確保信息的可追蹤性,從而避免快遞爆倉丟包、誤領錯領等問題的發生,也可有效促進物流實名制的落實。快遞交接須要雙方私鑰簽名,每一個快遞員或快遞點都有本身的私鑰,是否簽收或交付只須要查下區塊鏈便可。最終用戶沒有收到快遞就沒有簽收,快遞員沒法僞造簽名。這樣便可杜絕快遞員經過僞造簽名來逃避考覈,減小用戶的投訴。
當前區塊鏈技術面臨的挑戰
儘管區塊鏈實現了堪稱「革命性」的技術突破,但質疑聲音一直很多。區塊鏈缺點主要集中在技術落地時的硬件問題:
1. 交易速度
區塊鏈技術的交易速度與區塊副本數量顯著負相關,區塊節點越多,交易速度越慢。目前比特幣每秒最多隻能執行7筆交易,即便是技術相對領先的Hyper Ledger方案每秒也只能執行200到300筆交易,這與中心化體系的運算處理速度相差較遠。
2. 節點維護激勵
區塊鏈網絡的穩定運營須要必定量的節點保持接入到網絡中。然而,節點的運行有必定成本,這就須要有合理的激勵機制來吸引節點參與,確保交易被記錄和維護。目前,這種激勵機制並未造成,節點的參與更可能是靠自願或隨機性,並未造成一個有序的規則。
3. 達成數據共識的成本
在開放網絡環境下,因爲多個節點均可以記錄新的區塊,這就須要解決區塊衝突和數據一致性問題,即「拜占庭將軍問題」。要維持區塊鏈數據的安全性與可靠性,就必須保證全球多個節點同時參與記帳,但多個節點的數據共享過程實際上也是一個高耗能的過程。