許多專案號稱用區塊鏈,但我詳細看了之後,覺得他們根本就沒有必要使用區塊鏈,通常只是為了引人注意而生搬硬套區塊鏈。我覺得我有必要用一篇短文簡單明瞭地把區塊鏈應用的幾個重點講清楚,提升普通人的常識,減少被唬弄的機率。

我把區塊鏈簡單分為三層:應用層、邏輯層、實現層。這篇文章的目的是讓一般人有能力去判斷區塊鏈應用是否合理,所以我只說明邏輯層的重點,而不涉及實現層。

當一件事情的參與者,彼此互不信任,也不存在可信任的中介機構時,他們之間因為業務往來產生的資料(可以稱為交易紀錄),就不能光由其中一個參與者紀錄,而是要大家都紀錄「完整」的所有交易紀錄。區塊鏈的術語將「所有的交易紀錄」稱為「帳本」(ledger),將每個紀錄帳本的參與者稱為「節點」。

帳本就像一個真正的本子,一頁一頁的,這一頁寫滿就翻到下一頁繼續寫。每一頁都寫著頁碼,以及上一頁的「數位指紋」。區塊鏈的術語將每一頁稱為一個區塊(block)。

一個人對應到一個獨特的指紋,這個指紋可以代表這個人。同樣地,一頁帳本資料(也就是一個區塊)也對應到一個獨特的「數位指紋」,這個數位指紋代表這個區塊。數位指紋是某資料經過某種密碼學算法計算的結果。

區塊鏈帳本是一個一個的區塊所組成,每個區塊內需要紀錄區塊編號(頁碼)、前一區塊的數位指紋、一筆一筆的交易資料、以及其他資訊。這就是區塊鏈名稱的由來:由區塊形成的鏈條,每個區塊紀錄前一個區塊的數位指紋。

帳本每個人都有一份,加上密碼學的保護,你很難去竄改所有人的帳本。帳本複製到每個人的電腦存儲上,加上這一整套邏輯的程式又開放原始碼,機制公開透明。這一切都是為了「信任」:通過一個巧妙的設計,讓彼此不信任的人可以在一起完成可以信任的交易。

以上就是你目前需要知道關於區塊鏈的常識。雖然不精確、不完全。但我認為,為了讓一般人抓住核心的重點,這些都可以暫時犧牲。等你對區塊鏈的認知模型已經建立好了,再去深究細節。

對於區塊鏈的應用專案,你必須詢問最基本的三個問題:1.那些人或機構可以加入,成為我們這個應用專案的一個節點? 2.這些節點之間真的有信任問題,只能用區塊鏈解決嗎? 3.帳本內的資訊相當於對每個節點公開,隱私會是一個問題嗎?

如果人人都能加入,這就是公有鏈,這時候要考慮系統規模太大導致的效率問題,是否實現層有能力解決。如果只有特定組織的成員可以加入(例如金融機構),規模就不會太大,這是聯盟鏈。如果只有自己可控的公司可以加入(例如同屬一個控股集團的公司),就是私有鏈。

這些節點之間真的有信任問題,只能用區塊鏈解決嗎?更簡單的方式是透過一個中央伺服器,把帳本集中放在那裡,找一個可信任的機構來管理中央伺服器。這個時候,大家都必須信任中央伺服器。如果你不信任任何機構來管理中央伺服器,那麼才可能用區塊鏈。這時候問題又來了,金融相關的任何業務,在任何國家都是受到監管的。你信不信政府是一回事,但法律就是這麼規定,這些業務使用去中心化的區塊鏈是不可行的。

最後一個問題是:帳本內的資訊相當於對每個節點公開。在許多應用上,這可能會是一個問題,尤其是隱私權保護越來越受到重視的今天。

這篇文章講的內容,只是區塊鏈知識的一小部分,但卻是最重要的部分。好好體會區塊鏈的能與不能,然後去檢視市面上的這些區塊鏈應用,你就彷彿有了火眼金睛。這是絕對有必要的,因為騙子雖然什麼都搞,但搞區塊鏈的騙子特別多,你一定要小心再小心。

作者簡介


Advertisement

更多 iThome相關內容