區(qū)塊鏈技術(shù)解析_第1頁(yè)
區(qū)塊鏈技術(shù)解析_第2頁(yè)
區(qū)塊鏈技術(shù)解析_第3頁(yè)
區(qū)塊鏈技術(shù)解析_第4頁(yè)
區(qū)塊鏈技術(shù)解析_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 區(qū)塊鏈技術(shù)解析區(qū)塊鏈技術(shù)是基于比特幣應(yīng)用提出的一個(gè)概念,他是一個(gè)融合了多種技術(shù)的一個(gè)集成式創(chuàng)新。目前區(qū)塊鏈的應(yīng)用早已不僅僅局限在比特幣上。人們?cè)谡務(wù)摶蚴褂谩皡^(qū)塊鏈”這個(gè)詞時(shí),有時(shí)候是指技術(shù)的商業(yè)應(yīng)用,有時(shí)是指技術(shù)實(shí)現(xiàn)本身。區(qū)塊鏈的技術(shù)特征:(1)多副本、(2)可靠記錄、(3)不可篡改、(4)多方透明幾個(gè)特性,上述特性總結(jié)下來(lái),采用區(qū)塊鏈技術(shù)后,應(yīng)用技術(shù)架構(gòu)如下圖所示,可以看出,區(qū)塊鏈技術(shù)對(duì)應(yīng)用而言,就是一個(gè)分布式數(shù)據(jù)庫(kù)(估計(jì)看到我這個(gè)結(jié)論,很多磚就要拍過(guò)來(lái)了,請(qǐng)大家拍磚的同時(shí)繼續(xù)看),我一一說(shuō)來(lái):一、從分布式數(shù)據(jù)庫(kù)的基本概念理解區(qū)塊鏈技術(shù)和區(qū)塊鏈技術(shù)比,分布式數(shù)據(jù)庫(kù)的概念顯然更容易被理解,我

2、就從分布式數(shù)據(jù)庫(kù)的一些基本概念出發(fā),理解區(qū)塊鏈的技術(shù)實(shí)現(xiàn),這些概念包括數(shù)據(jù)存儲(chǔ)、點(diǎn)對(duì)點(diǎn)可靠傳輸、存儲(chǔ)過(guò)程與觸發(fā)器(智能合約)、數(shù)據(jù)安全:1、分布式數(shù)據(jù)存儲(chǔ)區(qū)塊鏈技術(shù)的數(shù)據(jù)共享是一個(gè)分布式的記賬簿,交易記錄具備多個(gè)副本,因此首先要解決分布式數(shù)據(jù)存儲(chǔ)的問(wèn)題。1)區(qū)塊鏈存儲(chǔ)的基本單元是區(qū)塊,區(qū)塊采用鏈?zhǔn)浇Y(jié)構(gòu),即新增的區(qū)塊(類似數(shù)據(jù)庫(kù)一行記錄)都知道自己前一個(gè)區(qū)塊(前一行記錄)是什么,可以一直追溯到根,區(qū)塊的標(biāo)識(shí)是區(qū)塊的哈希值,同時(shí)鏈?zhǔn)浇Y(jié)構(gòu)保留了業(yè)務(wù)產(chǎn)生的軌跡,可以在新增交易的時(shí)候根據(jù)前面的記錄做校驗(yàn),保證了區(qū)塊的內(nèi)容不容易篡改。這種模式,我們?cè)趥鹘y(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)也會(huì)采用,例如拉鏈表的形式,每次對(duì)數(shù)據(jù)的

3、更新都采用追加( Insert而不是Update)模式,有起始時(shí)間、失效時(shí)間和是否生效標(biāo)識(shí),保持全部交易歷史。區(qū)塊鏈把這一點(diǎn)變成了一種底層固有模式,加入了哈希、時(shí)間戳等機(jī)制在技術(shù)上保證鏈條的正確性,因此非常有價(jià)值。2)既然是分布式、多中心的存儲(chǔ)方式,就必須解決存儲(chǔ)時(shí)的分布式一致性問(wèn)題。在區(qū)塊鏈的前身比特幣應(yīng)用中,解決這一問(wèn)題的方式是工作量證明(POW Proof-Of-Work)方式,即通過(guò)工作以獲得指定成果,用成果來(lái)證明曾經(jīng)付出的努力。這也是接觸區(qū)塊鏈技術(shù)時(shí)第一個(gè)比較迷惑的地方,我為啥一定要用工作量來(lái)證明,是不是還有其他方式?區(qū)塊鏈技術(shù)從比特幣中獨(dú)立出來(lái)后,大家把這一問(wèn)題歸結(jié)為共識(shí)問(wèn)題,工作

