標籤:

區塊鏈初學者指南——向5歲孩子解釋它

區塊鏈初學者指南——向5歲孩子解釋它

來自專欄翻譯菌的互聯網12 人贊了文章

一個簡單的指南來理解區塊鏈與現實世界的類比。

如今,從你的理髮師到證券市場工作的朋友,人人都在談論比特幣。別擔心,這篇文章不是關於從比特幣中賺錢的其他幾篇文章。但是,我將儘力幫助您了解比特幣運作的基礎技術以及區塊鏈的概念在未來幾十年中如何發揮作用。

歷史概述

2008年10月31日,一份名為Satoshi Nakamoto的匿名人士或組織發表了一份白皮書,解釋了一種新的方法,可以直接從寄件人向收款人匯款而不涉及任何金融中介。該論文給出了這個概念的名稱-比特幣。由於比特幣使用了密碼學的一些基本概念,這種新的兌換方式被歸類為加密貨幣。比特幣的唯一目的是用於金融交易,但研究人員意識到,可以收集其基礎技術,以構建其他安全可靠的應用程序,從而徹底改變但前系統的工作方式。「區塊鏈」是這個基礎技術的名稱。很多技術辭彙?我們簡化吧!

什麼是區塊鏈?——真實世界的比喻

假設你住在一個擁有大型停車位的城市,可以同時停放200輛汽車(假設停車場只有一層)。這個停車場只有一個大門,它平時是上鎖的,只有在汽車進出時才會打開。現在讓我們從不同的角度來分析這個停車場建築——

價格:由於一些私人公司專門為停車而建造了這個停車場,並且所有維護費用將由業主公司承擔,如果租用單個停車位將需要很高的租賃費。

安全性:如果小偷可以從大門進入,他們能夠輕而易舉的找到你的車(拿走車輪,燃料,損壞剎車,或者其他任何東西!)

限制:如果您所在城市的汽車數量從200增加到300,該怎麼辦?停車場沒有足夠的空間容納所有汽車,其他一些私人機構將不得不建造一個新的停車場。

值得信賴:你信任停車場公司,他們負責保證安全和可靠性。

集中:由於所有車輛都在一棟樓內,我們可以將其視為集中的停車場。

現在,讓我們修改當前場景。想像一下,你所在城市有200座房子,所有200所房子各有兩個車位。簡而言之,我們假設每個房子只有一輛車(上面所說的停車場里所有的位置都已經被車子佔據)。因此,每個房子至少有一個可用的空車位。現在,假設這個城市的人們決定把空的車位租給任何需要停車的人。這種提供車位的模式將解決200輛以上的汽車停放問題(如果人們遷入或者遷出城市),而不需要為整個城市建造任何集中的更大的停車位。與上一個場景類似,讓我們分析一下這個場景—

價格:由於第二個車庫不是專為出租目的而建的,並且維護費用也很低,所以租用額外的停車位的費用相對於中央大停車位要低一些。

