- 信用超導重塑社會經濟:區塊鏈創新理論與實踐
- 王春暉主編
- 3395字
- 2021-07-07 15:58:56
第三節 區塊鏈2.0(以太坊)和智能合約
一、以太坊橫空出世
2013年12月,以太坊(后被稱為區塊鏈2.0)登場。俄羅斯裔加拿大人維塔利克·布特林(Vitalik Buterin)剛剛年滿18歲,正是滑鐵盧大學的本科學生。維塔利克已經在比特幣社區浸泡跟蹤了數年,對比特幣和比特幣背后的區塊鏈技術有了自己的想法。這些想法變成了區塊鏈2.0的宣言—以太坊的白皮書。
以太坊(Ethereum)是一個開源的、基于區塊鏈技術的、具有智能合約功能的公開分布式計算平臺。以太坊有自己的編程語言(腳本語言),以實現智能合約這一以太坊的最大亮點。以太坊提供了去中心化的“圖靈完備”(圖靈完備的編程語言原則上可以解決一切可計算的問題,或者可以實現一切原則上可以通過計算機實現的功能)的虛擬機—以太坊虛擬機(Ethereum Virtual Machine,EVM),可以將分散在全網的公共節點連接成一個虛擬機器來執行這個圖靈完備的腳本語言。
通常,以太坊(Ethereum)包含4種義:① 以太坊關于價值及其轉移的智能合約;② 由以太坊及其智能合約搭建起來的以太坊價值網絡(價值轉移傳遞的網絡);③ 以太坊價值網絡上運行的分布式應用及其生態;④ 以太坊虛擬數字貨幣—以太幣。
以太坊發行虛擬數字貨幣—以太幣(Ether)來支持技術生態。以太幣可以用來在以太坊價值網絡的節點間傳遞。
以太坊還有一種特殊的東西,就是用作參與節點共識計算活動的“助燃劑”,稱為“燃氣”(Gas),以計量以太坊網絡上應用交互行為的成本。最初設計的目的是防止惡意浪費網絡資源甚至借此攻擊以太坊網絡,也用來防止過度無用交易,防止垃圾交易和網絡資源浪費。每一筆交易背后都包含著成本,這讓以太坊成為眾多去中心化的分布式應用喜歡的底層區塊鏈基礎構架—任何流轉都有費用,都可以打上價格的標簽出售。
比特幣啟發了不少奇思妙想,而以太坊正是其中最耀眼的一個。以太坊明確指出,區塊鏈網絡可以實現比內置信任的虛擬數字貨幣更多的功能。
二、智能合約
比特幣的單一“貨幣”功能無法很好地滿足這些非支付應用場景的需求。因此,以太坊在比特幣的基本框架和概念基礎上加入了“智能合約”,使系統可以運行定制化的分布式應用(DApp),讓用戶可以在區塊鏈網絡上進行任何交易,并事先對任何交易的合約編程。
以太坊的基本想法是,運行在以太坊網絡上的計算機會展開競爭,爭奪執行分布式應用的代碼指令(發行和轉移數字資產等)的機會。若勝出,則這些計算機會獲得以太坊的代幣以太幣(Ether)作為其提供的運算成果的回報。因為該網絡是分布式的,所以這些分布式應用能夠以完全公正的方式運行,用戶可以相信運行結果是與合約規定一致的。如果這個平臺能夠實現維塔利克等人的期望,它就會相當于一個全球化的、去中心化的虛擬計算機,并總是能在無人掌控的情況下執行用戶的代碼指令。
以太坊引發了極大關注。相關社區的人們意識到,這會是首個真正可以實現可擴展的分布式應用開發的平臺。在之后的數年,這個開源平臺日漸成長,吸引了眾多充滿熱情的應用程序開發者。
這個平臺最關鍵的突破點是智能合約。在比特幣之前,尼克·薩博就已經提出了智能合約的初步概念。而維塔利克在區塊鏈1.0的基礎上加入智能合約,就更進了一層。
智能合約體系包含三個層面。
第一,智能合約編程語言。這是一種“圖靈完備”的腳本語言,用于描述分布式網絡上節點間的交易合約。這種合約可以描述任意的尤其是各種帶條件的交互行為規則,而比特幣系統只有隱含的獲得、發送、接收比特幣這些簡單合約行為。
第二,智能合約作為虛擬機環境。用腳本語言編寫的合約程序在這樣的虛擬機上運行。
第三,智能合約還是一種機制。這種機制使得系統內交互行為的合約能夠在符合條件情況下被觸發而不折不扣地執行。
至此,智能合約加上區塊鏈1.0體系已經有的分布式網絡同步工具—共識算法、鏈式數據記錄結構、加密數字簽名等,區塊鏈系統才獲得了真正“信任內置”,也就是可以完全不需要外部環境(包括外部中心化節點或中介節點)提供持續的信任支持,系統自身就可以維持一個內部信任環境。
可以想象,在社會與經濟的交互或交易行為中,契約或合同將被智能合約編成代碼,從而實現“條件觸發,即可執行”“不受人為干預,執行不打折扣”的嚴格公平社會和經濟行為。由此,我們可以展望一個只需依靠數字技術保障的社會和經濟交互行為的數字治理模式和方案有可能成為現實。于是人們對以太坊的進展寄予了厚望。
2014年1月,維塔利克在北美比特幣會議上宣布了以太坊。他希望打造“為去中心化應用程序而設的安卓系統”,這個系統應該像智能手機的安卓系統一樣,是一個開放的平臺,在上面人們可以設計任何新型的應用程序,并能夠在以太坊的無人掌控的計算機網絡中,以去中心化的方式(而非在某個公司的服務器上)運行這些程序。維塔利克為實現這個目標甚至從滑鐵盧大學退學,專注打造這么一個理想中的“去中心化全球超級計算機”的系統。
三、高光背后的陰影
以太坊的發展有光彩也有陰暗。目前,以太坊上活躍有近1300個分布式應用程序。系統內置的以太幣從2015年中的1美元多上升到2018年初的近1200美元。維塔利克及其追隨者們在這過程中成為千萬乃至億級的富豪,維塔利克本人還在以太坊相關社區群體中獲得了如宗教領袖般的崇拜。
但是現實情況是,以太坊的技術仍然處于早期階段,很不完善,也有不少漏洞。
首先,原本為降低交易成本而設計的智能合約,為全網絡分布式運算DApp設計的系統,為了避免惡意攻擊和浪費系統資源,又采取了運行DApp收取Gas作為運行費用的方案,交易成本不但沒有降低,而且增加了。這自然背離設計的初衷。
其次,以太坊系統設計的靈活性很強,在計算能力應用上提供了很多場景,這也為攻擊者大開方便之門,造成了嚴重后果。例如,以太坊容易遭受分布式拒絕服務攻擊(DDoS),黑客發現了代碼中的漏洞,并通過海量的交易合約設計堵塞網絡中負責驗證賬本的節點,讓系統癱瘓。而ConsenSys公司設計開發的系列工具一方面讓開發者方便地在以太坊上開發自己的分布式應用、錢包和智能合約應用,另一方面也為惡意的黑客提供了機會。以太坊聯合創始人設計的錢包就在一場攻擊中使得用戶損失了3000萬美元。
再次,以太坊與比特幣有很大不同。比特幣從一個匿名的創始人和一小群追隨者這樣不為人知的技術極客開始,逐漸為人所知,比特幣一開始總額為零,隨后才被參與者逐漸獲得;而以太坊一開始就預先設置了7000萬個以太幣,其中一部分分配給開發、管理、市場銷售、創始人等,另一部分則預售給了參與公眾而籌集資金。以太幣上千倍的價格增長使得當時的參與者成為巨富。這使得以太坊的早期參與者、創始者被認為將個人利益放在首位,而嚴厲的批評者則直言不諱其“割韭菜”的投機本質。
最后,漏洞修補機制。2016年6月,以太坊基金The DAO因被攻擊而損失了5500萬美元的以太幣。在攻擊者將盜取的資金抽空之前,開發者有機會將漏洞堵上,但并未行動。以太坊社區主導者陷入兩難,若以太坊決定用任何分叉的手段作為解決方案,一個由機器來執行的智能合同竟然會被撤銷、推翻、回滾,那比現在的紙質合同也沒有好到哪里去,這樣的決定對以太坊的聲譽帶來的破壞會是深遠的(畢竟以太坊的創始,舉的就是去中心化、不可撤銷篡改之類的烏托邦大旗);但是什么也不做,嚴格遵從原有的The DAO的智能合同,雖然可以避免被指責有道德風險,保護了The DAO的宗旨,卻顯然漠視了大多數投資人的利益。事實上,不管怎么做,以太坊都受到了嚴重傷害。該事件導致以太坊的一次硬分叉,產生了“以太坊經典”(Ethereum Classic),而黑客攻擊者賬號雖然被監視但被盜竊的以太幣并未能取回。據猜測,攻擊者已通過其他方式(可能是事先持有空頭套利)完成獲利離場。
這些事件對于一個標榜著“內置信任”、被當作新型社會和經濟的數字治理新模式新手段的未來希望而言,無疑是致命的“當頭一棒”。
當然,這里尚未考慮以太坊本身的系統承載能力和執行效率。前者由一次實驗給出了答案,以太坊曾推出一個完全基于以太坊網絡智能合約的分布式應用——“Crypto Kitties”電子貓小游戲,用戶可以上線養貓、繁殖貓、賣貓。這個游戲已經創造了數百萬美元一只電子貓的瘋狂記錄。然而,這個游戲上線初始就展示了以太坊系統的脆弱,僅約20萬用戶集中并發的服務需求直接令系統長時間無法響應——系統崩潰了。換句話說,以太坊的最大規模響應能力也就是這區區20萬。至于服務效率,目前的數據——兩位數的每秒服務響應數(TPS)顯然是無法實現任何一種實用的商業系統功能,任何一種我們熟悉的支付平臺每秒的處理速度都是以萬計量的。
顯然,以太坊尚未達到在大多數社會和經濟真實場景下的實際使用能力。