加密貨幣的出現,給了人們一種從未擁有過的自由。你可以輕易的擁有自己的錢包、轉帳到地球另一端、買賣商品、投資新創公司等等。
然而,這種自由地持有並轉移資產的權力,真的可以套用到所有的加密貨幣嗎?或者更進一步,隨著各種代幣的出現(像是ERC20代幣),以及各種去中心化應用的爆紅(像是CryptoKitties這類的遊戲資產,或是Fomo3D之類的賭博彩券。),我們開始持有各式各樣的加密資產。當我們持有這些加密資產時,真的就等同於持有比特幣一樣的安全嗎?
對使用者來說,這些加密資產不管看起來或用起來都沒什麼區別。我們沈浸在名為去中心化的廣告詞中,以為這些新興的加密資產一樣值得信任;卻從未真的檢視,我們倒底對手上的資產有多少掌控權。
比特幣之所以有價值,其實並不是因為區塊鏈技術是不可修改的,也不是因為區塊鏈技術打破了傳統國界的限制。最主要的理由,是因為比特幣是「去中心化」的。
去中心化,其實就是讓每個人擁有對資產的掌控權。
為什麼「去中心化」如此重要?
去中心化是一個不太好理解的概念。我們可以先想想,什麼「不是去中心化」,也就是中心化。
我們每天在用的銀行系統就是一個中心化系統。當我們想轉帳給任何人,都要經過銀行同意。銀行就是這個系統的中心,有權控制一切。而比特幣的出現打破了這個中心,我可以用比特幣轉帳給任何人,不需要經過某個中心的同意。
中心化最大的缺點,就是它比較脆弱。像是銀行這個權力中心可以輕易掌控你的財產。可能被內部人士濫用,也可能被外在駭客攻擊。中心化系統有單一弱點,一個意外就可以讓系統崩潰,你就可能一夕之間失去你的財產。仔細想想,你的資產其實不是你的。在一個中心化系統中,你對自己的資產沒有真正的掌控權。
相反的,去中心化的系統就是一個沒有特權的系統。在這個系統裡,你擁有真正的掌控權,沒有權力中心可以一夕之間傷害我的資產。你的資產是真的屬於你,沒有人可以奪走。
然而,去中心化的系統難以設計,也難以衡量。一個加密貨幣從開發到運作,有太多面向需要被去中心化。從開發團隊組成、到演算法規則設計,到程式碼實作版本、到挖礦算力分佈、到運算節點位置、到資產分佈等等,只要任何一個面向落入中心化,就會讓少數人可以掌控這個系統,讓整個系統變得中心化。
目前最普遍,去中心化程度也最高的兩種加密貨幣,就是比特幣和以太幣。儘管這些加密貨幣都不能稱為是完美的去中心化,但依然是目前運作最好的大規模去中心化系統。這樣的系統,有助於改變過去封閉、緩慢、特權充斥的傳統金融界,把掌控資產的權力還給每一個人。
要讓去中心化的規則,執行在去中心化的機器上。
既然去中心化是要賦予每個人對資產完整的控制權。這件事在比特幣和以太坊上是怎麼運作的呢?
假設今天我想發送比特幣給另一個帳戶,我要先用自己的私鑰對這個交易簽名,然後這個交易會被發送到成千上萬維護區塊鏈的電腦上被處理。當然,加密貨幣的發送有很多細節,但可以視為一套規則的建立與執行:開發團隊撰寫了一套規則,讓使用者根據規則來使用;然後維護區塊鏈的電腦才真正執行這套規則。
規則本身,必須遵守去中心化的理念,以確保每個人的資產被私鑰保護。也就是說:「除了我以外,沒有其他人可以未經允許動用我的錢。」以及「當我要發送我的資產時,沒有其他人可以阻止我。」系統中沒有一個私鑰擁有特權,可以侵犯其他私鑰的權益。即使是開發團隊的私鑰,也無法擅自發送或限制其他使用者的資產。
為了確保這套規則會被落實,就不能由開發團隊來自己執行。而是交由成千上萬自願維護區塊鏈的電腦來執行。換句話說,規則的執行面也是去中心化的。
《Mastering Bitcoin》的作者Andreas Antonopoulos曾說過一句很有名的話:「有私鑰,就是你的比特幣;沒私鑰,就不是你的比特幣。」(Your Keys, Your Bitcoin. Not Your Keys, Not Your Bitcoin.)他希望人們不要把比特幣存在交易所,或是託人保管,因為唯有學會自己保管私鑰,才算是真的掌控自己的比特幣。
這句話之所以成立,正是因為比特幣先制定了去中心化的規則,並執行在去中心化的機器上。
「去中心化應用」(DApp)未必真的去中心化
2015年,以太坊這個區塊鏈帶來了一個重要的創新。它讓區塊鏈不再只是記錄交易,還可以執行程式。
這些程式碼又被稱為智能合約,執行在以太坊區塊鏈的虛擬機器上。如此一來,人們不再需要打造新的區塊鏈,也不需要重新建立成千上萬的電腦節點,只要使用以太坊現成的區塊鏈節點就好。用智能合約撰寫的應用程式,因為是執行在去中心化的電腦上,所以又稱為「去中心化應用」(Decentraliezed Application),簡稱DApp。
於是各式各樣的DApp被創造出來。像是可以用智能合約撰寫ERC20標準的代幣,讓新創公司可以發行代幣。像是以謎戀貓(Cryptokitties)為代表的卡片遊戲,讓每個玩家都可以持有自己的虛擬寵物。像是最近很瘋狂的Fomo3D這類區塊鏈賭盤,讓玩家可以買彩券爭取中獎機會。以及基於智能合約的交易所,讓使用者可以交易代幣。
不管是代幣、遊戲寶物、彩券、或是交易所餘額,其實背後都是一種帳本,紀錄我持有多少資產,你持有多少資產。絕大多數的DApp都可以視為一種加密資產。這些資產使用起來和非常相似,但其智能合約的寫法可能完全不同。
這帶來了一個奇怪的現象:沒人規定智能合約的內容要符合去中心化的精神。
用比較惡意的例子來說,開發團隊可以寫一個ERC20代幣,暗藏機制可以轉走其他使用者的代幣。也可以寫一個集換式卡片遊戲,暗藏機制可以沒收其他使用者的卡片。或是寫一個賭博遊戲,讓特定使用者的帳號特別容易中獎。諸如此類。
換句話說,你可以寫一套中心化的規則,執行在去中心化的區塊鏈上,仍然可以稱為DApp。
有人會說,開發者帳號擁有特權是很常見的設計,只是為了方便管理,並非什麼惡意的理由。但就像前面說的,擁有特權本身就是一種中心化的設計。使用者很難去分辨哪些特權是可接受,哪些是不可接受。
尤其是當這些DApp打著「去中心化」的旗號來吸引使用者。使用者卻渾然不知:這一次,持有私鑰也不保證資產就是你的。不是所有加密資產都和比特幣一樣。
怎麼判斷智能合約會不會保障我的資產權益?
很遺憾的,如果不去看智能合約的程式碼,一般使用者是沒辦法知道某個DApp的加密資產是否只有自己可以存取。
這也和我們的認知有關,我們本來就不該全然相信每個合約。
在現實生活中,我們不會以為一紙合約和現金是一樣的,而是應該去看合約怎麼寫。合約總是帶有某種不對稱性,保障特定一方的權益較多。相較起來,現金就是比較去中心化的設計。想想保險公司的儲蓄險吧。儲蓄險雖然看起來和銀行存款很像,有金額、有利率,但實際上遠遠不如銀行存款能夠自由使用。合約限制了你對資金的掌控權,讓保險公司得以不讓你動用資金,或是跟你收取違約金。你以為存在合約裡的錢,其實不完全屬於你。
智能合約也是一樣,幾乎所有DApp都帶有中心化的色彩。開發DApp的多半是單一組織或企業。為了營利和管理的需求,必須賦予管理者某些中心化的權力才能運作,不然會非常難使用。但這些權力可以被擴張到什麼程度呢?或許最簡單的標準,就是管理者的權力,不能直接侵犯到使用者對資產的控制權。
JOYSO是一個很好的例子。作為一個去中心化交易所,JOYSO在智能合約裡小心地限制了管理員的權限。管理員無法動用或凍結使用者的資產;能做的就只有媒合訂單,以及收取雙方同意的手續費。假使有一天,管理員的帳號被駭了。駭客也只能偷取本來就屬於管理員的手續費,無法偷取使用者的資產。
藉由有意識地縮限自己的權力,JOYSO讓使用者保有最大的資產掌控權,這才是符合去中心化精神的設計。然而,你不能期待每個DApp都是如此。
你可以同樣用智能合約寫一個交易所,卻給予管理員特權可以動用使用者資產。這樣其實和中心化交易所沒有兩樣,但你依然可以對外宣稱這個交易所是一個「去中心化交易所」,只因為你的交易所是運行在區塊鏈上。這種宣稱去中心化,卻暗藏損害使用者權益的中心化規則的DApp其實非常多。
在今年七月,知名區塊鏈專案Bancor的交易平台被駭客攻擊,損失了大量加密貨幣。Dogecoin創辦人Jackson Palmer隨即針對這個事件提出一個議題。他認為像是Bancor這樣的專案明明號稱去中心化,卻在被駭之後被證明了管理員有權限凍結使用者的資產。那麼,還有多少其他「去中心化」專案也暗藏中心化的機制呢?
事實上,這樣的中心化機制在DApp裡非常普遍。以ERC20代幣來說,除了ERC20的基本功能,開發團隊往往會加入各式各樣的額外條件,來增加管理者對代幣的控制。像是上述的例子,Bancor的管理者能夠「凍結」使用者的代幣;使其不能傳送。有些代幣則利用「白名單」或「黑名單」的設計,只允許白名單上的地址可以傳送交易。甚至有些代幣管理者能夠直接「轉移」被視為有問題的資金。
這些機制的存在,都有很好的理由,像是方便管理或符合金融法規。但同樣的機制也可以被用在完全錯誤的地方。中心化設計的壞處往往隱而不顯,整個產業也缺乏一個清晰的衡量方式。人們在使用DApp時往往不知道自己用了什麼,也無從保護自己。
結語
我們能做的,就是學習用去中心化的思維檢視自己的資產。
當你把以太幣交易成代幣時,你要意識到,這是把一個高度去中心化的資產換成沒那麼去中心化的資產。當你把以太幣放到智能合約裡時,你要意識到,這是把資產從你能高度掌控的地方轉移到你可能難以掌控的地方。
去中心化的理念可能還需要數十年才能普及,才會讓每個人理解並重視。我們會需要新的工具幫助人們為自己的資產把關,不被中心化的不對稱設計所傷害。人們會需要專業人士可以諮詢,像是懂得智能合約的法律人士。或需要完善的合約樣板,來創造安全對等的智能合約。
我們應該把暗藏中心化設計的區塊鏈專案,視為暗藏後門或漏洞的開放原始碼專案。去中心化的議題就和資訊安全一樣,人們一開始不會有感覺,直到被傷害時已經來不及。儘管不是人人都有能力分辨,但只要區塊鏈是開放的,專業人士就有機會去揭露這些不好的設計。這也是開放原始碼的目的。
我們沒有辦法預測未來,也無從知道去中心化的科技會經歷什麼樣的發展途徑。在未來很長一段時間裡,中心化的設計仍會是常態。科技哲學家Kevin Kelly在《必然》裡面説到,完全去中心化的組織實務上很難運作。我們還是需要一部分中心化的設計,來組織與領導整個系統。然而這次與過去不同的是,網路給了我們開放的環境與良好的協作方式。我們有機會保護每個人不受權力中心的控制,讓權力不會無限擴張。關鍵並不在於我們做不到,而是人們何時會意識到掌控權的重要。
值得慶幸的是,歷史總是朝著去中心化的方向前進。維持少數人利益的舊系統會慢慢瓦解,讓人們擁有平等權益的新系統會被建立。我們看到國家從君王制走向民主制。這個世界總是從單一集權走向多元平等,而不是反過來。就像《反脆弱》的作者Taleb所說的,你能夠對未來最好的預測,就是找出脆弱的系統,然後賭脆弱的系統會崩潰。
中心化的設計會逐漸被淘汰,去中心化的版本會存活下來。我們必須學會分辨,自己的資產應該放在哪裡。