區塊鏈知識點雜記(並不全面)


區塊鏈技術是一種去中心化、去信任化的分佈式數據庫技術方案。該數據庫由參與系統的所有節點集體維護,具有去中心化、不可篡改、透明、安全等特性。

區塊鏈是利用塊鏈式數據結構來驗證與存儲數據、利用分佈式節點共識算法來生成和更新數據、利用密碼學的技術保證數據傳輸和訪問控制的安全、利用由自動化腳本代碼組成的智能合約來編程和操作數據的一種全新的分佈式基礎架構與計算範式。

目前,區塊鏈被很多大型機構稱爲徹底改變業務乃至機構運作模式的重大突破性技術。在金融、物聯網、公益慈善、醫療健康、供應鏈等領域,越來越多的企業機構開始探索區塊鏈在行業中的應用前景,規劃基於區塊鏈技術的數據流通路線圖。


去中心化

現代軟件系統主要採用兩種架構:去中心化架構中心化架構

中心化系統中一箇中心化模塊連接了其他所有的模塊;而去中心化系統沒有中心節點,每臺計算機在無中心節點的情況下向其他計算機直接提供相關資源(如計算能力存儲空間數據服務網絡帶寬),任意一個節點既是資源提供者也是使用者。當能在系統中尋找到一個部分,這個部分可以直接關閉這個系統,則系統屬於中心化系統;否則屬於去中心化系統。

無需第三方介入,實現點對點的交易協調協作。在區塊鏈系統中,沒有任何一個機構或個人可以實現對全局數據的控制,而任一節點停止工作都不會影響系統整體運作,這種去中心化的網絡將極大地提升數據安全性

去中心化系統的優勢

建立在多臺計算機之上的去中心化系統主要具有如下優勢:
計算能力更強
計算能力表現爲系統中所有互聯計算機的能力之和
成本更低
一臺超級計算機的搭建、維護與運營成本會遠遠高於相同能力的去中心化系統
可靠性更好
一個計算機節點崩潰,整個系統依然可以工作,影響微乎其微,因爲其他節點可以接替壞節點的工作
自增長
去中心化系統的計算機能力可以通過加入新的計算機來提升


密碼學技術

密碼學技術是區塊鏈的核心技術之一,目前的區塊鏈應用中採用了很多現代密碼學的經典算法,主要包括:哈希算法對稱加密非對稱加密數字簽名等。

HASH摘要算法

HASH 算法的目的是針對不同輸入,產生一個唯一的固定長度的輸出。HASH 算法有 3 個特點:一是不同的輸入數據產生的輸出數據必定不同;二是輸入數據的微小變動會導致輸出的較大不同;三是給定已知輸出數據,無法還原出原始的輸入數據。常用的 SHA-256 算法就是針對任意長的數據數列輸出 256 位數據,實際使用中 SHA256 用於對區塊鏈的每個區塊數據進行 HASH 摘要後防止篡改, 同時結合 Merkle Tree 數據結構實現部分區塊數據的 HASH 值驗證。

對稱加密算法

對稱加密算法利用加密密鑰對原始數據進行加密處理,然後將加密後的密文發送給接收者,接收者利用同一密鑰及相同算法的逆算法對密文進行解密,才能使其恢復成原始數據。在對稱加密算法中,使用的密鑰只有一個,發收信雙方都使用這個密鑰對數據進行加密和解密,這就要求解密方事先必須知道加密密鑰。

非對稱加密算法

非對稱加密算法需要兩個密鑰:公開密鑰(Public Key)和私有密鑰(Private Key)。公開密鑰與私有密鑰是一對,如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那麼只有用對應的公開密鑰才能解密。其實現機密信息交換的基本過程是:甲方生成一對密鑰並將其中的一把作爲公用密鑰向其它方公開;得到該公用密鑰的乙方使用該密鑰對機密信息進行加密後再發送給甲方;甲方再用自己保存的另一把專用密鑰對加密後的信息進行解密。

數字簽名算法

