一文看懂區塊鏈的那些事,從比特幣到各種去中心化應用

後浪科普 發佈 2021-08-10T00:17:49.339010+00:00

近年來,常聽到區塊鏈、比特幣、以太坊這些好像很潮卻又摸不著頭緒的詞,我基本上是每次看到這些東西都會點開看看,每次點開都感覺看懂了,但是下次再看到還是一頭包,相信大家都知道這背後隱藏著能夠顛覆傳統世界運行模式的強大基因,這裡必然有無數的機會,所以我也想嘗試著用根據自己的理解來解釋一

近年來,常聽到區塊鏈、比特幣、以太坊這些好像很潮卻又摸不著頭緒的詞,我基本上是每次看到這些東西都會點開看看,每次點開都感覺看懂了,但是下次再看到還是一頭包,相信大家都知道這背後隱藏著能夠顛覆傳統世界運行模式的強大基因,這裡必然有無數的機會,所以我也想嘗試著用根據自己的理解來解釋一下這些東西,希望在這些機會出現的時候大家都能把握住。

區塊鏈

區塊鏈顧名思義就是由許多數字資料區塊串連起來的一條鏈,我們可以把它視為一種數字資料的儲存方式,不同於過往大家熟悉的資料庫系統,這條鏈的神奇之處在於它以嚴謹的數學與密碼學算法,實現了保證歷史內容無法任意新增、竄改或刪除的特性,同時搭配P2P的運作模式達成去中心化、公開透明、永久保存的優勢。

其實哪怕對於一個略懂電腦的人,新增、竄改或刪除傳統資料庫系統內的歷史資料都是很容易做到的,但沒有人能新增、竄改或刪除區塊鏈上的任何一筆歷史紀錄,除非能控制區塊鏈網絡一半以上的節點。另外,只要發生意外或者公司組織倒閉,傳統資料庫系統是有可能遭到摧毀而從歷史上徹底消失,但沒有人能摧毀一條公有區塊鏈,除非能摧毀散布全世界的區塊鏈節點。

哈希函數

區塊鏈的核心巧思在於鏈的設計,而鏈的核心則在於哈希函數,簡單來說哈希函數就是一個能輸入任意數字資料進而輸出固定長度位元資料的函式,把同一筆資料給哈希函數所得到的輸出一定會一樣,而只要輸入不同哪怕是只有一個最小單位位元的不同所得到的輸出就會完全不同,而這種轉換是不可逆的,也就是我們無法用輸出來反推輸入。

舉SHA256這個哈希函數為例,當輸入houlang的時候我們會得到一組256位元的數字以16進位來表示

在這個基礎上即使我們稍微小小新增、刪除或改變輸入資料所得到的輸出也都是天差地別,而當我們再把輸入改回houlang則又能得到完全一樣的這串文字,就像全世界每個人都有獨一無二的指紋一樣,我們也可以把哈希值視為資料的指紋,而前面說到區塊鏈不可竄改的特性就奠基於哈希函數的特性,藉由比對哈希值我們很容易就能看出資料是否遭到竄改,有了這樣的認知再來看區塊鏈的設計就清楚多了。

一個簡化版的區塊鏈就是把每一個區塊的哈希值塞進下一個區塊裡面跟著下一個區塊一起哈希再塞進下一個區塊裡面以此類推,只要其中一個區塊被更動後續的所有區塊都會跟著被影響,這樣假使有人試圖竄改其中某部分資料而產生出不同的鏈,我們很容易就能知道哪個部分是被竄改過的。那麼當我們看到兩個不同版本的區塊鏈要怎麼區分正版和盜版呢?

P2P

這時,我們就要有一個機制來維持一個正版的鏈,為了維持這個正版的鏈,區塊鏈在設計上引入了P2P,也就是去中心化的想法。

P2P是一個散布全世界各地、任何人都能任意加入的應用層網絡,我們只要在所有P2P網絡節點上都存放完整的區塊鏈資料就能維持一個大家都有共識的正版的鏈,一旦發現不一樣的鏈出現就用投票的方式來PK看誰是正版,如此一來除非有人能掌握全世界一半以上的P2P網絡節點,否則在P2P網絡去中心化的世界中人力量大要撼動正版區塊鏈的地位幾乎是不可能的,也因為P2P網絡有著像蟑螂一樣怎麼打都打不死的特性,要消滅這整個網絡更是難上加難,也因此在P2P網絡不死的前提之下鏈上的資料得以永久保存,這時還有最後一個小問題。

P2P網絡上的各個節點有很大機會在同一時間新增不同資料而導致無法決定誰說了算的情形,為了解決這個發言權的問題不同版本的區塊鏈設計出不同的共識機制來決定誰說了算,例如比特幣區塊鏈採用的很浪費電的工作量證明(Proof-of-Work),或者以太坊區塊鏈2.0採用的持有量證明(Proof-of-Stake),種種機制的背後都只想達成一個很簡單的重要目標,就是儘可能讓所有p2p網絡節點上的人們都有平等的參與機會,以此來避免有心人士控制整條鏈的發展。

