區塊鏈到底是什么?


歡迎大家前往騰訊雲+社區,獲取更多騰訊海量技術實踐干貨哦~

翻譯人:ArrayZoneYour,該成員來自雲+社區翻譯社

原文鏈接:https://www.investinblockchain.com/what-exactly-is-blockchain/

原文作者:Matt Bourke

如果我告訴你:

區塊鏈不存在。

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

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

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

讓我們從“區塊鏈技術”(Blockchain Technology)開始

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

什么是“一個區塊鏈”(A 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最終只能花一筆錢。這是因為會根據提供的之前最新的區塊來完成他們的副本的更新,之后的更新會忽略任何與最新副本不匹配的區塊。

現在每個人都擁有最新的區塊鏈副本,之后創建的任何新區塊都必須通過哈希鏈接在當前區塊鏈之上。

什么是“區塊鏈”(The Blockchain)?

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

問答

與社區達人一起,揭秘區塊鏈神秘技術

相關閱讀

什么是區塊鏈?

簡明區塊鏈原理

如何學習區塊鏈技術


此文已由作者授權騰訊雲+社區發布,轉載請注明文章出處

 原文鏈接:https://cloud.tencent.com/developer/article/1055228

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM