【轉】區塊鏈是什麼,如何簡單易懂地介紹區塊鏈?

作者:知乎用戶
鏈接:https://www.zhihu.com/question/37290469
來源:知乎
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。

友情提醒:比特幣採用區塊鏈技術,但是區塊鏈並不等同於比特幣;全篇基於比特幣底層區塊鏈技術講述,所以,部分模型可能不適用於以太坊等。另外,由於文章採用了一定的抽象、類舉的敘事方式,中間或多或少有些地方會跟區塊鏈底層嚴謹的技術實現有出入,如果讓你覺得困惑,可以在評論下方留言或者私信我一起探討。最後,也是受限於自己知識結構的不完整,這篇文章會隨着我對區塊鏈更深入認識後,隨時進行修訂,最後更新時間可參考該回答下方的時間戳。

 

另外,作爲一篇科普性文章,大家可以隨意轉載,註明這篇文章的出處和作者即可,無需再單獨私信詢問。

 

---

 

首先不要把區塊鏈想的過於高深,他是一個分佈在全球各地、能夠協同運轉的數據庫存儲系統,區別於傳統數據庫運作——讀寫權限掌握在一個公司或者一個集權手上(中心化的特徵),區塊鏈認爲,任何有能力架設服務器節點的人都可以參與其中。來自全球各地的掘金者在當地部署了自己的節點,並連接到區塊鏈網絡中,成爲這個分佈式數據庫存儲系統中的一個節點;一旦加入,該節點享有同其他所有節點完全一樣的權利與義務(去中心化、分佈式的特徵)。與此同時,對於在區塊鏈上開展服務的人,可以往這個系統中的任意的節點進行讀寫操作,最後全世界所有節點會根據某種機制的完成一次又依次的同步,從而實現在區塊鏈網絡中所有節點的數據完全一致。

上圖中,高亮的點就是區塊鏈系統中分佈在全球各地的一個個節點;而這些節點可以簡單理解爲一臺服務器服務器集羣

爲了更簡單的闡述那篇文章所構建的世界觀,文中所討論的節點全部粗暴的理解爲官方參考實現節點,即最標準的一種節點類型,這些節點不僅可以參與挖礦共識、還可以數據存儲和數據點對點傳遞;不涉及其他複雜的節點類型。關於節點的分類,可以閱讀我的專欄文章《區塊鏈節點與錢包的分類、邊際和使命,看這篇文章就足夠了

 

# 問題的由來

我們反覆提到區塊鏈是一個去中心化的系統,確實,「去中心化」在區塊鏈世界裏面是一個很重要的概念,很多模型(比如賬本的維護、貨幣的發行、時間戳的設計、網絡的維護、節點間的競爭等等等等)的設計都依賴於這個中心思想,那到底什麼是去中心化呢?在解釋真正去中心化之前,我們還是先簡單瞭解下什麼是中心化吧。

 

中心化?

 

回憶一下你在網上購買一本書的流程:

  1. 第一步,你下單並把錢打給支付寶
  2. 第二步,支付寶收款後通知賣家可以發貨了;
  3. 第三步,賣家收到支付寶通知之後給你發貨;
  4. 第四步,你收到書之後,覺得滿意,在支付寶上選擇確認收貨;
  5. 第五步,支付寶收到通知,把款項打給賣家。流程結束。

 

你會發現,雖然你是在跟賣家做交易,但是,所有的關鍵流程都是在跟支付寶打交道。這樣的好處在於:萬一哪個環節出問題,賣家和買家都可以通過支付寶尋求幫助,讓支付寶做出仲裁。這就是一個最簡單的基於中心化思維構建的交易模型,它的價值顯著,就是建立權威,通過權威背書來獲得多方的信任,同時依賴權威方背後的資本和技術實力確保數據的可靠安全。

 

你一定會擺出一個巨大的問號臉 ⊙.⊙?——“通過權威背書來獲得多方的信任,同時依賴權威方背後的資本和技術實力確保數據的可靠安全”,真的可以嘛?!

 

假如說,支付寶程序發生重大BUG,導致一段時間內的轉賬記錄全部丟失,或者更徹底一點,支付寶的服務器被ISIS恐怖組織的一個導彈全部炸燬了。而我剛剛轉出去的100元找誰說理去,這個時候,你就成了刀殂上的魚肉;支付寶有良心,會勉爲其難承認你剛剛轉賬的事實,但他不承認你也沒轍,因爲確實連他自己也不知道這筆轉賬是否真實存在。

 

上述就是中心化最大的弊端——過分依賴中心和權威,也就意味着逐漸喪失自己的話語權。

 

去中心化?

 

那麼去中心化的形態是什麼樣子呢?還是拿剛纔那個例子繼續,我們構建一個極簡的去中心化的交易系統,看看我們是如何在網絡上從不認識的賣家手裏買到一本書的。

  1. 第一步,你下單並把錢打給賣家;
  2. 第二步,你將這條轉賬信息記錄在自己賬本上;
  3. 第三步,你將這條轉賬信息廣播出去;
  4. 第四步,賣家和支付寶在收到你的轉賬信息之後,在他們自己的賬本上分別記錄;
  5. 第五步,賣家發貨,同時將發貨的事實記錄在自己的賬本上;
  6. 第六步,賣家把這條事實記錄廣播出去;
  7. 第七步,你和支付寶收到這條事實記錄,在自己的賬本上分別記錄;
  8. 第八步,你收到書籍。至此,交易流程走完。

 

剛纔“人爲刀俎我爲魚肉”的情況在這個體系下就比較難發生,因爲所有人的賬本上都有着完全一樣的交易記錄,支付寶的賬本服務器壞了,對不起賣家的賬本還存在,我的賬本還存在;這些都是這筆交易真實發生的鐵證。

 

當然,在這套極簡的交易系統中,你已經發現了諸多漏洞和不理解,比如說三方當中有一個是壞人,他故意記錄了對他更有利的轉賬信息怎麼辦;又比如說消息在傳遞過程中被黑客篡改了怎麼辦等等等等。這在以往的計算機概論或者計算機網絡書本上中可能都有提及到——“類兩軍”和“拜占庭將軍”問題。這裏就不打算贅述,因爲暫時跟主線不相關,感興趣的同學可以去Google或者百度一下,你只需要知道,在我們下面即將展開講到的區塊鏈系統中,通過巧妙的設計,足以解決上述存在的BUG。

 

既然話已說到這份上,相信瞭解一點技術、特別是有運維背景的同學大概能夠從極簡交易系統中窺視到了更多區塊鏈的一些影子——

  1. 分佈式存儲,通過多地備份,製造數據冗餘
  2. 讓所有人都有能力都去維護共同一份數據庫
  3. 讓所有人都有能力彼此監督維護數據庫的行爲

 

在我看來,你猜測的基本上沒錯。其實這些就是區塊鏈技術最核心的東西,外人看起來高大上、深不可測,但探究其根本發現就是這麼簡單和淳樸。當然,這裏面肯定會有很多很多很多細枝末節的技術需要重構。

 

如果你差不多認同上面的觀點,那我們應該基本上可以達成共識,分佈式部署肯定是構建去中心化網絡理所當然的解決方向——通過P2P協議將全世界所有節點計算機彼此相互連接,形成一張密密麻麻的網絡;以巧妙的機制,通過節點之間的交易數據同步來保證全球計算機節點的數據共享和一致。

 

哈哈,說的輕巧,“交易數據這麼重要的東西,在一個完全不信任的P2P網絡節點中以一種錯綜複雜的方式傳遞,數據的一致性和安全性誰來保證,如果說互相監督,他們到底怎麼做到?”

 

好了,不賣關子了,下面讓我們圍繞這個最最最最直接的問題開始進入到真正區塊鏈的世界,抽絲剝繭看看它到底是如何一步一步形成的,又是如何一步一步穩定運轉。

 

# 從全球節點到交易數據

這張圖的製作的意義爲的是幫助你在宏觀上先快速理解區塊鏈中所涉及到的相關名詞以及他們的層級關係。同時,文章的知識結構和設計思路也大抵上也會按照:

  1. 首先,將區塊作爲最小單位體,講述極簡區塊鏈系統是如何運轉的;
  2. 接着,進入到比區塊更小單位體——交易記錄,理解區塊鏈是如何處理數據的;
  3. 最後,將所有知識點柔和在一起,重回到區塊和區塊鏈,完整講述整個工作流程。

 

希望你在這個引導和結構下有一個比較好的閱讀體驗。Let's go~

 

# 區塊,混沌世界的起源

 

既然已經達成共識,所以,我們事先構建好了一個去中心化的P2P網絡;同時,爲了讓讀者朋友們聽起來更輕鬆,我先粗暴的規定在這個極簡的區塊鏈系統裏,每十分鐘有且僅產生一筆交易。

 

故事繼續,在節點的視野裏,大概每十分鐘會憑空產生一個建立在自己平行宇宙世界的神奇區塊(你可以將區塊想象爲一個盒子),這個區塊裏放着一些數字貨幣以及一張小紙條,小紙條上記錄了這十分鐘內產生的那唯一一筆交易信息,比如說——“小A轉賬給了小B100元”;當然,這段信息肯定是被加密處理過的,爲的就是保證只有小A和小B(通過他們手上的鑰匙)纔有能力解讀裏面真正的內容。

 

這個神奇的區塊被創造出來之後,很快被埋在了地底下,至於埋在哪裏?沒有一個人知道,所以需要所有計算機節點一起參與進來掘地三尺後纔有可能找到(找到一個有效的工作量證明)。顯然,這是一件工作量巨大、成果隨機的事件。但是呢,對於計算機節點來說,一旦從地底下挖出這個區塊,他將獲得區塊內價值不菲的數字貨幣,以及“小A轉賬給了小B100元”過程中小A所支付的小費。同時,對於這個節點來說,也只有他纔有權利真正記錄小紙條裏的內容,這是一份榮耀,而其他節點相當於只能使用它的複製品,一個已經沒有數字貨幣加持的副本。當然這個神奇的區塊還有一些其他很特別的地方,後面我們會再細細聊。

 

爲了更好的描述,我們將計算機節點從地底下挖出區塊的過程叫做「挖礦」,剛纔說了,這是一件工作量巨大、運氣成分較多、但收益豐厚的事兒。

 

過了一會兒,來自中國上海浦東新區張衡路上的一個節點突然跳出來很興奮的說:“ 我挖到區塊了!裏面的小紙條都是有效的!獎勵歸我!” 。雖然此刻張衡路節點已經拿到了數字貨幣,但對於其他計算機節點來說,因爲這裏面還涉及到其他一些利益瓜葛,他們不會選擇默認相信張衡路節點所說的話;基於陌生節點彼此不信任的原則,他們拿過張衡路節點所謂挖到的區塊(副本),開始校驗區塊內的小紙條信息是否真實有效等等。在區塊鏈世界裏,節點們正是通過校驗小紙條信息的準確性,或間接或直接判斷成功挖出區塊的節點是否撒謊。(如何定義小紙條信息真實有效,後面會講解,這裏暫不做贅述)。

 

在校驗過程中,各個節點們會直接通過下面兩個行爲表達自己對張衡路節點的認同(準確無誤)和態度:

  • 停止已經進行了一半甚至99.99%的挖礦進程;
  • 將張衡路節點成功挖出的區塊(副本)追加到自己區塊鏈的末尾。

 

你可以稍微有點困惑:停止可能已經執行了99.99%的挖礦行爲,那之前99.99%的工作不是就白做了嘛?!然後,區塊鏈的末尾又是個什麼鬼東西?

 

對於第一個困惑。我想說,你說的一點沒錯,但是沒辦法,現實就是這麼殘酷,即便工作做了99.99%,那也得放棄,這99.99%的工作勞苦幾乎可以視爲無用功,絕對的傷財勞衆。第二個困惑,區塊鏈和區塊鏈的末尾是什麼鬼?這裏因爲事先並沒有講清楚,但是你可以簡單想象一下:區塊是週期性不斷的產生和不斷的被挖出來,一個計算機節點可能事先已經執行了N次“從別人手上拿過區塊 -> 校驗小紙條有效性”的流程,肯定在自己的節點上早已經存放了N個區塊,這些區塊會按照時間順序整齊的一字排列成爲一個鏈狀。沒錯,這個鏈條,就是你一直以來認爲的那個區塊鏈。如果你還是不能夠理解,沒關係,文章後面還會有很多次機會深入研究。

 

# 走進區塊內,探索消息的本質

 

上面我們構建了一個最簡單的區塊鏈世界的模型,相信大多數同學都已經輕鬆掌握了。但是別驕傲也彆着急,這還只是一些皮毛中的皮毛,坐好,下面我們準備開車了。

 

前面我們說到“大概每十分鐘會憑空產生一個神奇的區塊,這個區塊裏放了一張小紙條,上面記錄了這十分鐘內產生的這唯一一筆交易信息”。顯然,十分鐘內產生的交易肯定遠不止一條,可能是上萬條,這上萬條數據在區塊鏈世界是如何組織和處理的呢?另外,爲什麼在紙條上記錄的只是某一次的交易信息,而不是某一個人的餘額?餘額好像更符合我們現實世界的理解纔對。

 

既然存在這樣那樣的疑問。現在我們就把視線暫時從“區塊”、“區塊鏈”這些看起來似乎較大實體的物質中移開,進入到區塊內更微觀的世界裏一探究竟,看看小紙條到底是怎麼一回事,它的產生以及它終其一生的使命:

  1. 發起交易的時候,發起人會收到一張小紙條,他需要將交易記錄比如說“盜盜轉賬給張三40元”寫在紙上。說來也神奇,當寫完的那一剎那,在小紙條的背面會自動將這段交易記錄格式化成至少包含了“輸入值”和“輸出值”這兩個重要字段;“輸入值”用於記錄數字貨幣的有效來源,“輸出值”記錄着數字貨幣發往的對象。
  2. 剛剛創建的小紙條立馬被標記成爲“未確認”的小紙條。從地下成功挖出區塊並最終連接到區塊鏈裏的小紙條一開始會被標記爲“有效”。若這條有效的小紙條作爲其他交易的輸入值被使用,那麼,這個有效的小紙條很快會被標記爲“無效”。因爲各種原因,區塊從鏈上斷開、丟棄,曾經這個區塊內被標記爲“有效”的小紙條會被重新標記爲“未確認”。
  3. 區塊鏈裏面沒有賬戶餘額的概念,你真正擁有的數字資產實際上是一段交易信息;通過簡單的加減法運算獲知你數字錢包裏的餘額。

 

上面的1、2、3僅僅作爲結論一開始強行灌輸給你的知識點,其中有幾個描述可能會有點繞,讓你覺得雲裏霧裏,沒有關係,因爲我們立刻、馬上就開始會細說裏面的細枝末節。

 

上圖,是區塊內,盜盜在一張小紙條上記錄下的交易信息,後被格式化的呈現

 

上圖就是從無數打包進區塊內的小紙條中,抽取出來的一張,以及它最終被格式化後的縮影。單看右側的圖可能很容易產生誤會,雖然看起來有多行,但實際上就是“盜盜轉賬給張三40個比特幣”這一條交易數據另外的一種呈現形態。因爲區塊鏈世界裏面這麼規定,每一條交易記錄,必須有能力追溯到交易發起者 發起這筆交易、其中所涉及金額的上一筆全部交易信息;即這筆錢從何而來的問題。這其實很容易理解,在去中心化的網絡中,通過建立交易鏈、和通過交易鏈上的可溯源性間接保證數據安全和有效。

 

我們繼續看,在區塊鏈世界裏,我們是如何僅通過“盜盜轉賬給張三40個比特幣” 這條交易信息完成轉賬流程的。其實跟現實中你在路邊買一個包子的流程大抵上相同。

 

第一步:判斷是否有足夠的餘額完成交易

這裏我們再一次重申,在比特幣的區塊鏈世界裏是沒有餘額的概念(以太坊的底層區塊鏈有餘額概念),餘額是通過簡單數字的加減最終獲得,你擁有所謂的數字貨幣實際上是因爲你擁一條交易記錄,即 “盜盜轉賬給張三40個比特幣”!這裏,我們還是拿這條記錄說事:

 

追溯“輸出值”是“盜盜”相關的全部有效交易記錄作爲,對有效交易中的數字進行簡單求和,判斷是否大於等於40,如果確實大於等於,則將這些有效的交易記錄合併形成一條新的交易記錄(如下圖)。如果小於40,其實可以不需要再繼續往下探討。

 

就上圖的例子,我們追溯到曾經轉賬給盜盜的有效交易記錄有“小A轉賬給盜盜10 btc”、“小B轉賬給盜盜20 btc”、“小C轉賬給盜盜 25 btc”,我們需要將這三條交易記錄合併成一條更復雜描述的交易記錄,即 “( 小A轉賬給盜盜10 btc + 小B轉賬給盜盜20 btc + 小C轉賬給盜盜 25 btc ) 轉賬給張三40 btc ”

 

第二步:判斷是否需要找零

對追溯到的有效交易數字求和,如果發現大於需要支付的金額,需要將多出的數字重新支付給自己,相當於找零。對應生成了一條全新的交易記錄(如下圖)。

 

就上圖例子來說,我們最後合併成的交易記錄 “( 小A轉賬給盜盜10 btc + 小B轉賬給盜盜20 btc + 小C轉賬給盜盜 25 btc + 盜盜轉賬給盜盜15 btc ) 轉賬給張三40 btc ” 事實上等同於“盜盜轉賬給張三40 btc”。其中“盜盜轉賬給盜盜15 btc”就可以理解找零。

 

第三步:發出去,讓全球節點認同和備份小紙條

這條內部重新處理過的複雜交易記錄被塞進區塊,埋到地下,等待節點挖出來,一旦區塊被挖礦成功,並且該區塊最終被連在了區塊鏈的主鏈上。張三將最終擁有了這條交易記錄,而先前的“小A轉賬給盜盜10 btc” 、“小B轉賬給盜盜20 btc” 、“小C轉賬給盜盜25 btc”都將被視爲已經使用過的交易記錄——從此被貼上“無效”的標籤,意味着這些交易記錄將永遠不會再被追溯到。

 

我們最後一次重申,只是希望讓你加深印象:擁有數字貨幣=擁有交易記錄!

 

通過設計巧妙的精巧密碼學保證數據安全

 

記錄着交易信息的小紙條藉助區塊這個載體,在分佈式的網絡中以不同的軌跡錯綜複雜的傳遞,我們前面說了,你真正擁有的數字資產實際上是一段交易信息,而不是你常規意義上理解的貨幣。所以這個過程就需要重點解決兩個問題:

  • 接受到的這條交易記錄在傳輸過程沒有被其他人所篡改
  • 接受到的這條交易記錄確實是由發起交易的人所創造

 

在這裏,我們需要事先引入兩個知識點,可能稍微有點難消化,但都是計算機領域較爲成熟的和基礎的概念。

 

第一個知識點:SHA256()函數。你只需要知道,任意長度的字符串、甚至文件體本身經過SHA256函數工廠的加工,都會輸出一個固定長度的字符串;同時,輸入的字符串或者文件稍微做一丟丟的改動,SHA256() 函數給出的輸出結果都將發生翻天覆地的改變。注意,SHA256()函數是公開的,任何人都能使用。

上圖,僅僅一個小數點的變化,輸出的結果已經翻天覆地

 

第二個知識點:非對稱加密。你也只需要瞭解,任何人手裏都有兩把鑰匙,其中一把只有自己知道,叫做“私鑰”,以及一把可以公佈於衆,叫做“公鑰”;通過私鑰加密的信息,必須通過公鑰才能解密,連自己的私鑰也無解。公鑰可以通過私鑰生成多把。

 

有了這些知識點的加持,上面兩個問題開始變得有解。下面我們來看下內部是如何扭轉和工作的吧,這裏拿“小A 轉賬給了小B 100元錢” 舉例:

  1. 第一步:小A會先用SHA256函數對自己的小紙條進行處理,得到一個固定長度的字符串,這個字符串就等價於這張小紙條。
  2. 第二步:小A使用只有自己知道的那一把私鑰,對上面固定長度的字符串進行再加密,生成一份名叫數字簽名的字符串,這份數字簽名能夠充分證明是基於這張小紙條的。你可以這麼理解,在現實中,你需要對某一份合同的簽署,萬一有人拿你曾經在其他地方留下的簽名複製粘貼過來怎麼辦?!最好的辦法,就是在你每一次簽名的時候,故意在字跡當中留下一些同這份合同存在某種信息關聯的小細節,通過對小細節的觀察可以知道這個簽名有沒有被移花接木。步驟一和步驟二的結合就是爲了生成這樣一份有且僅針對這條小紙條有效的簽名。
  3. 第三步:小A將「明文的小紙條」、剛剛加密成功的「數字簽名」,以及自己那把可以公佈於衆的「公鑰」打包一起發給小B。
  4. 第四步:當小B收這三樣東西,首先會將明文的小紙條進行SHA256()處理,得到一個字符串,我們將其命名爲“字符串2”。然後,小B使用小A公佈的公鑰,對發過來的數字簽名進行解密,得到另外一個“字符串1”。通過比對“字符串1”和“字符串2”的一致性,便可充分證明:小B接受到的小紙條就是小A發出來的小紙條,這張小紙條在中途沒有被其他人所篡改;且這張小紙條確實是由小A所編輯。

 

可以看得出來,加解密的過程幾乎是一環套一環,中途任何環節被篡改,結果都是大相徑庭。藉助這一連串的機制,其實已經能夠很好的在公開、匿名、彼此不信任的分佈式網絡環境中解決數字交易過程中可能遇到的很多問題。這個環節可能確實有點難理解,現在,我需要你停下來,靜下心,花上幾分鐘閉目慢慢回味其中設計精湛的地方。

 

掌握了這部分知識以後,我們在這裏回答一下前面沒有解釋清楚的問題,「節點對區塊的檢驗」檢驗的到底是什麼?實際上就是:

  • 檢驗區塊內的交易記錄簽名是否準確(是否被篡改)
  • 檢驗區塊內的交易記錄輸入值是否“有效”(是否使用過)
  • 檢驗區塊內的交易記錄輸入值的數字之和是否大於等於輸出值的數字

 

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

 

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

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

 

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

  1. 同一個週期內,全網並不是產生唯一的一個區塊等待挖掘;每個節點事實上都在週期性的創造區塊和挖出區塊;只是在某一個節點的視野裏,它不能感知到另外一個節點上區塊的產生。爲何這裏要特別強調“在某一個節點的視野裏”,就是因爲我們剛剛講到,從區塊的視角來說,區塊的憑空產生,是基於即將與之相連的上一個區塊ID;而從節點的視角來看,區塊的憑空產生是基於當前節點區塊鏈末尾的那個區塊ID產生的。
  2. 全網會盡力控制在一個週期內只有一個節點能夠成功挖出區塊,但是不能夠完全避免多個節點同時挖出區塊的可能性;如何盡力控制?比如說,當大夥挖礦的熱情高漲、工作效率提高,區塊會被埋在更深更廣的地方等。簡而言之,通過提高工作難度,來維持這個平衡。另外,值得注意的:產生區塊、挖出區塊、校驗區塊,他們的時間週期近乎相同。

 

對於想從技術角度更加深入理解“區塊”、“挖礦”本質的同學們,你們可以移步至我的專欄《探索比特幣“挖礦”和“區塊”的數學本質》,其中涉及到一些比較複雜的數學和技術細節,相信閱讀完那部分內容之後,你對區塊鏈會有更加透徹的認知。當然,對於絕大多數的吃瓜羣衆,看完那邊內容可能會讓你更加困惑,如果你不是十分的喜歡追根究底的話,我建議你還是直接選擇跳過那塊吧。至少在我看來,即便少了那部分內容,也不影響我們去理解區塊鏈的魅力。

 

分叉

 

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

 

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

產生分叉

 

你肯定在想,那還得了,這種情況繼續下去,每個節點的區塊以及他們整理維護的小紙條都將變得不一樣,這已經嚴重違背了區塊鏈世界裏第一大最基本原則——所有節點共同維護同一份數據。所以,爲了解決這個問題,區塊鏈世界引入了一條新的規則——擁有最多區塊的支鏈將是真正被認可有價值的,較短的支鏈將會被直接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、當前產生區塊的時間戳以及挖礦節點的運氣值等因素相關”。 在這裏,正是因爲打算連接到主鏈的過程中,主鏈會立馬意識到,那條事先準備的鏈子(的第一個區塊)的時間戳存在異常,不屬於當前區塊鏈世界裏線性增長的時間戳,於是馬上意識到這個事先準備的鏈子(的第一個區塊)是無效的,需要重新計算。

 

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

 

除非....

 

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

 

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

 

--

問答部分

 

去中心化的系統中,到底是誰在發行貨幣?是無限量發行嗎?

比特幣的貨幣是通過挖礦(工作量證明)來發行的,總數量是通過程序寫死了2100萬個,而第一筆區塊獎勵也是硬編碼寫死的。礦工挖出一個區塊所獲得的獎勵,每隔21萬個區塊將減少一半,按照平均10分鐘挖出一個區塊的執行效率,也就就說差不多每四年會銳減一次。2009年1月起每個區塊獎勵50個比特幣,2012年11月減半爲每個區塊25個比特幣,2016年7月減半爲12.5個比特幣。基於這個規則,到2140年,所有比特幣(20,999,999,980)將全部發行完畢,之後不會再有新的比特幣產生。

 

礦工節點的收益除了挖出區塊以外還有哪些?

礦工節點的收益主要由兩部分組成:1)挖出新區塊的獎勵;2)挖出新區塊內所含交易的交易費。但就目前來說,一個區塊內的交易費大概只佔到礦工總收入的0.5%甚至更少,大部分收益主要還是來自於挖礦所得的比特幣獎勵。然而,隨着挖礦獎勵的遞減,以及每個區塊中包含的交易數量增加,交易費在礦工收益中所佔的比重將會逐漸增加。在2140年之後,所有的礦工收益將完全由交易費構成。

 

是不是隻有成爲節點才能進行交易?、錢包、尤其是輕錢包是不是也可以挖礦?

這個問題是讀者問出的,可能之前也有同學提出過類似的問題,但是沒有引起我足夠的重視,後來發現其實我也把概念混淆了。我一併去查閱了相關資料,對節點和錢包有一些更完整的理解和定義。詳細請閱讀我的專欄文章《區塊鏈節點與錢包的分類、邊際和使命,看這篇文章就足夠了

 

 

參考

編輯於 2018-07-10

​贊同 3K​​350 條評論

​分享

​收藏​感謝收起

汪樂-LaiW3n

汪樂-LaiW3n

區塊鏈黑客

15,841 人贊同了該回答

更新:將私信問答放在了最後

 

-----正文-----

 

事情是這樣的,最近我的室友Hasaki一直在問我區塊鏈和比特幣的事情,我嘗試了很多種不通的姿勢以求簡單通俗形象生動地跟他解釋什麼是區塊鏈技術,但是最後都失敗了。因此我萌生了要寫一篇BlockChain for Babies(又名:如何向你的弱智室友解釋區塊鏈)的想法,以求能簡單直觀生動形象地向對區塊鏈技術不瞭解但是想知道區塊鏈是什麼的人介紹區塊鏈技術或者比特幣。

 

因爲面向的讀者是不想知道具體技術實現只想瞭解區塊鏈的人羣,因此本文避開了一些底層和算法細節,採用比較主觀的方式來展示筆者對區塊鏈技術的感性認識。如果你只是對區塊鏈感興趣,並沒有深入學習的打算,或者只是想像我一樣在別人問起來的時候裝逼,本文應該是一篇很好的“導論”。

 

總覽

區塊鏈本質上是一個去中心化的分佈式賬本數據庫(感謝

@程劍宇

指出:在與比特幣相關的區塊鏈應用中可使用這一術語,但區塊鏈技術可能並不包含“賬本”)。其本身是一串使用密碼學相關聯所產生的數據塊,每一個數據塊中包含了多次比特幣網絡交易有效確認的信息。

這是區塊鏈的定義,因此要逐步瞭解區塊鏈,我們需要一步步瞭解如下東西。

 

去中心化

先來考慮一箇中心化集中式處理的過程。你要在某寶上買一部手機,交易流程是:你將錢打給支付寶-支付寶收款後通知賣家發貨-賣家發貨-你確認收貨-支付寶把錢打給賣家。

圖1: 中心化集中式交易模式
 

