區塊鏈與比特幣

Yan Ru Su

區塊鏈是什麼?區塊鏈是一種去中心化、分散式、不可篡改的數位帳本技術。聽完前面的敘述,你一定還是搞不懂什麼是區塊鏈,因此讓我們從區塊鏈的源頭比特幣講起。比特幣起源於 2008 年中本聰(Satoshi Nakamoto)的一篇公開論文 《Bitcoin:A Peer-to-Peer Electronic Cash System》 。時間回到2008年,金融危機暴露了傳統銀行體系的問題,在這樣的背景下中本聰創造一種沒有銀行或政府干預、點對點、難以被任意操控或膨脹的電子現金「比特幣」。

然而創造電子現金或是貨幣,需要面對一個數位時代的問題,「雙重支付」。在數位的世界,如果我假設某一串編碼是某張一千塊的序號例如:「99436a76…6f22ae4」,但這個數位鈔票很容易被複製,我只要將這串編號複製發給兩個人就造成了一千當兩千用的窘境,因此數位鈔票不像實體的紙鈔,有防偽設計。

所以現實中我們怎麼解決雙重支付的問題?首先我們探討銀行解決這個問題的方法,「帳本記帳」,銀行用帳本記帳的方式避免雙重支付,當你要轉帳給某人,銀行就在資料庫裡將你要轉帳的金額刪除,加到轉帳對象的餘額裡。藉由維護這個帳本(資料庫)來達到避免雙重記帳的問題,不過這就代表,需要有一個你信任的第三方,來維護這個帳本。總結銀行的兩種能力,記帳與確認資產權。

比特幣是怎麼做到避免雙重支付的問題呢?比特幣則是用了區塊鏈的資料結構去打造了一個帳本,想像每個區塊都是一頁帳本,把交易訊息寫在裡面,再用特殊的機制將每個區塊相連,這樣就不用擔心先前的內容被竄改。不過有了帳本還不夠,真正的困難處在於維護這個帳本,在銀行,有銀行這個可信任的第三方維護帳本,但在網路世界上大家並不認識,無法取得信任。比特幣用了礦工來解決信任問題,這裡的礦工不是只一個人,而是一群人。每一個礦工都維護一個相同的帳本,而比特幣設計了一個機制,讓礦工們可以乖乖地進行記帳。
image.png

圖片來源

總結這兩點的不同,在銀行體系中,你需要銀行作為中間信任的第三方幫助你進行轉帳,而在比特幣中,信任的角色被礦工取代,不用再透過銀行這個中心,因此就被稱為去中心化。

講回比特幣中如何維護帳本,在維護這個帳本最關鍵的就是共識機制,工作量證明(Proof for work),因此記帳就由礦工來紀錄,紀到區塊鏈裡,而如何得到大家有共識的帳本,執行共識機制就被稱為挖礦。先舉一個簡單共識機制的例子:假如今天小明將一顆比特幣轉給我,如果這一筆交易經過成千上萬的礦工之後得到了確認,那小明就不能再將這顆比特幣轉給別人,這背後就有著一個共識機制,之後還會詳細說明。

比特幣雙重支付,記帳的問題解決了,那接下來就是另一個能力確認資產權,沒有銀行要如何確認資產權呢?這裡就用到了非對稱加密的技術,利用數位簽章來確認,也就是說你會有一個只有自己知道的鑰匙以及公開給所有人的鑰匙,當你想要轉帳給某個人,你就寫一個交易訊息,並且用你的私鑰簽名,礦工會利用公鑰確認訊息你是否有簽過名確認是否是你要進行轉帳。當礦工確認是你的簽名後,就會將你的交易包入一個區塊。

接下來看區塊怎麼變成鏈的,首先我們要知道雜湊,簡單說雜湊就是把資料輸入一個函式輸出一串亂數,稱為雜湊值。每個區塊都會有一個雜湊值以及前一個的雜湊值,形成一條鏈,由於雜湊函數的特性,如果某個區塊的雜湊值變了,其他後面的雜湊值也會改變,這代表一旦某個區塊裡的資料被人偷偷改動,那個區塊本身的雜湊值立刻就會跟原本記錄在「下一個區塊」裡的前一個雜湊值不一致,這種結構就稱為「區塊鏈」。

On this page
區塊鏈與比特幣