哈希
Hash,一般翻譯做“散列”嘱兼,也有直接音譯為“哈希”的贤徒,就是把任意長度的輸入(又叫做預(yù)映射pre-image)通過散列算法變換成固定長度的輸出芹壕,該輸出就是散列值汇四。前端可通過哈希來標(biāo)識(shí)文件的變化,進(jìn)而應(yīng)用在緩存中踢涌,比如通過給js通孽、css資源鏈接后加上哈希<script src="http://d3js.org/d3.v3.min.js?20181208"></script>
,下次瀏覽器再訪問時(shí)一樣的哈希值則不會(huì)再請(qǐng)求資源,而是直接使用緩存睁壁。在區(qū)塊鏈中背苦,每個(gè)區(qū)塊存儲(chǔ)有自己特定的哈希(用sha256哈希)以及上一個(gè)區(qū)塊的哈希,以此作為唯一標(biāo)識(shí)并且連接區(qū)塊潘明。哈希具有以下特點(diǎn):
- 正向快速:一樣的明文會(huì)轉(zhuǎn)換成固定的哈希
- 逆向困難:無法通過哈希逆向解析出明文
- 輸入敏感:明文的一丁點(diǎn)改變就會(huì)使哈希發(fā)生翻天覆地的變化
- 碰撞避免:不一樣的明文的哈希值不會(huì)重復(fù)
共識(shí)機(jī)制
去中心化就像是沒有了領(lǐng)導(dǎo)行剂,大家沒有統(tǒng)一的規(guī)則證明自己的工作量,有的人會(huì)報(bào)高有的人會(huì)報(bào)低钳降,因此出現(xiàn)了共識(shí)機(jī)制
- POW 工作量證明:形象地說就是大家一起搬磚厚宰,誰搬磚得多就證明誰的工作量多,區(qū)塊鏈中的應(yīng)用就是出一道數(shù)學(xué)題遂填,誰先暴力破解出來了則證明誰的工作量大铲觉,缺點(diǎn)是比較耗時(shí)
- POS 權(quán)益證明:就像是股東機(jī)制,誰持的股份大誰就有決定權(quán)吓坚,缺點(diǎn)是每個(gè)人都要認(rèn)證股份大小撵幽,比較耗性能
- DPOS 代理權(quán)益證明:像現(xiàn)在的人民代表大會(huì)制度,會(huì)選取人民代表處理事情一樣節(jié)點(diǎn)選出超級(jí)節(jié)點(diǎn)礁击,缺點(diǎn)是會(huì)混入黑盒交易并齐,惡意買通內(nèi)部人員的選舉票
非對(duì)稱加密
互聯(lián)網(wǎng)上傳送信息時(shí)通常要對(duì)信息進(jìn)行加密,防止黑客篡改信息內(nèi)容客税。主要的加密方法有三種
- 映射加密:這是比較古老的况褪,比如把信息中的a改為z,把b改為y更耻。這種破譯比較簡單
- 對(duì)稱加密:發(fā)送方通過私鑰加密信息测垛,接收方通過發(fā)送方的私鑰解密信息,缺點(diǎn)顯而易見秧均,發(fā)送信息時(shí)必須通知對(duì)方自己的私鑰食侮,有泄漏風(fēng)險(xiǎn)而且比較麻煩。AES就是采用這種加密方式
- 非對(duì)稱加密:每個(gè)人都有自己的一個(gè)公鑰和一個(gè)私鑰目胡,私鑰可以算出公鑰并且只有自己知道锯七,公鑰所有人都知道,發(fā)送方將信息與自己的私鑰公鑰相結(jié)合發(fā)送誉己,接收方通過發(fā)送方的公鑰進(jìn)行解密眉尸,以此認(rèn)證發(fā)送者的唯一性。RSA就是非對(duì)稱加密
容錯(cuò)
比較著名的是拜占庭將軍問題。幾個(gè)將軍必須協(xié)議好統(tǒng)一時(shí)間進(jìn)攻同一個(gè)地方噪猾,如果其中有一個(gè)已經(jīng)叛變了沒有一起進(jìn)攻則會(huì)導(dǎo)致失敗霉祸。因此我們的區(qū)塊鏈也要進(jìn)行容錯(cuò),防止一個(gè)節(jié)點(diǎn)出錯(cuò)被黑了發(fā)送錯(cuò)誤的信息袱蜡。這里可以采用某個(gè)特定值作為容錯(cuò)值丝蹭。
P2P(點(diǎn)對(duì)點(diǎn))
就像通信中的網(wǎng)狀網(wǎng)絡(luò),迅雷坪蚁、電驢等上面用戶存儲(chǔ)的小電影是分布式存儲(chǔ)的奔穿,比如完全去中心化的DHT的Kademika網(wǎng)絡(luò)
其他
分布式、地址敏晤、區(qū)塊巫橄、DAPP、智能合約(符合一定條件邏輯自動(dòng)執(zhí)行的代碼)茵典、錢包湘换、CAP原理、Paxos统阿、raft算法彩倚、Merkle樹(用來計(jì)算哈希)、拜占庭容錯(cuò)