區塊鏈到底是什麼?

2021-08-16 19:05:30 字數 3037 閱讀 2897

翻譯人:arrayzoneyour,該成員來自雲+社群翻譯社

如果我告訴你:

區塊鏈不存在。

或者區塊鏈有兩種完全不同的含義。

或者,區塊鏈是三個完全不同的東西的別稱。

覺得不對?聽我把話說完。區塊鏈是乙個效率非常低的資料庫,它作為位元幣中拼圖難題(jigsaw puzzle)正常運轉必須的技術之一而被人們熟知。位元幣技術是基於「區塊鏈」技術實現的,而不是區塊鏈技術基於位元幣技術。「區塊鏈技術」與「乙個區塊鏈」(a blockchain)或「這個區塊鏈」(the blockchain)的概念是截然不同的。是不是感到很困惑?從技術角度來看,這些不同的術語有著細微的差別。在本文中,你將了解到每個術語的真正含義並深入理解區塊鏈的工作原理。

區塊鏈技術其實就是乙個分散的不可信網路,它利用本地資產,分散賬本和一些基於博弈論模型的演算法來使網路中的每一方達成共識。

假想你現在有乙個excel電子**,**中的每一行都有包含著幾列的資料,其中一列包含著「交易資訊」。

現在,如果每一行中的特定列中包含著該行的所有資料加上上一行傳遞的雜湊(hash)值對應的唯一指紋(乙個新的雜湊值),此時這些行順序串聯起來就構成了乙個「雜湊鏈」。

使用者可以利用軟體來檢測這些雜湊值。軟體可以通過雜湊鏈的計算方式來判斷每乙個雜湊值的有效性。一旦出現了無效的雜湊值,使用者就可以知道有人在後來(雜湊鏈建立後)偽造了某一行的資料。

雜湊鏈可能有很大用處,但是並沒有什麼令人激動的特性。我們為什麼要講雜湊鏈,雜湊鏈與「乙個區塊鏈」又有什麼聯絡呢?

再進一步,把上面電子**中的行擴充套件為多個電子**,每個電子**中充滿了交易資訊。我們將通過這種方式組合起來的交易資訊稱為「交易塊」。

如果你在乙個電子**中建立了所有資料的雜湊值,然後在另乙個電子**中建立該表中所有資料的雜湊值,通過上面的方式我們可以通過兩表的雜湊值組合計算得到新的雜湊值。像下圖一樣串聯起來,你就得到了乙個電子**組成的鏈。

請記住:由於這些**包含著乙個交易塊,所以它們構成了乙個簡單有效的區塊鏈。

最初,「區塊鏈」是一項大型現代企業看來都很具有顛覆性的技術,即使不用「加密貨幣」或者「分布式賬本」(distributed ledger)這樣聽起來具有顛覆性的名稱也是如此。

現在,你可能經常聽到有人通過說「我們在做區塊鏈」來吸引投資者的注意。「區塊鏈」的概念也被廣泛傳播,此時的概念基本上是指「圍繞分布式賬本概念構建的開放式的計算機網路」。

我們甚至看到了不使用「乙個區塊鏈」來構建的「區塊鏈」,取而代之的是其他的儲存技術,比如說dag(有向無環圖)。

很多在職者提到「區塊鏈」時,他們指的其實是「乙個只與我們信任的人分享的共享式資料庫(shared database)」。這並不是乙個新鮮的事物,分布式資料庫(distributed database)在位元幣出現時已經存在了至少十年。

區塊鏈真正的魅力不是在於資料儲存的技術,而是如何使網路中所有的不可信使用者達成共識。

舉例來說,通過「區塊鏈」,可以讓每個人都承認alice支付且僅只支付給了bob。通過她的交易資訊可以證明她沒有支付雙倍的金額。(例:alice在完全相同的精確時間同時支付了$5給bob和john)。

雙重支付問題是位元幣所取得的主要突破。

軟體將拒絕任何形式的雙重支付嘗試。如果交易有效,軟體將更新區塊鏈中位元幣(或其他資產)的所有權。

當使用者使用「區塊鏈」進行交易時,他們的軟體實際上做了以下工作:

軟體(使用者的錢包)建立乙個指令碼。這個指令碼是用所有計算機都可以處理、檢驗的計算機語言編寫的。這個指令碼通過私鑰進行了簽名,網路的使用者可以通過他們的私鑰來證明他們對某一區塊鏈的所有權。

一旦通過數字簽名證明所有權之後,網路就可以繼續處理指令碼內容。以上面提到的場景作為最簡單的指令碼例項——「alice支付給bob五美元」,此時網路中的計算機將檢驗alice交易條目的真實性,如果交易有效,整個網路將同意更新資訊,alice的賬戶將減少5美元,bob的賬戶將增加五美元。

一旦使用數字簽名證明了所有權,網路就可以繼續處理指令碼。最簡單的指令碼將簡單地說「給alice 5美元」。然後網路上的計算機將驗證alice在區塊鏈中有乙個條目; 如果有效,整個網路將同意更新alice的賬戶,減少5美元,而bob的賬戶增加5美元。

這裡還有乙個有趣的現象:乙個常見的誤解是「位元幣不提供合約」。實際上提供了!乙個指令碼就是乙份合約。當你聽到「智慧型合約」一詞時應當意識到這是交易指令碼的營銷術語。

「區塊鏈」的關鍵問題是雙重支付問題——我上面解釋的過程並不能解決這個問題。

如果世界各地的兩台電腦同時收到來自alice的不同指令碼怎麼辦?乙個指令碼說:「給bob五美元」,另乙個指令碼說:「給蘇珊五美元」——網路如何達成共識?

你瞧,「區塊鏈」的魅力不在於「區塊鏈」,而在於工作量證明。

工作量證明是區塊鏈網路用來確保網路分散性的計算機演算法,它還可以防止網路中的計算機自己構建歷史資訊。

下面給出理解工作量證明的乙個簡單方法:

想象在網路中執行著乙個彩票系統,每隔幾分鐘網路會隨機選擇一台計算機為獲勝方。此時網路會說:「這台電腦是贏家!」

然後網路對獲獎的電腦說:「把你最新的有效交易塊和中獎彩票交給所有其他的電腦。如果你能證明你有中獎彩票,所有其它的計算機將檢查你提供的交易塊是否只包含有效的交易資訊。如果確實如此的話我們會更新我們的區塊鏈來獲得你新建立的區塊,相應地你會獲得你的獎勵。」

這是簡化的加密貨幣挖掘(cryptocurrency mining)。通過僅允許乙個使用者提供乙個交易塊,我們可以確保alice的雙重支出嘗試中只有單個記錄進入交易塊。

此時如果不同的計算機正在構建不同的交易塊即alice目前有雙重支付的交易在網路中傳遞,alice最終只能花一筆錢。這是因為會根據提供的之前最新的區塊來完成他們的副本的更新,之後的更新會忽略任何與最新副本不匹配的區塊。

現在每個人都擁有最新的區塊鏈副本,之後建立的任何新區塊都必須通過雜湊鏈結在當前區塊鏈之上。

通常來說,這個術語通常用來代表第乙個區塊鏈——位元幣區塊鏈。不過,在現在的營銷環境下,它的概念已經很模糊了。

區塊鏈專題——什麼是區塊鏈?

什麼是區塊鏈?

簡明區塊鏈原理

如何學習區塊鏈技術

區塊鏈到底是什麼?

翻譯人 arrayzoneyour,該成員來自 雲 社群翻譯社 如果我告訴你 區塊鏈不存在。或者區塊鏈有兩種完全不同的含義。或者,區塊鏈是三個完全不同的東西的別稱。覺得不對?聽我把話說完。區塊鏈是乙個效率非常低的資料庫,它作為位元幣中拼圖難題 jigsaw puzzle 正常運轉必須的技術之一而被人...

區塊鏈到底是什麼

有人說是賬本,有人說是資料庫。其實區塊鏈 block chain 的主要作用是儲存資訊。任何需要儲存的資訊,都可以寫入區塊鏈,也可以從裡面讀取,所以從這角度看,它可以叫做廣義上的資料庫,並且是分布式的。任何一台電腦 手機都可以成為乙個區塊鏈伺服器,加入區塊鏈網路,成為乙個節點。區塊鏈的世界裡面,沒有...

從位元幣說起, 「區塊鏈」到底是什麼

區塊鏈很火,尤其是最近兩年。區塊鏈的概念,自位元幣,相信很多了解位元幣的人都多多少少了解點區塊鏈。我本人從事位元幣挖礦也有很長一段時間了,其中也算是小有收穫。一開始位元幣出來時,很多人看不懂,一台普通的pc都能挖到不少的礦,而現在專業的裝置,消耗大量的電能,每天還挖不到幾個。賺錢就很難了,雖然現在位...