區塊鏈的工作流程是怎麼樣的?

隨著社會不斷髮展,越來越多的技術不斷火熱起來,尤其最近比較熱門的區塊鏈技術。眾所周知區塊鏈是分佈式、數據存儲、點對點傳輸、共識機制、加密算法等計算機技術的新型應用模式。區塊鏈(Blockchain)是比特幣的一個重要概念,它本質上是一個去中心化的數據庫,同時作為比特幣的底層技術,是一串使用密碼學方法相關聯產生的數據塊,每一個數據塊中包含了一批次比特幣網絡交易的信息,用於驗證其信息的有效性(防偽)和生成下一個區塊。那麼它的工作流程具體是什麼樣的,區塊鏈的工作流程主要包括以下幾個方面,下面我來詳細介紹一下:

第一,發送節點將新的數據記錄向全網廣播。

每個數據的節點均有區塊鏈地址,地址是解決公鑰長度過長的方案。下面以比特幣為例,介紹比特幣地址生成的過程。比特幣是建立在數學加密學基礎上的。先利用橢圓曲線加密算法(ECC)來生產比特幣的私鑰和公鑰,由私鑰是可以計算出公鑰的,公鑰的值經過一系列數學簽名運算會得到比特幣的地址。具體步驟如下:

1、隨機選取一個32字節的數,作為私鑰。

2、使用橢圓曲線加密算法(ECC)計算私鑰所對應的公鑰。

3、計算公鑰的SHA-256 Hash值。

4、取上一步結果,計算RIPEMD - 160 Hash值。

5、取上一步結果,前面加入地址版本號(比特幣主網版本號“0x00”)

6、取上一步結果,計算SHA-256 Hash值。

7、取上一步結果,再計算一下SHA-256 Hash值。

8、取上一步結果前4字節(8位十六進制)。

9、把這4字節加在第5步的結果後面,作為校驗(這就是比特幣地址的十六進制形態)。

10、用base58表示法變換一下地址(這裡其實就是最常見的比特幣地址形態)。比如16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM。

第二,接收節點對收到的數據記錄信息進行校驗,比如記錄信息是否合法,通過檢驗後,數據記錄將被納入到一個區塊中。

區塊鏈的工作流程是怎麼樣的?

區塊中會記錄區塊生成時間段內的交易數據,區塊的主體實際上就是交易信息的合集。每一種區塊鏈的結構設計可能步完全相同,但大結構上分為區塊頭(Heaser)和區塊體(Body)兩部分。區塊頭用於鏈接到前面的塊並且為區塊鏈接數據庫提供完整性的保證;區塊題則包含了經過驗證的,塊創建過程中發生的價值交換的所有記錄。區塊結構有兩個非常重要的特點:1⃣️每一個區塊上記錄的交易是上一個區塊形成之後,該區塊被創建前發生的所有價值交換活動,這個特點保證了數據庫的完整性。2⃣️在絕大多數情況下,一旦新區塊完成後就被加入到區塊鏈的最後,此區塊的數據記錄就再也不能改變或刪除,這個特點保證了數據庫的嚴謹性,就是所說的無法篡改。顧名思義,區塊鏈就是區塊以鏈的方式組合在一起,以這種方式形成的數據庫稱為區塊鏈數據庫,區塊鏈是系統內所有節點共享的交易數據庫,這些節點基於價值交換協議參與到區塊鏈網絡中來。

第三、全網所有接收點對區塊執行共識算法(Proof of Work、Proof of Stake等,詳細內容我在後面在介紹)。

第四、區塊鏈通過共識算法過程後被正式納入區塊鏈中存儲,全網節點均表示接收該區塊,er而表示的接收的方法就是將該區塊的速記散列值視為最新的區塊散列值,新區塊的製造將以該區塊為基礎進行延長。

區塊鏈的工作流程是怎麼樣的?

區塊鏈系統內所有權驗證機制的基礎是非對稱加密算法,常見的非對稱加密算法包括RSA、Elgamal、D - H、ECC等。在非對稱加密算法中,如果一個“密鑰對”中的兩個密鑰滿足一下兩個條件:1⃣️對信息用其中一個密鑰加密後,只有用另一個密鑰才能解開;2⃣️其中一個密鑰公開後,根據公開的密鑰別人也無法算出另一個,那麼就稱這個密鑰對為非對稱密鑰對,公開的密鑰為公鑰,不公開的密鑰為私鑰。在區塊鏈系統交易中,非對稱密鑰的基本使用場景有兩種:1⃣️公鑰對交易信息加密,私鑰對對交易信息解密。私鑰持有人解密後,可以使用收到的價值。2⃣️私鑰對信息簽名,公鑰驗證簽名,通過公鑰簽名驗證的信息確認為私鑰持有人發出。

區塊鏈的工作流程是怎麼樣的?

節點始終都將最長的區塊鏈視為正確的鏈,並持續以此為基礎驗證和延長它。如果兩個節點同時廣播不同的版本的新區塊,那麼其它節點在接收到的區塊的時間上將存在先後差別,它們會在率先收到的區塊基礎上進行工作,但也會保留另外一個鏈條,以防後者變成長的鏈條。該僵局的打破需要共識算法進一步運行,如果其中的一條鏈條被證實為是較長的一條,那麼在另一條分支上工作的節點將轉換陣營,開始在較長的鏈條上工作,所以就是防止區塊鏈分叉的過程。


分享到:


相關文章: