pswu icon

比特幣白皮書 Bitcoin White Paper — 這到底是什麼啦?

其實網路上關於比特幣和區塊鍊的文章已經很多,然而我寫此文章的目的是希望讓非資訊 技術背景的麻瓜們也能理解「比特幣白皮書」的概括重點內容並能引起興趣。文章中關於比 特幣的內容僅根據「比特幣白皮書」所描述,並且盡量不使用複雜的專有名詞,而以簡單易 懂的敘述方式取代之,如有任何建議還請不吝指教。

背景介紹

2008 年,中本聰(Satoshi Nakamoto)在網路上發表了一篇名為「比特幣:一種點對點的 電子現金交易系統」的論文,英文原文為 Bitcoin: A Peer-to-Peer Electronic Cash System,現在也被稱為「比特幣白皮書」。其實中本聰到底是誰?雖然網路上有諸多猜測, 但目前並沒有一個確切的說法。在中本聰的論文中,他提出了一種可以實現點對點(P2P, peer-to-peer)交易的電子現金交易系統「比特幣」(Bitcoin)。換句話說,這是一種不 需要第三方金融機構作為中間人的交易系統。比特幣白皮書中所提到的實現比特幣這個交易 系統的技術,則是現在大家所知的區塊鍊技術。

為什麼我們需要比特幣?

在傳統的金融交易體系中,進行交易時我們都需要可信任的銀行作為第三方金融機構,以防 止金融詐騙。同樣的狀況也適用於現今的電子貨幣,由於受款人無法有效驗證付款人是否重 複支付這個電子貨幣,為了避免這種雙重支付(double spending problem)的問題,我們 即需要一個中介機構來擔任可信任的中間人。這樣的運行模式,也被稱為是一種以信任為基 礎的交易模式(trust-based model)。然而,這種依賴第三方機構的交易方式,往往需要 使用者支付中間人手續費用。在此情況下,任何金額微小的交易都將因為提高的交易成本而 受到限制。實際上,即使有可信任的中間人,也很難完全杜絕重複付款這類的金融詐騙。比 特幣即是中本聰所提出的解決方案。

比特幣基本特性

根據白皮書,比特幣有以下的基本特性:比特幣是加密數位貨幣:使用雜湊演算法(hash) 和默克爾樹(merkle tree)方式加密可短時間內實現點對點(P2P)交易:不須透過銀行作 為中間人來驗證交易

比特幣交易系統機制

(一)公開的交易內容

數位交易中,唯一能避免同一個貨幣被雙重支付的方法是需要一次檢查所有的交易,以次判 定哪一個交易是最早發生的。在比特幣的點對點交易當中,因為沒有了可信的第三方機構來 驗證,需要其他的機制來避免重複付款以保障收款人。在比特幣的交易機制中,每一筆交易 都會被公開宣告(publicly announced),以此來判定交易的時間順序。當然,若是需要判 定時間,交易資訊上必須要有可信的時間戳記。可是,如何能保證這個時間戳記不被竄改呢 ?在比特幣的資料結構下,多筆交易(item)會形成一個區塊(block)。首先區塊會被雜 湊演算法(hash,又譯為哈西)加密處理,然後時間戳記伺服器(timestamp server)會在 此雜湊(hash)中加上時間戳記並將他公開廣播到網路上。重要的是,每一個時間戳記都包 含了上一個時間戳記在這個區塊的雜湊中,因此形成了一條鍊的結構。這樣的結構下,每當 有新的區塊包含時間戳記加入時,都加強(reinforce)了之前的區塊使他們難以被竄改 (tampering)。

區塊的以鍊的形式呈現(參考來源:比特幣白皮書)

(二)分散式伺服器網路

比特幣是由一個由分散式伺服器組成的網路(network)運作的,在此我們稱每一個運作單 位為節點(node)。當新的交易產生的時候,會被廣播(broadcast)到所有其他的節點上 ,而每個節點會將這些新產生所生的區塊上,並使用它的運算能力將新的區塊加入到既有的 鍊上。每個節點上都會有同樣的這一條鍊,當新的區塊被加入鍊時,會廣播到其他的節點上 。然而當任何一個節點接受到兩條不同版本的鍊,會同時保留兩條鍊,直到其中一條鍊變得 更長。對任何一個網路中的節點來說,只有最長的那條鍊會被視為正確的版本。在此情況下 ,即使有多個節點在網路中,仍能保持共識。

(三)比特幣的發行及運作機制

前面提到了比特幣分散式伺服器的設計,在為了維持點對點交易的情況下,網路中的節點需 要使用其運算能力將新的區塊將入鍊中,這個過程被稱作為工作量證明(PoW, proof-of-work)。同時需要注意的是,比特幣的發行也是透過工作量證明來完成。要完成 這個工作量證明,節點須耗費相當的 CPU 運算能力。當這個工作被滿足後,由此產生的新 區塊將不能再被更改,除非重新運算一次。然而更多新的區塊將會被加入鍊中,因此若任何 節點意圖更改之前已存在鍊上的區塊,它則需要將此區塊並包含所有連接在它之後的區塊一 併都重新運算一次。只是,在沒有一個中央機構來控制節點的情況下,要如何讓所有節點互 相協調運作呢?這就跟比特幣的發行有關了。比特幣的發行是一種激勵機制。這個激勵機制 是能讓整個比特幣節點網路運作如常的一個很重要的環節。同時,這也是能讓比特幣能穩定 地被導入到這整個循環的機制。簡言之,當一個工作的節點貢獻了運算能力且完成了工作量 證明,節點擁有者將會得到比特幣作為獎勵。這個激勵機制還有另一層用意,當系統給予貢 獻者比特幣,這個獎勵能有效鼓勵所有網路中的節點誠實地按照既定的遊戲規則來運行。

結語與思考

比特幣被廣泛地認為是第一個使用區塊鍊技術(blockchain technology)的實作應用,這 種應用分類被稱為加密貨幣(crypto-currencies)。從比特幣白皮書中,我們也能發現「 區塊鍊」(blockchain)這個字並未被直接的使用,但分別提到好幾次「區塊」(block) 與鍊(chain)。因此推測,在比特幣這個實例成功之後,為了將背後的技術獨立出來避免 混淆而開始普遍使用區塊鍊這個名稱。簡單地說,比特幣是一種加密貨幣,而加密貨幣是一 種區塊鍊技術的應用。但是區塊鍊並不等於加密貨幣,當然也不等於比特幣。區塊鍊技術已 經被廣泛地應用在其他層面,其中許多應用已經不僅僅是加密貨幣而已了。另外你可能也會 發現,現在的比特幣跟比特幣白皮書相比多了更多特性。原因是因為比特幣也是一個開放且 不斷創新進步的社群,很多早期被提出來的一些問題,後來都陸續有人提出解決或是強化的 方法了。因此,這也是為什麼至今比特幣仍被認為是入門區塊鍊技術最應該了解的首選實例 。

參考資料

本篇文章也同時發表在 Medium: 文章連結