国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

區(qū)塊鏈技術(shù)原理

2019-11-01 17:20:32 1085

1.區(qū)塊鏈的基本架構(gòu)

區(qū)塊鏈本質(zhì)上是一串由數(shù)據(jù)塊(區(qū)塊)相互關(guān)聯(lián)形成的網(wǎng)絡(luò)系統(tǒng),類似于一本賬簿,則每個(gè)區(qū)塊相當(dāng)于一張帳頁。如圖1所示,一個(gè)區(qū)塊主要分為兩部分:區(qū)塊頭和交易數(shù)據(jù)。區(qū)塊頭里記錄的是這個(gè)區(qū)塊的元數(shù)據(jù),包括區(qū)塊的高度(即在鏈上的位置編號)、版本號、創(chuàng)建的時(shí)間戳(timestamp)、前后兩個(gè)區(qū)塊鏈的哈希(hash)值、用于計(jì)算工作量證明的Nonce值和難度目標(biāo)、梅克爾(Merkle)樹的根哈希值。交易數(shù)據(jù)部分用梅克爾樹的方式記錄了一定時(shí)間(比特幣是10分鐘)內(nèi)產(chǎn)生的所有交易的信息,每個(gè)區(qū)塊可以記錄數(shù)百或上千條交易信息。在一個(gè)區(qū)塊鏈中,最早被構(gòu)建的第一個(gè)區(qū)塊稱為“創(chuàng)世塊”,只包括自身的哈希值。后面每個(gè)區(qū)塊都包含兩個(gè)哈希值,分別是驗(yàn)證上一個(gè)區(qū)塊(父區(qū)塊)和該區(qū)塊信息有效性的識別碼。這樣通過兩個(gè)哈希值之間的前后指向關(guān)系,所有區(qū)塊依次相連就構(gòu)成了區(qū)塊鏈(圖1)。


640wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1.jpg

梅克爾樹(Merkle tree)相當(dāng)于區(qū)塊鏈信息的數(shù)字指紋或DNA,可以驗(yàn)證交易數(shù)據(jù)在鏈上各節(jié)點(diǎn)傳遞過程中是否已經(jīng)被篡改。從創(chuàng)建過程來看,是自下而上分層的哈希二叉樹。首先,在最底層利用SHA256算法求出每筆交易的哈希值。然后,以此作為“葉子節(jié)點(diǎn)”兩兩相連再次代入SHA256算法,得到上一層32個(gè)字節(jié)的哈希值。如果“葉子節(jié)點(diǎn)”只有奇數(shù)個(gè),則需要復(fù)制最后一個(gè)節(jié)點(diǎn)。如此循環(huán)歸結(jié)到最上層單個(gè)節(jié)點(diǎn),得到梅克爾根的哈希值。這個(gè)值又相當(dāng)于每個(gè)區(qū)塊的數(shù)字指紋,詳細(xì)記錄其中包含的所有交易數(shù)據(jù)。即便對交易數(shù)據(jù)稍作修改都會引起梅克爾根值發(fā)生很大變化、進(jìn)而改變整個(gè)區(qū)塊的的哈希值。任意變動父區(qū)塊的數(shù)據(jù)也會導(dǎo)致子區(qū)塊和后面所有區(qū)塊的數(shù)據(jù)(哈希值)發(fā)生變動。因此,要修改任意一個(gè)區(qū)塊鏈的數(shù)據(jù)只能將后續(xù)所有區(qū)塊都重新生成。但是,重新生成區(qū)塊面臨著巨大的工作量。當(dāng)后面存在6個(gè)以上區(qū)塊時(shí),巨大的工作量和時(shí)間、資源消耗造成實(shí)際上不可能全部篡改這些區(qū)塊的數(shù)據(jù)。正是這種歷史數(shù)據(jù)不可更改的特性,確保區(qū)塊鏈具有較高可信度和安全性。


2.區(qū)塊鏈的運(yùn)作流程