區塊鏈技術中使用到的數字簽名技術用於驗證信息的完整性和真實性,基本流程如下:發送者將需要簽名的原始數據進行 HASH 摘要,然後對摘要信息用私鑰加密後與原始數據一起傳送給接收者。接收者只有用發送者的公鑰才能解密被加密的摘要信息,然後用同樣 HASH 函數對收到的原文產生一個摘要信息,如果與解密的摘要信息對比相同則說明收到的信息是完整的,在傳輸過程中沒有被修改,否則說明信息被修改過,因此數字簽名能夠驗證信息的完整。此外,信息發送者擁有私鑰且不公開,因此只有發送者本人才能構造基於其私鑰的簽名信息,可以確保簽名真實性。


哈希算法

無論輸入數據的大小及類型如何,哈希函數均可將輸入數據轉換成固定長度的輸出。

哈希算法的特徵

1、能爲任意類型的數據快速創建哈希值。
2、確定性——相同輸入必產生相同哈希值;反之,不同輸入必產生不同輸出。
3、僞隨機——輸入數據改變則返回的哈希值會產生變化,變得與之前不同,且這種變化是無法預測的。即無法由輸入預測哈希值。
4、單向性——無法由得出的哈希值反推原始的數據。
5、防碰撞:不同輸入產生相同的哈希值的概率很小

哈希難題

根據當前難度值,通過搜索求解一個合適的隨機數(Nonce)使得區塊頭各元數據的雙SHA256哈希值小於或者等於目標哈希值。比特幣通過靈活調整隨機數搜索的難度值,來控制區塊的平均生成時間爲10分鐘左右。


分佈式存儲

區塊鏈是一種點對點網絡上的分佈賬本,每個參與的節點都將獨立完整地存儲寫入區塊數據信息。

分佈式存儲區別於傳統中心化存儲的優勢主要體現在兩個方面:

1、每個節點上備份數據信息,避免了由於單點故障導致的數據丟失。

2、 每個節點上的數據都獨立存儲,有效規避了惡意篡改歷史數據。


智能合約

智能合約允許在沒有第三方的情況下進行可信交易,只要一方達成了協議預先設定的目標,合約將會自動執行交易,這些交易可追蹤且不可逆轉。具有透明可信、自動執行、強制履約的優點。

智能合約是區塊鏈的核心構成要素,是由時間驅動的、具有狀態的、運行在可複製的共享區塊鏈數據賬本上的計算機程序,能夠實現處理數據,接受、存儲和發送價值,以及控制和管理各類鏈上智能資產等功能。智能合約作爲一種嵌入式程序化合約,可以內置在任何區塊鏈數據、交易和資產上,形成可編程控制的軟件定義的系統、市場和資產。智能合約爲傳統金融的發行、交易、創造和管理提供了創新性的解決方法,而且在社會系統中的資產管理、合同管理、監管執法等事務中發揮重要作用。

智能合約經各方簽署後,以程序代碼的形式附着在區塊鏈數據(如一筆 比特幣交易)上,經過P2P網絡傳播和節點驗證後記入區塊鏈的特定區塊中。

智能合約具有自治,自足和去中心化等特徵。自治表示合約一旦開始就自動執行,不需要其他簽署方干預。自足是合約能夠通過提高服務或發行資金來獲取資金,並且在需要時使用這些資金。去中心化是智能合約是由去中心化存儲和驗證的程序代碼而非中心化實體來保障執行的合約,能保證合約的公平公正。

區塊鏈和智能合約的主要發展趨勢是由自動化向智能化方向演化。現在的各類智能合約的本質是根據預定義場景的“if-then”類型的條件響應規則,能夠滿足目前自動化交易和數據處理的需求。未來的智能合約應該根據未知場景的“what-if”推演,能自主決策,真正實現“智能”合約的飛躍。


挖礦

挖礦即爲競爭區塊的合法記賬權,只有通過一定的工作量證明纔可以得到區塊的記賬權。用計算機反覆計算區塊頭,直到得到滿足要求的解,即可得到這區塊的記賬權,也就是挖到了礦。

具體方法:用SHA256算法不斷對區塊頭和一個隨機數字Nonce進行計算,直到計算出一個哈希值比預設值Bits小或者與其相等。第一個找到Nonce解的礦工會獲得此區塊的記賬權,並且將此區塊廣播到系統中讓其他節點進行驗證。

挖礦難度由比特幣網絡自動調整,實現每十分鐘產生一個區塊的平衡。


區塊鏈的建立

1、新的交易向全網節點廣播

2、每個節點將交易都寫到一個區塊中

3、每個節點都在新的區塊上進行計算,尋找一個工作量證明解

4、某個節點找到工作量證明解時,將打包的區塊向全網廣播

5、其他節點收到廣播的這個區塊後對其進行驗證,只有所有交易都被驗證是有效的且未被使用的之後,該區塊才能被認可

6、每個節點都將此區塊的哈希值作爲父哈希值來進行下一區塊的計算,表示節點認可此區塊有效

注意:一般一筆交易需經過至少6次確認(在此區塊之後產生一個區塊就是一次確認),才能在區塊鏈上認爲是合法交易。


區塊鏈的類型

公有鏈

是指任何個體或者團體都公用一條區塊鏈,只要接入此鏈都可以在上面發送交易,並且交易能夠獲得該區塊鏈的有效確認,任何團體或者個人都可以參與其共識過程。是完全去中心化的,分佈式系統中的各節點均可參與數據的讀寫、驗證和共識過程。

聯盟鏈

是指共識過程受到某些預選節點控制的區塊鏈。由該行業集體內部首先指定多個預選節點爲記賬人,每個區塊的生成是由所有的預選節點共同決定的(預選節點決定區塊鏈共識),其他節點只能接入區塊鏈負責交易,但是不參與共識過程。是部分去中心化的。

私有鏈

僅僅使用區塊鏈技術記賬,不對外開放。對象可以是一個公司也可以是個人,單獨擁有此區塊鏈的寫入權限。既應用到了區塊鏈的特性,又能保證安全。通常是在特定機構內用於內部數據管理與審計。


區塊鏈的特性

  • 可靠開放性
    區塊鏈的設計使得能夠有效預防故障與攻擊(51%攻擊除外)

  • 信息透明性
    任意節點都可以查看整個賬本

  • 不可更改性
    採用完全冗餘的策略,所有節點都有一份完整數據,由於不可能保證所有節點的數據均被修改,因此降低了欺詐的風險。區塊鏈利用加密技術來驗證與存儲數據、利用分佈式共識算法來新增和更新數據,區塊鏈需要各節點參與驗證交易和出塊;修改任一數據需要變更所有後續記錄,修改單節點數據難度極大。

  • 不可逆轉性
    交易不可撤銷

  • 集體維護性
    區塊鏈去中心化的特徵決定了它的集體維護性。傳統中心化機構通常要身兼三職:數據存儲者、數據管理者和數據分析者,區塊鏈則以對等的方式由各參與方共同維護,各方權責明確,無需向第三方機構讓渡權利,實現共同協作。


區塊鏈的瓶頸

  • 過大的完整賬本的存儲空間
  • 信息分發採用全網廣播
    是一種洪泛式,要求網絡性能好
  • 交易效率低下
    比特幣交易效率受到區塊產生時間和區塊大小的影響,比特幣交易效率爲7筆/秒,不適合處理實時交易
  • 算力浪費
    只有成功得到區塊合法記賬權的節點得到獎勵,其他節點都是無用功
  • 節點升級成本高

區塊鏈的應用

在金融應用的五大場景

  1. 數字貨幣:提高貨幣發行便利性
  2. 跨境支付與結算:實現點對點交易,減少向中介方支出的費用
  3. 票據與供應鏈金融服務:減少人爲介入,降低成本及操作風險
  4. 證券發行與交易:實現實時資產轉移,加速交易清算速度
  5. 客戶徵信與反欺詐:降低法律法規成本,防止金融犯罪

其他應用場景

  1. 存在性證明:由於區塊鏈的不可篡改性,可以應用在存在性證明,把過去的某一狀態存在區塊鏈上,未來就可以證明在過去確實存在這一狀態。
  2. 智能合約把智能合約部署在區塊鏈上,合約內容事先定好,達到合約中的某個條件時合約自動觸發,執行合約中的內容可以免去現實生活中合約執行的一些苛刻條件,能在不信任的環境下執行合約。
  3. 身份驗證:智能合約可以存儲個人的身份信息,可以保存現有的身份狀態,一旦身份信息被篡改就會觸發一定的條款,身份所有者就會知曉。
  4. 預測市場:例如Augur,它是一個基於區塊鏈技術的去中心化的預測市場的平臺,任何人都可以隨時訪問Augur,可以消除中心化服務器的風險。
  5. 電子商務:把比特幣無監管模式應用到電商,應用這一模式不僅能免去冗餘的環節,還能達到市場和諧。
  6. 社交通訊:如去中心化通訊平臺Gems,試圖打破現有的社交媒體的模式,不僅社交公司可以賺錢,用戶也能從中獲利。
  7. 文件存儲:基於區塊鏈的存儲技術將直接衝擊甚至顛覆傳統的雲計算架構。區塊鏈的高冗餘存儲、去中心化、高安全性和隱私保護等特點使其適合存儲和保護重要的隱私,避免因爲中心化機構遭受攻擊或權限不當而造成的大規模數據丟失或泄露。
  8. 數據驗證:區塊鏈數據帶有時間戳、由共識節點共同驗證和記錄、不可篡改和僞造,使得區塊鏈可以廣泛應用於各類數據公證和審計場景。
  9. 選舉投票:投票是區塊鏈在政治事物中的代表應用,基於區塊鏈的分佈式共識驗證、不可篡改等特點,可以低成本高效地實現政治選舉,股東投票等功能,也支持個人對特定議題的投票。

區塊鏈未來發展趨勢

(1) 產業滲透:雖然區塊鏈的底層架構源於比特幣,但作爲一種通用技術,區塊鏈正加速從數字貨幣向其他領域滲透,和各行各業創新融合。目前,金融服務、數字資產、慈善公益等行業紛紛投入到區塊鏈應用的探索中,利用日誌存證、信息追溯等特點,改變行業內原有的交易不公開透明等問題。。諸如醫療健康等涉及到大規模數據交互的行業,必將通過區塊鏈技術實現數據的可信交易,破除現有的利益壁壘,打造一個全新的數據行業內外安全共享生態體系;

(2) 多中心化:區塊鏈的核心並不是“爲了去中心化而拋棄中心化管理”,而是構建多方信任機制。在未來,隨着跨鏈技術的不斷髮展,區塊鏈的架構將演變爲多方共同參與的可信任體系。即在多方信息不對稱、背景不清晰的情況下,構建多方賴以信任與合作的新生態。

(3) 技術融合:以雲計算、大數據、物聯網爲代表的新一代信息技術正滲透進各行各業。未來區塊鏈的發展必將以技術融合爲切入點,共同解決單一技術的不足與難點,擴大應用場景,降低應用成本。以區塊鏈與物聯網結合爲例,物聯網是互聯網在實體經濟中的延伸,通過計算機技術實現物品與物品之間的信息交換與通信。區塊鏈系統是典型的點對點網絡,具有分佈式異構特徵,天然適合於在物聯網中建立各主體的共識機制,制定交互規則,構建去中心化控制的交易網絡。因此,如何通過區塊鏈與其他技術的融合,實現產業創新,將成爲區塊鏈未來發展的重要課題。

(4) 標準規範:企業應用在未來將是區塊鏈的主戰場,聯盟鏈將成爲主流方向。與公有鏈不同,在企業級應用中,人們不僅關注通過軟件和算法來構建信任基礎,更重要的是如何從用戶體驗與業務需求出發,構建一套基於共識機制、權限管理、智能合約等多維度的生態規則。面對不斷演進的區塊鏈技術,同步考慮相應的技術標準和法律法規,增加區塊鏈的可信程度,建立區塊鏈的應用準則加強監管,防範風險。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章