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