大概看了看,對于我這個區(qū)塊鏈小白而言儿普,區(qū)塊鏈原理學習起來有點頭大崎逃,所以關(guān)于區(qū)塊鏈的運作原理,分成兩個部分來學習眉孩。今天學習區(qū)塊鏈的幾個核心概念个绍。
1.區(qū)塊:區(qū)塊鏈的基本單位,包括區(qū)塊頭和區(qū)塊主體浪汪。
區(qū)塊鏈大概十分鐘會創(chuàng)建一個區(qū)塊巴柿,其中包含了這段時間內(nèi)全網(wǎng)范圍發(fā)生的所有交易。每個區(qū)塊中都包含了前一個區(qū)塊的ID(識別碼)死遭,這使得每個區(qū)塊都能找到其前一個節(jié)點篮洁,這樣一直倒退就可以形成一條完整的交易鏈條。那么我有一個疑問殃姓,是不是每次創(chuàng)建的這個區(qū)塊的內(nèi)容會越來越多,花費時間會越來越長呢瓦阐?
清晰認知:從誕生之初蜗侈,到運行至今,全網(wǎng)隨之形成了一條唯一的主區(qū)塊鏈睡蟋。
2.哈希算法:是區(qū)塊鏈中保證交易信息不被篡改的單向密碼機制踏幻。
哈希算法接受一段明文,然后以一種不可逆的方式將其轉(zhuǎn)化為一段長度較短戳杀,位數(shù)固定的某種數(shù)據(jù)该面。兩個特點:1.不可逆夭苗,只能將明文轉(zhuǎn)化為數(shù)據(jù),不能把數(shù)據(jù)回溯為最初的明文隔缀;2.輸入的明文和轉(zhuǎn)化的數(shù)據(jù)是一一對應(yīng)的题造,改變前者,后者必將相應(yīng)改變猾瘸。
3.公鑰和私鑰
先簡單舉個例子:比如單位有個文件發(fā)到某個公用電子郵箱里界赔,讓大家去下載,那就會公布一個密碼牵触,這就類似公鑰淮悼。個人郵箱的密碼只有自己知道,這就類似私鑰揽思。
為什么都是類似呢袜腥,因為二者有一個本質(zhì)的區(qū)別——電子郵箱的鑰匙還是屬于對稱加密,一個用戶名對應(yīng)一個密碼钉汗,并且是可逆的羹令,公安局網(wǎng)絡(luò)刑警可據(jù)此破案。而區(qū)塊鏈中的公鑰和私鑰是不對稱加密方式儡湾,不可逆的特恬。公鑰和地址的生成都依賴私鑰,有了私鑰就能生成公鑰和地址徐钠,并隨時花費地址上的比特幣癌刽,所以私鑰用來解密/簽章,公鑰是讓別人驗證/簽章的尝丐。下面的圖可以加深這個理解显拜。
小白:用私鑰對信息進行簽名,使用小黑的公鑰對信息加密爹袁。
小黑:用小白的公鑰驗證小白的身份远荠,使用私鑰對加密信息解密。
在區(qū)塊鏈信息傳遞中失息,信息傳遞雙方的公鑰和私鑰的加密和解密往往是不成對出現(xiàn)的譬淳。
4.時間戳:這個特別好理解,區(qū)塊鏈中時間對應(yīng)的是每一次交易記錄的認證盹兢,證明交易記錄的真實性邻梆。獨一無二,且不可篡改绎秒。
5.Merkle樹結(jié)構(gòu)(默克爾樹結(jié)構(gòu))
這本書關(guān)于默克爾樹結(jié)構(gòu)講解的過于簡單浦妄,所以 我百度區(qū)塊鏈兄弟找到了關(guān)于默克爾樹的更詳細的理解:默克爾樹結(jié)構(gòu)是為了更好地驗證比對。因為越來越多的人使用比特幣,所以整個區(qū)塊鏈內(nèi)容越來越多剂娄,不可能每個節(jié)點都去下載運行完整的副本蠢涝,
“但是由于節(jié)點是網(wǎng)絡(luò)中的完全參與者,它們負有相關(guān)責任:節(jié)點必須驗證交易和區(qū)塊阅懦。在中本聰?shù)谋忍貛旁颊撐闹泻投矊懥艘粋€解決方案,即簡易支付驗證(Simplified Payment Verification, SPV)故黑。
SPV 是一個比特幣輕節(jié)點儿咱,它不需要下載整個區(qū)塊鏈,相反场晶,它會在區(qū)塊鏈查找交易(為了驗證支付)混埠,為了實現(xiàn) SPV,需要有一個方式來檢查是否一個區(qū)塊包含了某筆交易诗轻,而無須下載整個區(qū)塊钳宪。這就是 Merkle 樹所要完成的事情“饩妫”
區(qū)塊鏈利用默克爾樹的數(shù)據(jù)結(jié)構(gòu)存放所有葉子節(jié)點的值吏颖,并以此為基礎(chǔ)生成一個統(tǒng)一的嘻哈值。葉子節(jié)點存儲的是數(shù)據(jù)信息的哈希值恨樟,非葉子節(jié)點存儲的是對下面所有葉子節(jié)點的組合進行哈希計算后得出的哈希值半醉。
從下往上進行交易信息比對,利用默克爾樹結(jié)構(gòu)可以大大減少數(shù)據(jù)的計算劝术,畢竟缩多,我們只需要驗證默克爾樹生成的統(tǒng)一哈希值就可以了。
本來計劃多學習更多的東西养晋,發(fā)現(xiàn)這幾個概念就夠喝一壺的衬吆,很難消化。下次學習比特幣病毒事件绳泉。