別誤會了,區塊鏈不等於比特幣!解說什麼是競爭式區塊鏈、分配式區塊鏈

別誤會了,區塊鏈不等於比特幣!解說什麼是競爭式區塊鏈、分配式區塊鏈

比特幣最近又漲到了新高,你也可以聽到各種虛擬貨幣打算ICO。也因為比特幣的關係,「區塊鏈」這個名詞常常伴隨著比特幣一起出現,區塊鏈似乎和比特幣畫上了等號。但是區塊鏈是一種分散式的儲存技術,比特幣是在區塊鏈的技術,再加上了區塊鏈的通訊協定和加密技術,才成為現在炙手可熱的虛擬貨幣。

比特幣最近的價值又創下新高,許多人也把區塊鏈就視為比特幣,但比特幣只是區塊鏈的一種應用而已。(圖片來源)

話說從頭區塊鏈

什麼是區塊鏈?簡單的說區塊鏈是一種分散式的資料庫系統,它是為了要解決目前這種中央式儲存帶來的問題。雖然聽起來區塊鏈是很新的東西,但事實上,區塊鏈的技術早在2001年,麻省理工學院的論文就已經發表出來了。 

我們現在大部分的資料儲存和交換,都是由中央式伺服器來負責,各種設備連到這台伺服器存取、交換資料。這樣的運作方式在設備少、資料量小的情況下也許問題不大。但是在物聯網時代,各種設備都可以上網傳輸資料時,顯然使用這種「中央伺服器」的資料傳輸和管理方式,會有很多的問題。 

例如大家在談論的智慧城市,也許透過路燈上的感應器來監控溫度、濕度甚至是空氣品質…的資料。那麼,整個城市成千上萬的路燈,如果每10秒就會傳送一次資料,那麼數量龐大又密集的這些資料,要如何處理和處存呢?只要想想看每次有熱門的商品和票券要開賣時,電商的購物平台承受不住瞬間湧入的流量,當場崩潰一樣。因此,未來萬物皆相連的時代,如果還是這種中央化的伺服器,一定不可能應付未來這種巨量的資訊傳輸。 

而MIT早就預料到未來將會出現這樣的問題,因此早在2001年就發表了區塊鏈的技術。區塊鏈基本上就是一種分散式資料庫的技術。把原本儲存在單一伺服器中的資料,透過區塊鏈的技術,分散在世界各地的儲存空間裡。哪一台機器有多餘的空間可以存放資料,這時資料就會被丟到那一台設備去儲存,而不必全部擠在同一台伺服器前等待回應。 

早期微軟的網路芳鄰就是使用MIT的演算法,網路芳鄰可以允許把資料夾開給100個人,這100個人都可以對這個資料夾的檔案做讀寫,所以使用區塊鏈去做紀錄,最後再把這個區塊合併在一起,這和現在的區塊鏈的結構是一模一樣的。 

比特幣

而2008年出現的比特幣,則是區塊鏈的其中一種應用。 

其實比特幣,並不單單只是加密算法而已,它一共包括了三樣東西:一是區塊鏈的底層技術、二是區塊鏈的通訊協定、三是加密技術。把這三樣東西加起來,才是「比特幣」的應用。 

關於比特幣的新聞我們都看了很多,即然要成為交易的「貨幣」,比特幣首先要解決的就是「可信任」的這個問題。紙鈔我們可以拿去驗鈔機驗,可以拿去銀行檢定真偽;但比特幣只是一串的數值代碼,如果被人修改了呢?如果交易雙方都不認帳呢? 

於是比特幣用了「挖礦」這個方式來解決交易信任的問題,那就是請網路上這些電腦來幫忙做「公證」。 

舉個例子來説,今天在辦公室裡有個人要把他的二手iPhone X賣給我,講好了賣台幣500元,於是我把500元當場付給他,但對方今天手機沒帶來,說明天再拿來。萬一明天他沒拿來,然後說:「我從來沒說過要賣啊!也沒拿你的500元。」那怎麼辦? 

為了避晚這種事情發生,所以我請30位辦公室裡的同事幫我做見證:「你們都有聽見囉,他說那支iPhone X要用500元賣給我,而且我錢給他了。」大家都說:「對啊!對啊!我們都看到了。」萬一對方不完成交易,你上法院去告他時,這30個人就是你的人證。 

而比特幣的機制也是如此,當一筆交易需求產生時,全世界網路上安裝相關程式的電腦來幫我們「公證」(透過各種密碼學上的複雜演算法),大家都承認這筆資料是正確無誤之後,這些公證後的紀錄,就會被切成很多塊,放入區塊中,再儲存起來。 

而當下一筆交易要產生時,前一次交易的檔頭等資訊,又會被加入下一筆交易中,成為計算的一部份內容。也因為這樣的設計,一個區塊連著一個區塊,成為一條長長鏈,而在這條鏈中,也紀錄了從創始區塊以來的所有交易紀錄。因此可以查詢到所有的資料。

如果你現在才要加入比特幣的行列,光是下載相關的軟體資料,就達到70、80GB左右的容量。這包含了比特幣從第一筆到現在為止所有的交易紀錄。 

競爭式區塊鏈

而區塊的產生方式,主要有「競爭式」和「分配式」兩種。比特幣的區塊鏈產生的「挖礦」,是大家最熟悉的「競爭式」產生,而且目前使用挖礦來產生區塊的,也只有比特幣,其他都不是。

以比特幣來說,大概每15分鐘產生一個區塊,但這15分鐘裡如果有交易產生了,這些未經過公證的資料會被丟到「交易確認池」裡先等待,因為要等公證的人進來看。等了10分鐘左右,有100個人進來了,這時產生一個區塊讓這100個人去搶,看誰的電腦運算的最快,誰最可以拿走這個區塊,並且得到交易費。而其他沒搶到區塊的99個人,就負責在旁邊幫做公證,證明這筆交易是正確無誤的。這種區塊鏈產生的方式,叫做Proof of Word(POW:工作量證明)。

之後,這筆經過公證後的記錄,就會被切成很多塊,存在不同的位置,你必須把這些切成很多份的資料組合起來,才是一份完整的資料(當然這些資料會有相對應的備份機制,確保某些電腦損壞時,這些資料仍然可以被正確的還原)。

之後,當第二個區塊鏈產生時,就會加入前一個區塊交易訊息的hash值,使得每一個區塊都會和前一個連接在一起,形成一條長鏈。如果你不知道前一個區塊的相關數據,就沒辦法生成之後的區塊,因此每個區塊會按照時間順序接連的串在一起。也因為這種「區塊」加「鏈」的結構,讓這個資料庫從創始區塊開始之後,所有變動歷史資料都被完整的保留了下來。

而這樣的設計也形成一種幾乎無法篡改、也沒法偽造的資料庫。以目前區塊鏈大約每15分鐘產生一個區塊的時間點來説,駭客必須要在15分鐘之內,駭掉世界上參與這次公證的超過50%的電腦才有可能修改這個資料庫,這幾乎是沒有辦法辦到的事情。

但這種競爭式的區塊產生方式,一來交易很不即時,必須要等10~15分鐘正式的結果才會被確認;二來競爭式的區塊方式,考驗著大家的電腦運算能力,愈新的電腦,運算能力愈強,為了讓大家有公平競爭的機會,於是競爭式的區塊產生方式有一個專有名詞叫「Difficulty」,在設計這種區塊鏈系統時,必須像打電動一樣加入「困難度」不同的設計,來讓運算能力不盡相同的電腦在挖礦時,有個較公平的機制。

簡單説,你能得到多少的貨幣,取決於你對於這次交易的貢獻,你的電腦計算能力愈強,你就能拿到愈多的貨幣分配。所以才會有許多專門的「挖礦機」出現。如果你的電腦不夠強,基本上挖不到什麼礦。

一般使用者的電腦,沒法和專用的挖礦機競爭。

分配式區塊鏈

但目前競爭式的區塊鏈最大的問題主要是,1、只有運算能力夠強的電腦可以搶到區塊,2、耗費了大量的能源在計算這些資料,3、共識機制的時間太長。

不同於競爭式的挖礦,另一種區塊鏈產生的方式是用「分配」的。今天進來一個人,我就分配一個區塊(或是兩個區塊)給他,而不需要像POW一樣大家搶,這種方式叫做Proof of stake(POS:權益證明)。POS是根據你持有的貨幣數量和時間來進行分配,像是發股息一樣,因為你持有愈久愈多,愈容易分配到貨幣,而和電腦性能沒有關係。

POS雖然改善了POW的許多缺失,但相對於發展較為成熟的POW來說,發展不到兩年的POS還在不斷的演化當中。甚至也有混合式的機制產生,把POW和POS結合起來的方式。

智能合約

區塊鏈裡還有一個很重要的技術叫「智能合約」(Smart Contrct)。看到「合約」這兩個字,有些人也許會誤會智能合約好像和法務有關之類的。但其實「智能合約」更像是「通訊協定」的概念,是可以自己定義的。例如你去速食店買兒童餐會送玩具,這是一開始就約定好的交易條件,所以當「我買了兒童餐」後,你就要要「給我玩具」。

