比特幣、以太幣是全球市值前兩大的加密貨幣,近期皆創下史上新高,但這兩種加密貨幣差別在哪?《以太奇襲》一書講述以太坊的發展歷程,並指出兩種加密貨幣與區塊鏈技術上的差異。
具備「圖靈完備性」,就能執行任何程式碼
他們開了二十小時的車,直奔樂文和妻子度假的溫泉會館,中間僅停下來加油,一整路都在聊加密貨幣和區塊鏈技術,將如何改變世界。
在溫泉度假會館,他們與樂文一起跳進湯池,繼續這種有關未來發展的長談。
他們聊著一個接一個的概念,每個概念都比前一個更瘋狂。他們在按摩浴缸、桑拿浴、蒸汽室之間來回切換時,隨著新奇的點子源源不絕地冒出,他們的大腦彷彿不斷受到震撼。
「像萬事達幣那種以比特幣為基礎的開發,可以創造出那麼多的可能性。現在還有一些完全獨立的區塊鏈也出現了,例如合約幣和未來幣(NXT)。」樂文說,「每個人都想把區塊鏈技術擴展到P2P現金以外。」
他們聊到布特林的《以太坊白皮書》時,是穿著白色浴衣和拖鞋,躺在池邊的躺椅上。
東諾弗里奧花了點時間閱讀那份白皮書,他說:「所以這個東西想成為我們一直談論的所有代幣及區塊鏈應用的平台,但它沒有為各種用法設計特定功能。」
「沒錯,它是以一台機器做為核心。」樂文說。
「以太坊虛擬機(Ethereum Virtual Machine)。」東諾弗里奧一邊說,一邊翻著那份白皮書。
「對,它具有圖靈完備性(Turing-complete),可以處理你扔給它的任何程式碼片段。」樂文說。
「圖靈完備性」是以數學家艾倫.圖靈(Alan Turing)命名的概念。具有圖靈完備性的機器,能執行任何程式碼。比特幣有一種支持某種運算的手稿語言,但以太坊的圖靈完備語言,是為了支持程式設計師夢想的任何東西,而且依然以分散的方式運行。
「具圖靈完備性的機器有個問題:無限迴圈可能毀了它。例如,你叫電腦做X+X,只要結果小於五就一直加下去,你也告訴電腦X等於一。電腦會一直加X,加到機器當機為止。」樂文說。
東諾弗里奧說:「哦,所以它很容易遭到攻擊。」
樂文回應:「對,但以太坊用其內部加密貨幣『以太幣』解決了這個問題。每個運算步驟都有成本,用戶需要拿以太幣付費。每次你叫以太坊執行一段程式碼時,你也要告訴它,你最多願意支付多少以太幣。如果它得不到足夠的錢來執行程式,機器就會停下工作。」
「所以,以太幣不單只是像比特幣那樣的P2P兌付而已,也用來讓網路運轉?」東諾弗里奧說。
「對,所以布特林把以太幣稱為『加密燃料』,它是推動以太坊網路運作的燃料。」樂文說。
東諾弗里奧把身體靠向椅背,手指抵著太陽穴,大腦再次感受到震撼。
以太坊和比特幣一樣,是採用工作量證明的區塊鏈,這表示礦工會因為驗證交易而獲得以太幣做為獎勵。礦工決定要不要為了賺酬金而去處理那筆交易。以太坊把燃料跟以太幣分開,用意是即便加密貨幣的價格會隨著市場上的供需波動,運算成本仍可持平。例如,一筆交易的運算成本是100 gas,它永遠需要100 gas,但是發送者付給礦工去處理交易的以太幣數量,則根據以太幣的市價而定(gas是以太坊用於衡量程式執行一個動作所需「計算量」的單位。當你執行交易時,必須支付礦工處理費,而處理費就是以gas計算,並以「以太幣」支付)。
比特幣和以太坊的帳戶模式,就像錢包和存摺
以太坊與比特幣區塊鏈的一個顯著區別,是帳本記錄方式不同。
比特幣是使用「未花費交易輸出」(Unspent Transaction Output, UTXO)模式。比特幣帳戶的每一筆餘額,是由其他交易剩餘未花用的比特幣所組成。一筆餘額通常包括許多UTXO,就像一個實體錢包,裡面可能包含許多面額的鈔票和硬幣。用比特幣買東西,你可能必須使用UTXO的組合,就像你用十美元和五美元的紙鈔去買價值十二美元的東西。這筆交易餘下的三美元,將成為一個新的UTXO。
以太坊則是使用「帳戶/餘額」(Account/Balance)模式,追蹤每個帳戶的總餘額或「狀態」。如果說比特幣的UTXO模式類似鈔票和硬幣,那麼以太坊的模式比較像支存帳戶,可以針對可領取的金額進行細膩的掌控,更容易執行較複雜的程式。
布特林在白皮書中舉例,避險合約(hedging contract)就比較適合採用以太坊,而不是比特幣。例如,當A和B都投入價值一千美元的比特幣,三十天後,指令碼會把價值一千美元的比特幣發送給A,其餘的發送給B。因為UTXO只能選擇全有或全無。但以太坊則有兩種帳戶:外部擁有帳戶(externally owned account)與合約帳戶(contract account)。外部擁有帳戶是由人們的私鑰所控制,不含程式碼。合約帳戶是由程式碼控制,每次合約帳戶收到一則訊息,程式碼就會啟動,讓它把訊息讀寫到內部儲存中、發送其他訊息,或創造新合約。
這促成了以太坊和比特幣的另一個關鍵差異,布特林稱之為以太坊的「第一類公民」(first-class citizen,程式語言中的術語,亦稱First-class object,指能在程式執行期間,創造並做為參數傳遞給其他函數或存入一個變數的實體)——合約帳戶和外部帳戶擁有同等的權力,而這個特徵也使得自動執行程式碼的應用程式變得更加容易使用。如果區塊鏈技術的目的是去掉中介者,這個概念就深植在以太坊的核心中。
這些部分一起組成一個基礎層:內建有圖靈完備性程式設計語言的區塊鏈,能讓任何人編寫智慧型合約及分散式應用程式。
布特林寫道,有些應用程式可以建立在以太坊的基礎上,例如數位貨幣、避險合約、網域名稱系統、信譽系統(reputation system,一種由實體相互給出看法和評價,以確定這些實體的等級和類別的合作性篩選機制。例如eBay的信譽系統,是在每一對用戶完成一次交易之後,記錄下雙方的評級)、股東經營的公司(資金要轉移到哪裡,可由法定人數的投資者來決定),「甚至有可能成為社群網路的基礎」。另一個例子是農作物保險。「怎麼做?很簡單,就是依據天氣資料、而不是任何價格指數」,換言之,就是一種分散式的交易市場。類似的例子不勝枚舉。
布特林想鋪好軌道,讓你能想像的任何交易都能以P2P、不可竄改、不被審查的方式運作。他想像的是一台世界電腦,把權力從那些傲慢的公司與政府的手中拿回來,讓世界變得更有效率、更公平。可能性無限寬廣。
「其他加密貨幣的目的是增加複雜性,以及增加『功能』的數量。」他寫道。
以太坊則反其道而行,取消了一些功能。以太坊的協定不「支援」多簽交易、多重輸入與輸出、雜湊碼、鎖定時間、甚至連比特幣提供的許多功能也不支援。所有的複雜性都是來自一種有圖靈完備性的全能組合語言,這種組合語言可以用來打造任何可用數學描述的功能。
白皮書寫到最後,布特林的興奮之情溢於言表。
「因此,我們有一種加密貨幣協定,它的程式庫非常小,但是它可以做任何加密貨幣所能做的一切。」白皮書如此總結。
作者介紹|卡蜜拉.盧索
加密科技內容平臺The Defiant創辦人,曾長期任職《彭博》新聞社(Bloomberg News),先後派駐布宜諾斯艾利斯、馬德里、紐約等城市,主跑新興市場、歐洲股市、數位資產等路線。她曾在智利最大報《水星日報》(El Mercurio)工作,並榮獲巴西證券交易所(BM&F Bovespa)頒發的「線上新聞寫作」首獎,是加密貨幣圈最多產、最受肯定的媒體工作者之一,常受邀在業界大會上演講與接受媒體訪問。
本文經授權轉載自早安財經文化《以太奇襲:一位19歲天才,一場數位與金融革命》
責任編輯/郭家宏