都2021年了,還不知道什麼是區塊鏈就out了 | 從區塊鏈數據結構到應用

序言

        在現階段及後10年都是發展主流的數字化經濟的催動下,區塊鏈技術愈來愈火爆。那麼比特幣的區塊數據結構是如何構成的,區塊鏈有什麼特性,咱們用區塊鏈能用來作什麼?咱們一塊兒來探討下。算法

區塊鏈誕生背景

        2008年11月1日,「中本聰」在一個隱祕的密碼學討論郵件組上貼出一篇研究報告《比特幣:一種點對點的電子現金系統》,論文中闡述了但願能夠建立一套「基於密碼學原理而不基於信用,使得任何達成一致的雙方可以直接進行支付,不須要第三方中介參與」的電子支付系統。
        2009年1月,以區塊鏈技術爲基礎的比特幣發行交易系統正式開始運行,隨着比特幣區塊鏈中第一個區塊生成,比特幣誕生。數據庫

區塊鏈是什麼?

        從科技層面來看,區塊鏈涉及數學、密碼學、互聯網和計算機編程等不少科學技術問題。從應用視角來看,區塊鏈是一個分佈式的共享帳本和數據庫
        區塊鏈是分佈式數據存儲、點對點傳輸、共識機制、加密算法等計算機技術的新型應用模式。區塊鏈它本質上是一個去中心化的數據庫,是一串使用密碼學方法相關聯產生的數據塊,每個數據塊中包含了一批交易的信息,用於驗證其信息的有效性(防僞)和關聯前一區塊 。編程

區塊鏈的數據結構

        區塊鏈(blockchain),顧名思義,由區塊造成的鏈。那「區塊」是什麼?造成的鏈又是怎樣的呢?
首先,咱們來一塊兒分析分析「區塊」。「區塊」是一種記錄交易的數據結構,每一個區塊由區塊頭和區塊主體組成,區塊主體負責記錄前一段時間內的全部交易信息,區塊鏈的大部分功能則都由區塊頭實現。區塊結構以下所示
區塊結構安全

什麼是創世區塊

        區塊鏈裏的第一個區塊由中本聰建立於2009年,被稱爲創世區塊。它是區塊鏈裏面全部區塊的共同祖先,這意味着你從任一區塊,循鏈進行回溯,最終都將到達創世區塊。創世區塊被中本聰內置到了區塊鏈裏,因此每個節點都始於至少包含一個區塊的區塊鏈,這能確保創世區塊不會被改變。每個節點都知道創世區塊的哈希值、結構、建立時間和區塊交易。所以,每一個節點都把該區塊做爲區塊鏈的首區塊,從而構建了一個安全的、可信的區塊鏈的根。markdown

區塊的header和body
header

        區塊中區塊頭大小是80個字節,包含如下6部分數據:,包括:4個字節的version、32個字節的PrevBlockHash、32個字節的Merkle Root Hash、4個字節的timestamp、4個字節的Bits、4個字節的Nonce網絡

Version:是區塊鏈的版本號,用於記錄區塊版本,判斷出塊是否有效數據結構

PrevBlockHash:是前一個區塊的哈希值,依據該信息區塊之間造成鏈結構分佈式

Timestamp:區塊建立的是時間戳,僅供參考意義,每一個節點上的時間沒法100%的確保一致ide

Bits:當前出塊難度值,它決定了大概須要通過多少次哈希運算才能產生一個合法的區塊。出塊以前,區塊鏈網絡設置了一個target值,target值越低,生成有效hash的集合就越小,生成有效hash就越困難。
target值 = 最大目標值 / 難度值,其中最大目標值是固定的。區塊鏈

Nonce 區塊工做證實的參數。因爲給定的一組數據只能生成一個hash,礦工如何確保他們生成的hash小於target?它們經過添加一個稱爲nonce的整數(number only used once )來改變輸入的數據,一旦找到一個有效的hash,它就被廣播到網絡中,同時區塊被添加到區塊鏈中,找到這個nonce整數的礦工就能得到數字貨幣獎勵。

Merkle Root Hash:是區塊中全部交易的markle數root節點的hash值,交易數據的驗證主要依賴markle進行,經過Merkle Root Hash,區塊能以很小的代價保存交易信息
merkle樹
上述圖表述了Merkle Root Hash的計算過程,因爲Merkle樹涉及的內容比較多,咱們後續單獨在文章進行分析。

body

        區塊body主要負責記錄區塊內的交易信息,包含如下3部分信息:區塊大小、交易計數、交易信息(hash列表)。

區塊鏈的特色

去中心化

        因爲使用分佈式計算和存儲,不存在中心化的硬件或管理機構,任意節點的權利和義務都是均等的,系統中的數據塊由整個系統中具備維護功能的節點來共同維護。

開放性

        系統是開放的,除了交易各方的私有信息被加密外,區塊鏈的數據對全部人公開,任何人均可以經過公開的接口查詢區塊鏈數據和開發相關應用,所以整個系統信息高度透明。

自治性

        區塊鏈採用基於協商一致的規範和協議(好比一套公開透明的算法)使得整個系統中的全部節點可以在去信任的環境自由安全的交換數據,使得對「人」的信任改爲了對機器的信任,任何人爲的干預不起做用。

信息不可篡改

        一旦信息通過驗證並添加至區塊鏈,就會永久的存儲起來,除非可以同時控制住系統中超過51%的節點,不然單個節點上對數據庫的修改是無效的,所以區塊鏈的數據穩定性和可靠性極高。

匿名性

        因爲節點之間的交換遵循固定的算法,其數據交互是無需信任的(區塊鏈中的程序規則會自行判斷活動是否有效),所以交易對手無須經過公開身份的方式讓對方本身產生信任,對信用的累積很是有幫助。有興趣的能夠研究研究零知識證實

區塊鏈的應用場景

        區塊鏈主要的優點是無需中介參與、過程高效透明且成本很低、數據高度安全。因此,在這三個方面有任意一個需求的行業都有機會使用區塊鏈技術。
電子存證:應用區塊鏈技術將電子材料、業務數據、用戶行爲等信息進行固定,實現防篡改、可驗真、可追溯。
跨境支付:在時間方面,傳統跨境匯款須要10分鐘或很多天不等,而區塊鏈跨境匯款可實現匯款秒到帳。在便捷性方面,傳統跨境匯款在19時之後須要等到第二天才能轉帳,而區塊鏈跨境匯款只需一臺手機便可實現全天候匯款。
一鍵溯源:經過區塊鏈技術將商品信息上鍊,包括原產地,施肥週期,打藥週期等等,消費者一鍵掃碼,查看商品生命週期信息,實現了商品信息的防篡改、可驗真、可追溯。

區塊鏈就介紹到這裏啦,喜歡的朋友們幫忙動動手指點個贊吧!

相關文章
相關標籤/搜索