在區(qū)塊鏈網(wǎng)絡(luò)中,每個(gè)參與者(peer)控制的計(jì)算機(jī)終端構(gòu)成一個(gè)節(jié)點(diǎn)(node),他們彼此平等、各自獨(dú)立擁有全網(wǎng)數(shù)據(jù)的副本,稱為分布式存儲(distributed storage)。區(qū)塊鏈本質(zhì)上是分布式賬本技術(shù),各個(gè)節(jié)點(diǎn)構(gòu)成一個(gè)對等網(wǎng)絡(luò)(peer to peer network),又稱P2P網(wǎng)絡(luò)。每個(gè)節(jié)點(diǎn)通過唯一對應(yīng)的密碼(即私鑰)和地址(即經(jīng)哈希運(yùn)算得到的公鑰,相當(dāng)于用戶名)來管理自己的“錢包”。如圖2所示,在區(qū)塊鏈上完成交易的過程包括以下幾個(gè)步驟:


4.jpg

(1)創(chuàng)立交易。交易雙方經(jīng)過協(xié)商達(dá)成協(xié)議,買方使用存儲在“錢包”中的地址和私鑰進(jìn)行數(shù)字簽名,證明自己對數(shù)字貨幣的所有權(quán)并且不能被其他人更改。

(2)鏈內(nèi)廣播。由買賣的某一方在區(qū)塊鏈上發(fā)出申請,并通過P2P網(wǎng)絡(luò)的泛洪(flooding)路由協(xié)議等廣播通知鏈上所有節(jié)點(diǎn)的參與方。如果后續(xù)被任一節(jié)點(diǎn)驗(yàn)證無效,則停止在區(qū)塊鏈上的廣播。

(3)檢查確認(rèn)。各個(gè)節(jié)點(diǎn)在區(qū)塊鏈的本地副本上分析數(shù)字簽名、驗(yàn)證買方身份合法性,以及是否有足夠多的貨幣余額,即區(qū)塊鏈上所有指向該節(jié)點(diǎn)的未完成交易輸出(UTXO)。所有節(jié)點(diǎn)驗(yàn)證通過后,交易信息被記入各節(jié)點(diǎn)副本中。

(4)封裝區(qū)塊。在10分鐘內(nèi)產(chǎn)生的所有交易通過各節(jié)點(diǎn)驗(yàn)證后,被分別集中打包構(gòu)成一個(gè)候用區(qū)塊。每個(gè)參與者都可以對未記入?yún)^(qū)塊鏈的交易內(nèi)容進(jìn)行記錄。為了避免多節(jié)點(diǎn)同時(shí)記賬帶來的信息混亂,每次只有一個(gè)參與者能夠?qū)⒆约河涗浀膬?nèi)容寫入?yún)^(qū)塊鏈,并獲得相應(yīng)的收益。以比特幣為例,2009年1月創(chuàng)立之初每個(gè)區(qū)塊獎勵獲勝節(jié)點(diǎn)50個(gè)比特幣,此后每4年減少一半,直到大約2140年約2100萬個(gè)比特幣全部發(fā)行完畢。此外,交易方還要支付給記賬節(jié)點(diǎn)一定的交易費(fèi)用。

(5)競爭記賬權(quán)。區(qū)塊鏈會根據(jù)某種資源占有率來決定記賬權(quán)歸屬,經(jīng)各節(jié)點(diǎn)普遍認(rèn)可的決定機(jī)制稱為分布式共識(distributed consensus)。其中,最常用的工作量證明(proof of work,PoW)依據(jù)的資源是計(jì)算能力。其他的共識機(jī)制中,權(quán)益證明(proof of stake, PoS)依據(jù)各節(jié)點(diǎn)持有的加密貨幣數(shù)量,委托權(quán)益證明(delegated proof of stake, DPoS)則是指用戶將自己持有的加密貨幣換成股票,從而競爭記賬并獲得獎勵的權(quán)利。


