文章內容

article_man_pic

揭開比特幣的面紗

Hightech   2017-05-08    A20170508001
點閱 5995
評論 43
基礎
article_pic

 

❒ 比特幣(Bitcoin)的起源

比特幣的發明人Satoshi(筆名,其真實姓名目前尚無定論)在2008年發表了一篇名為「比特幣:一種對等式電子現金系統(Bitcoin: A Peer to Peer Electronic Cash System)」的論文,提出了稱為「比特幣」的電子貨幣及其演算法,由於比特幣不適合即時大量的小額交易,而且比特幣在法規上存有疑義難以被主管機關接受,因此有人將比特幣的部分技術抽離出來尋找新的應用,並且取了新名字「區塊鏈(Block chain)」,這是區塊鏈這個名稱的由來。由於區塊鏈這個名稱是源自於比特幣,因此要了解什麼是區塊鏈,就必須先從什麼是比特幣談起。

 

假設Satoshi創造比特幣(BTC:Bitcoin)與比特幣帳本(BTC ledger)並且給自己50btc,他想要用20btc向Alice購買一本書籍,並且記錄在比特幣帳本內,如<圖一>所示,Alice第一次聽過有這種東西,她好奇的問Satoshi:這個叫什麼幣的聽起來好酷,但是我要怎麼用它來和別人買東西呢?

 


圖一 Satoshi創造比特幣與比特幣帳本,並且向Alice購買一本書籍。
資料來源:杜宏毅博士,Block Chain的前世今生與未來,台灣網路認證公司。
Icon made by Freepik from www.flaticon.com


Satoshi告訴Alice:這個很簡單,妳可以用同樣的方法,支付Bob金額10btc購買一顆蘋果,並且也記錄在我的比特幣帳本內,如<圖二>所示。既然比特幣真的可以買到東西,因此Alice很開心的收下了這種第一次聽過的虛擬貨幣。

 

 
圖二 Alice支付Bob金額10btc購買一顆蘋果。
資料來源:杜宏毅博士,Block Chain的前世今生與未來,台灣網路認證公司。
Icon made by Freepik from www.flaticon.com

 

後來Alice與Bob想想,不對呀!我們彼此之間的交易帳本都儲存在Satoshi的電腦裡,都是他說了算,我們有什麼保障呢?聽到了這樣的質疑,Satoshi說:沒關係,那我把比特幣帳本複製給你們,如<圖三>所示,讓你們手上也有一份,這樣就可以了吧!

 

圖三 Satoshi把比特幣帳本複製給Alice和Bob。
資料來源:杜宏毅博士,Block Chain的前世今生與未來,台灣網路認證公司。
Icon made by Freepik from www.flaticon.com

 

但是這樣真的就沒有問題了嗎?
將比特幣帳本複製給所有使用者,那電腦記憶體要多少才夠?
每一筆交易都要通知所有使用者,那網路的反應夠快嗎?
使用者未必熟悉電腦操作,如何使用電腦進行交易?

 

比特幣(Bitcoin)的運作方式

為了解決最後的幾個問題,Satoshi用這樣的方式來處理,如<圖四>所示:
由Satoshi發起建位第一個節點(Node),節點指的是在伺服器(Server)內安裝「節點軟體(Node software)」與「比特幣帳本(BTC ledger)」。
號召網際網路上熟悉電腦操作的自願者在世界各地建立節點(Node),同時在伺服器(Server)內安裝節點軟體與比特幣帳本。
節點與節點之間經由「點對點網路連線(Peer to peer network connection)」軟體進行資料交換。
使用者安裝手機應用程式(APP)「比特幣電子錢包(BTC wallet)」,並且以手機付款與收款,使用非常簡單。知識力www.ansforce.com。
手機應用程式(APP)將交易內容回傳至節點(Node),節點(Node)再將交易內容「溢散傳遞(Propagating)」給所有的節點(Node)。

 

圖四 比特幣(Bitcoin)的運作方式。
資料來源:杜宏毅博士,Block Chain的前世今生與未來,台灣網路認證公司。
Icon made by Freepik from www.flaticon.com

 
因此在比特幣的生態系裡,所有的節點(Node)是由網際網路上熟悉電腦操作的自願者在世界各地建立,節點指的是在伺服器(Server)內安裝「節點軟體(Node software)」與「比特幣帳本(BTC ledger)」;使用者安裝手機應用程式(APP)「比特幣電子錢包(BTC wallet)」,並且以手機付款與收款,資料經由網路傳送給節點,再以溢散傳遞(Propagating)的方式傳遞給所有的節點,最後使全世界的節點內比特幣帳本(BTC ledger)是同步的。

 

❒ 比特幣與現有銀行體系的差異

如果我們將比特幣的生態系比喻為現在的銀行體系,那網際網路上的節點(Node)就好像各家銀行的分行一樣,唯一的不同是在目前的銀行體系裡,世界各國都有中央銀行來管理各家銀行,屬於「集中式拓樸(Centralized topology)」,而比特幣的生態系沒有中央銀行這樣的角色,而是由分散在世界各地的節點(Node)互相溝通自主管理,屬於「分散式拓樸(Distributed topology)」,也有人稱為「非集中式拓樸(Decentralized topology)」。


其實我們靜下來想想,如果世界上真的有一個大帳本可以記錄每一個人所有的資產與每一筆交易,而且大家都信任這個帳本,我們平常使用的紙鈔根本就是多餘的東西,其實現在我們常用的悠遊卡、ApplePay這種電子貨幣就可以取代紙鈔,唯一的不同是目前我們所使用的電子貨幣仍然是在現有的銀行體系裡運作,中央銀行與各家銀行仍然是主角,屬於「集中式拓樸(Centralized topology)」,與比特幣的「分散式拓樸(Distributed topology)」不同,這是兩者之間最大的差異。知識力www.ansforce.com。

 

比特幣(Bitcoin)的問題

前面的方法看起似乎可行,但是仍然隱藏了許多問題,例如:
Alice支付Bob金額10btc購買一顆蘋果,我們如何確認這個購買的訊息真的是Alice發送出來的?另外,如果隔天Alice後悔了,否認她曾經做過這件事怎麼辦?最常發生這種事情的就是早期投資人經由電話向證券公司的營業員下單買股票,結果收盤股票跌了,這個時候投資人否認曾經打過這通電話,為了解決這個問題,證券公司只有用電話錄音,但是在虛疑的電子世界裡沒辦法錄音,那麼要用什麼方法讓「使用者不可否認」呢?
比特幣帳本是儲存在網路上熟悉電腦操作的自願者所架設的節點(伺服器)內,這是很重要的東西,就好像銀行裡的帳本一樣,這麼重要的東西,我們如何信任這些熟悉電腦操作的自願者不會去篡改呢?
比特幣的節點(Node)是散佈在整個網路的世界裡,當使用者進行交易改變了某一個節點的比特幣帳本,必須把這個改變通知散佈在世界各地的節點,要如何把這個改變通知散佈在世界各地的節點呢?

 

❒ 比特幣(Bitcoin)的三大特性
上面提到的三個問題,也就是比特幣(Bitcoin)的三大特性,我們簡單說明如下:
➤交易識別確認:使用公開金鑰驗證機制,確認這筆交易的真實性,使用者不可否認,而且是屬於「可驗證的匿名制」,保留貨幣交易的特性。
➤資料無法篡改:使用「區塊(Block)」與「鏈結(Chain)」確保交易資料無法篡改。其中「區塊(Block)」主要是利用計算「條件雜湊(Conditional hash)」很不容易來保護資料,而「鏈結(Chain)」主要是區塊與區塊之間利用「前區塊雜湊(Previousblockhash)」鏈結起來,由於篡改區塊內的交易資料已經很困難,區塊與區塊之間又被鏈結起來,等於篡改一個區塊要把所有的區塊都一起篡改,在合理時間內幾乎不可能。
➤節點資料同步:使用「工作量證明(POW:Proof of Work)」達成收斂同步,由於比特幣使用「分散式拓樸」,因此保留總困難指數高的分支,刪除困難指數低的分支最後達成節點資料同步。

 

由於比特幣不適合即時大量的小額交易,而且比特幣在法規上存有疑義難以被主管機關接受,因此有人將比特幣的部分技術(主要是保護資料無法篡改的技術)抽離出來尋找新的應用,並且取了新名字「區塊鏈(Block chain)」,也有人擴大區塊鏈的定義,把前面提到的交易識別確認、資料無法篡改、節點資料同步三種技術通稱為「區塊鏈(Block chain)」。所以到底這三種技術的是怎麼做的呢?繼續看下去吧!

 

【請注意】上述內容經過適當簡化以適合大眾閱讀,與產業現狀可能會有差異,若您是這個領域的專家想要提供意見,請自行聯絡作者;若有產業與技術問題請參與社群討論。

 

【資料來源】杜宏毅博士,Block Chain的前世今生與未來,台灣網路認證公司。