總而言之區塊鏈就是哈希函數與P2P兩大基礎技術的強強聯手,先將許多的資料區塊以哈希函數串連成鏈以達到不可竄改的功效,再套上P2P技術來運作而擁有去中心化、公開透明、並且永久本存的特性,這些優勢的組合前所未見大大打開了人們的想像空間,也陸續產生出許多基於區塊鏈的延伸應用,而其中第一個成功的區塊鏈應用就是比特幣。

比特幣

比特幣(Bitcoin),或簡稱BTC,2008年10月31日一位自稱是中本聰的人發表了一篇比特幣系統設計的論文,2009年比特幣區塊鏈系統正式上線運作,區塊鏈的概念才逐漸受到重視,就像當年的蘋果挑戰IBM,只要有實力,要蹭就要蹭最大的咖,而比特幣也就是區塊鏈所選擇的第一個戰場蹭的就是百年巨獸金融領域,果然一戰成名獲得極大關注迴響。

簡單來說比特幣就是使用區塊鏈來實現一個全球帳本,概念上就只是把全世界所有的轉帳交易信息全紀錄在區塊鏈當中,也就是說,在這個比特幣區塊鏈當中我們可以看到從創鏈以來所有全世界的資金轉移紀錄,而其中為了確保支付動作是由帳戶本人所執行的,就必須有某種機制來提供驗證,在傳統金融體系中這類驗證不外乎要帳戶本人提供證件、簽名、蓋章或者當場快問快答一些私密個資等等來重重把關,而在數字世界這件事則可以很輕易地用非對稱式加密來解決。

非對稱式加密

非對稱式加密是由一組成對的兩個密碼所組成,我們可以用其中一個密碼來對資料加密,然後以另一個密碼來解密,以此驗證資料的確是由相配對的密碼所加密的,我們通常會把其中一個密碼私自保存稱之為私鑰,而另一個密碼則對外公開稱之為公鑰,利用這樣的特性對於每一筆支付記錄只要帳戶本人把那一筆資料用私鑰加密過後,所有人都可以用他的公鑰來做驗證,確認是帳戶本人所執行的動作,這就很像傳統金融體系的簽名蓋章,也因此被稱為數字簽章。由於所有支付信息都已經被記錄在鏈上,一個比特幣帳戶說穿了其實也就只需要包含這一組公鑰和私鑰就可以了。

加密貨幣錢包&交易

而我們常說的加密貨幣錢包說穿了也就只是一個管理許多帳戶公鑰和私鑰的地方而已,當我們用加密貨幣錢包支付時就是跟支付對象要帳戶地址然後把交易信息用私鑰加密過後送上區塊鏈,一旦這筆交易寫入區塊鏈交易就算完成,不可竄改,公開透明,永久保存,有了存在區塊鏈上的全球帳本以及公鑰私鑰組成的帳戶,要和現實世界接軌的最後一里路就是和傳統金融體系互通有無,看到這樣的需求加密貨幣交易所相應而生。

有的交易所本身握有龐大數額的加密貨幣池,讓使用者直接以法幣進行買賣來賺取價差,有的交易所則提供類似股票撮合的機制,讓人以任何價格掛買賣單賺取固定%數的成交手續費,總之有了交易所加密貨幣和法幣之間就有了簡單的互通橋樑,某種程度等同宣告只要買賣雙方願意,加密貨幣要拿到現實生活中用來支付是完全可行的。

儲存信息的擴充

就在比特幣區塊鏈持續蓬勃發展的同時,人們也逐漸意識到區塊鏈的特性不只適合拿來做全球帳本,還有相當多的想像空間以及可能性,無奈的是原有的比特幣區塊鏈設計沒有太多彈性來進行擴充,大大限制了區塊鏈的應用發展,直到有一天一位叫做Vitalik的年輕人實在看不下去了。

前面提到區塊鏈是由很多數字資料區塊串起來的一條鏈,而除了把它用來儲存帳本資料,理論上區塊鏈也應該能存放任何形式的數字資料,也包含可執行的程序碼,同理以太坊要的就是把舊有的功能型區塊鏈提升一個層次,除了支持存放任何形式的數字資料,也能讓人放上可執行的程序碼而進入到智能型區塊鏈的時代,這個想法於2013年被提出,2015年以太坊區塊鏈正式上線,成為當今區塊鏈應用的主流。

以太坊

以太坊上可執行的程序碼同樣有著公開透明與不可竄改的特性,等同有著某種程度的公信力而被稱為智能合約,雖然他其實沒有實質上的法律效力,這樣的程序碼再配合好看的介面包裝一下就被稱為去中心化app,如果是金融相關應用我們會稱之為去中心化金融,總之再普通的東西只要放上區塊鏈在名字前面套上去中心化就開始變得很潮、很區塊鏈。

