淺出區(qū)塊鏈

緣起

談起區(qū)塊鏈不得不提到比特幣,2008年中本聰在 比特幣: 一個(gè)點(diǎn)對(duì)點(diǎn)的電子現(xiàn)金系統(tǒng) 一文中首先提出比特幣,初衷很明確:希望這套系統(tǒng)不依賴任何一個(gè)中心,因此它是一個(gè)分布式系統(tǒng),區(qū)塊鏈的概念正是在中本聰設(shè)計(jì)比特幣系統(tǒng)的時(shí)候第一次提出,比特幣項(xiàng)目也是區(qū)塊鏈技術(shù)目前為止落地應(yīng)用最成功的一次。

本質(zhì)

本質(zhì)上來說,區(qū)塊鏈?zhǔn)且粋€(gè)分布式的數(shù)據(jù)庫,這個(gè)數(shù)據(jù)庫維護(hù)了一個(gè)不斷增長(zhǎng)的數(shù)據(jù)記錄列表。區(qū)塊鏈這個(gè)詞拆開來看,一個(gè)區(qū)塊,一個(gè)鏈,區(qū)塊里存放的是數(shù)據(jù),鏈?zhǔn)怯脕韺^(qū)塊串聯(lián)起來。如下圖所示:


1. 區(qū)塊鏈本質(zhì)

區(qū)塊

區(qū)塊里存放的是數(shù)據(jù),每個(gè)區(qū)塊包括兩部分

區(qū)塊頭:記錄當(dāng)前區(qū)塊的特征值

區(qū)塊體:記錄實(shí)際的交易數(shù)據(jù)

區(qū)塊頭主要包括的特征值如下:

Version:版本號(hào)

Previous Block: 前一個(gè)區(qū)塊頭的hash值

Number Of Transactions:交易數(shù)

Timestamp:時(shí)間戳

Nonce:隨機(jī)數(shù)

Merkle Root:區(qū)塊體根節(jié)點(diǎn)hash值

交易的記錄存儲(chǔ)在區(qū)塊體中,區(qū)塊體的存儲(chǔ)結(jié)構(gòu)是一顆二叉樹,稱為默克爾樹,在這棵樹中葉子節(jié)點(diǎn)存放的是交易數(shù)據(jù)及數(shù)據(jù)的hash值,兩個(gè)葉子節(jié)點(diǎn)的hash值生成父節(jié)點(diǎn);直至生成根節(jié)點(diǎn),就是默克爾樹根節(jié)點(diǎn)(Merkle Root)


2. 默克爾樹

可以打開此鏈接查看一個(gè)比特幣區(qū)塊完整的詳細(xì)信息

區(qū)塊頭里存放著上一個(gè)區(qū)塊的hash值順序成為一個(gè)鏈條,區(qū)塊鏈的概念就是這一樣來的。

3. 區(qū)塊鏈

工作流程

理解了交易記錄,區(qū)塊,鏈等概念,我們來看下底層區(qū)塊鏈的工作流程

1. 交易發(fā)生

2. 節(jié)點(diǎn)監(jiān)聽交易記錄

3. 驗(yàn)證記錄并將合法記錄加入到節(jié)點(diǎn)內(nèi)存區(qū)

4. 計(jì)算出區(qū)塊并廣播全網(wǎng)形成共識(shí)

5. 產(chǎn)生的新的區(qū)塊加入到區(qū)塊鏈中

6. 重復(fù)2-5

共識(shí)算法

區(qū)塊鏈技術(shù)是基于分布式系統(tǒng),為了保證各個(gè)節(jié)點(diǎn)數(shù)據(jù)的同步,我們需要一個(gè)算法來保證數(shù)據(jù)一致性,這類算法被稱為共識(shí)算法。比特幣的共識(shí)算法為工作量證明(PoW),其他共識(shí)算法還有 權(quán)益證明(PoS)、授權(quán)股權(quán)證明機(jī)制(DPoS)、瑞波共識(shí)協(xié)議(RCP)、拜占庭共識(shí)算法(PBFT)等

挖礦

回想我們?cè)谏厦嫠岬降膮^(qū)塊鏈工作流程第四步

4. 計(jì)算出區(qū)塊并廣播全網(wǎng)形成共識(shí)

