時間:2023-06-17|瀏覽:396
比特幣是區(qū)塊鏈的一個重要概念,它利用密碼學(xué)方法形成的一串?dāng)?shù)據(jù)塊,每個數(shù)據(jù)塊中包含了一批次比特幣網(wǎng)絡(luò)交易的信息,用于驗證其信息的有效性(防偽)和生成下一個區(qū)塊。那么,區(qū)塊鏈是如何工作的呢?區(qū)塊鏈的工作流程可以分為以下幾個關(guān)鍵步驟:
第一步,發(fā)送節(jié)點將新的數(shù)據(jù)記錄向全網(wǎng)廣播。
每個數(shù)據(jù)的節(jié)點均有一個區(qū)塊鏈地址,區(qū)塊鏈地址是為了解決公鑰長度過長的問題。比特幣是建立在數(shù)學(xué)加密學(xué)基礎(chǔ)上的,利用橢圓曲線加密算法(ECC)來生成比特幣的私鑰和公鑰,由私鑰可以計算出公鑰,公鑰經(jīng)過一系列數(shù)學(xué)簽名運算后會得到比特幣的地址。具體的步驟可以參考比特幣的地址生成過程。
第二步,接收節(jié)點對收到的數(shù)據(jù)記錄信息進行校驗,比如記錄信息是否合法,通過檢驗后,數(shù)據(jù)記錄將被納入到一個區(qū)塊中。
區(qū)塊中會記錄區(qū)塊生成時間段內(nèi)的交易數(shù)據(jù),區(qū)塊的主體實際上就是交易信息的合集。每一種區(qū)塊鏈的結(jié)構(gòu)設(shè)計可能步完全相同,但大結(jié)構(gòu)上分為區(qū)塊頭(Heaser)和區(qū)塊體(Body)兩部分。區(qū)塊頭用于鏈接到前面的塊并且為區(qū)塊鏈接數(shù)據(jù)庫提供完整性的保證;區(qū)塊體則包含了經(jīng)過驗證的,塊創(chuàng)建過程中發(fā)生的價值交換的所有記錄。區(qū)塊結(jié)構(gòu)有兩個非常重要的特點:一是每一個區(qū)塊上記錄的交易是上一個區(qū)塊形成之后,該區(qū)塊被創(chuàng)建前發(fā)生的所有價值交換活動,這個特點保證了數(shù)據(jù)庫的完整性;二是在絕大多數(shù)情況下,一旦新區(qū)塊完成后就被加入到區(qū)塊鏈的最后,此區(qū)塊的數(shù)據(jù)記錄就再也不能改變或刪除,這個特點保證了數(shù)據(jù)庫的嚴謹性,就是所說的無法篡改。區(qū)塊鏈就是區(qū)塊以鏈的方式組合在一起形成的數(shù)據(jù)庫,區(qū)塊鏈是系統(tǒng)內(nèi)所有節(jié)點共享的交易數(shù)據(jù)庫,這些節(jié)點基于價值交換協(xié)議參與到區(qū)塊鏈網(wǎng)絡(luò)中來。
第三步,全網(wǎng)所有接收點對區(qū)塊執(zhí)行共識算法(ProofofWork、ProofofStake等,詳細內(nèi)容我在后面再介紹)。
第四步,區(qū)塊鏈通過共識算法過程后被正式納入?yún)^(qū)塊鏈中存儲,全網(wǎng)節(jié)點均表示接收該區(qū)塊,而表示的接收的方法就是將該區(qū)塊的速記散列值視為最新的區(qū)塊散列值,新區(qū)塊的制造將以該區(qū)塊為基礎(chǔ)進行延長。
區(qū)塊鏈系統(tǒng)內(nèi)所有權(quán)驗證機制的基礎(chǔ)是非對稱加密算法,一些常見的非對稱加密算法包括RSA、Elgamal、D-H和ECC等。在非對稱加密算法中,一個“密鑰對”包括兩個密鑰,如果這兩個密鑰對信息滿足以下條件:一是對信息用其中一個密鑰加密后,只有用另一個密鑰才能解開;二是其中一個密鑰公開后,根據(jù)公開的密鑰別人也無法算出另一個,那么這個密鑰對就被稱為非對稱密鑰對,公開的密鑰為公鑰,不公開的密鑰為私鑰。在區(qū)塊鏈系統(tǒng)交易中,非對稱密鑰的基本使用場景有兩種:一是公鑰對交易信息加密,私鑰對對交易信息解密。私鑰持有人解密后,可以使用收到的價值;二是私鑰對信息簽名,公鑰驗證簽名。通過公鑰簽名驗證的信息確認為私鑰持有人發(fā)出。
節(jié)點始終將最長的區(qū)塊鏈視為正確的鏈,并持續(xù)以此為基礎(chǔ)驗證和延長它。如果兩個節(jié)點同時廣播不同版本的新區(qū)塊,那么其他節(jié)點在接收到的區(qū)塊的時間上將存在先后差別,它們會在率先收到的區(qū)塊基礎(chǔ)上進行工作,但也會保留另外一個鏈條,以防后者變成長的鏈條。該僵局的打破需要共識算法進一步運行。如果其中一條鏈條被證實為是較長的一條,那么在另一條分支上工作的節(jié)點將轉(zhuǎn)換陣營,開始在較長的鏈條上工作,所以區(qū)塊鏈的工作流程可以防止區(qū)塊鏈分叉的過程。
熱點:區(qū)塊鏈