區塊鏈是基于密碼學原理而不是基于信用,使得互聯網上任何達成一致的交易雙方直接支付,從而不需要第三方信用中介機構的參與。本質上,區塊鏈是一個分布式賬本,一種通過去中心化、去信任的方式集體維護一個可靠數據庫的技術方案,是分布式數據存儲、點對點傳輸、共識機制、加密算法等計算機技術的新型應用模式。
(一)區塊鏈的基礎架構和模式。區塊鏈系統由數據層、網絡層、共識層、激勵層、合約層和應用層組成,包含了從底層數據結構到共識機制到頂層應用協議的眾多內容。其中,數據層封裝了底層數據區塊以及相關的數據加密和時間戳等技術;網絡層則包括分布式組網機制、數據傳播機制和數據驗證機制等;共識層主要封裝網絡節點的各類共識算法;激勵層將經濟因素集成到
區塊鏈技術體系中來,主要包括經濟激勵的發行機制和分配機制等;合約層主要封裝各類腳本、算法和智能合約,是區塊鏈可編程特性的基礎;應用層則封裝了區塊鏈的各種應用場景和案例。區塊鏈系統每層分別完成一項核心功能,各層之間互相配合,實現一個去中心化的信任機制。可以說,區塊鏈技術最具代表性的創新點即為基于時間戳的鏈式區塊結構、分布式節點的共識機制、基于共識算力的經濟激勵和靈活可編程的智能合約。
按參與對象范圍的不同,區塊鏈可粗略區分為公有鏈、
聯盟鏈和私有鏈。劃分的標準不是參與節點的多少,而是整個系統中記賬節點的門檻和記賬權的分散度。
(二)區塊鏈的核心和關鍵技術。1.共識機制。機器共識機制即區塊鏈節點就區塊信息達成全網一致共識的機制,是區塊鏈的核心理論和技術。FLP不可能定理已經證明,在存在故障進程的異步系統中不存在有限時間內達成“共識”理論解。這也意味著,理論上,在存在“女巫”節點的異步網絡環境中,不可能在有限時間內有達成一致共識的精確算法,因而必須尋找其可行的“工程解”,而目前出現的在特定環境中的各類共識機制就是求解“工程解”具體算法。區塊鏈常用的共識機制主要包括:PoW(ProofofWork,工作量證明)、PoS(ProofofStake,權益證明)、DPoS(DelegateProofofStake,股份授權證明)等。
通常,
區塊鏈應用需要根據不同場景而選擇不同共識機制,如合規監管方面是否支持超級權限節點對全網節點及數據進行監管、交易達成共識被確認的性能效率、共識過程中耗費的CPU及網絡輸入輸出和存儲等計算機資源、防攻擊防欺詐的容錯能力等。事實上,只要合適的機制能保證記錄的可靠可追溯、不同節點具有相對平等的權利,則機制的不同并不改變區塊鏈的本質。可以說,共識算法的創新將是推動區塊鏈產業化的重要力量。
2.數據存儲。在區塊鏈技術中,數據以區塊的方式永久儲存。區塊按時間順序逐個先后生成并連接成鏈,每一個區塊記錄了創建期間發生的所有交易信息。區塊的數據結構一般分為區塊頭(header)和區塊體(body)。其中,區塊頭用于鏈接到前一個區塊并且通過時間戳特性保證歷史數據的完整性;區塊體則包含了經過驗證的、區塊創建過程中產生的所有交易信息。
3.網絡協議。區塊鏈網絡協議一般采用P2P協議,確保同一網絡中的每臺計算機彼此對等,各個節點共同提供網絡服務,不存在任何“特殊”節點。不同的區塊鏈系統會根據需要制定獨自的P2P網絡協議,比如
比特幣有比特幣網絡協議,
以太坊也有自己的網絡協議。
4.加密算法。散列算法也叫數據摘要或者哈希算法,其原理是將一段信息轉換成一個固定長度并具備以下特點的字符串:如果某兩段信息是相同的,那么字符也是相同的;即使兩段信息十分相似,但只要是不同的,那么字符串將會十分雜亂隨機并且兩個字符串之間完全沒有關聯。本質上,散列算法的目的不是為了“加密”而是為了抽取“數據特征”,當然也可以把給定數據的散列值理解為該數據的“指紋信息”。典型的散列算法包括MD5、SHA1/SHA256和SM3,其中SHA2和SM3這兩種算法效率和安全性大致相當且應用較為廣泛。
非對稱加密算法由對應的一對唯一性密鑰(即公開密鑰和私有密鑰)組成的加密方法。任何獲悉用戶公鑰的人都可用用戶的公鑰對信息進行加密與用戶實現安全信息交互。由于公鑰與私鑰之間存在的依存關系,只有用戶本身才能解密該信息,任何未受授權用戶甚至信息的發送者都無法將此信息解密。
5.隱私保護。目前區塊鏈上傳輸和存儲的數據都是公開可見的,僅通過“偽匿名”的方式對交易雙方進行一定的隱私保護。對于某些涉及大量的商業機密和利益的業務場景來說,數據的暴露不符合業務規則和監管要求。目前,業界普遍認為零知識證明、環簽名和同態加密等技術比較有希望解決區塊鏈的隱私問題。
6.智能合約。智能合約可視作一段部署在區塊鏈上可自動運行的程序,其涵蓋的范圍包括編程語言、編譯器、虛擬機、事件、狀態機、容錯機制等。虛擬機是區塊鏈中智能合約的運行環境。虛擬機不僅被沙箱封裝起來,事實上它被完全隔離。也就是說運行在虛擬機內部的代碼不能接觸到網絡、文件系統或者其他進程。甚至智能合約之間也只能進行有限的調用。本質上,智能合約是一段程序,存在出錯的可能性,甚至會引發嚴重問題或連鎖反應,因此需要做好充分的容錯機制,通過系統化的手段,結合運行環境隔離,確保合約在有限時間內按預期執行。
版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。