您的位置:首頁>科技>正文

九分鐘瞭解區塊鏈

題圖: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 平臺,讓全球的攝影師能夠更好的控制圖片的版權和交易。然後股價就飆升了……

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

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

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

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

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

區塊鏈是沒有管理員的,也不需要人工審核和干涉。那人人都能寫資料,資料的可信度怎麼保證呢?數據被篡改了咋辦?別擔心,P2P 網路只是進行資訊通訊,保證資料安全的還有共識演算法和加密演算法。

共識演算法

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

分散式一致性與共識演算法(https://draveness.me/consensus)

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

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

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

為什麼會挖礦?

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

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

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

區塊鏈的未來

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

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

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

Next Article
喜欢就按个赞吧!!!
点击关闭提示