摘 要:如今,人人都在說
比特幣。別擔心,這篇文章不會像其他文章那樣教你投資比特幣賺錢,而是會幫助你理解比特幣的底層技術
區塊鏈,以及在未來幾十年區塊鏈將如何發揮作用。
本文由格密鏈社區的群友任芳翻譯,致遠博士校訂。
歷史回顧
2008年10月31日,一位所謂名叫中本聰人發表了一份白皮書,構造了一種能夠直接將電子現金從發送人支付給接收人的新方法,這種新方法不需要任何
金融中介機構參與。這篇論文給這個概念起了個名字——比特幣。由于比特幣使用了一些密碼學的技術,這種新的貨幣交換方式被稱為
加密貨幣。
比特幣的唯一目標是用于交易支付,但研究人員意識到,它的底層技術可以被用來構建其他安全可靠的應用,從而徹底改變當前系統的工作方式。“區塊鏈”就是這個底層技術的名字。這么多專業詞匯?讓我們簡化一下!
什么是區塊鏈?——以停車為例
假設你住的城市有一個很大的中央停車場,一次可以停放200輛車(假設這個停車場只有一層)。停車場有一個大門,大門是鎖著的,只有當汽車進出時才會打開。現在讓我們從不同的角度來分析這個停車場:
?價格: 這個停車場是由某個公司修建,而且所有的維護費用都由這個公司承擔,所以停車費會很高。
?安全: 如果小偷進入停車場,他們會很容易接近所有汽車(拿走輪胎,偷走燃料,損壞剎車,干任何壞事!)
?限制: 如果你所在城市的汽車從200輛增加到300輛呢?停車場無法容納所有汽車,其他公司將不得不修建一個新的停車場。
?信任: 車主相信停車場,運營停車場的公司負責保障車輛的安全。
?中心化:由于所有汽車都停在一個中央停車場內,我們可以認為這是一種中心化的停車方式。
現在,讓我們改變一下當前的場景。假設在你的城市里有200座房子,每座房子都有兩個車庫。簡單起見,我們假設每個房主有且只有一輛車。據此,每座房子的兩個車庫中都有一個空車庫。
現在,假設這個城市的人們決定把額外的車庫出租給任何需要停車的人。這種提供停車位的模式可以解決200輛或者200多輛車的停車問題(人們會不斷進城出城),而不需要為整個城市建立任何大的中央停車場。讓我們分析這個新的場景——
?價格: 人們的第二個車庫并不是專門為了出租而建,維護成本很低。跟中心化的停車方式比,停車費較低。
?安全: 每輛車都被鎖在不同的車庫里,小偷要接觸到全部汽車必須撬開所有車庫,因而這種停車方式相對安全。(區塊鏈安全性有點不同,但為了簡單起見,讓我們暫時這樣考慮!)
?限制:隨著房子數量的增加,假設每座新房子都有額外的車庫,那么整個車庫租賃系統就會隨之擴容。
?去信任化:由于沒有中心化的權威機構來控制這些分布式停車庫,我們認為,所有車庫出租者會聯合制定出一定的停車規則。
?分散化: 如前所述,這些停車庫分布在城市的各個角落,我們可以將其視為分布式停車系統。
從停車模型到技術模型
以上停車模型用現實中的例子展示了區塊鏈的基本理念。現在,讓我們嘗試將停車模型的組成部分與實際的技術模型進行匹配——
?大型中央停車場是類似于AWS、谷歌云等中心化系統(這些云平臺也有一定分布,但為了簡單起見,我們假設它們是單個實體)。
?汽車是系統中的數據和應用。
?分布式停車系統是一個去中心化系統——區塊鏈。
等等!我們漏掉了一些東西。
并非所有的去中心化系統都是區塊鏈!!是的,區塊鏈是一種特殊的去中心化系統,具有獨特屬性。什么屬性呢?我們來談談。
區塊鏈由“區塊”組成
回顧一下我們的分布式停車系統,并做一個小小的更改。假設當一輛車停入車庫時,車庫就生成一個特定的鎖-鑰匙對。 (假設同一輛車每天停在同一個車庫)。另外,假設我們按順序對所有分布式車庫進行編號。50號車庫的鎖-鑰匙對,是基于49號車庫的鎖-鑰匙對和50號車庫中汽車的特性(如顏色、重量、發動機號等)共同生成,這個過程從1號車庫開始,直到200號車庫甚至更多。
每個車庫的鎖-鑰匙對,由車庫中汽車的特性和前面車庫的鎖-鑰匙對共同決定。
因此,如果一個小偷試圖進入49號車庫并修改車的任何特性,例如車的顏色或注冊號,這意味著49號車庫將生成新的鎖-鑰匙對。而50號車庫的鎖-鑰匙對取決于49號車庫的鎖-鑰匙對,因此 50號車庫的鎖-鑰匙對也會隨之改變。以此類推。
現在,讓我們做最后一個假設,計算一個鎖-鑰匙對需要花費大量的計算資源。這意味著,如果必須重新計算這些鎖-鑰匙對,實際上幾乎是不可行的。從而具有防任何小偷修改任何車庫中汽車的特性。
鎖-鑰匙對被更改了怎么辦?
還記得我們說過,所有的車庫主人都遵守一些規則嗎?其中一個規則就是核實車庫的有效性。如果一個車庫的鎖-鑰匙對是有效的,則認為車庫是有效的。如果任何鎖-鑰匙對被更改,那么后面所有車庫的鎖-鑰匙對將失效,因為每一個鎖-鑰匙對都是基于前一個鎖-鑰匙對生成。(與生成鎖-鑰匙對相比,驗證特定車庫的鎖-鑰匙對非常迅速)。
基于上一個鎖-鑰匙對,生成下一個鎖-鑰匙對,不斷重復就形成了一條車庫鏈。在技術界,這些車庫就是“區塊”,因此得名——區塊鏈(由區塊組成的鏈)。
區塊鏈中的區塊通過哈希值連接到下一個區塊,就像我們示例中的鎖-鑰匙對一樣。與車庫模型類似,如果更改了一個區塊中的數據,那么需要重新計算后面所有區塊的哈希值。由于計算哈希值是一項非常耗費資源的操作,實際上難以實施,因此整個系統排除了無效區塊。哈希值的計算過程被稱為“挖礦”,我們將在本系列的下一篇文章對此進行討論。
如何修復區塊?
區塊鏈網絡上的所有計算機都保留一份完整的區塊鏈副本。如果某臺或多臺計算機上的一個區塊或整條區塊鏈被更改,所有網絡節點就會將其與自己的完整的區塊鏈副本進行比較。
如果網絡上大多數節點(或計算機)發現更改后的鏈無效,則用其他節點的有效鏈替換更改后的鏈。這使得區塊鏈容易受到51%的攻擊。簡單地說,如果網絡上超過50%的節點是惡意的(或者說是有一條被更改的鏈),那么整個網絡就會妥協,接受更改后的區塊鏈。
版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。