比特幣最近又漲到了新高,你也可以聽到各種虛擬貨幣打算ICO。也因為比特幣的關系,“區塊鏈”這個名詞常常伴隨著比特幣一起出現,區塊鏈似乎和比特幣畫上了等號。但是區塊鏈是一種分布式的儲存技術,比特幣是在區塊鏈的技術,再加上了區塊鏈的通訊協議和加密技術,才成為現在炙手可熱的虛擬貨幣。
比特幣最近的價值又創下新高,許多人也把區塊鏈就視為比特幣,但比特幣只是區塊鏈的一種應用而已。
話說重頭區塊鏈
什么是區塊鏈?簡單的說區塊鏈是一種分布式的數據庫系統,它是為了要解決目前這種中央式儲存帶來的問題。雖然聽起來區塊鏈是很新的東西,但事實上,區塊鏈的技術早在2001年,麻省理工學院的論文就已經發表出來了。
我們現在大部分的數據儲存和交換,都是由中央式服務器來負責,各種設備連到這臺服務器存取、交換數據。這樣的運作方式在設備少、數據量小的情況下也許問題不大。但是在物聯網時代,各種設備都可以上網傳輸資料時,顯然使用這種“中央服務器”的數據傳輸和管理方式,會有很多的問題。
例如大家在談論的智慧城市,也許透過路燈上的傳感器來監控溫度、濕度甚至是空氣質量…的數據。那么,整個城市成千上萬的路燈,如果每10秒就會傳送一次數據,那么數量龐大又密集的這些數據,要如何處理和處存呢?只要想想看每次有熱門的商品和票券要開賣時,電商的購物平臺承受不住瞬間涌入的流量,當場崩潰一樣。因此,未來萬物皆相連的時代,如果還是這種中央化的服務器,一定不可能應付未來這種巨量的信息傳輸。
而MIT早就預料到未來將會出現這樣的問題,因此早在2001年就發表了區塊鏈的技術。區塊鏈基本上就是一種分布式數據庫的技術。把原本儲存在單一服務器中的數據,透過區塊鏈的技術,分散在世界各地的儲存空間里。哪一臺機器有多余的空間可以存放數據,這時數據就會被丟到那一臺設備去儲存,而不必全部擠在同一臺服務器前等待回應。
早期微軟的網絡芳鄰就是使用MIT的算法,網絡芳鄰可以允許把文件夾開給100個人,這100個人都可以對這個文件夾的檔案做讀寫,所以使用區塊鏈去做紀錄,最后再把這個區塊合并在一起,這和現在的區塊鏈的結構是一模一樣的。
比特幣
而2008年出現的比特幣,則是區塊鏈的其中一種應用。
其實比特幣,并不單單只是加密算法而已,它一共包括了三樣東西:一是區塊鏈的底層技術、二是區塊鏈的通訊協議、三是加密技術。把這三樣東西加起來,才是比特幣的應用。
關于比特幣的新聞我們都看了很多,即然要成為交易的“貨幣”,比特幣首先要解決的就是“可信任”的這個問題。紙鈔我們可以拿去驗鈔機驗,可以拿去銀行檢定真偽;但比特幣只是一串的數值代碼,如果被人修改了呢?如果交易雙方都不認賬呢?
于是比特幣用了“挖礦”這個方式來解決交易信任的問題,那就是請網絡上這些計算機來幫忙做“公證”。
舉個例子來說,今天在辦公室里有個人要把他的二手iPhone X賣給我,講好了賣人民幣100元,于是我把100元當場付給他,但對方今天手機沒帶來,說明天再拿來。萬一明天他沒拿來,然后說:“我從來沒說過要賣啊!也沒拿你的100元。”那怎么辦?
為了避晚這種事情發生,所以我請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)。看到合約這兩個字,有些人也許會誤會智能合約好像和法務有關之類的。但其實智能合約更像是通訊協議的概念,是可以自己定義的。例如你去快餐店買兒童餐會送玩具,這是一開始就約定好的交易條件,所以當“我買了兒童餐”后,你就要要“給我玩具”。
因此智能合約的內容,是各企業可以在創造自己的區塊鏈時,根據自己的行業和情境去設計和定義,當滿足某些條件時,就自動執行某些程序或完成某些交易,并用區塊鏈加以公證和儲存。
什么是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,未來就會有多少區塊鏈的應用。
Jollen甚至示范了用GoPro當作直播的區塊鏈平臺。GoPro是體積相當小的運動攝影機,Jollen把它Hack掉來當作直播工具當然是一種技術展示,但是當使用區塊鏈的技術來架構一個直播平臺時,意味著使用者未來可以不需要透過服務商的服務器,就可以達到直播的目的。他舉例:“如果我們用區塊鏈做視訊直播,那么后就不用透過直播平臺。直播客自己可以定價,觀眾付費后,直播客把私有區塊鏈給你,這會大幅度改變現有的各種機制。”
這個小小的示范就可以給大家帶來很多想象和應用的空間;如果區塊鏈可以應用在直播平臺上,那么自然在其他的領域都有各種的可能性。
評論
查看更多