如何計(jì)算出區(qū)塊?這 就需要尋找一個(gè)隨機(jī)數(shù)(Nonce)和區(qū)塊頭的其他特征值一起計(jì)算出來一個(gè)hash值,一旦找到一個(gè)隨機(jī)數(shù)使得計(jì)算出來的hash值滿足難度要求,即可全網(wǎng)廣播告訴其他節(jié)點(diǎn),這個(gè)區(qū)塊已經(jīng)被找到了,而找到區(qū)塊的節(jié)點(diǎn)會(huì)有相應(yīng)的比特幣的獎(jiǎng)勵(lì)。這個(gè)過程被形象的稱為挖礦。計(jì)算hash的機(jī)器被稱為礦機(jī),操作礦機(jī) 的人被稱為礦工

區(qū)塊鏈分叉

區(qū)塊鏈?zhǔn)且粋€(gè)去中心化的數(shù)據(jù)結(jié)構(gòu),各個(gè)節(jié)點(diǎn)在任意時(shí)刻不會(huì) 保持實(shí)時(shí)一致性,會(huì)存在某一時(shí)刻不同的節(jié)點(diǎn)形成了多個(gè)區(qū)塊,這就形成了分叉,這時(shí)應(yīng)該采用哪一個(gè)區(qū)塊?

目前的規(guī)則是新節(jié)點(diǎn)總是采用最長(zhǎng)的那條區(qū)塊鏈。如果區(qū)塊鏈有分叉,將看哪個(gè)分支在分叉點(diǎn)后面,先達(dá)到6個(gè)新區(qū)塊(稱為"六次確認(rèn)")。按照10分鐘一個(gè)區(qū)塊計(jì)算,一小時(shí)就可以確認(rèn)。

區(qū)塊鏈分類

根據(jù)參與者的不同可以分為公開鏈,私有鏈,聯(lián)盟鏈

公開鏈顧名思義,任何人都可以參與使用和維護(hù),典型的如比特幣區(qū)塊鏈,信息完全公開

私有鏈,集中管理者進(jìn)行限制,內(nèi)部少數(shù)人可以使用,信息不公開

聯(lián)盟鏈介于兩者中間,若干組織維護(hù)一條區(qū)塊鏈,區(qū)塊鏈的使用有權(quán)限管理,相關(guān)信息能夠得到保護(hù)。

總結(jié)

區(qū)塊鏈不是一個(gè)憑空產(chǎn)生的一個(gè)新技術(shù),它是技術(shù)演化到一定程度后的產(chǎn)物,其應(yīng)用場(chǎng)景也跟環(huán)境息息相關(guān),能否最終帶來成本的降低和效率的提升,是這項(xiàng)技術(shù)深入應(yīng)用的關(guān)鍵,它也面臨著很多有待改進(jìn)的關(guān)鍵技術(shù)點(diǎn):

密碼學(xué)技術(shù)

共識(shí)機(jī)制

處理性能

系統(tǒng)安全

相應(yīng)的數(shù)據(jù)和存儲(chǔ)系統(tǒng)

和現(xiàn)有系統(tǒng)的融合

參考鏈接

How does blockchain really work?, by Sean Han

Bitcoin mining the hard way: the algorithms, protocols, and bytes, by Ken Shirriff

區(qū)塊鏈技術(shù)指南,by 楊保華 陳昌

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、快速術(shù)語檢索 比特幣地址:(例如:1DSrfJdB2AnWaFNgSbv3MZC2m74996JafV)由一串...
    不如假如閱讀 16,578評(píng)論 4 87
  • 1 貨幣的演變——從貝殼到比特幣 當(dāng)社會(huì)分工產(chǎn)生之后,人類就產(chǎn)生了商品交換的需求。在貨幣被發(fā)明之前,人類是以以物換...
    longlee閱讀 7,941評(píng)論 1 23
  • 此時(shí)此刻,腦子里,只有…… 火鍋!?。?什么都不想了,既然吃不上,就睡吧! 今天頑皮了,偶爾為之。
    茉莉大大閱讀 147評(píng)論 0 0
  • 復(fù)盤內(nèi)容:視聽說Unit2 1,從本篇文章/音頻/視頻中我學(xué)到的最重要的概念 2,我在本片文章/音頻/視頻中學(xué)到的...
    17數(shù)428宋琳閱讀 65評(píng)論 0 0
  • 小時(shí)候,我有一個(gè)朋友,他家就在我家后面,他母親也是我母親最好的朋友,于是從小我們兩家便走得特別近。 他家里條件比我...
    茶家墳里白閱讀 484評(píng)論 0 1

友情鏈接更多精彩內(nèi)容