其中,PoW的具體過程如下:①生成用于給記賬權(quán)節(jié)點(diǎn)發(fā)放獎勵和手續(xù)費(fèi)的交易創(chuàng)幣(coinbase)交易,并與其他所有將要寫入?yún)^(qū)塊的交易組成列表,通過梅克爾樹算法生成梅克爾樹根哈希值,②將其和區(qū)塊版本、父區(qū)塊哈希值、時(shí)間戳、難度目標(biāo)和Nonce值等字段打包組裝成80字節(jié)的區(qū)塊頭,采用SHA256等運(yùn)算求出區(qū)塊頭的哈希值。③其中,難度值決定產(chǎn)生一個(gè)合法區(qū)塊所需要的哈希運(yùn)算次數(shù)。例如,比特幣系統(tǒng)為了保證平均10分鐘產(chǎn)生一個(gè)區(qū)塊,每產(chǎn)生2016個(gè)區(qū)塊(2周時(shí)間)會根據(jù)全網(wǎng)算力的變化所有節(jié)點(diǎn)自動統(tǒng)一調(diào)整難度值。調(diào)整公式:新難度值=舊難度值×(過去2016個(gè)區(qū)塊花費(fèi)時(shí)長/20160分鐘)。難度目標(biāo)值是最大目標(biāo)值與當(dāng)前難度值的比率,其中最大目標(biāo)值為恒定值。④參與競爭的節(jié)點(diǎn)不斷修改區(qū)塊頭中的Nonce字段值(通常是遞增1),對每次變更后的的區(qū)塊頭做雙重SHA256運(yùn)算。當(dāng)結(jié)果值小于當(dāng)前網(wǎng)絡(luò)的目標(biāo)值時(shí)則解題成功,工作量證明完成。競爭記賬權(quán)的行為和參與者又分別稱為“挖礦”和“礦工”。


(6)記賬上傳。首先完成工作量證明的參與者在鏈上廣播解題答案。經(jīng)多數(shù)節(jié)點(diǎn)驗(yàn)證后得到記賬權(quán),把新區(qū)塊記入已存在的區(qū)塊鏈中,每個(gè)節(jié)點(diǎn)都更新本地副本。

(7)交割轉(zhuǎn)賬。數(shù)字貨幣從買方轉(zhuǎn)移到買方的“錢包”,記賬的“礦工”賬戶轉(zhuǎn)入相應(yīng)收益,以補(bǔ)償其“挖礦”所進(jìn)行的高強(qiáng)度運(yùn)算和設(shè)備、電力等資源付出。



3.區(qū)塊鏈的主要特征

區(qū)塊鏈的基本架構(gòu)和交易運(yùn)行流程說明,它依靠加密算法、分布式記賬和共識機(jī)制等技術(shù),在鏈上各節(jié)點(diǎn)間構(gòu)建起了一種新的信任體系、實(shí)現(xiàn)了安全、可驗(yàn)證、平等的價(jià)值傳輸,打破了傳統(tǒng)的中心化機(jī)構(gòu)對授信的壟斷以及由此帶來的低效率、信息不對稱等問題??傮w而言,區(qū)塊鏈具有以下五個(gè)方面的特征。


(1)分布式結(jié)構(gòu)。此處英文為“decentralized”,可以直接翻譯成“去中心化”。但是,軟件系統(tǒng)的網(wǎng)架結(jié)構(gòu)包括單中心、多中心和分布式3種,區(qū)塊鏈的“點(diǎn)對點(diǎn)”(P2P)模式指的是第3種,第2種雖然存在多個(gè)中心也屬于“去中心化”結(jié)構(gòu)。這是區(qū)塊鏈顛覆性特點(diǎn)和核心優(yōu)勢。所有數(shù)據(jù)的存儲、傳輸、驗(yàn)證和交易都通過各節(jié)點(diǎn)的電腦或手機(jī)等終端上的應(yīng)用程序完成,不依賴于任何中心化的硬件或機(jī)構(gòu)。實(shí)現(xiàn)點(diǎn)對點(diǎn)達(dá)成共識基礎(chǔ)上的直接交互,可以實(shí)現(xiàn)實(shí)時(shí)交易結(jié)算,使交易更加自主、簡單和節(jié)約資源。所有節(jié)點(diǎn)具有同等的權(quán)利和義務(wù),排除了被銀行、信用卡公司和征信機(jī)構(gòu)等中心化代理的風(fēng)險(xiǎn),加速了資金和資產(chǎn)的流通、提升了價(jià)值的流動性。分布式結(jié)構(gòu)還意味著系統(tǒng)中的數(shù)據(jù)塊由所有具備記賬功能的節(jié)點(diǎn)共同維護(hù),任一節(jié)點(diǎn)數(shù)據(jù)的損壞或滅失都不會影響整個(gè)系統(tǒng)的運(yùn)作,也降低了節(jié)點(diǎn)參與人故意作惡的道德風(fēng)險(xiǎn)。

