哪種貨幣可以在短短兩年內升值兩萬倍?不是美金、不是人民幣,是 Bitcoin。
2010年5月22日,一位老兄在網路上自稱他用10,000 Bitcoin成功地買到了兩塊價值25美元的 Pizza。
兩年過去了,在筆者撰寫此文的當下,Bitcoin兌美金的匯率來到歷史新高,1 Bitcoin 可兌換47美金!當初賣出兩塊 Pizza 的老兄,如果他手上的 Bitcoin 沒有花掉的話,已經現值$470,000美金,換算台幣約 1千4百萬元。
兩年內增值近兩萬倍!誰能料想到兩年前的兩塊 Pizza 現在值一棟房子呢?(編按:賣 pizza 的人發了)下圖是近三年來 Bitcoin 的漲勢圖:
到底 Bitcoin 是何方神聖?Bitcoin 是一種網路上的數位貨幣,有別於諸如 PayPal、支付寶等集中式的線上金流系統,Bitcoin 與眾不同之處是它是基於 P2P 網路(Peer-to-peer Network)的分散式設計,搭配了密碼學的運用。依據其設計,不論政府或任何人都很難惡意干擾其運作。
Bitcoin 同時也擁有不可追蹤的特性,使得個人的隱私得以受到保護。它的出現有如牛頓的信仰所描述的 「上帝所造的大鐘」– 神秘的作者在釋出這設計後便消失無蹤。然而 Bitcoin 至今仍持續運作,並且有越來越多人接受和使用 Bitcoin。
在現代經濟體係面臨崩潰疑慮與方便的網路交易的強烈需求下,究竟這只是曇花一現還是將席捲世界?筆者將試著深入淺出的介紹 Bitcoin 的優勢、缺點、它的設計之美,以及它將如何改變世界。
貨幣演化論:從貝殼到紙幣
第一次聽見 Bitcoin 的人,都會懷疑為何從無產生的數位資料可以當做貨幣。我們太習慣使用現代的金錢,不相信 Bitcoin 沒有政府擔保能當成貨幣。但我們先回頭想一想貨幣的演進。
貨幣最原始的用途是用於交易的代替物。在貨幣發明以前,人們都是以物易物,十分不便。假設當時用一頭羊換一袋小麥,那半袋小麥就需要半頭羊。但羊無法拆成兩半,或著說被拆成兩半就死了。運送羊也很費力,羊得餵養,且會生老病死。
後來人們使用貝殼之類的物品當做貨幣。但或許因為太容易取得,人們接著選擇將稀有金屬鑄成錢幣。
到了更近代,人們發現大量的錢幣攜帶不方便,於是有了紙幣。而我們現在所使用的錢又稱為法幣,由政府透過儲藏相對應的黃金或是發行債倦來對其價值擔保。
貝殼當貨幣,從現在的角度看來很不可思議。可是事實上,只要人們願意接受,不管是貝殼、山羊、甚至是汽水瓶蓋或彈珠都可以當做貨幣。很多人小時候和同學間都有類似的經驗,用特定玩具當做貨幣。但我們為何不繼續用彈珠當貨幣呢?因為它不是好的貨幣。
三個好貨幣的條件
好的貨幣特性有哪些?簡單描述三項
1. 可以組成不同的面額
2. 耐久與可輕易用於交易
3. 容易識別真偽並確認價值
我們拿黃金來看好了。黃金開採不易,但是是相當穩定的元素,可以長久保存。其接受度之高,數千年來人們仍願意接受黃金來提供貨品或服務。其缺點在於重量很重,攜帶不方便,真偽也不容易辨識。
再來看法幣,就是現今用的錢。其價值是由政府透過立法,並儲存黃金或發行債卷來為其價值進行擔保。法幣比黃金更容易攜帶和使用,這也是為什麼我們現今很少使用黃金交易的原因。
然而法幣的缺點就是信任度不高。法幣的價值來自政府的擔保。人們願意接受法幣來提供商品與服務,是因為基於對於政府的以及它提供的擔保之信任。當政 府胡作非為濫印鈔票時,人們對法幣就會不信任,轉向黃金這類貴金屬來逃避風險。近年來黃金價格飛漲就可以看出人們對法幣的信心不足。
集中式數位貨幣繼承了法幣的缺點
而常見的集中式數位貨幣,透過發行商擔保,其實都只不過是相對應的法幣。像 PayPal 裡的錢,好壞都操之於政府和發行商的手上。在政府或是金流商的一聲令下隨時都可能化為烏有。
例如曾發生過許多獨立開發者遭 Paypal 凍結帳號,或是 Wikileaks 創辦人阿三吉透過 Paypal 收捐款被凍結帳號的事情。這些都顯示出集中式數位化管理的貨幣的缺點。
Bitcoin 的設計符合好貨幣的條件
最後焦點回到今天的主角 Bitcoin。它巧妙的地方就是在於它利用密碼學來達成上述的好貨幣的條件。它不受任何中央單位管理,性質較類似黃金。我們拿來跟黃金比 較,Bitcoin 被設計成其產出的量有受到限制,但供應量充足。它利用密碼學來確保製造 Bitcoin 非常困難,要偽造更是困難,但驗證卻非常簡單。
它以資料形式呈現並透過 P2P 網路進行交換資訊,因此很適合網路交易。儲存也很容易。簡單的來說 Bitcoin 可以被比擬成在網路上方便交易的黃金。
相較於黃金受人們的信任和使用已經有數千年的歷史,Bitcoin連五年歷史都不到,價格也一直在波動,政府對於這種貨幣的態度也還不明確,因此願 意接受Bitcoin的人還不多,但已經有越來越多的跡象,例如 WordPress.com 願意接受Bitcoin來提供部落格主機代管的服務,也有主機商願意接受Bitcoin來提供主機代管服務,Reddit接受Bitcoin,不久前重生 的MegaUpload後繼者以安全性為賣點的Mega也接受Bitcoin,相信在未來會有越來越多人願意接受Bitcoin
在此小結一下我們一開始的疑問,為什麼 Bitcoin 能夠當貨幣? 因為它滿足好的貨幣的需求,而且有人願意接受 Bitcoin 來提供商品和服務。以下我們列出各種貨幣的比較,就能更清楚理解 Bitcoin 做為網路貨幣的優勢。
貨幣從何而來?
相信大家心裡有個最大的疑問,就是最初的 Bitcoin 到底從何而來?答案就是礦工獎勵。在Bitcoin的設計中,最重要的結構叫做 Block,也就是區塊的意思。Block 裡面收錄有交易記錄等等重要資料,類似帳本。
要產生一個 Block 需要大量的運算資源,所以得提供一些獎勵給礦工來鼓勵他們生產 Bitcoin。因此系統的設計上對於產生 Block 的人,可穫得 50 Bitcoin。在以下的例子中,我們可以看見某個礦工產生了這個 Block,並將獎勵分別簽署給路人甲、乙和丙:
這些錢就是 Bitcoin 最原始的來源。你可以想像是金礦坑裡礦工很辛苦地挖礦,最終挖到了黃金。這個過程也因此被稱為挖礦(Mining)。
如何轉帳?
有了貨幣但不能流通也沒有任何用處。既然 Bitcoin 不是由某個單位集中管理,那要如何進行轉帳?答案是它運用了公開金鑰加密演算法來達成數位簽章。
公開金鑰加密演算法的概念很簡單,有別於對稱式加密演算法用同一把金鑰,公開加密法有兩把金鑰,分別是公鑰與私鑰。用公鑰加密出來的結果只能用相對應的私鑰解開;相反的,用私鑰加密的資料也只能由公開金鑰來解。一般公鑰是公開的,私鑰是保密的,如下圖所示:
如果把加密比擬為上鎖的話,對稱式加密是一般的鎖,開鎖和解鎖都是同一把鑰匙。而非對稱式加密的開鎖和解鎖用兩把不同的鑰匙;用公開金鑰上鎖之後只有私鑰能打開,反之亦然。
正因為這個特性,可以運用在很多地方,例如數位簽章就是一個很常見的運用。假設今天某富豪要死了,他在死前公開了他的公開金鑰,任何人都可以拿到。如此一來大家都可以用他生前公開的金鑰試著去解開加密的部份。
死後他的遺囑被公開,附帶著用私鑰加密過後的遺囑,如果能成功解密的話,因為只有當事人知道的私鑰能夠加密出公鑰能解的訊息,具有不可否認性,如此一來我們就能推定確實該富豪有簽署過這份訊息,以此達成簽章的效果。如下圖所示:
Bitcoin 就是利用公開金鑰和私鑰的數位簽章來完成轉帳。很多讀者可能容易誤解,資料都公開了為什麼要加密?加密在這裡並不是要保護資料的機密性,而是要證明當事人 有簽署過這份交易。而在本文裡的路人甲、乙和丙並不是真正的人名或是戶名,實際帳戶名在系統裡其實是一把公開金鑰,私鑰有如印章。如此一來,私鑰可以用來 簽署轉帳訊息給其它的帳戶,而公鑰除了當帳戶名稱也可以讓大家驗證轉帳訊息是否屬實。
當礦工有了最原始的錢之後,他們就能把錢花掉。花掉的方式,就是以個人的私鑰進行數位簽章簽下:
我某某人將 OO 元 轉帳給 某某人
這樣的交易訊息會經由 P2P 網路廣播出去,到最終網路上的每個節點都會收到。當然礦工也會收到。
在收到交易記錄後,礦工會先檢查這筆交易是否合法、有沒有重覆花費、來源的帳號是否有足夠的資金、數位簽章是否正確等。有問題的交易會被直接忽略。接著幸運的礦工在產生下一個 Block 時,便會將這所有收到的交易記錄都寫進去。
我們來看下一個 Block 的例子。在這一個新的 Block 中,我們可以看見轉帳的記錄。而在這個帳本被產生之後,它會透過 P2P 網路廣播到網路上,大家最終都會收到同樣的結果並且可以驗證,如下圖所示:
有了最新的 Block,搭配以前收到的所有 Block 裡的礦工獎勵和轉帳記錄,我們就能推斷出到底誰擁有多少錢。在 Block2 產生後,每個帳戶裡的錢如下列所示:
路人甲 10 BTC
路人乙 5 BTC
路人丙 20 BTC
路人丁 50 BTC
路人戊 5 BTC
路人己 10 BTC
在經過了兩個 block 之後,我們現在知道每個人身上有多少錢。依此類推,新的 block 不停產生,也就是新的貨幣不停地被開採出來,由礦工透過轉帳花掉最終流到一般人手上。
如何防止惡意擾亂者?
既然是網路上的東西,那如何確保它不受到惡意的攻擊與擾亂?Bitcoin 為了防止惡意攻擊,巧妙地利用了一個安全性的設計概念叫做「作工證明」。它的概念很簡單,就是要你做一堆沒意義的事情來證明你的誠意。這樣的概念很早就出 現在我們的現實生活中,就像有一個正妹,她有一大堆的追求者。然而這些追求者當中可能有一些並不是那麼有誠意,於是正妹就出了一些難題來考驗這些追求者。 如果真心想要追求的人就會努力解決難題,如此一來就能擋掉大部份沒有誠意的追求者。
類似的概念也被用在電腦系統上,例如防止垃圾信件上。垃圾郵件之所以橫行無阻,正因為發送的成本太低了。因此有些郵件系統便採用了作工證明,像是郵 件伺服器需要檢查額外的作工證明訊息才能把信寄出。如果我們讓現代電腦運算約一秒鐘才能把信寄出去,對正常使用者來說並不過份。但對垃圾信的發送者而言, 每封信多花一秒鐘將造成大量寄信不合成本。這樣的概念就稱為作工證明。
Bitcoin 就是利用作工證明讓世界上有興趣的人參與競爭。礦工必須算出一個下一個的 Block 雜湊函數值,其值的大小要小於特定的值才會被承認為合法 Block。因為產生的結果是亂數的分佈,誰也沒辦法預測,所以礦工競爭產生下一個 Block 就有如電腦不停的隨機開出樂透的數字,只要算出來的數字小於指定的值,礦工就中獎了,賺到50 BTC。
惡意攻擊者要產生合法的 Block,必須有足夠的運算資源。如果只是為了阻擾這系統,例如一直產生不包含交易記錄的 Block 讓大家無法查證交易是否成功,這樣做必需要和所有正常的礦工競爭。如我們先前所提的,挖礦的過程有如買樂透,抽中的機率很小;假設每張彩卷中獎機率一樣的 話,你得花費超過其它所有人買彩卷的金額加總,才有辦法得到超過50%的勝率進而擾亂系統。而能辦到這樣程度所需的運算資源成本花費是天價。因此即使是政 府也很難拿出這麼多運算資源,只為了擾亂這套系統。這裡我們可以見到作者設計時所設下的賽局巧思。
有沒有被破解的可能?
世界上任何系統都有可能被破解,Bitcoin也不例外,問題只在要花多少成本而已。如先前所提,Bitcoin 的設計讓大家競爭產生新的貨幣,這競爭過程中得花費大量的運算,因此要透過參與競爭來達成破解等目的成本太高。
那讀者可能會問,如果是帳戶的公開金鑰加密系統被破解呢?同樣的道理,要從正面破解公開金鑰所需要的運算量非常驚人。只要金鑰的長度夠長,以現代科 技還沒有辦法在短時間內破解,所花費的成本也是天價。反過來說,如果有一天公開金鑰加密演算法有辦法被輕易破解的話,你更該擔心的你在銀行裡的存款,因為 目前網路銀行的連線系統也是用這樣的加密技術。
比起擔心系統被攻破,擁有 Bitcoin 的人更該擔心私鑰的保管。一旦你的私鑰讓別人知道,對方就可以轉走你帳戶裡的錢。因此最好替你的私鑰加上一層只有你知道的密碼。
如何避免通貨澎脹?
現代的經濟系統裡,很常見到政府為了應付日漸龐大的支出,選擇以印更多鈔票的方式來支付。其後果就是通貨膨脹,所有人的財富都被稀釋了。
Bitcoin 不停地被製造出來,讀者心中一定也有同樣的疑問:如果製造 Bitcoin有利可圖,那麼越來越多人挖 Bitcoin,產生的速度越快,到後來難道不會通貨膨脹嗎?這樣的事情在 Bitcoin 的經濟體系裡是不會發生的。因為 Bitcoin 的作者考慮到了這點,當初就設計了挖礦的工作難度每週會自動調整一次。
參照上一週的挖礦速度,自動調整的目標是平均每十分鐘產生一個 Block。例如現在 Bitcoin 匯率這麼高,勢必會引來更多人參與挖礦,因此本週的 Bitcoin 產生速度可能會上升。系統在下週會去計算上一週 Block 產生的速度,校正為每十分鐘產生一個 Block 的預期數值。如此一來就能穩定產生貨幣。
除此之外,每十分鐘就收錄一次交易,也代表了使用者從匯款到確認交易被收錄,大約只要等個十分鐘。
礦工獎勵也會隨著時間遞減。一開始設定的獎勵是50 BTC,現在已降為25 BTC。隨著時間的推進,系統會不斷的減低礦工的獎勵,如下圖所示:
到最後礦工獎勵會被降為0,在那時就沒有任何新的貨幣會被產生。但問題來了,你會問那既然到最後沒有獎勵了,那哪來的礦工去進行挖礦,新的交易該怎麼辦?
設計者也考量到了這一點,所以每筆交易都可以附帶一筆「處理費用」。礦工除了挖礦獎勵以外,在收錄這些交易的同時,也會獲得這些交易處理費用。因此 在最後使用者為了交易快點能被收錄,都會自願加上交易處理費。有處理費可賺一樣可以吸引礦工來參與挖礦,由此可見設計者的巧思。
如何保護使用者的隱私?
隱私權越來越重要,Bitcoin 要如何保護隱私?一般的金錢在網路上做任何花費都會留下記錄,以錢追人都可以找到當事人是誰。但 Bitcoin 就很難找到當事人是誰。為什麼 Bitcoin 可以做到無法追蹤呢?因為它的帳戶其實就是一組公開金鑰與私鑰,任何人都可能可以產生這樣的帳號。同一個人可以產生並擁有成千上萬組的帳戶,在全世界的任 一帳戶之間轉帳也沒有任何限制。要證明誰擁有某個帳戶非常困難。
但說不可追蹤其實有點不精確,事實上它是可以被追蹤的,因為其 P2P 交換資訊的特性,所有帳號的交易記錄都是公開的。因此你理論上可以查到全世界所有的每個 Bitcoin 帳戶裡有多少錢,以及這些交易分別從哪些帳戶匯入。但如前面所述,很難證明到底是誰擁有這些帳戶。講白話一點就像是鈔票上沒寫名字一樣。
竟然有實體 Bitcoin?
Bitcoin 是網路貨幣,可以做成實體硬幣嗎?筆者在找相關資料時偶然發現實體 Bitcoin,長得像這樣子:
正面
背面。
這些實體 Bicoin 可在 Physical Bitcoins by Casascius 買到。到底是怎麼做到的呢?
首先鑄幣者存了相對應價值的 BTC 到一個新產生的帳戶,也就是1 BTC。然後把這個帳戶的私鑰印在一張紙片上放在硬幣裡封好。接著在外面印上了它的公鑰,所以任何拿到硬幣的人,都可以上網查詢這個帳戶裡頭是否真的有相對的幣值在裡面。
上圖所印的 135Kc4Gb 帳戶我們可以在 Block Explorer 搜尋,發現它裡面的1 BTC在2013年3月8日被轉出了。這表示有人打開了這個硬幣,並取得裡面的私鑰把這裡面的錢轉出去了。硬幣的封裝使用了易碎材質,如此一來,使用硬幣 裡的錢一定得破壞這枚硬幣。
網路上的花費和實體硬幣交易,兩者無法兼得,其中一個交易了另一個就無法進行。這樣的設計使得原本只能在網路上使用的貨幣也可以在現實中使用。但是 這之間存在著風險:你必須信任貨幣製造商不會在製造硬幣的同時,把私鑰偷記下來,然後轉出去。或者貨幣製造商在製造過程中將同一個帳號做成多枚硬幣。雖然 有這些疑慮存在,但是這依然是一個非常有趣的應用,不得不令人佩服設計者的創意。
Bitcoin 的缺點有哪些?
Bitcoin 並不是完全沒有缺點。以 Bitcoin 完全去中心化的設計來說,雖然讓任何人都難以控制,但同時也帶來了一些缺點。以往的所有資料經年累月下來會越來越多,使得每個客戶端都得保留這些資料,會 佔掉不少的容量和部份的運算資源。筆者相信之後會有解決方案出現。
在安全性方面,有人指出它可能容許多重花費,也就是同一筆錢可能達成多重花費。主要作法是在短時間內簽章多筆交易,利用 P2P 網路同步延遲的特性,把原本只該有一筆的花費送給多人。但只有第一筆收錄的交易會受到承認。這個問題影響事實上不大,收款方只要在收款時等約十分鐘,確定 自己收到款項的交易有被礦工收錄,再交出對方購買的貨物,就可以避免這樣的攻擊手法。
到底是誰發明 Bitcoin?
最大的疑問,或許是發明 Bitcoin 的人到底是誰?Bitcoin 的發明牽涉到了密碼學、經濟學、賽局理論和 P2P 網路等廣範的知識,當然也包含程式的開發,誰有這樣的能耐創造出這種改變世界的新科技?
可惜的是作者到底是誰至今仍是一團謎。一位自稱 Satoshi Nakamoto(中本聰)的人,在2008年釋出了 Bitcoin 的計畫,在2010年他就離開了這個專案的開發。沒有人知道 Satoshi Nakamoto 是不是他的真名,也沒人知道他是誰。
他在第一個 Block 裡藏了訊息:
The Times 03/Jan/2009 Chancellor on brink of second bailout for banks
這句話出自於刊在《The Times》的「Chancellor Alistair Darling on brink of second bailout for banks」這篇文章,主要是描述英國總理正在考慮第二次的紓困案。從中可以看出他對於現在的政治與經濟體系的不滿。還有更多關於作者的蛛絲馬跡,可以參 考這篇「Who is Satoshi Nakamoto? 谁是比特币背后的黑手?」
不管他是誰,我們可以確定這樣不願為人知的天才靠著技術試著改變世界,不論 Bitcoin 成功或失敗,他都已經在網際網路發展的歷史中寫下了傳奇的一頁。
結論
如果讀者有看過一部科幻漫畫《銃夢》,應該還記得裡面的交易都是用晶片當做貨幣。Bitcoin 的出現就有如從科幻劇情裡跑出來的貨幣。這是人類有史以來第一次大量使用密碼學、去中心化設計的網路數位貨幣。從2008年發佈至今 Bitcoin 已經存活了三年,尚未出現重大的安全性問題。
政府對於這種憑空生出的貨幣態度還有待觀察。有人利用 Bitcoin 的暱名性進行洗錢等非法行為,但也有人用於捐款、線上購物等合法用途。我相信世人不會因為現金會用於犯罪而禁止使用現金。
有人說控制貨幣就等於控制一個國家,當政權過於腐敗,試圖利用貨幣來控制人民時,Bitcoin 不受政府控制的特性就可以發揮用處。筆者在寫這篇文章的同時也擁有一些 Bitcoin(編按:你也發了),並不是因為期待它漲價,而是一種見證歷史的心情,更是一種相信網路帶來的自由,是對抗腐敗政府最後一道防線的信仰。你 相信網路自由嗎?:)
2010年5月22日,一位老兄在網路上自稱他用10,000 Bitcoin成功地買到了兩塊價值25美元的 Pizza。
兩年過去了,在筆者撰寫此文的當下,Bitcoin兌美金的匯率來到歷史新高,1 Bitcoin 可兌換47美金!當初賣出兩塊 Pizza 的老兄,如果他手上的 Bitcoin 沒有花掉的話,已經現值$470,000美金,換算台幣約 1千4百萬元。
兩年內增值近兩萬倍!誰能料想到兩年前的兩塊 Pizza 現在值一棟房子呢?(編按:賣 pizza 的人發了)下圖是近三年來 Bitcoin 的漲勢圖:
到底 Bitcoin 是何方神聖?Bitcoin 是一種網路上的數位貨幣,有別於諸如 PayPal、支付寶等集中式的線上金流系統,Bitcoin 與眾不同之處是它是基於 P2P 網路(Peer-to-peer Network)的分散式設計,搭配了密碼學的運用。依據其設計,不論政府或任何人都很難惡意干擾其運作。
Bitcoin 同時也擁有不可追蹤的特性,使得個人的隱私得以受到保護。它的出現有如牛頓的信仰所描述的 「上帝所造的大鐘」– 神秘的作者在釋出這設計後便消失無蹤。然而 Bitcoin 至今仍持續運作,並且有越來越多人接受和使用 Bitcoin。
在現代經濟體係面臨崩潰疑慮與方便的網路交易的強烈需求下,究竟這只是曇花一現還是將席捲世界?筆者將試著深入淺出的介紹 Bitcoin 的優勢、缺點、它的設計之美,以及它將如何改變世界。
貨幣演化論:從貝殼到紙幣
第一次聽見 Bitcoin 的人,都會懷疑為何從無產生的數位資料可以當做貨幣。我們太習慣使用現代的金錢,不相信 Bitcoin 沒有政府擔保能當成貨幣。但我們先回頭想一想貨幣的演進。
貨幣最原始的用途是用於交易的代替物。在貨幣發明以前,人們都是以物易物,十分不便。假設當時用一頭羊換一袋小麥,那半袋小麥就需要半頭羊。但羊無法拆成兩半,或著說被拆成兩半就死了。運送羊也很費力,羊得餵養,且會生老病死。
後來人們使用貝殼之類的物品當做貨幣。但或許因為太容易取得,人們接著選擇將稀有金屬鑄成錢幣。
到了更近代,人們發現大量的錢幣攜帶不方便,於是有了紙幣。而我們現在所使用的錢又稱為法幣,由政府透過儲藏相對應的黃金或是發行債倦來對其價值擔保。
貝殼當貨幣,從現在的角度看來很不可思議。可是事實上,只要人們願意接受,不管是貝殼、山羊、甚至是汽水瓶蓋或彈珠都可以當做貨幣。很多人小時候和同學間都有類似的經驗,用特定玩具當做貨幣。但我們為何不繼續用彈珠當貨幣呢?因為它不是好的貨幣。
三個好貨幣的條件
好的貨幣特性有哪些?簡單描述三項
1. 可以組成不同的面額
2. 耐久與可輕易用於交易
3. 容易識別真偽並確認價值
我們拿黃金來看好了。黃金開採不易,但是是相當穩定的元素,可以長久保存。其接受度之高,數千年來人們仍願意接受黃金來提供貨品或服務。其缺點在於重量很重,攜帶不方便,真偽也不容易辨識。
再來看法幣,就是現今用的錢。其價值是由政府透過立法,並儲存黃金或發行債卷來為其價值進行擔保。法幣比黃金更容易攜帶和使用,這也是為什麼我們現今很少使用黃金交易的原因。
然而法幣的缺點就是信任度不高。法幣的價值來自政府的擔保。人們願意接受法幣來提供商品與服務,是因為基於對於政府的以及它提供的擔保之信任。當政 府胡作非為濫印鈔票時,人們對法幣就會不信任,轉向黃金這類貴金屬來逃避風險。近年來黃金價格飛漲就可以看出人們對法幣的信心不足。
集中式數位貨幣繼承了法幣的缺點
而常見的集中式數位貨幣,透過發行商擔保,其實都只不過是相對應的法幣。像 PayPal 裡的錢,好壞都操之於政府和發行商的手上。在政府或是金流商的一聲令下隨時都可能化為烏有。
例如曾發生過許多獨立開發者遭 Paypal 凍結帳號,或是 Wikileaks 創辦人阿三吉透過 Paypal 收捐款被凍結帳號的事情。這些都顯示出集中式數位化管理的貨幣的缺點。
Bitcoin 的設計符合好貨幣的條件
最後焦點回到今天的主角 Bitcoin。它巧妙的地方就是在於它利用密碼學來達成上述的好貨幣的條件。它不受任何中央單位管理,性質較類似黃金。我們拿來跟黃金比 較,Bitcoin 被設計成其產出的量有受到限制,但供應量充足。它利用密碼學來確保製造 Bitcoin 非常困難,要偽造更是困難,但驗證卻非常簡單。
它以資料形式呈現並透過 P2P 網路進行交換資訊,因此很適合網路交易。儲存也很容易。簡單的來說 Bitcoin 可以被比擬成在網路上方便交易的黃金。
相較於黃金受人們的信任和使用已經有數千年的歷史,Bitcoin連五年歷史都不到,價格也一直在波動,政府對於這種貨幣的態度也還不明確,因此願 意接受Bitcoin的人還不多,但已經有越來越多的跡象,例如 WordPress.com 願意接受Bitcoin來提供部落格主機代管的服務,也有主機商願意接受Bitcoin來提供主機代管服務,Reddit接受Bitcoin,不久前重生 的MegaUpload後繼者以安全性為賣點的Mega也接受Bitcoin,相信在未來會有越來越多人願意接受Bitcoin
在此小結一下我們一開始的疑問,為什麼 Bitcoin 能夠當貨幣? 因為它滿足好的貨幣的需求,而且有人願意接受 Bitcoin 來提供商品和服務。以下我們列出各種貨幣的比較,就能更清楚理解 Bitcoin 做為網路貨幣的優勢。
貨幣從何而來?
相信大家心裡有個最大的疑問,就是最初的 Bitcoin 到底從何而來?答案就是礦工獎勵。在Bitcoin的設計中,最重要的結構叫做 Block,也就是區塊的意思。Block 裡面收錄有交易記錄等等重要資料,類似帳本。
要產生一個 Block 需要大量的運算資源,所以得提供一些獎勵給礦工來鼓勵他們生產 Bitcoin。因此系統的設計上對於產生 Block 的人,可穫得 50 Bitcoin。在以下的例子中,我們可以看見某個礦工產生了這個 Block,並將獎勵分別簽署給路人甲、乙和丙:
這些錢就是 Bitcoin 最原始的來源。你可以想像是金礦坑裡礦工很辛苦地挖礦,最終挖到了黃金。這個過程也因此被稱為挖礦(Mining)。
如何轉帳?
有了貨幣但不能流通也沒有任何用處。既然 Bitcoin 不是由某個單位集中管理,那要如何進行轉帳?答案是它運用了公開金鑰加密演算法來達成數位簽章。
公開金鑰加密演算法的概念很簡單,有別於對稱式加密演算法用同一把金鑰,公開加密法有兩把金鑰,分別是公鑰與私鑰。用公鑰加密出來的結果只能用相對應的私鑰解開;相反的,用私鑰加密的資料也只能由公開金鑰來解。一般公鑰是公開的,私鑰是保密的,如下圖所示:
如果把加密比擬為上鎖的話,對稱式加密是一般的鎖,開鎖和解鎖都是同一把鑰匙。而非對稱式加密的開鎖和解鎖用兩把不同的鑰匙;用公開金鑰上鎖之後只有私鑰能打開,反之亦然。
正因為這個特性,可以運用在很多地方,例如數位簽章就是一個很常見的運用。假設今天某富豪要死了,他在死前公開了他的公開金鑰,任何人都可以拿到。如此一來大家都可以用他生前公開的金鑰試著去解開加密的部份。
死後他的遺囑被公開,附帶著用私鑰加密過後的遺囑,如果能成功解密的話,因為只有當事人知道的私鑰能夠加密出公鑰能解的訊息,具有不可否認性,如此一來我們就能推定確實該富豪有簽署過這份訊息,以此達成簽章的效果。如下圖所示:
Bitcoin 就是利用公開金鑰和私鑰的數位簽章來完成轉帳。很多讀者可能容易誤解,資料都公開了為什麼要加密?加密在這裡並不是要保護資料的機密性,而是要證明當事人 有簽署過這份交易。而在本文裡的路人甲、乙和丙並不是真正的人名或是戶名,實際帳戶名在系統裡其實是一把公開金鑰,私鑰有如印章。如此一來,私鑰可以用來 簽署轉帳訊息給其它的帳戶,而公鑰除了當帳戶名稱也可以讓大家驗證轉帳訊息是否屬實。
當礦工有了最原始的錢之後,他們就能把錢花掉。花掉的方式,就是以個人的私鑰進行數位簽章簽下:
我某某人將 OO 元 轉帳給 某某人
這樣的交易訊息會經由 P2P 網路廣播出去,到最終網路上的每個節點都會收到。當然礦工也會收到。
在收到交易記錄後,礦工會先檢查這筆交易是否合法、有沒有重覆花費、來源的帳號是否有足夠的資金、數位簽章是否正確等。有問題的交易會被直接忽略。接著幸運的礦工在產生下一個 Block 時,便會將這所有收到的交易記錄都寫進去。
我們來看下一個 Block 的例子。在這一個新的 Block 中,我們可以看見轉帳的記錄。而在這個帳本被產生之後,它會透過 P2P 網路廣播到網路上,大家最終都會收到同樣的結果並且可以驗證,如下圖所示:
有了最新的 Block,搭配以前收到的所有 Block 裡的礦工獎勵和轉帳記錄,我們就能推斷出到底誰擁有多少錢。在 Block2 產生後,每個帳戶裡的錢如下列所示:
路人甲 10 BTC
路人乙 5 BTC
路人丙 20 BTC
路人丁 50 BTC
路人戊 5 BTC
路人己 10 BTC
在經過了兩個 block 之後,我們現在知道每個人身上有多少錢。依此類推,新的 block 不停產生,也就是新的貨幣不停地被開採出來,由礦工透過轉帳花掉最終流到一般人手上。
如何防止惡意擾亂者?
既然是網路上的東西,那如何確保它不受到惡意的攻擊與擾亂?Bitcoin 為了防止惡意攻擊,巧妙地利用了一個安全性的設計概念叫做「作工證明」。它的概念很簡單,就是要你做一堆沒意義的事情來證明你的誠意。這樣的概念很早就出 現在我們的現實生活中,就像有一個正妹,她有一大堆的追求者。然而這些追求者當中可能有一些並不是那麼有誠意,於是正妹就出了一些難題來考驗這些追求者。 如果真心想要追求的人就會努力解決難題,如此一來就能擋掉大部份沒有誠意的追求者。
類似的概念也被用在電腦系統上,例如防止垃圾信件上。垃圾郵件之所以橫行無阻,正因為發送的成本太低了。因此有些郵件系統便採用了作工證明,像是郵 件伺服器需要檢查額外的作工證明訊息才能把信寄出。如果我們讓現代電腦運算約一秒鐘才能把信寄出去,對正常使用者來說並不過份。但對垃圾信的發送者而言, 每封信多花一秒鐘將造成大量寄信不合成本。這樣的概念就稱為作工證明。
Bitcoin 就是利用作工證明讓世界上有興趣的人參與競爭。礦工必須算出一個下一個的 Block 雜湊函數值,其值的大小要小於特定的值才會被承認為合法 Block。因為產生的結果是亂數的分佈,誰也沒辦法預測,所以礦工競爭產生下一個 Block 就有如電腦不停的隨機開出樂透的數字,只要算出來的數字小於指定的值,礦工就中獎了,賺到50 BTC。
惡意攻擊者要產生合法的 Block,必須有足夠的運算資源。如果只是為了阻擾這系統,例如一直產生不包含交易記錄的 Block 讓大家無法查證交易是否成功,這樣做必需要和所有正常的礦工競爭。如我們先前所提的,挖礦的過程有如買樂透,抽中的機率很小;假設每張彩卷中獎機率一樣的 話,你得花費超過其它所有人買彩卷的金額加總,才有辦法得到超過50%的勝率進而擾亂系統。而能辦到這樣程度所需的運算資源成本花費是天價。因此即使是政 府也很難拿出這麼多運算資源,只為了擾亂這套系統。這裡我們可以見到作者設計時所設下的賽局巧思。
有沒有被破解的可能?
世界上任何系統都有可能被破解,Bitcoin也不例外,問題只在要花多少成本而已。如先前所提,Bitcoin 的設計讓大家競爭產生新的貨幣,這競爭過程中得花費大量的運算,因此要透過參與競爭來達成破解等目的成本太高。
那讀者可能會問,如果是帳戶的公開金鑰加密系統被破解呢?同樣的道理,要從正面破解公開金鑰所需要的運算量非常驚人。只要金鑰的長度夠長,以現代科 技還沒有辦法在短時間內破解,所花費的成本也是天價。反過來說,如果有一天公開金鑰加密演算法有辦法被輕易破解的話,你更該擔心的你在銀行裡的存款,因為 目前網路銀行的連線系統也是用這樣的加密技術。
比起擔心系統被攻破,擁有 Bitcoin 的人更該擔心私鑰的保管。一旦你的私鑰讓別人知道,對方就可以轉走你帳戶裡的錢。因此最好替你的私鑰加上一層只有你知道的密碼。
如何避免通貨澎脹?
現代的經濟系統裡,很常見到政府為了應付日漸龐大的支出,選擇以印更多鈔票的方式來支付。其後果就是通貨膨脹,所有人的財富都被稀釋了。
Bitcoin 不停地被製造出來,讀者心中一定也有同樣的疑問:如果製造 Bitcoin有利可圖,那麼越來越多人挖 Bitcoin,產生的速度越快,到後來難道不會通貨膨脹嗎?這樣的事情在 Bitcoin 的經濟體系裡是不會發生的。因為 Bitcoin 的作者考慮到了這點,當初就設計了挖礦的工作難度每週會自動調整一次。
參照上一週的挖礦速度,自動調整的目標是平均每十分鐘產生一個 Block。例如現在 Bitcoin 匯率這麼高,勢必會引來更多人參與挖礦,因此本週的 Bitcoin 產生速度可能會上升。系統在下週會去計算上一週 Block 產生的速度,校正為每十分鐘產生一個 Block 的預期數值。如此一來就能穩定產生貨幣。
除此之外,每十分鐘就收錄一次交易,也代表了使用者從匯款到確認交易被收錄,大約只要等個十分鐘。
礦工獎勵也會隨著時間遞減。一開始設定的獎勵是50 BTC,現在已降為25 BTC。隨著時間的推進,系統會不斷的減低礦工的獎勵,如下圖所示:
到最後礦工獎勵會被降為0,在那時就沒有任何新的貨幣會被產生。但問題來了,你會問那既然到最後沒有獎勵了,那哪來的礦工去進行挖礦,新的交易該怎麼辦?
設計者也考量到了這一點,所以每筆交易都可以附帶一筆「處理費用」。礦工除了挖礦獎勵以外,在收錄這些交易的同時,也會獲得這些交易處理費用。因此 在最後使用者為了交易快點能被收錄,都會自願加上交易處理費。有處理費可賺一樣可以吸引礦工來參與挖礦,由此可見設計者的巧思。
如何保護使用者的隱私?
隱私權越來越重要,Bitcoin 要如何保護隱私?一般的金錢在網路上做任何花費都會留下記錄,以錢追人都可以找到當事人是誰。但 Bitcoin 就很難找到當事人是誰。為什麼 Bitcoin 可以做到無法追蹤呢?因為它的帳戶其實就是一組公開金鑰與私鑰,任何人都可能可以產生這樣的帳號。同一個人可以產生並擁有成千上萬組的帳戶,在全世界的任 一帳戶之間轉帳也沒有任何限制。要證明誰擁有某個帳戶非常困難。
但說不可追蹤其實有點不精確,事實上它是可以被追蹤的,因為其 P2P 交換資訊的特性,所有帳號的交易記錄都是公開的。因此你理論上可以查到全世界所有的每個 Bitcoin 帳戶裡有多少錢,以及這些交易分別從哪些帳戶匯入。但如前面所述,很難證明到底是誰擁有這些帳戶。講白話一點就像是鈔票上沒寫名字一樣。
竟然有實體 Bitcoin?
Bitcoin 是網路貨幣,可以做成實體硬幣嗎?筆者在找相關資料時偶然發現實體 Bitcoin,長得像這樣子:
正面
背面。
這些實體 Bicoin 可在 Physical Bitcoins by Casascius 買到。到底是怎麼做到的呢?
首先鑄幣者存了相對應價值的 BTC 到一個新產生的帳戶,也就是1 BTC。然後把這個帳戶的私鑰印在一張紙片上放在硬幣裡封好。接著在外面印上了它的公鑰,所以任何拿到硬幣的人,都可以上網查詢這個帳戶裡頭是否真的有相對的幣值在裡面。
上圖所印的 135Kc4Gb 帳戶我們可以在 Block Explorer 搜尋,發現它裡面的1 BTC在2013年3月8日被轉出了。這表示有人打開了這個硬幣,並取得裡面的私鑰把這裡面的錢轉出去了。硬幣的封裝使用了易碎材質,如此一來,使用硬幣 裡的錢一定得破壞這枚硬幣。
網路上的花費和實體硬幣交易,兩者無法兼得,其中一個交易了另一個就無法進行。這樣的設計使得原本只能在網路上使用的貨幣也可以在現實中使用。但是 這之間存在著風險:你必須信任貨幣製造商不會在製造硬幣的同時,把私鑰偷記下來,然後轉出去。或者貨幣製造商在製造過程中將同一個帳號做成多枚硬幣。雖然 有這些疑慮存在,但是這依然是一個非常有趣的應用,不得不令人佩服設計者的創意。
Bitcoin 的缺點有哪些?
Bitcoin 並不是完全沒有缺點。以 Bitcoin 完全去中心化的設計來說,雖然讓任何人都難以控制,但同時也帶來了一些缺點。以往的所有資料經年累月下來會越來越多,使得每個客戶端都得保留這些資料,會 佔掉不少的容量和部份的運算資源。筆者相信之後會有解決方案出現。
在安全性方面,有人指出它可能容許多重花費,也就是同一筆錢可能達成多重花費。主要作法是在短時間內簽章多筆交易,利用 P2P 網路同步延遲的特性,把原本只該有一筆的花費送給多人。但只有第一筆收錄的交易會受到承認。這個問題影響事實上不大,收款方只要在收款時等約十分鐘,確定 自己收到款項的交易有被礦工收錄,再交出對方購買的貨物,就可以避免這樣的攻擊手法。
到底是誰發明 Bitcoin?
最大的疑問,或許是發明 Bitcoin 的人到底是誰?Bitcoin 的發明牽涉到了密碼學、經濟學、賽局理論和 P2P 網路等廣範的知識,當然也包含程式的開發,誰有這樣的能耐創造出這種改變世界的新科技?
可惜的是作者到底是誰至今仍是一團謎。一位自稱 Satoshi Nakamoto(中本聰)的人,在2008年釋出了 Bitcoin 的計畫,在2010年他就離開了這個專案的開發。沒有人知道 Satoshi Nakamoto 是不是他的真名,也沒人知道他是誰。
他在第一個 Block 裡藏了訊息:
The Times 03/Jan/2009 Chancellor on brink of second bailout for banks
這句話出自於刊在《The Times》的「Chancellor Alistair Darling on brink of second bailout for banks」這篇文章,主要是描述英國總理正在考慮第二次的紓困案。從中可以看出他對於現在的政治與經濟體系的不滿。還有更多關於作者的蛛絲馬跡,可以參 考這篇「Who is Satoshi Nakamoto? 谁是比特币背后的黑手?」
不管他是誰,我們可以確定這樣不願為人知的天才靠著技術試著改變世界,不論 Bitcoin 成功或失敗,他都已經在網際網路發展的歷史中寫下了傳奇的一頁。
結論
如果讀者有看過一部科幻漫畫《銃夢》,應該還記得裡面的交易都是用晶片當做貨幣。Bitcoin 的出現就有如從科幻劇情裡跑出來的貨幣。這是人類有史以來第一次大量使用密碼學、去中心化設計的網路數位貨幣。從2008年發佈至今 Bitcoin 已經存活了三年,尚未出現重大的安全性問題。
政府對於這種憑空生出的貨幣態度還有待觀察。有人利用 Bitcoin 的暱名性進行洗錢等非法行為,但也有人用於捐款、線上購物等合法用途。我相信世人不會因為現金會用於犯罪而禁止使用現金。
有人說控制貨幣就等於控制一個國家,當政權過於腐敗,試圖利用貨幣來控制人民時,Bitcoin 不受政府控制的特性就可以發揮用處。筆者在寫這篇文章的同時也擁有一些 Bitcoin(編按:你也發了),並不是因為期待它漲價,而是一種見證歷史的心情,更是一種相信網路帶來的自由,是對抗腐敗政府最後一道防線的信仰。你 相信網路自由嗎?:)
0 评论:
发表评论