- 區(qū)塊鏈技術(shù)與應(yīng)用
- 陳韜偉等主編
- 1274字
- 2024-08-12 15:26:06
2.2.2 區(qū)塊鏈工作流程
我們已經(jīng)定義和描述了區(qū)塊鏈,也介紹了相關(guān)的術(shù)語。現(xiàn)在,讓我們來看看區(qū)塊鏈到底是如何工作的,它的通用工作流程是什么。眾所周知,區(qū)塊鏈中的節(jié)點要么是創(chuàng)建新的區(qū)塊并鑄造加密貨幣(代幣)的礦工,要么是對交易進行驗證和數(shù)字簽名的區(qū)塊簽名者。在區(qū)塊鏈網(wǎng)絡(luò)中必須做出的一個關(guān)鍵決定是,通過一種共識機制選出哪個節(jié)點將把下一個區(qū)塊追加到區(qū)塊鏈上。現(xiàn)在,我們將介紹區(qū)塊鏈驗證事務(wù),以及創(chuàng)建和追加區(qū)塊上鏈的過程。
區(qū)塊鏈的基本工作流程如圖2-2所示,我們能夠大致了解用戶如何發(fā)起一筆交易、驗證,以及區(qū)塊如何生成和進行上鏈的過程。

圖2-2 區(qū)塊鏈的基本工作流程
(1)新交易創(chuàng)建。節(jié)點首先創(chuàng)建一筆交易,然后用其私鑰對其進行數(shù)字簽名。交易可以表示區(qū)塊鏈中的操作,最常見的情況是用戶之間的價值轉(zhuǎn)移,也可能是觸發(fā)智能合約的執(zhí)行。交易的數(shù)據(jù)結(jié)構(gòu)通常包含數(shù)值或狀態(tài)字段、相關(guān)規(guī)則、源地址和目標(biāo)地址,以及其他驗證信息。一筆交易通常發(fā)生在兩個或多個當(dāng)事人之間。
(2)交易通過P2P網(wǎng)絡(luò)傳播。節(jié)點通常通過區(qū)塊鏈P2P網(wǎng)絡(luò)通信協(xié)議,如Gossip協(xié)議,將交易數(shù)據(jù)結(jié)構(gòu)發(fā)送(廣播)到參與共識的節(jié)點進行有效性驗證,在廣播交易前還將驗證它是否有效。
(3)交易驗證。參與共識的節(jié)點將交易池中高優(yōu)先級的交易打包成區(qū)塊,這些交易被區(qū)塊鏈網(wǎng)絡(luò)上稱為礦工的特殊參與者接收并驗證其有效性,然后共識驗證過程開始。此過程通常被稱為新區(qū)塊的產(chǎn)生或創(chuàng)建過程。這時,每個礦工節(jié)點均想競爭成為新區(qū)塊的唯一生成者。在公有鏈中,對于完成交易驗證的獲勝者,每個節(jié)點均有機會獲得挖礦的獎勵,這也是公有鏈加密貨幣的發(fā)行方式;同時,每一筆交易也需要支付一定的費用。由于加密貨幣存在較高的風(fēng)險和投機性,甚至可能干擾現(xiàn)有貨幣政策,因此,我國政府擁抱區(qū)塊鏈技術(shù),但對加密貨幣采取嚴(yán)格的政策,禁止挖礦和加密貨幣的交易行為。
(4)驗證結(jié)果通過P2P網(wǎng)絡(luò)傳播。一旦某個礦工解決了數(shù)學(xué)難題,驗證結(jié)果通過P2P網(wǎng)絡(luò)傳播,并得到大多數(shù)礦工的最終驗證,那么該交易會被視為已完成。通常,在像比特幣這樣的加密貨幣區(qū)塊鏈中,解決數(shù)學(xué)謎題的礦工會獲得一定數(shù)量的加密貨幣獎勵。比特幣系統(tǒng)規(guī)定每挖出21萬個區(qū)塊則獎勵減半,到2140年,比特幣將全部被挖出,礦工挖礦將沒有獎勵,完全靠交易的手續(xù)費得到獎勵。
(5)交易寫入賬本。記賬節(jié)點將新區(qū)塊添加到主鏈,將它作為一個全新的區(qū)塊通過哈希指針鏈接到自身節(jié)點的區(qū)塊鏈副本中,形成一條從創(chuàng)世區(qū)塊到最新區(qū)塊的完整的、更長的鏈條,稱為上鏈。隨后,共識節(jié)點放棄之前對構(gòu)建相同高度區(qū)塊的計算,并進入下一輪區(qū)塊上鏈的計算過程。區(qū)塊鏈中存在硬分叉和軟分叉,所謂軟分叉是指兼容性分叉,區(qū)塊鏈網(wǎng)絡(luò)系統(tǒng)版本或協(xié)議升級后,舊的節(jié)點并不會意識到比特幣代碼發(fā)生了改變,并繼續(xù)接受由新節(jié)點創(chuàng)造的區(qū)塊,新老節(jié)點始終還是在同一條鏈上工作;硬分叉是指當(dāng)比特幣區(qū)塊格式或交易格式(共識機制)發(fā)生改變時,未升級的節(jié)點拒絕驗證已經(jīng)升級的節(jié)點產(chǎn)生的區(qū)塊,然后各自延續(xù)自己認(rèn)為正確的鏈,因此分成兩條鏈,例如,比特幣為解決鏈上擴容進行的硬分叉將區(qū)塊容量提升至8MB,硬分叉后形成了比特幣現(xiàn)金(BCH)區(qū)塊鏈。
- 編寫高質(zhì)量代碼:改善Python程序的91個建議
- Raspberry Pi for Secret Agents(Third Edition)
- 網(wǎng)頁設(shè)計與制作教程(HTML+CSS+JavaScript)(第2版)
- Mastering Yii
- Learning ELK Stack
- Python算法從菜鳥到達(dá)人
- Kotlin從基礎(chǔ)到實戰(zhàn)
- C++從入門到精通(第5版)
- JSP程序設(shè)計實例教程(第2版)
- BeagleBone Robotic Projects(Second Edition)
- Java并發(fā)編程之美
- 人工智能算法(卷1):基礎(chǔ)算法
- Oracle 12c從入門到精通(視頻教學(xué)超值版)
- Python+Office:輕松實現(xiàn)Python辦公自動化
- R語言:邁向大數(shù)據(jù)之路