天天看點

九分鐘了解區塊鍊

題圖:by click_vision From Instagram

我在 2017 年 12 月 26 日寫過一篇「

2018 年技術趨勢預測 」,關于區塊鍊我是這麼寫的:

區塊鍊是可以改變世界的發明。區塊鍊源起比特币,但并不局限在币圈。區塊鍊技術是儲存、驗證和資料保護等問題的實際解決辦法。區塊鍊可被視為分散的、極度安全的資料庫。更專業一點來說,區塊鍊是分布式的點對點的基于密碼學的共享賬本,可以在金融服務、保險、醫療、政府等領域内被廣泛應用。2018年應該是區塊鍊技術起飛并日趨成熟的一年。

沒想到 2018 年剛開始,區塊鍊技術就像西去路上火焰山頂最高的火焰,簡直火冒好幾丈,紅得發紫。很多人會說有這麼火麼,我怎麼不知道。事實上 2017 年火爆的是比特币,區塊鍊的拉升曲線确實是一月份才發生的,看下區塊鍊的微信指數就知道了:

一個浪頭打過來,最好的辦法是迎上去了解個究竟,而不是漠視,或者幹脆當事情沒有發生。最近讀了些相關資料,有了更具體一點的了解,那就寫篇白話文吧。閱讀時間大概九分鐘。

區塊鍊到底是啥?不明真相的群衆一般都去查維基百科,上面是這麼說的:

區塊鍊(英語:blockchain 或 block chain)是用分布式資料庫識别、傳播和記載資訊的智能化對等網絡,也稱為價值網際網路。中本聰在 2008 年,于《比特币白皮書》中提出「區塊鍊」概念,并在 2009 年創立了比特币社會網絡,開發出第一個區塊,即「創世區塊」。

看完以後你是不是發現,都是中國字,怎麼就搞不懂是啥意思呢?是以區塊鍊的概念還是得解釋一下。首先需要明确的是,區塊鍊是一套協定和規範,用英文表述就是 Protocol,不是具體的代碼或者項目。了解了這套協定,你可以基于不同的語言和技術去實作它,這和我們平時定義了一套 API,然後基于不同的技術實作沒有什麼分别。

但是區塊鍊在不同領域的人眼裡,可能是不同的東西。角度不同,我們得出的結論也不一樣。金融領域的人會認為區塊鍊是個分布式的賬本,是一個分布式的去中心化的記賬系統。搞安全和密碼學的人會說區塊鍊是基于密碼學建構的對等網絡。而我們程式員了解了區塊鍊技術,會認為這不就是一個保證最終一緻性的分布式資料庫嘛。

記賬系統

對于普通人來說,記賬系統最容易了解,我們從賬本說起。比如大家一起做生意,總要有個賬本,最初這個賬本由賬房先生管理。但一個人管,總會出現對賬不平衡的情況(比如挪用),于是大家開始輪流管。這種方式也有問題,在某個人保管賬本和記賬期間,一旦發生了資料丢失或賬本損壞的情況,也會搞不清真實原因。最後大家決定用一種新的記賬方式,每個人一個自己的賬本,任何人改動了自己的賬本都要告訴其他所有人,其他人也會在自己的賬本記上一筆。隻要有人發現新的賬目不對,可以拒絕接受。最後以大多數人一緻的賬目為準。

這就是分布式的去中心化的記賬系統。但這種做法時間長了還是會有問題,有人天天記,有人偷懶不記,會産生不公平。于是大家決定每天早上擲骰子,根據點數決定誰來記當天的賬,其他人核對一下,沒問題就複制過來。并且,當天的記賬者會獲得一點點獎勵(這就是挖礦)。

去中心化的分布式資料庫

把上面的記賬系統用軟體技術實作了,就是去中心化的分布式資料庫。

什麼是中心化,早期網際網路大都采用 CS 架構,一個伺服器 N 個用戶端,Client 和 Server 之間進行通訊,系統可靠性嚴重依賴 Server,這叫中性化。

随着業務複雜度的增加,伺服器端也開始分拆,橫向和縱向擴充,讀寫分離等等,這就是我們常用的分布式架構系統,系統可靠性依賴分布式系統的熱備份和容災恢複能力。這時候伺服器雖然分布了,但依然是中性化的。大部分商業公司都采用類似的架構和模式。

去中心化是怎麼回事呢?就是資料庫不屬于任何機構和管理者。隻要伺服器端被某個機構或管理者控制,就存在當機或資料篡改的風險。區塊鍊和 P2P 的網絡通信技術最終實作了去中心化。區塊鍊的作用就是存儲資訊,可以認為是一個資料庫,而任何人都可以通過 P2P 網絡架設伺服器,接入區塊鍊網絡,成為一個節點。這下人人平等了,大家都是 Server,也就沒有了 Server,每個節點既是生産者也是消費者。