因此智能合約的內容,是各企業可以在創造自己的區塊鏈時,根據自己的行業和情境去設計和定義,當滿足某些條件時,就自動執行某些程式或完成某些交易,並用區塊鏈加以公證和儲存。 

 

Jollen 熟悉 IoT 雲端、區塊鏈與 Android/Linux 軟硬整合技術。於 2016 年創辦 Flowchain.co被國外媒體列為十大區塊鏈新創公司名單。 

什麼是ICO?

ICO是「Initial Coin Offering」的縮寫,指的是「首次代幣發行」,想要理解ICO,大家可以拿熟悉的IPO來對比。IPO是「首次公開募股」,是公司第一次把股份賣給一般的大眾。IPO交易的東西是「股票」,而ICO交易的東西則是「虛擬代幣」,自己做代幣,然後放到網路上去賣。這是一種集資的方式,例如我開公司,想募資1000萬,於是我做了1000萬個代幣放到網路上去賣,一個賣1元。這基本上就是ICO。 

正因為ICO是集資的一種方式,但過去ICO有太多的詐騙,因此在許多國家ICO都是不合法的只有少數國家把ICO列入管理,可以合法募資。今年7月,美國證券交易委員會把ICO Token列入管理,這意味著在美國的ICO募資是由政府監督管理的,想要在美國ICO,他需要提交的資料各審核的門檻等同於等同IPO,需要有會計師的背書,也要有大型投資機構的介入,這對於投資人來說會比較有保障。

至於合法ICO的代幣能不能買呢?那就和上市的股票能不能買的意思是一樣的,投資者仍然要看這家公司的營運狀況以及各種條件來判斷這是不是一間值得投資的公司。

即時交易?

但剛才說了。利用挖礦產生共識的方法,目前有時間上的延遲。對於交易來説,至少需要等待10分鐘以上的才能完成。因此目前新的區塊鏈都在解決「如何達到近乎即時」的交易的能力。因為在未來的許多交易環境中,可能無法容忍這種10分鐘、15分鐘的延遲,就算不能真的做到即時,但如果能把這時間縮短至十分之一秒或是千分之一秒就可以完成,那麼就能有更大的應用空間。

Jollen說:「新的區塊鏈都在解決,『如何達到近乎即時』的交易能力。」 

區塊鏈 3.0 

區塊鏈1.0通常指的就是像比特幣這樣的加密貨幣,區塊鏈2.0則是各種金融科技(FinTech)的應用。而到了區塊鏈3.0,其實就是客制化自己的P2P區塊鏈資料化結構,客製自己的區塊產生方式,客製自己交易資訊的內容,以及去打造自己的區塊鏈。 

像是如果要把區塊鏈應用在IOT物聯網,就必須要打造全新的區塊鏈系統,這種全新打造的區塊鏈系統,有個名字,分散式帳冊(Distributed ledger),而能不能打造自己的區塊鏈系統,是未來能不能迎接區塊鏈3.0的重要指標。 

那麼分散式帳冊和區塊鏈的關係是什麼呢?分散式帳冊就像一個平台,讓大家可以上去寫APP。就像現在各種應用程式商店一樣,不同的功能,不同的行業,不同的使用情境,所以每支APP的功能和設計都不盡相同,而這也是未來區塊鏈的情況,現在的應用程式商店裡有多少APP,未來就會有多少區塊鏈的應用。 

在10月南區Fintech的演講中,Jollen示範了利用區塊鏈來打造直播平台,並用GoPro做為直播工具。

Jollen甚至示範了用GoPro當作直播的區塊鏈平台。GoPro是體積相當小的運動攝影機,Jollen把它Hack掉來當作直播工具當然是一種技術展示,但是當使用區塊鏈的技術來架構一個直播平台時,意味著使用者未來可以不需要透過服務商的伺服器,就可以達到直播的目的。他舉例:「如果我們用區塊鏈做視訊直播,那麼後就不用透過直播平台。直播客自己可以定價,觀眾付費後,直播客程把私有區塊鏈給你,這會大幅度改變現有的各種機制。」 

這個小小的示範就可以給大家帶來很多想像和應用的空間;如果區塊鏈可以應用在直播平台上,那麼自然在其他的領域都有各種的可能性。

JRChian
作者

使用 Facebook 留言
發表回應
謹慎發言,尊重彼此。按此展開留言規則