在這個過程中,雖然你是在和賣家交易,但是這筆交易還牽扯到了除了你和賣家的第三方,即支付寶,你和賣家的交易都是圍繞支付寶展開。因此,如果支付寶系統出了問題便會造成這筆交易的失敗。並且雖然你只是簡單的買了一個手機,但是你和賣家都要向第三方提供多餘的信息。因此考慮極端情況,如果支付寶跑路了或者是拿了錢不卻不承認你的交易或者是支付寶所在的城市因爲開G20把所有人都趕走了(?),那麼你就悲劇了。

 

而去中心化的處理方式就要顯得簡單很多,你只需要和賣家交換錢和手機,然後雙方都聲稱完成了這筆交易,就OK了。

 

可以看出在某些特定情況下,去中心化的處理方式會更便捷,同時也無須擔心自己的與交易無關的信息泄漏。

 

其實如果只考慮兩個人的交易並不能把去中心化的好處完全展示出來,設想如果有成千上萬筆交易在進行,去中心化的處理方式會節約很多資源,使得整個交易自主化、簡單化,並且排除了被中心化代理控制的風險。

 

去中心化是區塊鏈技術的顛覆性特點,它無需中心化代理,實現了一種點對點的直接交互,使得高效率、大規模、無中心化代理的信息交互方式成爲了現實。

 

當然,上述的例子有一個很大的潛在問題:沒有了權威的中心化代理,怎樣保證每筆交易的準確性和有效性呢?比如:如果沒有了權威的中心化代理,張三某一天借了我100塊錢,但是不還錢還不承認怎麼辦?這裏就引出了區塊鏈的其它特性。

 

兩個基礎難題

在去中心化以後,整個系統中沒有了權威的中心化代理,信息的可信度和準確性便會面臨問題。

 

問題1:類兩軍問題

第一次聽說這個問題居然是在TCP的課上,大致說的是有兩個相距很遠的軍隊要傳遞信息,紅軍派遣一個信使去跟藍軍說:“你他孃的把意大利炮拿出來!”。藍軍收到信息後又派了一個信使去紅軍說:“收到指令!”。然後紅軍又派一個信使去藍軍說:“知道你收到指令了!”。然後藍軍又派一個信使去紅軍說:“知道你知道我收到指令了!”。然後紅軍又派一個信使去藍軍說:“知道你知道我知道你收到指令了!”……然後就沒完沒了了。

圖2:在分佈式計算中在異步系統和不可靠的通道上達到一致性是不可能的
 

在這種情況下,因爲是點對點的通信,雙方不可能在這種情況下達到信息的一致性。嚴謹一點,就是“在分佈式計算上,試圖在異步系統和不可靠的通道上達到一致性是不可能的”。

 

問題2:拜占庭將軍問題

拜占庭羅馬帝國在軍事行動中,採取將軍投票的策略來決定是進攻還是撤退,也就是說如果多數人決定進攻,就上去幹。但是軍隊中如果有奸細(比如將軍已經反水故意亂投票,或者傳令官叛變擅自修改軍令),那怎麼保證最後投票的結果真正反映了忠誠的將軍的意願呢?

 

拜占庭將軍問題反映到信息交換領域中來,可以理解爲在一個去中心的系統中,有一些節點是壞掉的,它們可能向外界廣播錯誤的信息或者不廣播信息,在這種情況下如何驗證數據傳輸的準確性。

 

區塊鏈技術的誕生

現在讓我們來一步一步在去中心化的系統中解決這些問題,見證區塊鏈技術雛形的誕生。

 

1

我們先來建立一個去中心化的系統,爲了方便理解,我們來看一個簡單的去中心化借貸模型:如果A借了B 100塊錢,這個時候,A在人羣中大喊“我是A,我借給了B 100塊錢!”,B也在人羣中大喊“我是B,A借給了我100塊錢!”,此時路人甲乙丙丁都聽到了這些消息,因此所有人都在心中默默記下了“A借給了B100塊錢”。你看,這個時候一個去中心化的系統就建立起來了,這個系統中不需要銀行,也不需要借貸協議和收據,嚴格來說,甚至不需要人與人長久的信任關係(比如B突然又改口說“我不欠A錢!”,這個時候人民羣衆就會站出來說“不對,我的小本本上記錄了你某天借了A100塊錢!”)。

圖3:去中心化借貸模型

2

可能你已經發現了,在上述的模型中,所謂的“100塊錢”已經不重要了。換句話說,任何東西都可以在這個模型中交換,甚至你可以憑空杜撰一個東西,只要大家承認,你就可以讓你杜撰的東西流通。比如:我在人羣中高喊一聲“我創造了10個查克拉!”,我甚至不需要知道查克拉是什麼,也不需要關心世界上是不是真的有查克拉,只要大家都聽到,然後在自己的小本本上記下“LaiW3n有10個查克拉”,於是我就真的有100個查克拉了。從此以後,我便可以聲稱我給了某人1個查克拉,只要路人甲乙丙丁都收到並且承認了這一信息,那我就算完成了這次交易,哪怕世界上沒有查克拉。

 

你現在腦海中是不是浮現出了三個字——“比特幣”?由於真正的區塊鏈和比特幣比我上述的模型複雜太多,細節也豐富太多,因此以下還是以查克拉舉例,畢竟本文是Blockchain for Babies.(笑)


3

假設過了很長一段時間,我憑空創造的查克拉已經在這個系統中流通了起來,大家都開始認可了查克拉。但是這個系統中一共就只有10個查克拉,於是有人動了壞心思,他在人羣中高呼“我有10個查克拉!”怎麼辦?大家是直接在本本上記下他有10個查克拉麼,這樣不是人人都可以僞造查克拉了麼?

 

爲了防止這種現象發生,我決定在我創造查克拉的時候給我的查克拉打上標記(更準確地說,我是給我喊的那句“我創造了10個查克拉”打上標記,比如標記爲001),這樣以後在每一筆交易的時候,我在高喊“我給了某某1個查克拉!”的時候,會附加上額外的一句話:“這1個查克拉的來源是記爲001的那條記錄,我的這句話標記爲002!”。我們再抽象一點,某人喊話的內容的格式就變成了:“這句話編號xxx,上一句話的編號是yyy,我給了某某1個查克拉!”,這樣就解決了僞造的問題。其實上述模型就變成一個簡化的中本聰第一版比特幣區塊鏈協議:

圖4:查克拉模型和中本聰第一版區塊鏈協議對比圖
 

好了,看到這裏你基本已經能夠生動形象又不涉及任何細節地向你的弱智室友解釋區塊鏈了。但是也許你的室友是一個有打破沙鍋問到底精神求是學子,因此你最好繼續準好回答以下這幾個問題。

 

1. “憑啥?”

你室友可能會問:“憑啥你喊一句話我就幫你記?我的小本本不要錢麼?”。爲了激勵大家幫我傳話和記賬,我決定給第一個聽到我喊話並且記錄在小本本上的人一些獎勵:第一個聽到我喊話並記錄下來的人,你就憑空得到了1個查克拉,這個查克拉是整個系統對你幸苦記賬的報酬,而你記錄了這句話之後,要馬上告訴其它人你已經記錄好了,讓別人放棄繼續記錄這句話,並給你自己的記錄編號讓別人有據可查,然後你再把我的話加上你的記錄編號一起喊出來,供下一個人記賬。

 

當這個規則定下以後,這個系統中一定會出現一批人,他們開始豎着耳朵監聽周圍發出的聲音,以搶佔第一個記賬的權利。對的,你腦海中是不是又浮現出了“比特幣挖礦”的字眼?

 

值得一提的是,關於比特幣挖礦,

@玲瓏邪僧

舉了一個很形象的例子:

單身汪們要找女票,國民岳母說我有好多女兒,這樣吧我給你們出點題目,解出一個就給其中一個姑娘的微信號。

單身汪們瘋狂競爭,想破腦袋去解題。只要其中一隻汪解出一道題,就立馬得意洋洋地昭告天下,示威全部單身汪,這個姑娘是我的啦,你們放棄吧。其他單身汪們即使不服也沒有辦法,惆悵懊惱也不是個事兒啊,還是麻溜地立馬去解下一道題目吧。這隻喜贏姑娘的幸運小汪被岳母認可後還能得到25個貨幣單位的彩禮,簡直人生贏家。

 

2. “聽誰的?”

在這個系統中,如果我和另一個人C幾乎同時地喊出一句:“爲了艾澤拉斯!”。由於聽衆所處的位置不同,一定會有人先聽到我說的那句話,而另外一些人則先聽到C的那句話,如果我們規定只能有一個人說出這句話,那到底這句話是誰說的?

 

如果不加任何條件,那麼上述的情況一定會這樣發展:一部分人認爲這句話是我說的,在聽到這句話之後開始記賬,之後他們所做的所有事情都是基於這個事實,並且隨着這個信息一次次的傳下去,這條信息鏈會越來越深;而另外一羣認爲是C先說這句話的人,也會按照這樣的趨勢發展。這樣,原本是一條唯一的信息鏈,在我們喊出“爲了艾澤拉斯”這句話之後,分叉了!?

圖5:“區塊鏈”分叉

 

這會導致怎樣的情況呢?按照我們的設想,應該每個人的小本本上記錄的東西都是一樣的,都是一條可以把所有信息串聯起來的鏈條。但是在這一刻,他們小本本上記錄的東西不一樣了!這還玩毛啊?以後還怎麼確定交易和信息的真實性!?

 

爲了解決這個問題,我又追加了新的規則:每個人在記錄小本本的時候,需要脫鞋然後用腳拿筆,在小本本上用正楷體書寫!有了這個規定,由於用腳寫字難度很大,每個人至少需要10分鐘才能寫完,而且由於每個人用腳寫字的熟練度不通,寫完這句話所用的時間也不同,因此一定會有人先寫完然後高呼“我寫完了!那句話是LaiW3n喊的!”,這樣其它正在寫這句話的人便會停筆,然後在小本本上重新開始寫“那句話是來文寫的,上一句的編號是xxx”。

 

如果你對上述我的解決方法感興趣,你可以對照我上面的比喻去了解以下知識:

“聽誰的”——中本聰破解“拜占庭將軍問題”的算法

“在小本本上記錄”——比特幣挖礦

“脫鞋用腳寫字”——比特幣挖礦難度

“脫鞋寫字速度”——算力

“新的規則”——工作量證明鏈

 

3. “雙花”問題

這個時候你的室友可能又要問:如果我同時宣佈我給了A一個查克拉和我給了B一個查克拉,但是我只有一個查克拉,那咋整?是A和B都收到了查克拉還是咋地?

 

這個時候你只需要托起他的下巴,溫柔地看着他的眼睛,用手刮刮他的鼻子,說:“小妖精,你把這種情況帶到上面的規則中去試試?”

 

--------------

一些私信問題討論:

 

1. 爲何目前還鮮有區塊鏈和實體商業業務對接的案例?

從理論上:區塊鏈是一門新技術,保守大衆(包括我)還處在觀望階段,只有少數激進或者目標明確的實體開始向區塊鏈進軍,而這些少數的實體在現階段發聲的強度還不夠。

從應用上:區塊鏈技術要與實體商業對接,在技術和規則上還需要進一步開拓,區塊鏈解決的所謂“不信任”問題其對象也只侷限於區塊鏈上的數據。因此如果區塊鏈要與實體業務對接,還需要進一步推動實體與數據之間跨域的“遊戲規則”的建立。

 

2. 虛擬加密貨幣最終是否會走向龐氏騙局?

這個問題我也不太好回答,畢竟我是一個技術人員而非這個領域的弄潮兒。我個人的看法是:對於普通人,不建議長期持有某種數字貨幣,應將數字貨幣作爲法幣之間轉換的橋樑;對於投機者,“炒幣”需謹慎,應將風險控制在自己能夠承受的範圍內。PS:其實我真的不關心這個問題。

 

3. 爲什麼聽你一講,感覺區塊鏈很弱智的樣子?

我在文中已經說明,這只是一篇關於區塊鏈技術的新人導論,其目的在於幫助你快速對區塊鏈有一個感性的認識;如果真的想了解區塊鏈技術細節,請閱讀相關文獻或訪問區塊鏈社區。

 

4. 工作機會

感謝各位熱情的HR,但我現在暫無跳槽的打算。

 

5. 轉載

個人可以轉載,請註明來源並告知我一聲;商業組織或作爲商業用途,請私信。

編輯於 2016-09-29

​贊同 15K​​1,165 條評論

​分享

​收藏​感謝收起

西瓜

西瓜

持有比特幣玩家

953 人贊同了該回答

以下全部是個人對區塊鏈的認知,爲了避免廣告嫌疑,很多的地方我只能寫的模糊點啦。因爲自己發過一篇類似的文章,結果被舉報是有廣告嫌疑,唉,真心的分享,希望知乎大哥大姐明察。

最近一直在研究區塊鏈,之前做了3年的php開發,感覺最近區塊鏈來的有點猛啊,太火了,很多美國知名大學把區塊鏈技術加入課程列表。現在各領域涌現出對區塊鏈專業知識的需求,區塊鏈可以應用在金融行業、徵信系統、供應鏈、在線音樂、房地產、醫療等等各個行業。關鍵現在是沒有相關區塊鏈人才啊,弄的自己都想去學習區塊鏈了,現在國內國外很多的公司都是百萬年薪招區塊鏈人才。

爲什麼會出現這樣的用工荒,其實原因很簡單,就是懂區塊鏈的太少了,先給大家普及一下區塊鏈的知識。區塊鏈技術是指通過去中心化和去信任的方式集體維護一個可靠數據庫的技術,可以用4個關鍵詞去形容:去中心化(Decentralized)、去信任(Trustless)、集體維護(Collectively maintain)、可靠數據庫(Reliable Database)。

區塊鏈又分爲以下幾種:

1、公開區塊鏈(public blockchain) 例子:比特幣,Ethereum Frontier。公開區塊鏈上的數據所有人都可以訪問,所有人都可以發出交易等待被寫入區塊鏈。共識過程的參與者(對應比特幣中的礦工)通過密碼學技術以及內建的經濟激勵維護數據庫的安全。公開區塊鏈是完全的分佈式。

2、協作區塊鏈(federated blockchain) 例子:Hyperledger以及德勤等會計所嘗試的審計系統。參與區塊鏈的節點是事先選擇好的,節點間很可能是有很好的網絡連接。這樣的區塊鏈上可以採用非工作量證明的其他共識算法,比如有100家金融機構之間建立了某個區塊鏈,規定必須67個以上的機構同意纔算達成共識。這樣的區塊鏈上的數據可以是公開的也可以是這些節點參與者內部。部分意義上的分佈式。

3、私有區塊鏈(private blockchain) 例子:Eris Industries。參與的節點只有用戶自己,數據的訪問和使用有嚴格的權限管理。近期部分金融機構公佈的內部使用的區塊鏈技術大都語焉不詳,不過很可能都在這個範圍內。

關於區塊鏈本身的知識就說到這裏吧,網上和知乎上有很多的文章在介紹,我就不在此累贅了。因爲自己最近也在學習研究區塊鏈,接下來就給大家分享一下自己關於區塊鏈學習的一些經驗。以下共3種學習的方式,大家可以根據自己的實際情況去選擇:(1)看書;(2)看視頻;(3)找人帶或者參加培訓

 

第一:看書

 

給大家說一些自己曾經看過的,感覺比較有價值的書目

 

(1).《精通比特幣》原版名《Mastering Bitcoin》,瞭解比特幣的最佳之選。在線閱讀:介紹 | 精通比特幣

 

(2).《區塊鏈——從數字貨幣到信用社會》 瞭解區塊鏈概念的不錯的一本書,多位行業大咖傾力合作而成。

 

(3).《深入淺出以太坊》 對以太坊研究較深的汪曉明所做,可以系統瞭解和學習以太坊。

 

(4).《區塊鏈開發者指南(待出版)》 期待已久,由申屠青春和汪曉明兩位行業大牛主編,可以盯着,出版買一本學習學習。

 

除了看書,再給大家推薦一些文章

(1)【區塊鏈之菜鳥入門】系列文章

1)親,你淘的區塊鏈到了!

2)區塊鏈發展史:從拜占庭將軍問題到智慧契約

3)來來來,這篇科普告訴你“區塊鏈”到底是個啥?

4)區塊鏈——顛覆式創新技術

(2)【區塊鏈之技術進階】系列文章

1)區塊鏈:通往互聯網第二紀元的革命

2)金融的未來,區塊鏈將用於何方?

3)讓這篇技術貼告訴你區塊鏈是怎麼運行的

4)扒一扒某乎上面對於區塊鏈的理解(一)

5)扒一扒某乎上面對於區塊鏈的理解(二)

6)從技術現實理解區塊鏈:基於SQL模型創建BQL

7)掰一掰區塊鏈共識機制與分佈式一致性算法

8)Attention please!區塊鏈技術的風險!

(3)【區塊鏈之技術實戰】系列文章

1)羣雄激辯區塊鏈

2)顛覆銀行基礎架構的區塊鏈

3)在金融領域,區塊鏈該咋用呢?

4)區塊鏈開源項目合集:Hello,BlockChain!

5)有了區塊鏈做公益,再也不用擔心我的捐款啦

4)【區塊鏈與未來】系列文章

1)區塊鏈只與互聯網+金融有關?讓法律人和你聊聊

2)“區塊鏈+”火花四濺的未來

3)"公共記賬簿"?哼,區塊鏈遠比你想象的強大的多

4)區塊鏈技術將重塑我們的世界

 

第二:看視頻

 

(1)火幣網李林的區塊鏈是什麼

http://m.youku.com/video/id_XMTQwODE4NDAyNA==.html?spm=a2h0j.8191439.Recommend.1~3!2~A

(2)比特幣原理概要–非技術版

http://video.8btc.com/video/34555

(3)比特幣底層原理

http://video.8btc.com/video/31288

(4)以太坊技術視頻系列(汪曉明)

http://ethcast.com/

(5)小蟻的價值體現在哪裏

https://m.v.qq.com/x/page/c/m/v/c0319zih9mv.html?ptag=v.qq.com%23v.play.adaptor%232&mreferrer=http%3A%2F%2Fv.qq.com%2Fvplus%2Fbec429068169e2ea1599f137e94888bc%3F_wv%3D1031

 

第三:找人帶或者參加培訓

 

(1)小蟻開發學院

 

技術出身的可以去小蟻開發學院https://www.antsh.org/school,適合有一定基礎的開發工作者去學習。

 

(2)朵朵學院

 

老蘑菇獨撐的朵朵學院http://www.wanbizu.com/p/37467.html,在淘寶可以買到系列教程,課程不貴,對大家還是比較有用的。

 

(3)海綿學堂

海綿學堂www.51haimian.cn是最近剛發現的一所線下培訓機構,號稱是全國首家做區塊鏈培訓的機構,比較適合系統的學習一下區塊鏈,找個老司機帶,上手會快一些,入行容易些。

 

以上就是自己總結的學習區塊鏈技術的一些方法和手段,自己自學了有3個月,發現自學是一件非常痛苦的事情,關鍵是自己的自控力差啊,希望找個志同道合一起學習交流,相互督促,有想法的和小窗私我。

編輯於 2017-08-12

​贊同 953​​34 條評論

​分享

​收藏​感謝收起

maxdeath

maxdeath

信息論博士,區塊鏈博士後

3,430 人贊同了該回答

首先要搞清一個問題——比特幣是區塊鏈,但是區塊鏈並不是比特幣。

於是,在區塊鏈的這個問題回答裏,提到“礦工”,“挖礦”,“最長鏈”,“分叉”等等詞的,其實都不準確。

寫一點上個月講課的內容——個人覺得大部分的回答,包括google搜出來的或者wiki的,都不能很好地解釋區塊鏈是個什麼東西。因爲講比特幣的人很多,懂比特幣的人也很多,但是具體到區塊鏈,現在並沒有一個很清楚的定義說什麼是區塊鏈,基本上所有的介紹裏都是這樣的:

比特幣——〉區塊鏈是比特幣的底層技術。

或者

比特幣——〉比特幣是一種區塊鏈。

具體到什麼是區塊鏈的問題,目前沒有看到很好的定義和介紹,更多的是大而化之地講區塊鏈的意義在哪裏的空泛文章,要不然就是一水的礦工和挖礦。所以我來從純理論角度說一下我個人對區塊鏈的定義:

1,區塊鏈是一個放在非安全環境中的分佈式數據庫(系統)。

2,區塊鏈採用密碼學的方法來保證已有數據不可能被篡改。

3,區塊鏈採用共識算法來對於新增數據達成共識。

具有以上三個性質的系統,就是區塊鏈。


 

1,區塊鏈是一個放在非安全環境中的分佈式數據庫(系統)。

這裏的要點有兩個:(1)分佈式,(2)非安全環境。

首先,這是一個分佈式的,去中心化的系統。所以,有一箇中心服務器或者節點的,不是區塊鏈。節點都是安全的,無惡意的,那這不是區塊鏈。同理,從應用的角度講,如果你的應用必須要使用中心節點(例如要用超級計算機做深度學習)或者沒必要考慮節點不安全的情況(例如某個安全的工廠裏的傳感器),那麼並不需要考慮區塊鏈技術。

至於後面的詞“數據庫”,目前大部分成熟的區塊鏈都是數據庫,例如比特幣就是一個分佈式賬本,而賬本其實就是數據。然後,根據數據的格式,又可以分三種——1,數據是完全不相關的,只是達成的共識,沒有有效無效之分;2,數據有某些邏輯結構,例如賬本中,一筆交易實際上除了金額,還有輸入和輸出,連接到之前的交易,這些數據需要通過邏輯驗證(例如交易中,節點需要驗證輸入的交易是否有效);3,數據擁有圖靈完備的邏輯,而驗證的時候需要通過節點使用算力運算,每筆交易可以有不同的輸出和狀態,每個節點要做的不僅僅是驗證交易的真實性和輸入的正確性,還要根據交易裏的邏輯讀入數值,進行驗算然後再驗證結果。

比特幣的系統就是第二種,又叫分佈式賬本;以太坊是第三種。第三種可以支持智能合約。

用比特幣舉例的話,1,它是一個完全去中心化的系統,2,它放在一個非安全的環境,它並不要求所有使用比特幣的人都沒有惡意。

 

2,區塊鏈採用密碼學的方法來保證已有數據不可能被篡改。

這個是誤解最多的部分,因爲很多人一提到區塊鏈就只覺得是這個。誠然,這部分很重要,而且確實區塊鏈也因此得名,但這只是區塊鏈的定義的一部分。

這個部分的兩個核心要點是:(1)密碼學哈希函數,(2)非對稱加密。

兩個都是密碼學的基礎概念,網上都有非常清晰的定義,我只簡單說下:

(密碼學)哈希函數:一個函數Y=H(X),有如下性質:1,有X可以很容易算出Y;2,有Y不可能算出X;3,有Y不可能找到另一個X'使得H(X')=Y;3.5,如果X和X'相差很小,H(X)和H(X')則完全不相關。

這東西主要用於驗證信息完整性——在一個信息後面放上這個信息的哈希值,這個值很小,例如256bit,而且計算方便。收到信息之後收信人再算一遍哈希值,對比兩者就知道這條信息是否被篡改過了。如果被篡改過,哪怕只有一bit,整個哈希值也會截然不同。而根據哈希函數的性質,沒有人能夠僞造出另一個消息具有同樣的哈希值,也就是說篡改過的數據完全不可能通過哈希校驗。

非對稱加密:這東西很好理解——對稱加密就是有個密鑰,可以理解成保險箱鑰匙,你把消息加密變成密文,沒有人能看懂這是啥,然後同一把鑰匙解密成原來的消息。

非對稱加密就是有兩把鑰匙,一把叫公鑰,一把叫私鑰,用其中一把加密的話,只能用另一把解密,反之亦然。另一個重要的性質是,給你密文,明文和其中一把鑰匙,你還是解不出來另一把鑰匙是啥。原理基本上是基於一些困難數學問題,例如因數分解和離散對數,常用的有RSA,Diffie-Hellman和ECC(橢圓曲線),比特幣用的是橢圓曲線。

非對稱加密除了和對稱加密一樣用於信息加密之外,還有另一個用途,就是身份驗證。因爲通常情況我們假設一對公私鑰,公鑰是公開的,而私鑰只有本人有,於是一個人如果有對應的私鑰,我們就可以認定他是本人。其中一個重要的應用就是數字簽名——某個消息後面,發信人對這個消息做哈希運算,然後用私鑰加密。接着收信人首先對消息進行哈希運算,接着用相應的公鑰解密數字簽名,再對比兩個哈希值,如果相同,就代表這個消息是本人發出的而且沒有被篡改過。

 

以上是基礎知識,至於區塊鏈怎麼實現的,很簡單:

交易(數據)寫在區塊裏。

第一個區塊叫創世區塊,寫啥都行。

從第二個區塊開始,每個區塊的第一部分有前一區塊的哈希值。此外,區塊裏的每一筆交易(數據),都有發起人的數字簽名來保證真實性和合法性。於是,先前區塊裏的任何數據都不可被篡改,原因見上。

 

到這爲止有人可能會問:爲什麼要弄個鏈啊?直接所有數據加個哈希值不就行了?

因爲——這個數據庫並不是靜止的啊。

數據庫的數據是會增加的,而每次增加的數據,就是一個區塊,於是這些生成時間不同的區塊,就以這種形式鏈在一起了。

至於如何增加區塊,就涉及到第三個部分——共識算法。

 

3,區塊鏈採用共識算法來對於新增數據達成共識。

 

共識算法的目的,就是讓所有節點對於新增區塊達成共識,也就是說,所有人都要認可新增的區塊。對於有中心的系統,這事很簡單,中心說什麼大家同意就好了,但是放到去中心化系統裏,尤其是當有些節點有惡意的時候,這東西非常複雜,計算機科學裏有個相應的問題,叫做“拜占庭將軍問題”或者“拜占庭容錯”(BFT)。

有很多用Lamport給出的那個例子來講BFT的東西,我在這裏換一個角度。

Lamport大神當年提出這個問題的時候在斯坦福研究中心給NASA做項目,他提出這個問題的原因並不是考慮類似比特幣的應用場景(整個互聯網成千上萬個用戶),而是考慮特殊背景下的一個簡單的系統——

航天飛機的控制系統。

如果有航空背景的同學可能知道,飛機有三套獨立的控制系統,爲什麼呢?因爲任何系統都不可能完全不出故障,就算飛機控制系統的故障率已經極低了,還是有飛到一半這東西壞了的可能。於是我們可以弄兩套獨立的系統,同時壞掉的機率就會大大降低。

可是兩套獨立的系統還是不足以容下一個系統的錯誤——一架飛機迎面飛來,兩套系統一個說要躲,一個說不躲,那到底是躲還是不躲呢?所以我們需要三臺獨立的系統,這樣,如果有一個系統有故障了,還有兩臺能正常工作,能少數服從多數給出正確的結果。學過糾錯碼的同學對這個應該不陌生,這個系統的輸出之間的漢明間距是3,所以可以糾正一位的錯誤。

然而,對於航天飛機,在冷戰的背景下,萬一某個系統不是壞掉了,而是被敵人控制了呢?三套系統還夠嗎?

答案是否定的,因爲不同於單純只是壞掉的節點,惡意節點可以做一些別的事來阻止整個系統達成共識。

這個部分略複雜要講的話要單開一帖,所以我們只說最簡單的情況(無簽名同步系統)。

我們管三個系統叫ABC,正常工作流程是三個人每次得出結果就互相告訴一下,然後每個人選多數人同意的結果。這是個沒有中央節點的分佈式系統,也就是說三人不能聚在一起開個會啥的,仨人只能兩兩通信。這個時候,假設C有惡意,它的目標是破壞這個系統。於是,假設正確的讀數是1,A和B都得出了1這個結果,這個時候C這個小婊砸告訴A說“我的結果是0,B也覺得是0”,同時打個電話跟B說“哎我覺得是0,A也這麼說”,於是A和B就懵逼了。假設你是A,你聽到了兩個不同版本的B的答案,B說自己選了1,C說B選了0,可是A這個時候沒法知道B和C誰纔是那個騙了自己的小婊砸,因爲如果B真的告訴A選了1然後告訴C是0,他聽到的結果和現在是一模一樣的。

於是結論是,拜占庭容錯,也就是需要容下一個惡意系統而非錯誤系統,需要4個獨立系統。

(當然,簽名可以解決這個問題,但是這只是同步系統的情況,在異步系統裏這問題會變得更加複雜,原因是正常節點的回答有延遲,而惡意節點可以不回覆,所以,正常節點一方面要等另一個節點的回覆,但是它又不知道對方會不會回覆因爲對方有可能會有惡意,而在收到回覆之前,它完全沒法判斷對方是正常節點還是惡意節點,這個問題叫異步BFT,也是BFT的最複雜的情況,這裏不再做更多的解釋,下文提到的BFT算法,其實都是異步BFT的算法)

Lamport提出這個問題之後,有無數的算法被提出來,統稱BFT(拜占庭容錯)算法,其中最有代表性的叫PBFT,然後由於最近區塊鏈的熱度,無數針對區塊鏈應用場景優化過的BFT算法也涌現出來,但是一個重要的問題是,所有目前的BFT算法,都只能應用在小型網絡裏。原因很簡單——因爲BFT這個問題是設計給類似於航天飛機控制系統這樣的場景的,早期的算法考慮的也主要是這種場景。PBFT論文裏考慮的就是一個5個節點的系統。就算算上新提出的BFT算法,也最多應用在不超過100個節點的網絡裏。

這個問題被擱置了很久,直到比特幣的誕生——中本聰從某種意義上簡化了這個問題,在比特幣中,同樣是共識問題,中本聰引入了一個重要的假設——獎勵,他之所以能這樣做的原因是,他考慮的是一個數字貨幣,也就是說共識這個東西是有價值的。

於是在這樣的系統上,他提出了工作證明機制。

所有挖礦,礦工,最長鏈,分叉等等等等,都可以歸結爲一句話:

說話是要有代價的,說真話是有好處的,說假話是要扣錢的……

這就是目前兩類共識算法的核心區別:

BFT共識模型:惡意節點可以幹任何事。

比特幣共識模型:模型中有公認的“價值”,每個節點說話都需要一定代價,誠實節點會受到獎勵,而惡意節點由於只付出代價而收不到獎勵,變相受到了懲罰。

也就是說,BFT共識模型其實涵蓋了比特幣共識模型的場景,比特幣共識其實放寬了BFT共識模型的限制。

比特幣共識對於BFT的優勢在於,由於給惡意節點的能力做了限制,惡意節點所能造成的破壞大大降低了,尤其是對於異步系統——BFT共識裏惡意節點可以一直拒絕相應而誠實節點還需要一直等它(因爲不知道它是不是惡意的),而對於比特幣共識,隨你便,你不響應就沒有獎勵可拿。於是,比特幣共識算法可以應用於成千上萬個節點,而且,任何人隨時都可以加入,不需要預先在網絡裏註冊自己的身份(而BFT算法裏,網絡中節點的數量和身份都必須是已知的)。

但比特幣共識的缺陷在於,首先,得有個有價值的東西,也就是說放在比特幣裏這東西還行,以太坊的話現在可能也湊合,但是其他數字貨幣嘛……BFT共識有個嚴格的限定,就是惡意節點不能超過總數的1/3,然而其實比特幣共識沒有這樣的限制,唯一的限制就是假定大部分節點都是理性的,是逐利的,也就是會採用最佳的策略來賺取最大的價值。所以,嚴格來說,自私挖礦這種行爲在比特幣共識裏是允許的,而多數攻擊,其實也算不上一種攻擊,因爲這些都沒有突破比特幣共識的框架——如果這個價值無限大,比特幣共識是非常可靠的。然而這並不是事實,因爲並不是每個虛擬貨幣都和比特幣一樣值錢,而在價值不高的情況下,比特幣共識的前提就站不住腳了——當損失可能是幾千上萬塊錢的時候,假定每個人都是理性的是合理,但是如果損失就幾分錢這個假設就相當扯淡了,事實上也發生過一個比特幣礦池跑到另一個貨幣惡意挖礦搞垮對手的情況。

此外,比特幣共識是最長鏈共識,也就是說最長鏈-->大多數-->理性,於是分叉是允許的。於是導致了一些附帶的問題,例如,如果網絡有延遲,你怎麼知道你手裏那條鏈是整個網絡裏當前的最長鏈呢?於是,如果需要傳輸的數據多,那麼延遲加大。延遲加大,那麼越多的人手裏的鏈並不是全網絡的最長鏈。於是,全網絡的最長鏈,就沒法代表大多數。這就打破了比特幣共識的根本,這也是爲什麼比特幣區塊頻率是10分鐘一塊的原因。比特幣目前有個著名的7幣交易每秒的上限,而現在擴容鬧得很厲害,以太坊的交易格式不同,也用了新的工作證明,想要改成權益證明,但這些都不本質。真正本質的是,在目前的網絡條件下,如果適用全網的話,比特幣共識的交易量基本上超不過100筆交易每秒這個量級。

上面這幾段有可能太深了,簡單來說,BFT共識和比特幣共識的區別可以這麼理解:

 

BFT共識:來,大家開個會討論一下集思廣益啊,討論出大家都滿意的結果爲止。

問題:開會的效率大家都懂,人越多越不容易出結果。只能用於少數節點,用於上千個節點的話……大家想象一下一天開一次人大的場景。

 

比特幣共識:你的詩念得不錯,組織已經決定了,今天就你來當領導了,做得好有獎,做不好扣錢。

問題:獎勵幾千塊錢還好,獎勵幾分錢誰好好幹?


 

而區塊鏈也就因此被分成了涇渭分明的兩類,很多人都聽過什麼公有鏈私有鏈聯盟鏈,但是,如果你們以爲這是根據應用區分的就大錯特錯,其實,這兩種區塊鏈最本質的區別,還是因爲共識模型或者說算法不同——BFT算法沒法應用於大量節點,所以用BFT算法的就沒法做公有鏈。而比特幣共識得有個價值體系,這東西去做私有鏈聯盟鏈就很不靠譜,因爲一個單純逐利的人的假設還算靠譜,但是如果對象是公司的話,公司的利益就太複雜了,不能簡單認爲他們只追逐區塊鏈上那點價值。

1,公有鏈,以比特幣,以太坊和所有虛擬貨幣爲代表,都採用比特幣共識,共識算法基本上都採用工作證明機制,也就是挖礦那些,這種機制其他回答裏已經講得夠清楚了,就略過。工作證明一切都好,除了費電……費多少電呢?比特幣的話,差不多和一個百萬人級別的城市那麼多。此外以太坊的創始人特別喜歡權益證明,似乎很快要小範圍投入使用(100個區塊裏一個用權益證明)。但是目前爲止,大家對這東西的可靠性還持觀望態度。

2,私有鏈和聯盟鏈。以IBM的hyperledger-fabric,以及一大堆其他的類似於tendermint,甚至R3 corda和ripple爲代表,都用BFT共識。其實這方面的應用已經很多了,問題是,1,目前基本上所有應用給人的感覺都還是爲了做區塊鏈而區塊鏈,真的覺得這東西好到不可或缺的應用還基本沒有。2,由於爲了區塊鏈而區塊鏈,其實很多場景的安全性和可靠性還值得懷疑,這點經常被被公有鏈的支持者詬病。

 

嘛,以上就是個人定義的區塊鏈了,順帶概述一下現在區塊鏈領域的發展。

之所以寫這個帖子,就是因爲發現明明是問區塊鏈的問題,所有人都在講比特幣,都在講挖礦,都在講工作證明……工作證明不能說過時,也的確是現在公有鏈唯一可靠的共識算法,但是這東西確實是業界除了比特幣死忠之外誰都不想要的東西好嗎……

編輯於 2017-05-15

​贊同 3.4K​​198 條評論

​分享

​收藏​感謝收起

路過銀河

路過銀河

 

用戶標識

財務財報 話題的優秀回答者

150 人贊同了該回答

先說結論,A股目前沒有真正的區塊鏈。迅雷勉強算是在玩區塊鏈,但在美股。360剛剛宣佈進軍區塊鏈,它是有可能玩起來的。另外中青寶、深科技等公司做礦機的,勉強算區塊鏈的範疇之內。恆生電子則有可能會做出第一批基於區塊鏈的金融軟件。

那麼,什麼是區塊鏈?

區塊鏈的定義比較簡單,就是分佈式數據存儲、點對點傳輸、共識機制、加密算法等技術的應用。最典型的是2009年發明的比特幣。

簡單講,與普通技術的區別,就是普通的技術會把一個文件存放在一臺電腦上,高級點的技術會放在服務器上,而區塊鏈會把一個文件存儲在所有終端電腦上,每臺電腦上都有這個文件,還是加密存儲的。

這段話是區塊鏈技術的核心,可以模擬一個場景:

我們現在網購的時候,要先把100塊錢打給支付寶(或者微信或者網銀),我的支付寶賬戶減掉了100塊錢,然後支付寶再把錢轉給賣家,賣家的支付寶賬戶增加了100塊錢;基於區塊鏈技術的支付是什麼樣呢?賬本在每個人的電腦上,我聲明把100塊錢給賣家了,而且這個聲明是所有用戶都接收到的,這個支付操作不需要支付寶(微信、網銀)參與。賣家擔心我不承認怎麼辦?不用擔心,因爲網絡裏有這個聲明,所有用戶都知道我給了他100塊錢,這樣所有人的電子賬本上都給我減去了這100塊錢,給賣家加了100塊錢。

去中心化、加密化是區塊鏈的重要標誌,因此區塊鏈技術可以從技術上保證絕對安全。

由於去中心化,沒有任何機構和個人控制,所以比特幣在洗錢方面應用廣泛。同時,由於比特幣的興盛(早期幾千個比特幣可以換一個比薩,現在一個比特幣接近2萬美金,我是在2000人民幣的時候開始研究比特幣的),也出現了基於相同技術的山寨幣,比如萊特幣、以太幣等等。

國內第一家應用區塊鏈技術的知名公司是迅雷,由於迅雷做下載和影視,因此需要極大的服務器空間和帶寬,後來迅雷通過區塊鏈技術,搞了“迅雷賺錢寶”(現在新款叫玩客雲,給客戶兌現玩客幣),將其中相當一部分成本轉移到了使用“玩客雲”的用戶設備上,這種設備用客戶的網絡、電費和硬盤,24小時在線幫迅雷存儲信息,只需要付給客戶一點點費用,這樣大大節約了服務器和帶寬的投資。其實這纔是真正的區塊鏈應用。

 

通過區塊鏈的技術定義以及實際應用案例不難發現,這個技術本身沒有什麼太大意義,而且是2008年起就存在的老技術,可以做任何事情。有用來洗錢的,有用來節約帶寬的,美股還有家用區塊鏈賣水果的,一夜漲了50%。

所以這波熱炒更大意義上是純粹的概念炒作,後續還會有更多熱衷炒作的公司跟進。只要我樂意,甚至可以用區塊鏈技術生產衛生巾。

區塊鏈本身是一種數據存儲技術,與它的前輩們一樣,不是什麼非常特別的技術。我沒聽說當年關係型數據庫出來的時候對市場造成多大的震動,爲什麼區塊鏈技術就如此受追捧了?美股市場的炒作邏輯其實是基於比特幣期貨的上線運行,A股的炒作邏輯,就有點讓我迷茫了。

當然,要牢記一句話,市場不會錯。我們沒必要去分析市場對區塊鏈的熱捧背後的邏輯是對還是錯,但是要看清楚所有從事區塊鏈板行業的真實情況,它是真的有這樣的技術儲備和行業應用場景,還是完全炒作個噱頭。

一、區塊鏈的應用方向

由於分析師們對於區塊鏈技術大多也一知半解,導致目前各機構、股票軟件對區塊鏈板塊的成分股定義不同。以wind爲例,我們挨個看看這些所謂區塊鏈業務都是具體做了些啥:

 

經過初期的爆炒後,區塊鏈概念也開始分了方向。區塊鏈的應用包括以下幾個方面:

1、礦機生產商。

這是比特幣暴漲最大的受益者之一了,比特幣的產生又叫做挖礦(一種專業算法),是需要專業的挖礦工具(定製的專門用來生產比特幣的電腦),因此礦機生產商的利益和比特幣的價格息息相關。

2016年8月,魯億通嘗試收購一家叫做嘉楠耘智的公司,最終未能如願。

2017年嘉楠耘智申請在新三板掛牌,嘉楠耘智的唯一業務就是生產礦機,它的礦機品牌是阿瓦隆,是世界第二大礦機品牌。

有一家港股上市公司也在做礦機,叫寶德科技,它的礦機雖然不如嘉楠耘智銷量大,但也漸漸開始打開市場。

寶德科技是A股上市公司中青寶的大股東,因此作爲第一類區塊鏈受益公司,中青寶沒有出現在wind的區塊鏈概念股裏我很詫異。

世紀雲芯也是一款比較著名的礦機,而深科技是世紀雲芯的代工商,深科技2016年營收150.6億元,其中代工收入高達78億元,因此深科技是妥妥的A股的礦機龍頭。

除了直接做礦機的企業,華天科技也從事礦機的芯片封裝業務。這都是A股直接和礦機產業相關聯的企業。

A股中造礦機的企業不多,但碰瓷礦機概念的卻不少,比如壹橋股份,這家公司並不生產比特幣礦機,而是生產“競鬥雲礦機”,這是什麼鬼?其實是其移動遊戲子公司開發的一種模仿迅雷雲的平臺+設備。神州泰嶽是生產貓礦機的,卓翼科技是和迅雷合作生產迅雷賺錢寶、玩客雲的。

由於比特幣價格起伏不定,導致礦機的價格波動幅度也比較大,時不時還會趕上拋售,由於礦機的主要成本就是顯卡(所以美股顯卡商的股價都上天了),因此顯卡商的價格對礦機影響也比較大(具體行情閒魚二手看顯卡價格即可)。

2、軟件商。

區塊鏈技術本質上是一種數據庫技術,軟件商從事區塊鏈技術非常簡單,幾乎瞬間就可以立項開發出結果。不過區塊鏈技術的應用場景其實不是太多,所以目前軟件商從事這方面轉型的並不多,也沒有太大必要。同時,由於區塊鏈技術主要特點是去中心化和安全,缺點也很明顯--就是慢,所以在真正的大型商業化應用中,除了比特幣及各種山寨幣的應用外,並不常見。

恆生電子的實控人是馬雲,作爲阿里系的軟件商,把螞蟻系列的金融服務改造成區塊鏈技術是完全必要和可行的,早在2016年,恆生電子就發佈了《恆生電子區塊鏈技術白皮書》。恆生電子早就積累了相關的技術儲備甚至很可能已經有了初步成型的系統,所以這纔是真正的區塊鏈概念股。

3、使用區塊鏈作爲底層技術的應用公司。

這種公司可能是生產衛生巾的,可能是賣水果的,但是它的應用系統的底層技術採用了區塊鏈。

比如易見股份,它的業務系統的數據庫是區塊鏈技術大神IBM給做的,確確實實是基於區塊鏈技術(雖然就是TMD一個分佈式存儲的數據庫系統)。

4、碰瓷黨。

不多說了,每個新型概念都會有碰瓷的。無論是太陽能還是機器人還是P2P... ...A股這種例子數不勝數。

比如御銀股份,其實是個生產ATM機的,你說它能用區塊鏈幹什麼?生產比特幣提款機嘛?中國是禁止人民幣比特幣交易的,它要這麼幹可以退市關門了。之前有個新聞推動了御銀股份的股價上漲:我國央行1月份表示,將爭取早日推出央行發行的數字貨幣,區塊鏈即爲重要支撐技術。但是實際上,數字貨幣和區塊鏈技術不完全是一回事,區塊鏈的核心技術是去中心化,央行的數字貨幣雖然號稱基於區塊鏈技術,但是很顯然是要中心化。所以,這是個典型的碰瓷黨。

 

二、區塊鏈的發展前景

目前區塊鏈概念已經爆發,實際應用場景卻不算多,國內真正用來進行核心業務開展的,也就只有迅雷一家。

1、中心化的去中心化

比較搞笑的是,區塊鏈的核心技術是去中心化,但在實際應用中,作爲區塊鏈的最大應用--比特幣,竟然97%的比特幣集中在4%的玩家手裏。如此高的集中度,連傳統貨幣都自嘆弗如。

技術上的去中心化最終結果卻導致了實際上的高度中心化,這樣的場景,也不難理解爲什麼巴菲特對比特幣表示不屑。更有研究學者表示,這是一個典型的龐氏騙局。

比特幣定位爲流通貨幣,確實是起到了一定作用的。比如,洗錢,又比如,跨國黑市交易... ...中國限制個人外匯交易量後,許多地下資金通過比特幣流出;朝鮮軍火交易不少也是經過比特幣... ...絕對安全的貨幣帶來的竟然是不安全的交易場景。除此以外,比特幣成爲了被爆炒的“收藏品”。

中國爲什麼禁止比特幣交易,就不難理解了,那麼中國爲什麼不禁止挖礦呢?

壯觀的礦場

原因也很有趣,70%的比特幣是中國的礦場挖出來的。由於耗電量巨大,礦場通常位於電力非常便宜的地方,比如內蒙的風電場附近、四川的水電站附近,甚至有的礦場自建水電站。而這些地方,往往是“棄電”區域,由於電力發展不均衡,許多風電、水電不能很好的和國家電網同步,被迫棄電。而礦場則最大限度的利用了這些棄電,從而產生高額的效益,再源源不斷的輸出比特幣,兌換成外匯。

2、不安全的安全性

從技術上看,區塊鏈的加密技術是非常強悍的。但是安全的技術一定帶來安全的產品嗎?以比特幣爲例,由於它的去中心化,中國的央行是不承認它的,你無法拿着它去銀行兌換出一分錢,你只能從承認它的用戶羣體裏兌現。

這就是個有趣的遊戲了,如果這個用戶羣體哪天不承認了呢?會不會有這個可能呢?

除了比特幣,全球各地雨後春筍般的冒出了幾百種山寨幣,都紛紛打着區塊鏈技術的旗號,甚至中國也有山寨幣發行(中國禁止民間鑄幣權,因此100%是非法的),每次比特幣打噴嚏的時候,一大羣山寨幣都會崩盤,中國的山寨幣被公安部門查封。

由於去中心化的貨幣不被央行承認,這種貨幣的安全性其實是水中月,一紙行政批文,就可以把其變成一文不值的數字。

當然,國際上許多國家開始漸漸部分承認比特幣的貨幣屬性,比如歐盟承認這種貨幣,比如美國開始進行比特幣期貨交易。但是,一旦世界局勢發生變化,當比特幣的貨幣屬性被大規模非法使用以後(如恐怖組織買槍),很顯然是很容易受到各央行聯手抵制的。

3、技術對產業的促進

與傳統數據庫技術相比,區塊鏈最大的優勢是去中心化加密存儲,但是其效率並不算高。因此大規模的應用場景分兩大類,一類就是迅雷這種高度消耗帶寬通過區塊鏈降低成本的;另一類就是對於信息安全要求極高但對速度要求不高的金融技術領域,比如恆生電子在研究的範疇。

從技術方面看,國際區塊鏈的技術老大是在分佈式計算領域深耕數十年的IBM,而國內區塊鏈最終的統治者依然還會是BAT,它們早就實現了區塊鏈的技術儲備,一旦應用場景成熟,推出區塊鏈的產品幾乎是分分鐘的事。

 

 

對於上市公司財報的分析,歡迎通過我的公衆號進行諮詢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章