你可以向任何一個節點讀寫資料,一旦寫入就是曆史,最後所有的節點都會同步資料,保證「賬本」的一緻性。

區塊鍊是沒有管理者的,也不需要人工稽核和幹涉。那人人都能寫資料,資料的可信度怎麼保證呢?資料被篡改了咋辦?别擔心,P2P 網絡隻是進行資訊通訊,保證資料安全的還有共識算法和加密算法。

共識算法

關于共識算法、拜占庭将軍問題,大家可以參考這一篇文章,很長,但容易看懂。

分布式一緻性與共識算法(https://draveness.me/consensus)

簡單來說,共識算法就是保證少數服從多數,也就是我在記賬系統中寫過的「最後以大多數人一緻的賬目為準」。大多數人認可的事情,就是事實。這種規則聽起來挺吓人的,比如我們常常在文學作品和曆史經驗中知道,真理往往掌握在少數人手裡。但是在 P2P 的網絡裡,有無數的節點,要想大部分節點一起作惡,除非這些節點都被某個組織控制了。這種可能性雖然不是沒有,但幾率非常小。

總的來說,共識算法解決的是對某個提案(Proposal)達成一緻意見的過程。提案的含義在分布式系統中十分寬泛,包括多個事件發生的順序、某個鍵對應的值…等等,可以認為任何需要達成一緻的資訊都是一個提案。

有了共識算法和相關的加密算法,就可以保證資料的安全性和一緻性。

為什麼會挖礦?

談到比特币,大家耳熟能詳的就是挖礦和礦機這種事。那為什麼會挖礦呢?挖礦其實是一種激勵和競争機制。

在區塊鍊系統中,總有些節點被選中進行資料整理、驗證、打包,并把相關的改動廣播出去,這個工作還是挺耗資源的,是以會有獎勵機制。負責打包的節點會獲得系統的獎勵,類似積分,對于比特币系統來說,就是獎勵比特币。有了獎勵,很多節點都希望獲得這樣的獎勵,于是有些區塊鍊系統,比如比特币就會設計出一種競争機制,讓各個節點憑借自己的算力和資源去搶,能搶到這個資料打包的機會,就會獲得獎勵,也就是比特币。這個競争的過程就是挖礦。

什麼是算力呢?就是計算機每秒産生 hash 碰撞的能力。也就是說,手裡的礦機每秒能做多少次 hash 碰撞。算力越高,獲得的獎勵越多。

區塊鍊的未來

很多人覺得區塊鍊的唯一應用就是發行虛拟貨币,最近國内外市場也是烽煙四起,比如超過百年曆史的伊士曼柯達公司宣布推出基于區塊鍊技術的「柯達币」(KodakCoin)和 KodakOne 平台,讓全球的攝影師能夠更好的控制圖檔的版權和交易。然後股價就飙升了……

了解了區塊鍊的技術特點,我們就知道,區塊鍊的能力遠不止虛拟貨币領域,未來的 金融服務、物流、保險、醫療、共享經濟、智能合約領域,應該都會有區塊鍊的身影。

繁華落盡,洗盡鉛華,所有的技術都将經曆時間的洗禮。曆經爆發期、衰退期并進入成熟期的技術,才是真正能具備生命力的技術。

想詳細了解區塊鍊技術,一篇文章是遠遠不夠的,推薦一節免費直播課給感興趣的讀者。

分享者是馮貴彬:

(株)LinkJapan IoT新事業研究室技術主管

2006-2012年北京市氣象局雷達通信研究室

2012-2015年北京康康盛世資訊技術有限公司

負責BLT通信開發.現就職于日本LinkJapan Inc

主要研究方向:

IoT/big data,deeplearning,self-driving

直播課内容:

1、什麼是區塊鍊 

介紹一下區塊鍊的概念和基本技術特點等相關内容

2、區塊鍊的發展史

介紹區塊鍊所解決的問題,談一下區塊鍊的發展史

3、區塊鍊基礎

介紹運算原理、公有鍊、私有鍊、聯盟鍊、常用加密算法等機制以及分叉和礦工在鍊中的作用

4、區塊鍊的缺點

5、區塊鍊的典型應用 —— 以比特币為首的數字貨币

7、區塊鍊技術的未來發展應用

區塊鍊1.0時代

區塊鍊2.0時代

區塊鍊3.0時代

原文釋出時間為:2018年01月23日

本文作者:iOS_開發

本文來源:

CSDN

,如需轉載請聯系原作者。

繼續閱讀