解讀中本聰的論文:什麼是比特幣?/許明恩
在本文中,筆者會試著用淺顯易懂的說法,解讀中本聰在2008年發表的〈Bitcoin: A Peer-to-Peer Electronic Cash System〉(比特幣:P2P的電子貨幣系統)這篇比特幣論文的原文。
這篇論文到現在已經被引用了1700多次,可以說是一篇曠世巨作等級的論文,值得一讀;筆者會按照自己認為比較好懂的方式切入,而不會按照論文的章節順序來談。
中本聰 : 風一般的作者
他聲稱自己是個日本人,不過到目前為止,全世界都還不知道這位謎樣的人到底是誰。
不過,因為比特幣的協議和軟體都是公開發佈,發明者本人也無法控制比特幣,所以他是誰(在商業上)其實並不太重要。
拿掉手續費:沒有中間人
交易手續費的來源,是因為金融機構(後稱銀行)作為線上交易的中間人,在每筆交易都承擔著交易雙方的信任風險。當交易糾紛產生時,銀行需要負責調解、賠償;所以,銀行往往會要求雙方,在交易之前提供與交易本身完全無關的個人資訊,來建立信任基礎。
而比特幣的創新之處,就是將銀行這個中間人去除,不需要由銀行負責信任風險;改由網路上所有的電腦來幫忙驗證,讓雙方直接進行P2P交易,而不再透過銀行。
由於沒有銀行扮演中間人,自然就沒有交易手續費,也就可以讓更多日常的小額交易有更多元的應用。
防偽機制
所謂「數位貨幣」,是相對於實體發行的貨幣而言。在實體貨幣的世界,因為都是銀貨兩訖,所以沒有上述的信任問題;而且,政府也會透過在實體貨幣上加上防偽雷射印刷,或是使用特殊材質、油墨來避免貨幣被偽造。
但數位貨幣就不一樣了。因為數位媒介的特色,就是非常容易複製,所以每次線上交易就得運用密碼學的運算,來產生出一串經過加密的亂碼,來確保每次交易的安全性。萬一亂碼被破解,這筆交易就可以被更改、甚至把錢存入別人的帳戶內,造成同一筆錢被重複花用(double-spending)的問題。
中本聰在比特幣的設計上,是以個人數位簽名(digital signature)搭配交易時間戳記(timestamp server),來證明該次交易的唯一性,同時也解決重複花用的潛在問題。
挖礦:獎勵制度
我們常常聽到的「挖礦」這個詞,意思就是使用自己的電腦,執行一個密碼學的運算程式,以協助將網路上的每一筆比特幣交易資料加密。
當一筆比特幣交易出現時,網路上正在執行這個運算程式的電腦,就會紛紛開始進行運算;最先算出結果的電腦,會主動在網路上廣播自己已經計算完成。結果經過驗證無誤之後,就可以獲得新的比特幣和交易費作為犒賞。
這樣的協作機制稱為「區塊鏈」(blockchain);由分散在世界各地的電腦,負責在網路上協助運算、驗證、及紀錄交易。
也就是說,「挖礦」的本質是透過記帳和時間戳記的方式,避免比特幣被一塊錢當兩塊錢花;因此,系統會獎勵維護公平交易的電腦。除了交易公平性之外,防止偽造的交易紀錄被惡意放入共同記帳本內,也是設計比特幣的另一項重點。
防止惡意攻擊 : 工作量證明
工作量證明(proof-of-work)是用來檢驗此筆交易是否合法的高效率方式。最簡單的比喻,就是用「畢業證書」來理解工作量證明的原理。
學生必須繳註冊費、通過考試、並且經過數年的學習,才能獲得畢業證書;但是,大學要驗證學生是否具備高中程度的學力,只需要讓學生出示畢業證書即可。
在比特幣上,因為每一筆交易都需要經過電腦運算加密,所以帳本上的這些交易,都是需要消耗時間才能註記上去的。要偽造一張紙本的畢業證書,或許還可能可以獨立完成;但是要完成一份假的比特幣工作量證明,則必須先控制整個網路上過半的電腦,讓它們都認證假的交易紀錄,才有可能達成。
匿名交易
在傳統的線上交易中,銀行掌握了交易者、時間、以及金額等重要資訊,並且決定了第三方取得交易細節的權限。
而在使用比特幣交易時,雖然大眾無法得知交易雙方是誰,但是交易的時間和金額是公開的;在這一點上,也和股票交易所釋出的交易資訊相同。
因此,說比特幣交易是犯罪者的天堂,是有點誇大了;畢竟在比特幣系統上,還是存有交易者的資訊和交易發生地點,而且交易的時間、金額是公開的。只是這些資訊不掌握在銀行手上而已。
理解區塊鏈的第一步
至此為止,筆者已經把中本聰的〈Bitcoin: A Peer-to-Peer Electronic Cash System〉這篇論文解讀完。比特幣是這波區塊鏈應用之中最知名的,把這篇原始論文讀完,以瞭解區塊鏈在不同領域上的應用,會很有幫助。
論文內還有幾個面向,因為屬於技術細節,所以在此因此跳過;例如如何回收佔用的記憶體空間、以及證明為何比特幣系統被攻破機率很低的計算過程等等。如果看完這篇文章之後,您對比特幣論文的原著和技術面有興趣,請下載論文原文(PDF檔)。
比特幣的缺點
說完中本聰的論文,總算可以說說比特幣的運作現況:現在已經很少人在挖比特幣了。
比特幣從2009年開始運作到現在,其實出現了不少缺點。例如比特幣系統每隔10分鐘才更新一次帳本,交易速度被嫌太慢;或是部份「礦工」為了提高挖礦效率,而客製出專門挖比特幣的硬體,稱為ASIC(Application-specific integrated circuit)。
ASIC的挖礦運算能力遠比普通電腦強、體積小、而且更省電。擁有ASIC的礦工,因為運算能力比其他電腦強太多,反而破壞了區塊鏈中假設「每台電腦運算能力差不多」的分散式設計,使得攻擊者只要攻破少數幾個運算能力強大的礦場,就可能製造出假的工作量證明。
所以,其實現在已經沒什麼散戶礦工在浪費電力和運算資源,來跟擁有ASIC的礦場爭搶比特幣了。
最近,大家都轉場去挖以太幣(Ether)了;因為以太幣改善了比特幣的缺點,而且應用不再僅限於金融領域的匯款上。筆者會在下一篇文章中,介紹這個目前被全球高度期待未來發展的區塊鏈應用。