• <option id="cacee"><noscript id="cacee"></noscript></option>
  • <table id="cacee"><noscript id="cacee"></noscript></table>
  • <td id="cacee"></td>
  • <option id="cacee"></option>
  • <table id="cacee"></table>
  • <option id="cacee"><option id="cacee"></option></option>
  • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
    <option id="cacee"><option id="cacee"></option></option>
     找回密碼
     立即注冊

    掃一掃,登錄網站

    首頁 百科 查看內容
    • 6217
    • 0
    • 分享到

    區塊鏈是什么,一文讓你看懂區塊鏈的本質?

    2018-2-5 23:30

    重回“區塊”和“區塊鏈”的世界

    好了,對小紙條和交易記錄的研究我們點到為止,其實信息量已經是巨大的了,讓我們合上蓋子,重回較大實體、繼續聊聊“區塊”和“區塊鏈”的話題。還記得,咱們在一開始講到關于區塊的特征嗎?區塊創造后被埋在地下,需要經過節點們馬不停蹄的挖采、而且是憑運氣的挖采才有可能獲得——不僅僅如此,事實上他還有其他很多神奇的地方,比如說:

    1. 憑空產生的區塊在剛剛創建的時候會形成一股強大的黑洞效應,它會嘗試將這段時間全世界各個節點上產生的所有小紙條(交易記錄)統統吸進來;在合上區塊蓋子之前,同時會在區塊內放上一些數字貨幣以及其他一些東西。
    2. 區塊擁有一個唯一的ID,但它只會在這個區塊被節點成功從地下挖出來之后創建。這個ID至少會跟「區塊內所有小紙條的集合」、「即將與之相連的上一個區塊ID」以及「挖礦節點的運氣值」等因素相關。既然前面我們已經簡單了解了“Hash()函數”這個東西,這里不妨透露給大家:“區塊ID = Hash(‘區塊內所有小紙條的集合’+’即將與之相連的上一個區塊ID’+‘挖礦節點的運氣值’+’…’)” ;基于先前掌握的知識,然后你應該知道區塊內任意一張小紙條的信息稍微做改動、或者節點挖礦運氣好一點壞一點等等,當前區塊的ID都會 “ biu~ ”的發生改變。

    基于上述1、2點,如果閱讀足夠仔細的同學可能會有些頭大。在文章開頭為了更好的描述,我在設計簡化區塊鏈系統的時候故意模棱兩可了幾個概念,這也許已經誤導到了部分同學。這里不得不停下來和你一起修正下之前在你大腦中已經構建的區塊鏈世界觀。我們前面講道,“在節點的視野里,大概每十分鐘會憑空產生一個建立在自己平行宇宙世界的神奇區塊”。如何正確去理解這句話呢?——擁有上帝之眼的你,可以這么拆解問題、看待問題:

    1. 同一個周期內,全網并不是產生唯一的一個區塊等待挖掘;每個節點事實上都在周期性的創造區塊和挖出區塊;只是在某一個節點的視野里,它不能感知到另外一個節點上區塊的產生。為何這里要特別強調“在某一個節點的視野里”,就是因為我們剛剛講到,從區塊的視角來說,區塊的憑空產生,是基于即將與之相連的上一個區塊ID;而從節點的視角來看,區塊的憑空產生是基于當前節點區塊鏈末尾的那個區塊ID產生的。
    2. 全網會盡力控制在一個周期內只有一個節點能夠成功挖出區塊,但是不能夠完全避免多個節點同時挖出區塊的可能性;如何盡力控制?比如說,當大伙挖礦的熱情高漲、工作效率提高,區塊會被埋在更深更廣的地方等。簡而言之,通過提高工作難度,來維持這個平衡。另外,值得注意的:產生區塊、挖出區塊、校驗區塊,他們的時間周期近乎相同。
    挖礦,本質是通過與或運算,去碰撞一個出一個滿足規則的隨機數。這個部分要細講的話,估計又可以寫出兩三千字來。我覺得到目前為止,并不影響主軸知識點的講解,這一塊會作為后續知識結構的完善被撰寫(計劃1月24日前完成)。感興趣的同學可以Google百度查閱下什么叫“挖礦”、“工作量證明 POW”等。


    分叉

    現在,我們終于對“區塊”這個概念有了更全面的認識,文章開頭講的故事就可以繼續展開來絮叨絮叨:

    假如幾乎同一時間,「中國上海浦東新區張衡路」上的節點和「美國紐約曼哈頓第五大道」上的節點異口同聲喊出來:“我挖到區塊了!里面的小紙條都是有效的!獎勵歸我!”。其他節點也幾乎同時參與了對這兩個區塊的校驗,結果發現這倆都沒毛病,各節點也開始犯困,因為在他們的視野里他們并不清楚最后哪一個區塊應該會被主鏈接納。算了!都連在自己區塊鏈尾巴上吧,這時尷尬了,區塊鏈硬生生的被分叉了!

    產生分叉

    你肯定在想,那還得了,這種情況繼續下去,每個節點的區塊以及他們整理維護的小紙條都將變得不一樣,這已經嚴重違背了區塊鏈世界里第一大最基本原則——所有節點共同維護同一份數據。所以,為了解決這個問題,區塊鏈世界引入了一條新的規則——擁有最多區塊的支鏈將是真正被認可有價值的,較短的支鏈將會被直接Kill掉。

    我們大伙都知道挖礦的過程存在巨大的工作量(如果沒有任何難度,把區塊扔在人群中,必然同一時間發現區塊的節點數量將大大增加,也就會產生無數的支鏈,通過這個例子,你大概也就能夠明白,區塊鏈世界為什么需要設置工作難度了吧),并且在計算機的硅基世界里,不可能出現所謂 “同時” 的概念,哪怕納秒的差別,那也總是會有先后順序。所以理論上,“分叉”的這種僵局很快會在下一個區塊被挖掘出來(以及校驗區塊)的時候被打破,實在不行下下個,或者下下下個……總之機制可以讓整個分叉的區塊鏈世界迅速穩定下來。

    “分叉”這種僵局在確認下一個區塊(以及校驗小紙條)的時候被打破,從而整個區塊鏈世界迅速穩定下來

    就上圖而言,所有基于張衡路節點挖礦獲得的區塊以及后續區塊的那條分支被視為有價值,最終會全部保留了下來;其他節點會統一效仿那個擁有更長分支鏈的節點所做的決策。另外,值得一提的是,同一時間,較短分支上的區塊會立即丟棄,而里面的小紙條也會隨之釋放出來,被重新標記上“未確認”。

    “雙花”與“51%攻擊”

    你可能已經開始困惑或者有點興奮,末尾幾個區塊的排序在修復過程中,因為時間差肯定會產生一些模棱兩可的地方,這往往會給數據安全埋下一顆雷。一個最簡單的假設——我記錄的一張小紙條很不巧地被歸在了一條較短的支鏈上,這條支鏈在競爭過程中理所當然輸掉了比賽,區塊被丟棄、小紙條被無情的貼上“未確認”的標簽。在等待下次區塊重新確認的過程中,這個時間差內,我,好像、似乎可以做點什么壞事 ?(ˉ﹃ˉ?) ,就比如說“雙花”(雙花,花兩次,雙重支付的意思)


    你腦海中也許很快浮過的這樣的構想,可不可能通過下面這種方法觸發雙花問題的產生,從而讓我不勞而獲:

    1. 假設有一個名叫X-Man的壞家伙,他控制了一個計算機節點,這個節點擁有比地球上任何一個節點算力都強大的計算機集群。
    2. 首先,X-Man事先創造了一條獨立的(不去廣而告之)、含有比較多區塊的鏈條。其中一個區塊里放著“X-Man轉賬給X-Man 1000元”的紙條。
    3. 接著,X-Man跟張三購買了一部手機,他在小紙條上記錄下“X-Man轉賬給張三1000元”;這條信息被三次確認后(即三個區塊被真實挖出、校驗和連接),然后,張三把手機給了X-Man。
    4. X-Man拿到手機之后,按下機房的開關,試圖將先前已經創造的區塊鏈條連接在自己這個節點區塊鏈的末尾。
    5. 大功告成,X-Man擁有了一條更長的區塊鏈條,那些較短、存放著“X-Man轉賬給張三1000元”的區塊鏈,以及在區塊鏈世界里那則真實轉賬行為被一同成功銷毀。(?)

    事實真的如此嗎?在這里我可以很負責任的說,too young too simple,區塊鏈世界規則的制定遠比我們想象的要健全很多,還記得我們之前講的“區塊的ID至少會跟區塊內所有小紙條的集合、即將與之相連的上一個區塊ID以及挖礦節點的運氣值等因素相關”。 在這里,正是因為打算連接到主鏈的時候,事先準備的鏈子會意識到馬上要連接上的那個區塊ID發生了改變,隨之而來的是后面所有區塊ID都瞬間。節點不得不重新對后續區塊的解鎖以及對區塊內小紙條的校驗。

    在區塊鏈的世界,重新計算的行為等同于把自己(節點)置身于同一個起跑線,跟世界上其他所有的節點一同競爭挖礦。你會說,我擁有更強大的計算能力,但是對不起,跟你競爭的對象并不是第五大道、南京西路、香榭麗舍大道上的某一個節點,而是全球所有算力的集合,在這個集合中,你擁有的算力永遠都只是一個很小的子集。所以,根據區塊鏈算力民主、少數服從多數的基本原則,這個構想將永遠不會成立。

    除非....

    你控制著全球51%的算力,這也就是區塊鏈世界里另外一個著名的概念,叫做“51%攻擊”,但這也僅僅是一個理論值,在真實世界里這樣的攻擊我個人覺得是很難發動起來的,這里面就牽涉到很多經濟、哲學甚至政治的因素。舉個最簡單的例子:X-Man為了回滾剛剛發生的一筆交易記錄,成功發起了51%攻擊,這意味著很快整個區塊鏈系統將會崩盤,因為這次攻擊已經嚴重傷害到人們對這套系統的信任,接著比特幣開始暴跌至幾乎一文不值;但是這個擁有51%算力的X-Man原本完完全全可以通過挖礦的方式獲取更多收益,購買無數的iPhone手機。那他不是腦袋不是壞了還能是啥?對51%攻擊話題感興趣的同學可以閱讀這篇文章《什么是比特幣51%攻擊?》。

    至此,我覺得區塊鏈最基礎、最核心的知識已經全部講完了(除了挖礦內部實現原理,作為一個遺憾留在這里,有時間會完善掉),相信你已經對它有了一個宏觀的認識。另外,由于這篇文章采用了適當抽象、類舉的敘事方式,中間或多或少有些地方會跟區塊鏈底層嚴謹的技術實現有出入,歡迎大家來糾錯。另外,也是受限于自己知識結構的缺失,這篇文章會隨著我對區塊鏈更深入認識后,隨時進行修訂,最后更新時間可參考該回答下方的時間戳。

    版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。
    相關新聞
    發表評論

    請先 注冊/登錄 后參與評論

      回頂部
    • <option id="cacee"><noscript id="cacee"></noscript></option>
    • <table id="cacee"><noscript id="cacee"></noscript></table>
    • <td id="cacee"></td>
    • <option id="cacee"></option>
    • <table id="cacee"></table>
    • <option id="cacee"><option id="cacee"></option></option>
    • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
      <option id="cacee"><option id="cacee"></option></option>
      妖精视频