安全性:每輛車都被鎖在不同的車庫裡,因此盜賊必須打開所有的車庫才能接近汽車,從而提供更高的安全性。(區塊鏈中的安全性有點不同,但為了簡單起見,現在讓我們這有考慮吧!

限制:隨著房屋數量的增加,假設每棟新房子也有額外的車庫空間,那麼容納更多汽車的空間就會不斷增加。這樣,增加了承租人和出租人的網路。

無信任:由於沒有中央機構控制這些分布的停車位,我們假設所有參與的車庫業主都會制定一定的規則來出租他們的停車位。

分散:如前所述,這些停車位分布在整個城市,我們可以認為它是一個分散的停車場。

上面的類比為理解區塊鏈的實際技術基礎結構提供了基礎。

停車模型到技術模型

停車模型用真實世界的語言提供了區塊鏈的基本概述。現在,讓我們試著把停車場的構成要素和實際的技術模型相匹配——

大型中央停車場是一個集中式系統,如AWS,Google Cloud等(這些雲平台在某種程度上也是散布的,但為了簡單起見,我們假設它們是單個的實體)。

汽車是數據和應用。

分散式停車場是一個分散式系統——區塊鏈。

等等,我們漏了點什麼。

所有分散的系統都不是區塊鏈。沒錯,區塊鏈是一種特殊的分散系統,具有獨特的屬性。什麼屬性呢?讓我們探討一下。

「區塊」造就區塊鏈

回顧一下我們的分散式停車場的案例,並做一些小變化。假設有個特別的停車庫,一旦車子停在裡面就會上鎖(假設同一輛只會停在同一個庫裡面)。同時假設我們已經為分散式車庫按順序編號。50號車庫的配對鎖鑰依賴於49號車庫的配對鎖鑰,同時也依賴於停在50號車庫內車輛的特性(像顏色、重量、引擎編號等),這種鏈式過程從1號開始,直到200號或更遠。

每個車庫的配對鎖鑰依賴於該庫內車輛的特性和上一車庫的鎖鑰。

因此,如果一個盜賊想要闖入49號車庫,並且修改汽車的任何特性,比如顏色或者註冊號,那麼49號車庫的車輛特性將會變化,這就意味著生成了新的49號車庫的配對鎖鑰,50號配對鎖鑰也隨之改變,並且未來的車庫也會發生變化。

下面讓我們做最後一個假設,計算一副配對鎖鑰需要大量的運算資源,這就是說如果我們必須重新計算這些配對,以防盜賊修改任意車庫內的車輛特性,那麼將所有配對重新計算一遍幾乎是不可能的。

如果更改了鎖定密鑰對,會發生什麼?

希望你還記得之前我們說過所有車庫老闆都會遵守一些規則,你還記得嗎?這些規則之一就是:檢查是否有一個有效的車庫是很必要的。車庫是否有效取決於:如果你可以確保你能使車庫的鎖定密鑰對生效,並且你此時你也更改了鎖定密鑰對,那麼以下所有車庫的鎖定密鑰對就會失效,因為每一對鎖定密鑰對都取決於前一對鎖定密鑰對。(驗證特定車庫的鎖定密鑰對的過程比生成鎖定密鑰對要快得多。)

這種對前一對鎖定密鑰對的依賴使得它成為一條車庫鏈,在技術世界中也是如此,這些車庫可以看作是一個個「區塊」,因此它被命名為——「區塊鏈」 1(Blockchain)(一串使用密碼學方法相關聯產生的數據塊)。

區塊鏈中的塊通過「散列」 2(Hash)綁定到下一個塊,就像我們示例中的鎖定密鑰對一樣。與車庫的例子類似,如果修改了一個區塊中的數據,則需要重新計算以下所有區塊的散列,而且由於計算散列是一種非常資源密集的形態的操作,因此實際上不可能這樣做,因此網路排除了無效的區塊。散列的計算被稱為採礦,我們將在本系列的下一個版本中對它進行更多的討論。

區塊如何從修改中恢復?

區塊鏈網路上的所有計算機,都保留著完整的區塊鏈副本,所以如果某台計算機或多台計算機上的一個區塊或一個完整的鏈被修改,整個網路就會試圖將其與自己的完整鏈副本進行比較。

如果網路上的大多數節點(或計算機)發現修改後的鏈無效,則用其他節點的有效鏈替換修改後的鏈。這使得區塊鏈容易受到51%攻擊。簡單地說,如果網路上超過50%的節點是惡意的(或者說是有一個經過修改的鏈),那麼整個網路都可能被破壞。

總結

區塊鏈有很多需要消化的信息。這是《初學者指南》的第一部分,為區塊鏈提供了基礎。我希望這篇文章為您準備好與您的朋友就區塊鏈有一些談資。查看本系列的下一個版本,我們將討論以太坊3(Ethereum)、智能合約4(Smart Contracts)和採礦5(Mining)。

名詞解釋:

區塊鏈(Blockchain):區塊鏈是分散式數據存儲、點對點傳輸、共識機制、加密演算法等計算機技術的新型應用模式。所謂共識機制是區塊鏈系統中實現不同節點之間建立信任、獲取權益的數學演算法 。區塊鏈也是比特幣的一個重要概念,它本質上是一個去中介化的資料庫,同時作為比特幣的底層技術。區塊鏈是一串使用密碼學方法相關聯產生的數據塊,每一個數據塊中包含了一次比特幣網路交易的信息,用於驗證其信息的有效性(防偽)和生成下一個區塊。

散列(Hash):一般翻譯做「散列」,也有直接音譯為「哈希」的,就是把任意長度的輸入(又叫做預映射pre-image)通過散列演算法變換成固定長度的輸出,該輸出就是散列值。這種轉換是一種壓縮映射,也就是,散列值的空間通常遠小於輸入的空間,不同的輸入可能會散列成相同的輸出,所以不可能從散列值來確定唯一的輸入值。簡單的說就是一種將任意長度的消息壓縮到某一固定長度的消息摘要的函數。

以太坊(Ethereum):以太坊是一個開源的有智能合約功能的公共區塊鏈平台,通過其專用加密貨幣以太幣(Ether)提供去中心化的虛擬機(「以太虛擬機」 Ethereum Virtual Machine)來處理點對點合約。

智能合約(Smart Contracts):在區塊鏈上運行的程序,通常稱為智能合約。所以通常會把寫區塊鏈程序改稱寫智能合約。雖然比特幣(Bitcoin)上也能寫智能合約,但是比特幣所支持的語法僅與交易有關,能做的事情比較有限。因此目前提到寫智能合約,通常指的是支持執行圖靈完備程序的以太坊(Ethereum)區塊鏈。

挖礦(Mining):挖礦其實是一種安全機制,利用密碼學哈希函數和非對稱加密,確保區塊鏈網路的挖礦節點在廣播區塊前,投入大量的計算,提高作假和作惡的成本,保證已有數據不可能被篡改,確保全網達成共識。

原文地址:

hackernoon.com/beginner

往期文章:

在設計品牌標識時,使用情緒板

競品分析:微信讀書VS網易蝸牛讀書

如何測試視覺設計

推薦閱讀:

TAG:知乎指南 |