区块链工作流程
區(qū)塊鏈的工作流程主要包括如下步驟。
①發(fā)送節(jié)點(diǎn)將新的數(shù)據(jù)記錄向全網(wǎng)進(jìn)行廣播。
②接收節(jié)點(diǎn)對收到的數(shù)據(jù)記錄信息進(jìn)行檢驗(yàn),比如記錄信息是否合法,通過檢驗(yàn)后,數(shù)據(jù)記錄將被納入一個(gè)區(qū)塊中。
③ 全網(wǎng)所有接收節(jié)點(diǎn)對區(qū)塊執(zhí)行共識(shí)算法(工作量證明、權(quán)益證明等。
④區(qū)塊通過共識(shí)算法過程后被正式納入?yún)^(qū)塊鏈中存儲(chǔ),全網(wǎng)節(jié)點(diǎn)均表示接受該區(qū)塊,而表示接受的方法,就是將該區(qū)塊的隨機(jī)散列值視為最新的區(qū)塊散列值,新區(qū)塊的制造將以該區(qū)塊鏈為基礎(chǔ)進(jìn)行延長。
節(jié)點(diǎn)始終都將最長的區(qū)塊鏈視為正確的鏈,并持續(xù)以此為基礎(chǔ)驗(yàn)證和延長它。如果有兩個(gè)節(jié)點(diǎn)同時(shí)廣播不同版本的新區(qū)塊,那么其他節(jié)點(diǎn)在接收到該區(qū)塊的時(shí)間上將存在先后差別,它們將在先收到的區(qū)塊基礎(chǔ)上進(jìn)行工作,但也會(huì)保留另外一個(gè)鏈條,以防后者變成長的鏈條。該僵局的打破需要共識(shí)算法的進(jìn)一步運(yùn)行,當(dāng)其中的一條鏈條被證實(shí)為是較長的一條,那么在另一條分支鏈條上工作的節(jié)點(diǎn)將轉(zhuǎn)換陣營,開始在較長的鏈條上工作。以上就是防止區(qū)塊鏈分叉的整個(gè)過程。
所謂“新的數(shù)據(jù)記錄廣播”,實(shí)際上不需要抵達(dá)全部的節(jié)點(diǎn)。只要數(shù)據(jù)記錄信息能夠抵達(dá)足夠多的節(jié)點(diǎn),那么將很快地被整合進(jìn)一個(gè)區(qū)塊中。而區(qū)塊的廣播對被丟棄的信息是具有容錯(cuò)能力的。如果一個(gè)節(jié)點(diǎn)沒有收到某特定區(qū)塊,那么該節(jié)點(diǎn)將會(huì)發(fā)現(xiàn)自己缺失了某個(gè)區(qū)塊,也就可以提出自己下載該區(qū)塊的請求。
現(xiàn)在我們都知道了區(qū)塊鏈網(wǎng)絡(luò)里的記賬者是節(jié)點(diǎn),節(jié)點(diǎn)負(fù)責(zé)把數(shù)據(jù)記錄記到數(shù)據(jù)區(qū)塊里,為了鼓勵(lì)節(jié)點(diǎn)記賬,系統(tǒng)會(huì)按照規(guī)則隨機(jī)地對記賬的節(jié)點(diǎn)進(jìn)行獎(jiǎng)勵(lì)。那么如何保證不會(huì)有人制造假數(shù)據(jù)記錄或者說如何保證造假數(shù)據(jù)記錄不被通過驗(yàn)證?這就涉及時(shí)間戳。這也正是區(qū)塊鏈與眾不同的地方。區(qū)塊鏈不僅關(guān)注數(shù)據(jù)區(qū)塊里的內(nèi)容,也關(guān)注數(shù)據(jù)區(qū)塊本身,把數(shù)據(jù)區(qū)塊的內(nèi)容與數(shù)據(jù)區(qū)塊本身通過時(shí)間戳聯(lián)系起來。時(shí)間戳為什么會(huì)出現(xiàn)?這是由區(qū)塊鏈的性質(zhì)規(guī)定的。節(jié)點(diǎn)把數(shù)據(jù)記入了區(qū)塊,因此一個(gè)區(qū)塊就相當(dāng)于一頁賬簿,每筆數(shù)據(jù)在賬簿中的記錄可以自動(dòng)按時(shí)間先后排列,那么賬簿的頁與頁怎么銜接起來?也就是說,這一個(gè)區(qū)塊與下一個(gè)區(qū)塊的繼承關(guān)系如何斷定就成為問題。于是時(shí)間戳就出現(xiàn)了。
時(shí)間戳的重要意義在于其使數(shù)據(jù)區(qū)塊形成了新的結(jié)構(gòu)。這個(gè)新的結(jié)構(gòu)使各個(gè)區(qū)塊通過時(shí)間線有序連接起來,形成了一個(gè)區(qū)塊的鏈條,因此才稱為區(qū)塊鏈。區(qū)塊按時(shí)間的先后順序排列使賬簿的頁與頁的記錄也具有了連續(xù)性。通過給數(shù)據(jù)記錄印上時(shí)間標(biāo)簽,使每一條數(shù)據(jù)記錄都具有唯一性,從而使數(shù)據(jù)記錄本身在區(qū)塊和區(qū)塊上的哪個(gè)位置上發(fā)生可以被精確定位且可回溯,也給其他的校驗(yàn)機(jī)制協(xié)同發(fā)揮作用提供了極大的便利和確定性,使整個(gè)區(qū)塊鏈網(wǎng)絡(luò)能夠確定性地驗(yàn)證某條數(shù)據(jù)記錄是否真實(shí)。由于區(qū)塊鏈網(wǎng)絡(luò)是公開的,意味著系統(tǒng)知道過去發(fā)生的所有數(shù)據(jù)記錄,而任何新的數(shù)據(jù)記錄都繼承于過去的數(shù)據(jù)記錄,因?yàn)檫^去的數(shù)據(jù)記錄是真實(shí)的,而且鏈條的各個(gè)區(qū)塊記錄由時(shí)間戳連接起來使之環(huán)環(huán)相扣,所以如果想要制造一個(gè)假的數(shù)據(jù)記錄,就必須在區(qū)塊鏈上修改過去的所有數(shù)據(jù)記錄。盡管在挖礦的過程中,形成了多個(gè)鏈條,但因?yàn)樽铋L的那個(gè)被誠實(shí)的節(jié)點(diǎn)所控制,所以想要修改過去的數(shù)據(jù)記錄,首先就要從頭構(gòu)造出一個(gè)長度比之前最長的那個(gè)還要長的鏈條,在這個(gè)新的鏈條超過原來的那個(gè)鏈條后,才能制造雙重支付的虛假數(shù)據(jù)。然而隨著時(shí)間推移,制造新鏈條的難度和成本都是呈指數(shù)級上升的,而且隨著鏈條越來越長,其難度也變得越來越大,成本也就越來越高。同時(shí),因?yàn)槿ブ行幕脑O(shè)置,區(qū)塊鏈的各個(gè)核心客戶端同時(shí)又是服務(wù)器,保存了區(qū)塊鏈網(wǎng)絡(luò)的完整數(shù)據(jù),因此使對區(qū)塊鏈網(wǎng)絡(luò)的攻擊很難像對傳統(tǒng)的中央處理節(jié)點(diǎn)那樣有效,一般情況下很難對區(qū)塊鏈網(wǎng)絡(luò)構(gòu)成重大沖擊。最終,區(qū)塊鏈網(wǎng)絡(luò)成為一個(gè)難以攻破的、公開的、不可篡改數(shù)據(jù)記錄和制造虛假數(shù)據(jù)的誠實(shí)可信系統(tǒng)。
區(qū)塊鏈保證數(shù)據(jù)安全、不可篡改以及透明性的關(guān)鍵技術(shù)包括兩個(gè)方面:一是數(shù)據(jù)加密簽名機(jī)制;二是共識(shí)算法。在數(shù)據(jù)加密簽名機(jī)制中,首先,要有一個(gè)私鑰,私鑰是證明個(gè)人所有權(quán)的關(guān)鍵,比如證明某人有權(quán)從一個(gè)特定的錢包消費(fèi)數(shù)字貨幣,是通過數(shù)字簽名來實(shí)現(xiàn)的。其次,要使用哈希(Hash)算法。哈希散列是密碼學(xué)里的經(jīng)典技術(shù),把任意長度的輸入通過哈希算法計(jì)算,變換成固定長度的由字母和數(shù)字組成的輸出,具有不可逆性。共識(shí)算法是區(qū)塊鏈中節(jié)點(diǎn)保持區(qū)塊數(shù)據(jù)一致、準(zhǔn)確的基礎(chǔ),現(xiàn)有的主流共識(shí)算法包括工作量證明(PoW)、權(quán)益證明(PoS)、瑞波共識(shí)協(xié)議(RCP)等。以PoW為例,是指通過消耗節(jié)點(diǎn)算力形成新的區(qū)塊,是節(jié)點(diǎn)利用自身的計(jì)算機(jī)硬件為網(wǎng)絡(luò)做數(shù)學(xué)計(jì)算進(jìn)行交易確認(rèn)和提高安全性的過程。交易支持者(礦工)在電腦上運(yùn)行比特幣軟件不斷計(jì)算軟件提供的復(fù)雜的密碼學(xué)問題來保證交易的進(jìn)行。作為對他們服務(wù)的獎(jiǎng)勵(lì),礦工可以得到他們所確認(rèn)的交易中包含的手續(xù)費(fèi),以及新產(chǎn)生的比特幣。
轉(zhuǎn)載于:https://www.cnblogs.com/lianquan/p/9041107.html
總結(jié)
- 上一篇: Android版本2 3 4管理器,To
- 下一篇: 网络夺命连环问1--说一下HTTPS咋保