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

寫給科技麻瓜的比特幣白皮書懶人包

PSWU
Ethereum Scholars Program
7 min readAug 1, 2019

--

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

背景介紹

2008年,中本聰(Satoshi Nakamoto)在網路上發表了一篇名為「比特幣:一種點對點的電子現金交易系統」的論文,英文原文為 Bitcoin: A Peer-to-Peer Electronic Cash System,現在也被稱為「比特幣白皮書」。

其實中本聰到底是誰?雖然網路上有諸多猜測,但目前並沒有一個確切的說法。

在中本聰的論文中,他提出了一種可以實現點對點(P2P, peer-to-peer)交易的電子現金交易系統「比特幣」(Bitcoin)。換句話說,這是一種不需要第三方金融機構作為中間人的交易系統。

比特幣白皮書中所提到的實現比特幣這個交易系統的技術,則是現在大家所知的區塊鍊技術。

為什麼我們需要比特幣?

在傳統的金融交易體系中,進行交易時我們都需要可信任的銀行作為第三方金融機構,以防止金融詐騙。同樣的狀況也適用於現今的電子貨幣,由於受款人無法有效驗證付款人是否重複支付這個電子貨幣,為了避免這種雙重支付(double spending problem)的問題,我們即需要一個中介機構來擔任可信任的中間人。

這樣的運行模式,也被稱為是一種以信任為基礎的交易模式(trust-based model)。

然而,這種依賴第三方機構的交易方式,往往需要使用者支付中間人手續費用。在此情況下,任何金額微小的交易都將因為提高的交易成本而受到限制。實際上,即使有可信任的中間人,也很難完全杜絕重複付款這類的金融詐騙。

比特幣即是中本聰所提出的解決方案。

比特幣基本特性

根據白皮書,比特幣有以下的基本特性:

  1. 比特幣是加密數位貨幣:使用雜湊演算法(hash)和默克爾樹(merkle tree)方式加密
  2. 可短時間內實現點對點(P2P)交易:不須透過銀行作為中間人來驗證交易
  3. 去中心化控制:使用分散式伺服器來確保交易系統難以被攻擊者掌控
  4. 低廉的交易成本:無中介機構處理費,實現大量小額交易
  5. 交易的不可逆性:惡意攻擊者很難竄改或是偽造貨幣紀錄
  6. 隱私保護:比特幣的結構設計能讓擁有或是交易貨幣的人保持匿名

比特幣交易系統機制

(一)公開的交易內容

數位交易中,唯一能避免同一個貨幣被雙重支付的方法是需要一次檢查所有的交易,以次判定哪一個交易是最早發生的。

在比特幣的點對點交易當中,因為沒有了可信的第三方機構來驗證,需要其他的機制來避免重複付款以保障收款人。在比特幣的交易機制中,每一筆交易都會被公開宣告(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)。因此推測,在比特幣這個實例成功之後,為了將背後的技術獨立出來避免混淆而開始普遍使用區塊鍊這個名稱。

簡單地說,比特幣是一種加密貨幣,而加密貨幣是一種區塊鍊技術的應用。但是區塊鍊並不等於加密貨幣,當然也不等於比特幣。區塊鍊技術已經被廣泛地應用在其他層面,其中許多應用已經不僅僅是加密貨幣而已了。

另外你可能也會發現,現在的比特幣跟比特幣白皮書相比多了更多特性。原因是因為比特幣也是一個開放且不斷創新進步的社群,很多早期被提出來的一些問題,後來都陸續有人提出解決或是強化的方法了。因此,這也是為什麼至今比特幣仍被認為是入門區塊鍊技術最應該了解的首選實例。

參考資料

  1. 比特幣白皮書原文版(Satoshi Nakamoto, 2008)
  2. 比特幣白皮書中文翻譯(翻譯者:AndyLin)
  3. 比特幣白皮書中文翻譯及註解(翻譯者:金曉)

Disclaimer: The views expressed by the author above do not necessarily represent the views of the Ethereum Foundation.

--

--

PSWU
Ethereum Scholars Program

Product @QuestDB | Previously DevRel @Jina AI | From Taiwan | Living in Germany | Passionate for Blockchain & Machine Learning | pswu.dev