4、量證明是達(dá)成共識(shí)的一種方式,這樣就清晰多了。于是就產(chǎn)生了權(quán)益證明(POS Proof of Stake)方式,是一種通過(guò)業(yè)務(wù)規(guī)則達(dá)成共識(shí)的方式;實(shí)用拜占庭容錯(cuò)(PBFT Practical Byzantine Fault Tolerance)方式,是一種通過(guò)技術(shù)規(guī)則達(dá)成共識(shí)的機(jī)制。在公有鏈上,工作量證明(POW)還是一種最主要的共識(shí)方式,不容易取代,但在聯(lián)盟鏈上,完全可以根據(jù)自己的情況,創(chuàng)造出新的共識(shí)方式出來(lái)。我們就根據(jù)這一想法,在特定業(yè)務(wù)中創(chuàng)造過(guò)共識(shí)算法,解決分布式數(shù)據(jù)存儲(chǔ)的一致性問(wèn)題,以后有機(jī)會(huì)再展開說(shuō)。2、點(diǎn)對(duì)點(diǎn)可靠傳輸區(qū)塊鏈技術(shù)是一組技術(shù)的組合,既然是一個(gè)分布式的記賬簿,就要解決數(shù)據(jù)可

5、靠傳輸問(wèn)題。包括記賬節(jié)點(diǎn)(信任節(jié)點(diǎn))之間、非記賬節(jié)點(diǎn)(非信任節(jié)點(diǎn))、客戶端與記賬節(jié)點(diǎn)(信任節(jié)點(diǎn))之間的數(shù)據(jù)傳輸。在以前我們的方案中,往往通過(guò)可靠消息或者P2P方式解決數(shù)據(jù)傳輸問(wèn)題,這些技術(shù)也被用于區(qū)塊鏈技術(shù)中。但必須說(shuō)明的是,在真實(shí)業(yè)務(wù)場(chǎng)景下,不可能把所有的數(shù)據(jù)都記錄在記賬簿中,部分業(yè)務(wù)數(shù)據(jù)還是要保存在自己的系統(tǒng)中,這就還需要在技術(shù)框架上做到本地業(yè)務(wù)數(shù)據(jù)與區(qū)塊鏈的記賬簿保持一致,后面微服務(wù)架構(gòu)與區(qū)塊鏈技術(shù)整合時(shí)會(huì)具體闡述,總之,區(qū)塊鏈平臺(tái)只能保證自身數(shù)據(jù)之間的一致,業(yè)務(wù)不能完全依賴區(qū)塊鏈平臺(tái)保證數(shù)據(jù)一致性。3、智能合約:觸發(fā)器與存儲(chǔ)過(guò)程智能合約是指當(dāng)一定條件滿足的情況下,可以被自動(dòng)執(zhí)行的數(shù)字化

6、合約。實(shí)現(xiàn)這一特性,在數(shù)據(jù)庫(kù)中就是由觸發(fā)器和存儲(chǔ)過(guò)程完成的。雖然在目前流行的應(yīng)用架構(gòu)中,都不建議把邏輯寫在存儲(chǔ)過(guò)程中,但觸發(fā)器和存儲(chǔ)過(guò)程還是常用的工具,尤其在數(shù)據(jù)遷移相關(guān)的運(yùn)維活動(dòng)中。區(qū)塊鏈技術(shù)中智能合約就是觸發(fā)器和存儲(chǔ)過(guò)程,他是一個(gè)在沙箱中運(yùn)行的腳本,用于執(zhí)行區(qū)塊鏈業(yè)務(wù)中的業(yè)務(wù)邏輯,也可以用于各種檢查。舉個(gè)例子,A產(chǎn)生一筆支付時(shí),可以通過(guò)智能合約在數(shù)據(jù)鏈上進(jìn)行檢查,如果發(fā)現(xiàn)A的余額無(wú)法支付這筆交易,就可以中止這筆交易。和存儲(chǔ)過(guò)程相比,智能合約運(yùn)行在沙箱之中,不能對(duì)外部 API 做調(diào)用。這也比較好理解,如果允許外部調(diào)用,就可能無(wú)法保證自身的數(shù)據(jù)一致性,后面我們會(huì)講到這種缺陷如何彌補(bǔ)。美中不足的

7、是目前的智能合約并不支持 SQL 語(yǔ)法。4、數(shù)據(jù)安全交易數(shù)據(jù)是透明的,但不是全部透明,而是相對(duì)透明,這是區(qū)塊鏈技術(shù)的一個(gè)難點(diǎn),關(guān)鍵有二:(1)如何保護(hù)隱私,僅僅能看到自己可見的數(shù)據(jù);(2)密鑰分配問(wèn)題,例如新加入鏈中的一個(gè)節(jié)點(diǎn)會(huì)被分配一個(gè)新的密鑰,如何用這個(gè)密鑰解讀以前鏈中存儲(chǔ)的信息。可見與不可見,這是一個(gè)矛盾,理論上沒有一個(gè)完美的方案,這里我不對(duì)區(qū)塊鏈技術(shù)如何加密、如何做密鑰管理、如何同態(tài)加密等方式做解讀,而是講講如何通過(guò)業(yè)務(wù)方法而不是技術(shù)手段規(guī)避這一問(wèn)題。舉個(gè)例子,在一個(gè)小企業(yè)支付的聯(lián)盟鏈中,核心企業(yè)包括某銀行、企業(yè)A,為A的上下游企業(yè)提供信貸業(yè)務(wù),對(duì)于所有交易的數(shù)據(jù),銀行和核心企業(yè)A都是

8、可見的,他們擁有記賬節(jié)點(diǎn),對(duì)于其他加盟企業(yè),只擁有非記賬節(jié)點(diǎn),他們雖然也有全部的數(shù)據(jù),但是只能看到自己相關(guān)的數(shù)據(jù)。很明顯,加盟企業(yè)放棄了自己的部分隱私權(quán),但也得到了生意的機(jī)會(huì),這種方式加盟企業(yè)是可以接受的,就好比貸款企業(yè)要向銀行提供經(jīng)營(yíng)數(shù)據(jù)一樣。數(shù)據(jù)安全問(wèn)題,在技術(shù)上很難解決,但通過(guò)業(yè)務(wù)手段是可以規(guī)避的,這也是我們看好聯(lián)盟鏈的重要原因。二、理解區(qū)塊鏈技術(shù)常見的幾個(gè)困惑從剛剛接觸區(qū)塊鏈技術(shù)的一頭霧水,到概念的逐步清晰,再到區(qū)塊鏈應(yīng)用的研發(fā),經(jīng)歷很多困惑,這里列出幾個(gè)常見的困惑。困惑1:比特幣是區(qū)塊鏈技術(shù)的一個(gè)應(yīng)用,不能把比特幣應(yīng)用的所有內(nèi)容都?xì)w結(jié)為區(qū)塊鏈技術(shù)上文提到,區(qū)塊鏈技術(shù)從比特幣中獨(dú)立出來(lái)

9、是 2014 年左右的事情,此前每每舉出區(qū)塊鏈的案例都是比特幣,給區(qū)塊鏈技術(shù)的應(yīng)用造成了很多誤解。我建議先了解區(qū)塊鏈技術(shù),再了解比特幣,先理解聯(lián)盟鏈的業(yè)務(wù)場(chǎng)景,再了解公有鏈的業(yè)務(wù)場(chǎng)景,公有鏈看作是聯(lián)盟鏈的一種大規(guī)模延展,可以少走一些彎路。困惑2:公有鏈情況下數(shù)據(jù)存儲(chǔ)性能不高,但聯(lián)盟鏈的性能可以遠(yuǎn)高于公有鏈,能滿足多數(shù)場(chǎng)景的要求數(shù)據(jù)一致性問(wèn)題是分布式存儲(chǔ)最大的問(wèn)題,而并發(fā)越高,沖突的概率就越大。區(qū)塊鏈技術(shù)之所以能支持的每秒交易數(shù)(TPS)不高,主要是共識(shí)機(jī)制比較復(fù)雜,或者說(shuō)共識(shí)機(jī)制就是刻意為了降低并發(fā)性,減少數(shù)據(jù)沖突的概率。在公有鏈上,這是一個(gè)無(wú)法逾越的問(wèn)題,只能從事實(shí)時(shí)性要求不敏感的業(yè)務(wù)。但是

10、,在聯(lián)盟鏈中,由于鏈中的參與方并不多,也不需要每個(gè)節(jié)點(diǎn)都記賬,就可以使用一些性能更高的共識(shí)機(jī)制,例如前面說(shuō)的PBFT。我們?cè)?jīng)嘗試過(guò)一種全對(duì)等的算法,可以支持更高的性能。困惑3:應(yīng)用區(qū)塊鏈技術(shù)不一定必須有礦工來(lái)挖礦初次接觸區(qū)塊鏈技術(shù),礦工/挖礦這個(gè)概念讓人非常費(fèi)解:(1)為什么一定要挖礦?(2)為什么要給記賬成功的節(jié)點(diǎn)獎(jiǎng)勵(lì)比特幣來(lái)鼓勵(lì)記賬?(3)非比特幣的業(yè)務(wù)中如何鼓勵(lì)記賬?這個(gè)困惑歸根結(jié)底還是把區(qū)塊鏈和比特幣混淆造成的。前面說(shuō)過(guò),挖礦是通過(guò)工作量證明(POW)達(dá)成共識(shí)的機(jī)制,挖礦能力愈強(qiáng)就取得了記錄權(quán)。更重要的是比特幣的貨幣屬性,發(fā)行貨幣要么靠國(guó)家信用(例如紙幣),要么靠奇缺資源(例如黃金)

11、,比特幣為了防止濫發(fā),就需要用算力做為一種奇缺資源。這樣說(shuō)來(lái),比特幣實(shí)際上把共識(shí)算法、貨幣屬性、鼓勵(lì)記賬這幾件事都用挖礦來(lái)解決了,思路確實(shí)精妙。但是,在業(yè)務(wù)規(guī)則不同的聯(lián)盟鏈中就不一樣了,除了有其他更高效的共識(shí)算法外,不需要奇缺資源,不需要專門對(duì)記賬做鼓勵(lì),因?yàn)楸仨氂涃~已經(jīng)是核心企業(yè)之間的契約,可以通過(guò)技術(shù)手段保證數(shù)據(jù)的同步,支持審計(jì)等能力,自然就不需要挖礦了。困惑4:目前應(yīng)用區(qū)塊鏈技術(shù)不是去中心,而是多中心去中心是一個(gè)理想,經(jīng)常有人問(wèn),為什么要去中心?去中心有什么好處?真的能去中心嗎?后來(lái),我深入研究聯(lián)盟鏈的場(chǎng)景時(shí)發(fā)現(xiàn),實(shí)際的業(yè)務(wù)場(chǎng)景大多是多中心(這又是比特幣惹的禍,他真的想去中心),例如上述的企業(yè)聯(lián)盟方式,幾個(gè)建立聯(lián)盟的核心企業(yè)就是多中心,他們共同成為一個(gè)新的中心。傳統(tǒng)方式建立新的中心,往往通過(guò)建立清算機(jī)構(gòu)的方式,而區(qū)塊鏈技術(shù)讓建立中心的成本降低了。困惑5:不是所有的區(qū)塊鏈節(jié)點(diǎn)都是記賬節(jié)點(diǎn),很多節(jié)點(diǎn)僅僅用來(lái)進(jìn)行數(shù)據(jù)同步而已多中心就意味著不是每個(gè)節(jié)點(diǎn)都需要記賬,記賬的工作由幾個(gè)中心節(jié)點(diǎn)負(fù)責(zé)就可以了,其他節(jié)點(diǎn)與記賬節(jié)點(diǎn)間是數(shù)據(jù)同步的關(guān)系,也就是非記賬節(jié)點(diǎn)上也有全部數(shù)據(jù)。聯(lián)盟鏈中非記賬節(jié)點(diǎn)一般處在加盟企業(yè),由于數(shù)據(jù)可見性的要求,非記賬節(jié)點(diǎn)中的數(shù)據(jù)并不是都可見的,但是這一副本可以做為一種法律依據(jù),提高了篡改數(shù)據(jù)的成本。三、總

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論