更新時(shí)間:2021年03月12日17時(shí)01分 來(lái)源:傳智教育 瀏覽次數(shù):
什么是區(qū)塊鏈?目前沒(méi)有看到很好的定義和介紹,網(wǎng)上要么是講一些區(qū)塊鏈意義的空泛文章,比如“區(qū)塊鏈技術(shù)顛覆誰(shuí)誰(shuí)誰(shuí)”、又或“互聯(lián)網(wǎng)已顛覆世界,區(qū)塊鏈要顛覆互聯(lián)網(wǎng)等等”,要么就是通篇介紹比特幣,礦工,挖礦等。那么區(qū)塊鏈到底是個(gè)什么東西?它跟比特幣又有什么關(guān)系呢?
其實(shí)區(qū)塊鏈本質(zhì)上是一個(gè)去中心化的分布式賬本數(shù)據(jù)庫(kù)。其本身是一串使用密碼學(xué)相關(guān)聯(lián)所產(chǎn)生的數(shù)據(jù)塊,每一個(gè)數(shù)據(jù)塊中包含了多次交易有效確認(rèn)的信息。而比特幣就是基于區(qū)塊鏈技術(shù)的一個(gè)應(yīng)用。
想要快速了解區(qū)塊鏈,要從以下幾個(gè)方面著手:
區(qū)塊鏈本質(zhì)上是一個(gè)去中心化的分布式賬本數(shù)據(jù)庫(kù),什么叫去中心化的分布式數(shù)據(jù)庫(kù)?
先看一個(gè)中心化與分布式案例,搞IT編程的都知道,目前版本控制軟件最流行的一個(gè)是svn,一個(gè)是git那它倆有什么區(qū)別呢,如下圖:
svn是一個(gè)集中式的服務(wù)器,代碼的版本變更信息都存儲(chǔ)在svn server服務(wù)端,每個(gè)客戶端磁盤里只有眾多版本中的其中一個(gè)版本,假如服務(wù)端壞掉了,那我們就丟失了版本變更記錄。
而git不一樣,它是沒(méi)有中心服務(wù)器的,每個(gè)人機(jī)器上都是一個(gè)完整的庫(kù),里面就有各個(gè)版本的變更信息,我們開發(fā)完代碼以后先commit到本地倉(cāng)庫(kù),在push推送到遠(yuǎn)程服務(wù)器,假如遠(yuǎn)端服務(wù)器壞掉了,只需要把本地倉(cāng)庫(kù)重新push一次即可,版本變更記錄還在。
區(qū)塊鏈也是這樣,沒(méi)有中心,分布在全球各地、能夠協(xié)同運(yùn)轉(zhuǎn)的數(shù)據(jù)庫(kù)存儲(chǔ)系統(tǒng),任何有能力架設(shè)服務(wù)器的人都可以參與其中。來(lái)自全球各地的掘金者在當(dāng)?shù)夭渴鹆俗约旱姆?wù)器,并連接到區(qū)塊鏈網(wǎng)絡(luò)中,成為這個(gè)分布式數(shù)據(jù)庫(kù)存儲(chǔ)系統(tǒng)中的一個(gè)節(jié)點(diǎn)。一旦加入,該節(jié)點(diǎn)享有同其他所有節(jié)點(diǎn)完全一樣的權(quán)利與義務(wù)(去中心化、分布式的特征)。與此同時(shí),對(duì)于在區(qū)塊鏈上開展服務(wù)的人,可以往這個(gè)系統(tǒng)中的任意的節(jié)點(diǎn)進(jìn)行讀寫操作,最后全世界所有節(jié)點(diǎn)會(huì)根據(jù)某種機(jī)制的完成一次又依次的同步,從而實(shí)現(xiàn)在區(qū)塊鏈網(wǎng)絡(luò)中所有節(jié)點(diǎn)的數(shù)據(jù)完全一致。
數(shù)據(jù)區(qū)塊里都有什么?由哪些數(shù)據(jù)組成的呢?
區(qū)塊作為區(qū)塊鏈的基本結(jié)構(gòu)單元,由包含元數(shù)據(jù)的區(qū)塊頭和包含交易數(shù)據(jù)的區(qū)塊主體構(gòu)成。 區(qū)塊頭包含三組元數(shù)據(jù):
1、用于連接前面的區(qū)塊、索引自父區(qū)塊哈希值的數(shù)據(jù)。
2、挖礦難度、Nonce(隨機(jī)數(shù),用于工作量證明算法的計(jì)數(shù)器)、時(shí)間戳。
3、能夠總結(jié)并快速歸納校驗(yàn)區(qū)塊中所有交易數(shù)據(jù)的Merkle(默克爾)樹根數(shù)據(jù)。
大概每隔10分鐘,就會(huì)有一個(gè)新的頁(yè)(區(qū)塊),所有的參與者都可以在這頁(yè)(區(qū)塊)上記賬,誰(shuí)先最快記完賬,就可以把這個(gè)頁(yè)(區(qū)塊)添加到賬本(主鏈)里,并得到一筆獎(jiǎng)勵(lì)(比如比特幣,這就是所謂的挖礦)。而其他沒(méi)完成的參與者手里的頁(yè)(區(qū)塊)就會(huì)作廢,只能繼續(xù)等待另一個(gè)區(qū)塊產(chǎn)生,然后重新開始記賬。挖出每個(gè)區(qū)塊中也包含了前一個(gè)區(qū)塊的ID(識(shí)別碼),這使得每個(gè)區(qū)塊都能找到其前一個(gè)節(jié)點(diǎn),這樣一直倒推就形成了一條完整的交易鏈條。從誕生之初到運(yùn)行至今,全網(wǎng)隨之形成了一條唯一的主區(qū)塊鏈。如下所示
區(qū)塊鏈既然這么備受關(guān)注,那它的數(shù)據(jù)一定是非常安全的,那么它是如何利用密碼學(xué)保證區(qū)塊里數(shù)據(jù)不會(huì)被篡改?這里用到密碼學(xué)里兩個(gè)東西:哈希算法和非對(duì)稱加密。
哈希算法有兩大特點(diǎn):不可逆和無(wú)沖突。 所謂不可逆,就是當(dāng)你知道x的hash值,無(wú)法求出x; 所謂無(wú)沖突,就是當(dāng)你知道x,無(wú)法求出一個(gè)y, 使x與y的hash值相同。而且只要x稍微有一丁點(diǎn)變化,計(jì)算出的hash值與x的hash值完全不一樣。
常見的加密算法有兩種:對(duì)稱加密和非對(duì)稱加密。
對(duì)稱加密:該算法在加密和解密時(shí)使用的是同一個(gè)秘鑰,常見算法有DES、AES等。特點(diǎn):加密解密簡(jiǎn)單,速度快,一般用在數(shù)據(jù)量大又不太注重安全的場(chǎng)景。
非對(duì)稱加密:非對(duì)稱加密需要兩個(gè)密鑰來(lái)進(jìn)行加密和解密,這兩個(gè)秘鑰是公開密鑰(public key,簡(jiǎn)稱公鑰)和私有密鑰(private key,簡(jiǎn)稱私鑰)。非對(duì)稱加密除了用戶信息加密之外,還有一個(gè)作用就是,身份驗(yàn)證。過(guò)程如下,消息發(fā)送者先對(duì)消息做哈希運(yùn)算,接著用私鑰加密處理。最后再把原消息和加密后的消息及公鑰發(fā)送出去,消息接受者先對(duì)消息做哈希運(yùn)算,然后用公鑰解密消息得到哈希值,如果兩個(gè)哈希值相同就代表消息沒(méi)有被篡改過(guò)。常見算法有RSA、DSA等。特點(diǎn):加密解密速度慢,但是安全性較高,非對(duì)稱加密最經(jīng)典的應(yīng)用就是數(shù)字簽名。
上面的內(nèi)容屬于密碼學(xué)基礎(chǔ)知識(shí),接下來(lái)我們就看下在區(qū)塊鏈里的應(yīng)用:
第一個(gè)創(chuàng)世區(qū)塊被創(chuàng)建以后,里面有什么無(wú)所謂。 從第二個(gè)區(qū)塊開始,區(qū)塊頭包含前一個(gè)區(qū)塊的哈希值,及這段時(shí)間內(nèi)全網(wǎng)索引交易記錄(10分鐘左右),且每筆交易都有簽名,可以保證沒(méi)有被篡改過(guò),區(qū)塊一旦被挖出,區(qū)塊里的數(shù)據(jù)就不會(huì)在改變。否則區(qū)塊的哈希值就會(huì)改變,而如果哈希值改變,整個(gè)區(qū)塊鏈條就不再完整。
區(qū)塊數(shù)據(jù)是不斷增加的,怎么保證新增的數(shù)據(jù)被其他節(jié)點(diǎn)認(rèn)可?區(qū)塊鏈的邏輯很簡(jiǎn)單,就是比誰(shuí)更快。誰(shuí)先計(jì)算出并添加到張波就給誰(shuí)一定的獎(jiǎng)勵(lì)。那如果有人做假賬,搞故意破壞怎么辦,我們來(lái)看一下區(qū)塊鏈如何解決作弊行為:
1、交易數(shù)據(jù)驗(yàn)證:上面介紹了非加密算法,交易信息都是使用非對(duì)稱加密算法在節(jié)點(diǎn)之間傳輸,可以保證數(shù)據(jù)不會(huì)被篡改。
2、區(qū)塊驗(yàn)證:區(qū)塊是前后相連的,修改之前區(qū)塊之后哈希值變化無(wú)法再連到主鏈上,如果偽造最后一個(gè),后面所有區(qū)塊都要偽造,工作量太大。
3、分布式存儲(chǔ):任何一個(gè)節(jié)點(diǎn)都擁有全部交易數(shù)據(jù),假如有人修改了某頁(yè)數(shù)據(jù),必須得到51%以上節(jié)點(diǎn)的認(rèn)可。
4、鏈有效性:如果有兩個(gè)節(jié)點(diǎn)同時(shí)計(jì)算出,這時(shí)候區(qū)塊主鏈會(huì)分叉,但是區(qū)塊鏈規(guī)定,誰(shuí)先挖出6個(gè)區(qū)塊,就以誰(shuí)為準(zhǔn),其他分叉作廢。比如下圖,下面的分叉先計(jì)算出來(lái)6個(gè)區(qū)塊則以下面分叉為主。
區(qū)塊鏈?zhǔn)且环N特殊的分布式數(shù)據(jù)庫(kù),任何服務(wù)器都可以成為區(qū)塊鏈中的一個(gè)節(jié)點(diǎn),且節(jié)點(diǎn)之間是平等的,無(wú)中心化,區(qū)塊鏈中的數(shù)據(jù)是經(jīng)過(guò)加密存儲(chǔ),已經(jīng)存儲(chǔ)的數(shù)據(jù)無(wú)法修改,可以保證數(shù)據(jù)的準(zhǔn)確性。
區(qū)塊鏈優(yōu)缺點(diǎn):
優(yōu)點(diǎn):
1、去中心化,不需要第三方權(quán)威機(jī)構(gòu)。
2、數(shù)據(jù)不可篡改,數(shù)據(jù)一旦存入?yún)^(qū)塊,將永久存儲(chǔ),數(shù)據(jù)具有極高的穩(wěn)定性和可靠性。(此特點(diǎn)也是缺點(diǎn),數(shù)據(jù)不可撤銷。)
3、自制性,算法公開透明,人為干預(yù)不起作用。
4、開放性,數(shù)據(jù)完全開放,任何節(jié)點(diǎn)都可以查詢區(qū)塊鏈內(nèi)所有數(shù)據(jù)。(此特點(diǎn)也算缺點(diǎn),可以查詢某個(gè)賬戶所有交易數(shù)據(jù)。)
5、匿名性,交易時(shí)無(wú)需公開身份讓對(duì)方相信自己。(此特點(diǎn)也算缺點(diǎn),由于無(wú)需公開身份交易,又無(wú)需擔(dān)心交易過(guò)程,受到不少不法分子的喜愛(ài)。)
缺點(diǎn):
1、效率低,每次數(shù)據(jù)添加到數(shù)據(jù)庫(kù)至少十分鐘,第一次使用要下載歷史所有交易數(shù)據(jù)。
2、延遲性,由于交易數(shù)據(jù)需要被其他節(jié)點(diǎn)認(rèn)可,記賬周期長(zhǎng),交易不及時(shí)。
根據(jù)以上特點(diǎn),區(qū)塊鏈應(yīng)用場(chǎng)景并不是很多:
1、對(duì)信息安全要求高但是對(duì)速度要求不高的金融、保險(xiǎn)、信用體系領(lǐng)域。
2、電子貨幣行業(yè),比如比特幣、火牛幣等,這些幣種央行并不承認(rèn),無(wú)法兌換人民幣,投資有風(fēng)險(xiǎn),購(gòu)入需謹(jǐn)慎。
猜你喜歡:
北京校區(qū)