1. 程式人生 > >(三)區塊鏈的認識,理解“區塊鏈”

(三)區塊鏈的認識,理解“區塊鏈”

        區塊鏈通常被定義為去中心化的分散式記賬系統,該系統中的節點無需互相信任,通過統一的共識機制共同維護一份賬本。

        區塊鏈是一種分散式、去中心化的計算與儲存架構。

        既然是分散式的資料儲存,那麼在各個節點之間就存在一個數據同步的問題,以誰的資料的為準,誰的資料是可信賴?既然各自保留對彼此的不信任,那就“無需信任”。“無需信任”技術上的解決方法就是假設互相不信任,每個節點都會存有一份完整的資料記錄,每條新的交易都要重新驗證。當一個節點重新加入網路並需要同步資料的時候,也是從其他節點同步資料,並重新計算驗證,這就解決了分散式儲存的可信任資料的問題。為了讓資料驗證能夠高效可靠,區塊鏈系統必須有一個好的資料結構來搭配。

        在我的第二篇文章中,(二)區塊鏈的認識,理解“區塊”和“鏈”,我結合以太坊瀏覽器給大家介紹過這個資料結構的內容,這裡我就簡單概括了。

上圖上我自己畫的比特幣區塊鏈的資料結構圖。系統中的交易被打包成區塊(block),在系統的執行過程中,區塊鏈每次只能生成一個塊,且每個塊中都包含了用於驗證其有效連結於上一個區塊後的數字憑證。區塊鏈就是這樣“一個個區塊按照密碼學演算法連線在一起”。這樣的結構設計能夠很容易得驗證資料是否篡改、追蹤歷史以及保證安全。

        其次,區塊鏈的架構是分散式、區中心化的。系統的各個節點組成了一個龐大的P2P網路,每個節點均分別執行、驗證和記錄相同的交易,並其會在本地儲存完成的區塊鏈資料。沒有一箇中心化機構可以干預執行順序和結果。這樣便實現了“去中心化”的目的。

        最後要說的就是共識機制了,即一致性協議。常見的如比特幣和以太坊使用的PoW,和以太坊後期計劃使用的PoS機制,以及EOS平臺使用的DPoS的機制。我的文章偏向與以太坊,所以這邊我就先以PoW做簡單描述,以後我會單獨寫博文,並以通俗易懂的大白話來給大家介紹其他的共識機制。PoW(Proof Of Work,工作量證明),簡單理解就是一份證明,用來確認你做過一定量的工作。其實就是大家熟悉的挖礦,通過數學運算,計算出一個滿足規則的隨機數,即獲得本次記賬權,發出本輪需要記錄的資料,全網其它節點驗證後一起儲存為了激勵大家能高效正確的記賬,系統對記賬節點有相應的獎賞,這樣一來大家就會積極參與並貢獻計算和儲存資源來爭奪記賬權。同時其他節點對該節點的區塊結果進行驗證,通過後則接受這個區塊。由於可以互相驗證,也保證了資料的可靠性。PoW工作量證明是目前最流行的演算法,應用於各種加密貨幣如比特幣和以太坊,每個版本有各自的區別。可見一致性協議(共識機制)的設計既要安全,以保證全網中各個節點所儲存的資料能達成共識;還需要需要有效的激勵機制,來激勵礦工以維持節點的執行。  

       一個示例簡單總結一下。A要轉賬給B,他需要先建立一條交易,並確定付款人、收款人、轉賬金額資訊。A確認後把“交易”釋出到區塊鏈網路中。這條交易資訊會被節點驗證並打包到當前“區塊”後並向其他節點廣播,通過其他節點共識達成全網資料一致。當A能在區塊鏈中查詢到這筆交易的時候,B則可以認為自己已經收到了A的轉賬。

     這裡特別說明一下,比特幣只是區塊鏈技術的一個應用,數字貨幣並非區塊鏈技術的真正價值體現。