(2)防篡改性。采用分布式記賬技術(shù),鏈上每個(gè)節(jié)點(diǎn)都可以復(fù)制持有一份完整的數(shù)據(jù)。任何人要改變區(qū)塊鏈里面的信息,至少要有能夠控制鏈上51%節(jié)點(diǎn)的算力,這顯然幾乎無法做到。每個(gè)新區(qū)塊保留時(shí)間戳、嚴(yán)格按照時(shí)間先后順序被上傳到鏈上。區(qū)塊鏈采取不可逆的單向哈希算法,將父區(qū)塊身份識別哈希值和所有交易信息壓縮換算成新的唯一的身份密碼。內(nèi)部數(shù)據(jù)信息的任意改動都會導(dǎo)致哈希值徹底改變,從而被后續(xù)的節(jié)點(diǎn)所察覺和排斥。借助分布式系統(tǒng)各節(jié)點(diǎn)的工作量證明等共識算法,可以用強(qiáng)大的算力消耗或代幣數(shù)量等增加破壞系統(tǒng)難度。所有這些都使得篡改區(qū)塊內(nèi)的數(shù)據(jù)成本極高,擁有足夠強(qiáng)算力的節(jié)點(diǎn)可以通過競爭記賬權(quán)獲取更多的獎勵和收益。

(3)可追溯性。分布式記賬、時(shí)間和哈希換算上的不可逆性,使得每個(gè)節(jié)點(diǎn)的行為數(shù)據(jù)都被所有節(jié)點(diǎn)清晰無誤地記錄下來,參與各方只能自動化依規(guī)處理,避免欺詐、偽造等失信行為。此外,也便于監(jiān)管機(jī)構(gòu)實(shí)時(shí)監(jiān)控、追蹤和還原鏈上活動,提高監(jiān)管透明度和工作效率。

(4)保密性。各節(jié)點(diǎn)之間基于正確的地址和算法即可進(jìn)行彼此識別和數(shù)據(jù)交換,無需獲取對方的真實(shí)身份,也不需要傳統(tǒng)的通過第三方認(rèn)證中心(certificate authority, CA)頒發(fā)數(shù)字證明進(jìn)行實(shí)名認(rèn)證。采用公鑰公布地址、私鑰進(jìn)行簽名和身份認(rèn)證相配合的方法,使鏈上交易具有高度的匿名性,解決了中心化機(jī)構(gòu)數(shù)據(jù)存儲不安全的問題。

(5)開放性。區(qū)塊鏈技術(shù)通常是開源的,除了交易各方的私有信息被加密外,公共鏈的代碼高度透明、對所有人開放,任何人都可以通過公開接口查詢鏈上數(shù)據(jù)。以太坊(ethereum)等區(qū)塊鏈平臺還具有圖靈完備性(即代替計(jì)算機(jī)解決所有問題)和高度靈活的腳本代碼系統(tǒng),支持用戶創(chuàng)建高級貨幣、精確定義智能合約(smart contract)、開發(fā)應(yīng)用終端。


提交成功!非常感謝您的反饋,我們會繼續(xù)努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問題: