這篇文章主要介紹“怎么理解區(qū)塊鏈”,在日常操作中,相信很多人在怎么理解區(qū)塊鏈問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么理解區(qū)塊鏈”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
在昆玉等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計 網(wǎng)站設(shè)計制作定制開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,營銷型網(wǎng)站,成都外貿(mào)網(wǎng)站建設(shè)公司,昆玉網(wǎng)站建設(shè)費用合理。
如何理解區(qū)塊鏈
首先,引入?yún)^(qū)塊鏈的理念:將一個基于節(jié)點的去中心化共識協(xié)議與工作量證明(PoW)機制結(jié)合在一起。節(jié)點通過PoW機制獲得參與到系統(tǒng)的權(quán)利,每隔一段時間將交易打包到區(qū)塊中,從而創(chuàng)建出不斷增長的區(qū)塊鏈。
這里主要有兩個概念:去中心化和工作量證明機制。其實比特幣的去中心化體現(xiàn)的可能更明顯,這個之前我又寫過一篇解讀作為最早區(qū)塊鏈技術(shù)的比特幣以及區(qū)塊鏈所帶來的改變。
如何去中心化:區(qū)塊鏈系統(tǒng)中的每一個區(qū)塊,負(fù)責(zé)記錄交易信息,每個用戶的收支情況都被永久的存儲在區(qū)塊中供他人查詢。每個節(jié)點都會保存一份完整的交易數(shù)據(jù),所有這些節(jié)點組成了區(qū)塊鏈的分布式數(shù)據(jù)庫系統(tǒng),任何一個節(jié)點的數(shù)據(jù)出現(xiàn)問題,都不會影響整個系統(tǒng)的運轉(zhuǎn)。
工作量證明機制:工作量證明(Proof Of Work,簡稱PoW),簡單理解就是一份證明,用來確認(rèn)你在系統(tǒng)中做過一定量的工作。相較于低效的監(jiān)測工作的整個過程,通過對工作結(jié)果進(jìn)行認(rèn)證來證明完成了相應(yīng)的工作量,則是一種非常高效的方式。例如我們通過完成工作中的各項任務(wù)來證明我們?yōu)楣緞?chuàng)造了價值,從而得到公司的認(rèn)可。而這種"工作證明"一般都會花費一定的時間才能得到。
工作量證明機制(PoW)
工作量證明機制,是一種應(yīng)對拒絕服務(wù)攻擊(DoS)和其他服務(wù)濫用的經(jīng)濟對策。它要求發(fā)起者進(jìn)行一定量的運算作為代價,也就意味著需要消耗計算機一定的時間。例如現(xiàn)在網(wǎng)站登錄時都需要輸入的驗證碼(滑塊或者拼圖),都采用的是這種CAPTCHA模式。
類似于CAPTCHA,哈希現(xiàn)金(HashCash)的原理是在郵件的消息頭中增加一個包含收件人地址、發(fā)送時間和salt隨機數(shù)的hashcash stamp的散列值,但是滿足前20位都是0的散列值才是合法的。這就需要發(fā)送者在正式發(fā)送前需要通過調(diào)整salt的值進(jìn)行多次計算,在滿足該條件后才能成功發(fā)送。但是我們不希望發(fā)送者在算出這個stamp后繼續(xù)復(fù)用,所以HashCash規(guī)定了過期的stamp是非法的(即發(fā)送時間 > stamp時間)。
區(qū)塊鏈也是采用了類似hashcash的工作量證明方法,對區(qū)塊頭中的數(shù)據(jù)做雙重SHA256運算( 即SHA256(SHA256(HEADER)) ),與當(dāng)前網(wǎng)絡(luò)的目標(biāo)值做對比,如果小于目標(biāo)值,則完成工作量證明。
這里對PoW做了較多的解釋,是為了便于理解PoW是如何應(yīng)用在區(qū)塊鏈上的。挖礦也是通過PoW進(jìn)行的。在比特幣系統(tǒng)中,節(jié)點完成工作量證明后,就代表獲得這個區(qū)塊的交易記賬權(quán)。系統(tǒng)會通過PoW機制讓礦工們競爭記賬權(quán),誰在單位時間內(nèi)執(zhí)行的運算更多(擁有更高的算力),誰就有更高的概率獲得區(qū)塊的記賬權(quán)。獲得記賬權(quán)的礦工將把該區(qū)塊廣播到網(wǎng)絡(luò)中,全網(wǎng)其他節(jié)點在驗證區(qū)塊滿足特定的條件后,其區(qū)塊會被鏈接在主鏈上,從而在全網(wǎng)范圍內(nèi)形成對當(dāng)前網(wǎng)絡(luò)狀態(tài)的一次共識,該礦工也會得到系統(tǒng)獎勵的一定數(shù)量的代幣。所有的區(qū)塊通過這種形式鏈接在一起,形成了區(qū)塊鏈的主鏈,從創(chuàng)世區(qū)塊到當(dāng)前生成的最新區(qū)塊,所有歷史交易數(shù)據(jù)都是公開透明的。
上面提到了區(qū)塊是用于記錄交易信息的,區(qū)塊頭中的數(shù)據(jù)參與了PoW的過程。那么接下來有必要進(jìn)一步分析區(qū)塊的內(nèi)容了。
區(qū)塊的組成
對于交易中的每個輸入和狀態(tài),有如下的定義:
1.如果引用的UTXO不在當(dāng)前的狀態(tài)中,則會返回錯誤;如果簽名與引用的UTXO的持有者簽名不一致,也會返回錯誤。
2.如果所有輸入的UTXO總額與所有輸出的UTXO總額不等,會返回錯誤。
3.返回的新狀態(tài)NEW_STATE中,移除了所有輸入的UTXO,增加了所有輸出的UTXO。
Merkle樹
Merkle樹是數(shù)據(jù)結(jié)構(gòu)中的一種樹結(jié)構(gòu),可以是二叉樹,也可以是多叉樹,具有樹的所有特點。由于Merkle樹中會進(jìn)行Hash運算,所以也被稱為Hash樹。在了解Merkle樹之前,先來看看Hash算法及HashList。
Hash算法是一種可以將任意長度的數(shù)據(jù)轉(zhuǎn)換成固定長度字符串的算法。是一種安全散列算法。最顯著的特點是幾乎不可逆、無沖突。Hash算法最常見的應(yīng)用就是對數(shù)據(jù)完整性的校驗。例如我們在下載一些文件時,資源提供方會給出一個MD5或者SHA的值,這個值實際上就是資源在經(jīng)過Hash運算后的值,用戶下載數(shù)據(jù)后,可以對數(shù)據(jù)進(jìn)行Hash,然后跟這個值比對,如果相同,就說明數(shù)據(jù)在傳輸過程中無損壞或篡改。
然后回過頭來再看Merkle樹,它的底層與HashList一樣,都是將數(shù)據(jù)分成小數(shù)據(jù)塊,然后分別計算其Hash值。但是再往上一層就不同了,它不是把所有的Hash值合并到一起做Hash,而是將兩個相鄰的Hash值拼接在一起進(jìn)行Hash運算,產(chǎn)生一個新的Hash。例如Block1的Hash值201w與Block2的Hash值0mzc合并Hash后產(chǎn)生新的3ali Hash值。而如果兩兩匹配后出現(xiàn)孤立的Hash值,則直接將其做Hash,例如Block5。最終產(chǎn)生一個Root Hash值,通常稱為Merkle Root。
同樣,在下載前,會先從可信數(shù)據(jù)源中獲取正確的Merkle Root,然后再從其他節(jié)點下載Merkle樹,通過Merkle Root來辨別Merkle樹的真?zhèn)巍H绻l(fā)現(xiàn)不匹配,則從其他節(jié)點繼續(xù)下載該Merkle樹,直到獲得一個與可信Merkle Root相匹配的Merkle樹。
由于Merkle樹是逐級分支的,所以它可以從任意一個分支開始下載并驗證??紤]Root->d063->09yk->a8b5->Block3這個分支,如果對這個分支的Hash值驗證通過后,就可以下載Block3的數(shù)據(jù)了。而在HashList中需要先得到整個Hash值列表后才能使用Root Hash驗證。
在區(qū)塊鏈系統(tǒng)中,最下層的葉節(jié)點中存放的是交易數(shù)據(jù),每個中間層的節(jié)點都是它的兩個子節(jié)點的Hash,根節(jié)點也是它的兩個子節(jié)點的Hash,代表Merkle樹的頂部。如果有攻擊者惡意篡改交易數(shù)據(jù),或者篡改Merkle樹的某一部分,必然導(dǎo)致上層節(jié)點的Hash值變動,最終導(dǎo)致驗證不通過。
了解了Merkle樹的結(jié)構(gòu)后,如果我們要查找某一筆交易,那么順序是怎樣的呢?首先,可以根據(jù)區(qū)塊頭中的時間戳確認(rèn)交易存在的具體區(qū)塊。而Merkle Root也是放在區(qū)塊頭中的,如果我們從Merkle Root開始向下查找,假設(shè)底層有n筆交易數(shù)據(jù),那么找到所需的步驟為log2(n),其實就是算法中的二分查找。簡化支付驗證(Simplified Payment Verification)就是利用這種方案,實現(xiàn)了輕量級的錢包客戶端,只需下載區(qū)塊頭及相關(guān)交易的分支,即可對交易進(jìn)行確認(rèn)。但是它也存在一些缺點:
1.容易遭到全節(jié)點的拒絕服務(wù),所以要保證較多的與全節(jié)點的連接,而且要保證這些節(jié)點是可信的;
2.spv客戶端向全節(jié)點請求的交易必須與它的密鑰一致,這樣全節(jié)點會看到該客戶端的相應(yīng)用戶的公鑰,造成隱私泄露。
P2P網(wǎng)絡(luò)
在BT架構(gòu)中,我們發(fā)現(xiàn)還是存在一個"中心服務(wù)器",該服務(wù)器的作用并非提供下載服務(wù),而是對發(fā)布的torrent文件進(jìn)行統(tǒng)一管理。torrent文件本質(zhì)上是一個索引文件,包含了Tracker信息(發(fā)布資源的服務(wù)器的位置)和文件信息(文件名、大小、Hash值等),這些信息根據(jù)BitTorrent協(xié)議內(nèi)的B編碼規(guī)則進(jìn)行編碼。torrent文件中的Hash信息是對每一塊要下載的文件內(nèi)容的加密結(jié)果。使用文本工具打開.torrent文件,就可以看個大概(亂碼是SHA1校驗碼):
到此,關(guān)于“怎么理解區(qū)塊鏈”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
標(biāo)題名稱:怎么理解區(qū)塊鏈
URL分享:http://www.rwnh.cn/article24/jihoce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、網(wǎng)站策劃、網(wǎng)站營銷、網(wǎng)站設(shè)計、網(wǎng)站制作、用戶體驗
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)