網(wǎng)絡(luò)層
網(wǎng)絡(luò)層是區(qū)塊鏈平臺信息傳輸?shù)幕A(chǔ),通過p2p的組網(wǎng)方式罗心、特定的信息傳播協(xié)議和數(shù)據(jù)驗證機(jī)制来破,使得區(qū)塊鏈網(wǎng)絡(luò)中的每一個節(jié)點都可以平等地參與共識與記賬睬罗。下面詳細(xì)介紹區(qū)塊鏈平臺網(wǎng)絡(luò)層中的P2P網(wǎng)絡(luò)架構(gòu)、信息傳輸機(jī)制和數(shù)據(jù)驗證機(jī)制苞笨。
P2P網(wǎng)絡(luò)架構(gòu)
區(qū)塊鏈網(wǎng)絡(luò)架構(gòu)一般采用的是基于互聯(lián)網(wǎng)的P2P架構(gòu)屏歹,在P2P網(wǎng)絡(luò)中,每臺計算機(jī)每個節(jié)點都是對等的圃庭,它們共同為全網(wǎng)提供服務(wù)。而且失晴,沒有任何中心化的服務(wù)端冤议,每臺主機(jī)都可以作為服務(wù)端相應(yīng)請求,也可以作為客戶端使用其他節(jié)點所提供的服務(wù)师坎。P2P通信不需要從其他實體或CA獲取地址驗證恕酸,因此有效地消除了篡改的可能性和第三方欺騙。所以P2P網(wǎng)絡(luò)是去中心化和開放的胯陋,這也正符合區(qū)塊鏈技術(shù)的概念蕊温。
在區(qū)塊鏈網(wǎng)絡(luò)中袱箱,所有的節(jié)點地位均等且以扁平式拓?fù)浣Y(jié)構(gòu)相互連通和交互,每個節(jié)點都需要承擔(dān)網(wǎng)絡(luò)路由义矛、驗證區(qū)塊數(shù)據(jù)发笔、傳播區(qū)塊數(shù)據(jù)等功能。在比特幣網(wǎng)絡(luò)中凉翻,存在著兩類節(jié)點了讨,一類是全節(jié)點,它保存著區(qū)塊鏈上所有的完整數(shù)據(jù)信息制轰,并需要實時地參與區(qū)塊鏈數(shù)據(jù)的校驗和記錄來更新區(qū)塊鏈主鏈前计。另一類是輕節(jié)點,它只保存著區(qū)塊鏈中的部分信息垃杖,通過簡易支付驗證方式向其他相鄰的節(jié)點請求數(shù)據(jù)以便完成數(shù)據(jù)的驗證男杈。
傳輸機(jī)制
在新的區(qū)塊鏈數(shù)據(jù)生成后,生成該數(shù)據(jù)的節(jié)點會將其廣播到全網(wǎng)的其他節(jié)點以供驗證调俘。目前的區(qū)塊鏈底層平臺一般都會根據(jù)自身的實際應(yīng)用需求伶棒,在比特幣傳輸機(jī)制的基礎(chǔ)上重新設(shè)計或者改進(jìn)出新的傳輸機(jī)制,如以太坊區(qū)塊鏈集成鏈所謂的“幽靈協(xié)議”彩库,以解決因區(qū)塊數(shù)據(jù)確認(rèn)速度快而導(dǎo)致的高區(qū)塊作廢率和隨之而來的安全性風(fēng)險肤无。這里我們以中本聰設(shè)計的比特幣系統(tǒng)為例,列出其傳輸協(xié)議的步驟如下:
1. 比特幣交易節(jié)點將新生成的交易數(shù)據(jù)向全網(wǎng)所有節(jié)點進(jìn)行廣播骇钦;
2. 每個節(jié)點都將收集到的交易數(shù)據(jù)存儲到一個區(qū)塊中宛渐;
3. 每個節(jié)點基于自身算力在區(qū)塊中找到一個具有足夠難度的工作量證明;
4. 當(dāng)節(jié)點找到區(qū)塊的工作量證明后司忱,就向全網(wǎng)所有節(jié)點廣播此區(qū)塊皇忿;
5. 只有包含在區(qū)塊中的所有交易都有效且之前未存在過畴蹭,其他節(jié)點才認(rèn)同該區(qū)塊的有效性坦仍;
6. 其他節(jié)點接收該數(shù)據(jù)區(qū)塊,并在該區(qū)塊的末尾制造新的區(qū)塊以延長鏈叨襟,而將被接收的區(qū)塊的隨機(jī)哈希值視為新區(qū)塊的前序區(qū)塊哈希值繁扎。
驗證機(jī)制
在區(qū)塊鏈網(wǎng)絡(luò)中,所有的節(jié)點都會時刻監(jiān)聽網(wǎng)絡(luò)中廣播的交易數(shù)據(jù)和新產(chǎn)生的區(qū)塊糊闽。在接收到相鄰節(jié)點發(fā)來的數(shù)據(jù)后梳玫,會首先驗證該數(shù)據(jù)的有效性,若數(shù)據(jù)有效則按接收順序為新數(shù)據(jù)建立存儲池來暫存這些數(shù)據(jù)右犹,并且繼續(xù)向臨近節(jié)點轉(zhuǎn)發(fā)提澎;若數(shù)據(jù)無效則立即廢棄該數(shù)據(jù),從而保證無效數(shù)據(jù)不會在區(qū)塊鏈網(wǎng)絡(luò)中繼續(xù)傳播念链。驗證有效性的方法是根據(jù)預(yù)先定義好的標(biāo)準(zhǔn)盼忌,從數(shù)據(jù)結(jié)構(gòu)积糯、語法規(guī)范性、輸入輸出和數(shù)字簽名等各方面進(jìn)行校驗谦纱。對于新區(qū)塊的校驗同理看成,某節(jié)點產(chǎn)生出新區(qū)塊后,其他節(jié)點按照預(yù)定義的標(biāo)準(zhǔn)對新區(qū)塊的工作量證明跨嘉、時間戳等方面進(jìn)行校驗川慌,若確認(rèn)有效,則將該區(qū)塊鏈連接到住區(qū)塊鏈上祠乃,并開始爭取下一個區(qū)塊的記賬權(quán)梦重。