為了支持鏈上的所有運作,在以太坊上免不了也要有自己的一套數字貨幣以太幣,為了防止資源濫用,每當我們要執行任何一筆交易或者智能合約時都要支付一筆稱為gas的交易費用,這筆費用就是使用以太幣來支付的,而gas費用的多寡將影響到該筆交易被處理的優先程度,也就是說尖峰時段通常需要支付較高的交易費才能完成交易,甚至可以相差幾十美金的。

有了足夠的彈性與智能合約的加持,以太坊上果然冒出許多有趣的去中心化金融應用,像是借貸、換匯甚至在以太坊上發行加密貨幣ICO也是小菜一碟,而其他各行各業不同領域的去中心化app像是遊戲、產品供應鏈追蹤溯源、數字版權分拆法律證據保存、身分認證、物聯網等等也逐一在以太坊上被創造實現出來,可以說區塊鏈獨特的不可竄改、去中心化、公開透明、永久保存的特性透過以太坊的彈性才得以真正落實普及到每個人的現實生活當中。除了比特幣和以太坊這兩大公有區塊鏈,許多試圖解決不同問題的區塊鏈系統相繼被提出,像是專為物聯網設計的IOTA,以及試圖解決以太坊效能及交易費用問題的EOS和TRON。

區塊鏈VS傳統中心化機構

時至今日區塊鏈技術已經實際運行了十幾年,區塊鏈網絡本身在技術上還沒遇過什麼重大事件,證實了這個奠基於嚴謹數學與密碼學以及P2P網絡的設計是可行的,同時去中心化的概念打破了傳統需要中心化機構的枷鎖,使執行運作上更正確、更透明、更節省、也更有效率,以金融領域來說,去中心化金融應用的出現使得許多金融服務得以24h全自動有效率地運作,省去了龐大數量銀行員的人工費用,在供需平衡自由市場的機制下儘可能將利益直接返還給所有使用者,也由於少了人為介入,完全避免了傳統銀行被駭或者銀行員可能出現的監守自盜的風險,那麼這麼好用的東西怎麼還沒還沒被大眾廣泛接受?

為什麼遲遲無法普及

首先政府的態度很重要,去中心化意味著無法監管,面對這樣無法掌控的新科技大多數政府還是選擇先觀望或者禁止,畢竟區塊鏈也是一把雙刃劍,拿來解決傳統問題固然很好,但卻難以管理,甚至會被拿來做跨境洗錢之類違法勾當,所以大多數政府還是相當謹慎在看待這件事,另外一個問題就是幣價波動太大,就拿目前最大宗的比特幣和以太幣來說,發行以來漲跌幅都相當驚人,為了解決這個問題以太坊上陸續出現了錨定美元的穩定幣USDT、USDC、DAI等等,這也使得加密貨幣在金融體系不健全、法幣幣價波動較大的國家內反而得以快速普及。

再來就是權力和責任之間的取捨問題,前面提到區塊鏈當中一個帳戶最重要的就是私鑰,私鑰是唯一能動用帳戶資產的獨一無二的鑰匙,一旦私鑰不見就再也沒有人能動用帳戶裡面的資產了,從某方面來說這是相當安全的,幾乎保證了除了自己以外沒有人能動用帳戶內的資產,然而權力越大責任越大,在權力完全下放個人的同時,保管私鑰的重責大任也落回到每個人身上,只要人一發生意外、或者單純的忘記私鑰就再也沒有其他人能幫忙挽回帳戶內的資產了。

另一方面加密貨幣在不同的區塊鏈網絡之間是無法直接互轉的,例如比特幣就只能在比特幣網絡當中互轉,以太幣及ERC-20貨幣就只能在以太坊網絡中互轉,假使一不小心在某區塊鏈網絡上轉帳給不同區塊鏈網絡的帳戶地址,將會造成轉移的資產被凍結在不存在的帳戶地址而永遠無法再被使用的情形,為了解決類似的問題,有些錢包或者交易所又走回中心化的老路,幫使用者管理公私鑰甚至直接幫使用者集中管理資產,但這也同時暴露在傳統中心化應用的風險之中,一旦中心化系統被盜或者集中管理資產的私鑰遺失就尷尬了。而層出不窮的中心化機構出事事件則加深了大眾對區塊鏈的負面印象,區塊鏈可以說躺著也中槍。

儘管如此區塊鏈仍然勢不可擋,還是有許多組織持續進行各項落地嘗試,包含一直以來信用卡發卡公司就陸續推出綁定加密貨幣支付的信用卡,很直接地解決了當下大多數商家普遍不接受加密貨幣支付的問題,2019年6月臉書宣布Libra計劃,試圖打造一套基於全球主要法幣的加密貨幣,但很顯然要得到各國政府的認可還有一段很長的路要走,2020年10月PayPal宣布開始支援加密貨幣則算是近年來區塊鏈金融落地的另一大突破。

結語

區塊鏈想要徹底被接受,除了打破傳統框架的同時也得熬過現實社會各個層面的挑戰,但也就像過往的新科技一樣,他終究會把人類帶往更有效率的未來。

關鍵字: