什么是區(qū)塊鏈
一條鏈,多個數(shù)據(jù)塊(區(qū)塊)串聯(lián)起來的鏈表焙蚓, 這條鏈的存儲更新維護都是運行在一個分去中心的P2P網(wǎng)絡(luò)系統(tǒng)之上的遣疯。
比特幣
分布式記賬本,賬本記錄的是交易記錄扶镀,比特幣這條鏈上記錄了所有的比特幣交易記錄蕴侣,按照時間順序打包成一個個區(qū)塊,串聯(lián)記錄起來臭觉。
比特幣為例昆雀,簡單的區(qū)塊鏈是如何運行的
P2P & 對等網(wǎng)絡(luò)
對等網(wǎng)絡(luò)可以對比中心式網(wǎng)絡(luò)來看
中心式網(wǎng)絡(luò)存在一個中心節(jié)點, 網(wǎng)絡(luò)內(nèi)的所有其他節(jié)點都直接鏈接中心節(jié)點蝠筑, 中心節(jié)點進行數(shù)據(jù)處理狞膘,一旦中心節(jié)點出現(xiàn)問題, 整個網(wǎng)絡(luò)都不可用什乙。
對等網(wǎng)絡(luò)挽封,網(wǎng)絡(luò)中的每個節(jié)點地位相等, 節(jié)點間相互鏈接臣镣,每個節(jié)點既可以作為客戶端向其他節(jié)點請求數(shù)據(jù)辅愿,也可以作為服務(wù)端,為其他節(jié)點提供服務(wù)忆某。這種網(wǎng)絡(luò)結(jié)構(gòu)下某個節(jié)點出現(xiàn)問題点待, 不會影響整個網(wǎng)絡(luò)。
比特幣在P2P網(wǎng)絡(luò)之上弃舒,實現(xiàn)了一套共識機制亦鳞, 分布式存儲了區(qū)塊鏈的數(shù)據(jù)。
分布式存儲
傳統(tǒng)的互聯(lián)網(wǎng)系統(tǒng)的分布式存儲一般指網(wǎng)絡(luò)中有多個節(jié)點都能存儲數(shù)據(jù)棒坏, 每個節(jié)點只存儲總數(shù)據(jù)集的一部分,每個節(jié)點存儲的數(shù)據(jù)是不同的遭笋。使用數(shù)據(jù)時整個存儲系統(tǒng)坝冕,對外能表現(xiàn)出擁有全量的數(shù)據(jù)。相當于把多臺機器的存儲能力整合到一起瓦呼,組成一個高性能的存儲系統(tǒng)
比特幣的分布式存儲喂窟, 是每個節(jié)點都存儲全量的數(shù)據(jù)测暗,存儲了整個區(qū)塊鏈的數(shù)據(jù), 多個節(jié)點存儲的數(shù)據(jù)是相同的磨澡。系統(tǒng)中有多少個節(jié)點碗啄,區(qū)塊鏈的數(shù)據(jù)就有多少個備份。整個系統(tǒng)共同維護了一套數(shù)據(jù)的多個備份稳摄。這樣就不會因為某個節(jié)點的數(shù)據(jù)損壞丟失等問題影響到整個系統(tǒng)稚字,甚至說只要有一個節(jié)點還存儲著全部數(shù)據(jù),整個系統(tǒng)就可以恢復(fù)厦酬。
共識
在P2P網(wǎng)絡(luò)上這么多節(jié)點維護同一套數(shù)據(jù)就會有一些問題胆描,節(jié)點間如何達成一致?節(jié)點1 要在數(shù)據(jù)A后邊存儲一條新的數(shù)據(jù)B仗阅, 節(jié)點2要在數(shù)據(jù)A后邊存儲一條新數(shù)據(jù)C昌讲,我們最終要維護一套相同的數(shù)據(jù),所以A后邊到底是存儲B還是C呢减噪?多個節(jié)點如何就這類問題達成一致呢短绸? 如果是中心式系統(tǒng)的話,很好解決這種問題筹裕, 決策都由中心節(jié)點處理醋闭,其他節(jié)點聽話干活就行。P2P網(wǎng)絡(luò)上沒有中心節(jié)點饶碘,每個節(jié)點地位相等目尖,那么大家如何達成共識呢。比特幣系統(tǒng)的解決方式是扎运,通過POW的方式讓某一個節(jié)點搶到?jīng)Q策權(quán)瑟曲,其他節(jié)點跟隨他的決策。通俗講每個節(jié)點都在拼命算一道很難的數(shù)學題豪治,誰先算出答案洞拨,這一輪誰就聽誰的。通過這樣的方式來達成一致负拟。
所以比特幣是這樣運行的
很多計算機運行了比特幣的客戶端程序烦衣,運行了客戶端程序,這臺計算機就成為了比特幣P2P網(wǎng)絡(luò)中的一個節(jié)點掩浙。這些節(jié)點不斷從網(wǎng)絡(luò)中收集比特幣的轉(zhuǎn)賬交易記錄花吟,同時也將這些數(shù)據(jù)廣播給其他節(jié)點。每個節(jié)點都在收集交易記錄厨姚,同時也都在算一道很難的數(shù)學題衅澈,當某一個節(jié)點算出答案時,會將自己收集到的交易數(shù)據(jù)打包成塊(區(qū)塊)谬墙,并將這個區(qū)塊廣播到網(wǎng)絡(luò)上讓所有節(jié)點校驗今布、存儲起來经备。這樣所有節(jié)點就共同存儲了一套相同的區(qū)塊數(shù)據(jù),這些區(qū)塊按照產(chǎn)生的先后順序部默,連成一條鏈-> 區(qū)塊鏈侵蒙。這樣的一個系統(tǒng)某些節(jié)點故障,不會影響系統(tǒng)的整體運行傅蹂,也不會丟失數(shù)據(jù)纷闺。沒有中心,也就很難被中心所操控贬派。
比特幣-分布式賬本
上邊講了分布式系統(tǒng)上共同維護同一套數(shù)據(jù)是如何運行的急但。比特幣就是維護了一個賬本,賬本記錄了所有交易記錄搞乏,有了所有交易記錄波桩,也就能算出每個賬戶的正確余額。新產(chǎn)生的交易記錄被節(jié)點按照規(guī)則不斷記錄到區(qū)塊鏈上请敦, 已經(jīng)記錄的數(shù)據(jù)不可更改镐躲。維護起這樣一個賬本就實現(xiàn)了比特幣的查詢余額、轉(zhuǎn)賬等基本操作侍筛。
區(qū)塊鏈有什么不一樣
費了這么大力氣萤皂,就實現(xiàn)了個轉(zhuǎn)賬? 這個我銀行卡轉(zhuǎn)賬支付寶轉(zhuǎn)賬比有什么厲害的地方匣椰,為什么要用區(qū)塊鏈要用比特幣裆熙?
大家都在講區(qū)塊鏈解決了信任問題,是解決了什么信任問題
先換個問題 我為什么愿意把家里得兩頭牛禽笑,換成幾張紙幣入录?因為我對國家的信任,對國家發(fā)行維護的這套貨幣系統(tǒng)的信任佳镜,然后我為什么愿意拿著這幾張紙去銀行換成一張塑料卡片僚稿,換成網(wǎng)銀里的幾個數(shù)字呢?這是我對銀行的信任蟀伸,信任銀行能夠隨時給我兌換現(xiàn)金蚀同,信任在網(wǎng)銀上轉(zhuǎn)賬時,那堆數(shù)字的處理不會出錯啊掏。信任銀行系統(tǒng)不會崩潰蠢络。
那如果我信任比特幣 信任的是什么?信任的是機器是機器執(zhí)行的代碼迟蜜,代碼就是設(shè)定好的邏輯刹孔,不變的規(guī)則,能夠在機器上嚴格的執(zhí)行小泉。信任比特幣是信任這套構(gòu)建在P2P網(wǎng)絡(luò)上的分布式系統(tǒng)足夠健壯穩(wěn)定芦疏,運行在其之上的這一套記賬的代碼能夠嚴格正確的記錄數(shù)據(jù)。
區(qū)塊鏈帶來的不一樣的地方微姊,是這種信任模式的轉(zhuǎn)變酸茴,從對人對組織機構(gòu)的信任,能轉(zhuǎn)變成對機器對代碼的信任兢交,這種轉(zhuǎn)變能帶來變革的地方薪捍,都會有無限的想象空間。