官术网_书友最值得收藏!

1.3 以太坊與智能合約

作為全世界第二大數字貨幣,以太坊(Ethereum)借鑒了比特幣區塊鏈的技術,在后者基礎上進行了應用范圍的擴展。如果說比特幣是利用區塊鏈技術的專用計算器,那么以太坊的目標,就是想成為利用區塊鏈技術的通用計算機,超越記賬功能,應用到各個場景。

以太坊打造了一個運行智能合約的平臺(Platform for Smart Contract),該平臺支持圖靈完備的應用,按照智能合約約定的邏輯自動執行,支持Golang、C++、Python 等多種語言實現的客戶端。與比特幣相比,以太坊最大的不同點是:它可以支持更加強大的腳本語言(用技術語言講,就是圖靈完備的腳本語言),允許開發者在上面開發任意應用,實現任意智能合約,這也是以太坊最強大之處。簡單粗暴地講,以太坊=區塊鏈+智能合約。

在本書中除了第2章,我們并不想太過深入地探討技術原理,所以在這里也是點到即止。如果有興趣,讀者除了可以在第2章中略微深入了解一下以太坊之外,還可以從文末列出的參考資源中了解更多信息。

什么是智能合約

最早提出“智能合約(Smart Contract)”一詞的人,有據可查的是計算機科學家尼克·薩博(Nick Szabo)。在其網站主頁上,他將智能合約定義為:

A smart contract is a computerized transaction protocol that executes the terms of a contract.

智能合約就是能夠執行合約條款的計算機化的交易協議。其出發點就是要在互聯網和電子商務中,讓陌生人之間實現類似于法律合同效用的商業行為。

不過尼克·薩博關于智能合約的工作理論遲遲沒有實現,一個重要原因是因為缺乏能夠支持可編程合約的數字系統和技術。智能合約看上去就是一段可用計算機執行的程序,滿足條件后準確自動地執行。但傳統技術即使通過軟件限制、性能優化等方法,也無法同時實現區塊鏈的兩大特性,即:一是數據無法刪除和修改,只能新增,保證歷史的可追溯性,同時作惡的成本將很高,因為其作惡行為將被永遠記錄下來;二是去中心化,避免中心化因素的影響。

如果說比特幣引領了區塊鏈技術,那么以太坊則讓智能合約復活。而且智能合約程序不止是一個可以自動執行的計算機程序,它自己就是一個系統參與者,對接收到的信息進行回應,可以接收和儲存價值,也可以向外發送信息和價值。這個程序就像一個可以信任的人,它可以臨時保管資產,而且總是按照事先約定的規則執行操作。

下面這個示意圖就是一個智能合約模型(見圖1-5):一段代碼(智能合約)被部署在分享的、復制的賬本上,它可以維持自己的狀態,控制自己的資產,對接收到的外界信息或者資產進行回應。

圖1-5 智能合約模型

例如,一個人可能有一個存儲合約,形式為“A每天最多可以提現X個幣,B每天最多提現Y個,A和B一起可以隨意提取,A可以停掉B的提現權”。對這種合約符合邏輯的擴展就是去中心化組織(DA O)自治地管理組織的資產,并用智能合約的方式來編碼,用程序實現這些組織的規則。以太坊的目標就是提供一個帶有內置的成熟的圖靈完備語言的區塊鏈,用這種語言可以創建合約對任意狀態轉換功能進行編碼,用戶只要用代碼來實現邏輯,就能夠創建設想的系統。

因此有人說,如果說區塊鏈 1.0是以比特幣為代表的,解決了貨幣和支付手段的去中心化問題,那么區塊鏈 2.0就是更宏觀地對整個市場去中心化,利用區塊鏈技術來轉換許多不同的數字資產而不僅僅是比特幣,通過轉換來創建不同資產的價值。區塊鏈技術的去中心化記賬功能可以被用來創建、確認、轉移各種不同類型的資產及合約,未來幾乎所有類型的金融交易都可以被改造成在區塊鏈上進行,包括股票、私募股權、眾籌、債券和其他類型的金融衍生品如期貨、期權等。

以太坊的誕生

相對于2009年上線的比特幣,以太坊要年輕許多。

20 1 3年年底,比特幣社區開發團隊中有一些開發者開始探討將比特幣網絡中的核心技術,主要是區塊鏈技術,拓展到更多應用場景的可能性。以太坊的早期發明者Vitalik Buterin提出,應該設計出能運行任意形式(圖靈完備)的應用程序,而不僅僅是比特幣中受限制的簡單腳本。

但該設計思想并未得到比特幣社區的支持,后來作為以太坊白皮書發布,即《以太坊:下一代智能合約和去中心化應用平臺》。在該設想中,以太坊區塊鏈底層也是一個類似比特幣網絡的P2P平臺,智能合約運行在網絡中的以太坊虛擬機里,網絡自身是公開可接入的,任何人都可以接入并參與網絡中數據的維護,提供運行以太坊虛擬機的資源。

跟比特幣項目相比,以太坊區塊鏈的技術特點主要包括:

· 支持圖靈完備的智能合約,設計了編程語言Solidity和虛擬機EVM。

· 選用了內存需求較高的哈希函數,避免出現強算力礦機、礦池攻擊。

· 采用叔塊(Uncle Block)激勵機制,降低礦池的優勢,并減少區塊產生的間隔(從10分鐘降低到15秒左右)。

· 采用賬戶系統和世界狀態,而不是UTXO(Unspent Transaction Outputs,即未花費的交易輸出),可以支持更復雜的邏輯。

· 通過Gas限制代碼執行指令數,避免循環執行攻擊。

· 支持Po W(工作量證明)共識算法,并計劃支持效率更高的Po S(權益證明)算法。

此外,以太坊開發團隊還計劃通過分片(Sharding)方式來解決網絡的可擴展性問題,這些技術特點解決了比特幣網絡在運行中被人詬病的一些問題,使得以太坊網絡具備更大的應用潛力。

2014年 2月,更多開發者(包括Gavin Wood、Jeffrey Wilcke等)加入以太坊項目,并計劃在社區開始以眾籌形式募集資金,開發一個運行智能合約的信任平臺。201 4年7月,以太幣預售,經過42天,總共籌集到價值超過180 0萬美元的比特幣。隨后以太坊基金會在瑞士成立,負責對募集到的資金進行管理和運營,并且組建研發團隊以開源社區形式進行平臺的開發。

2015年 7月底,以太坊第一階段Frontier正式發布,標志著以太坊區塊鏈網絡正式上線。這一階段采用類似比特幣網絡的Po W共識機制,參與的節點以礦工挖礦的形式維護網絡,支持上傳智能合約。Frontier版本實現了計劃的基本功能,在運行中測試出了一些安全上的漏洞,這一階段的使用者以開發者居多。

2016年 3月,第二階段Homestead開始運行(區塊數1,150,000個),主要改善了安全性,同時開始提供圖形界面客戶端,提升了易用性,更多用戶加入進來。2016年6月,The DA O基于以太坊平臺進行眾籌,受到攻擊,造成價值超過5000萬美元的以太幣被凍結,社區最后通過硬分叉(hard fork)解決。

2017年 3月,以太坊成立以太坊企業級聯盟(Enterprise EthereumAlliance,EEA),聯盟成員主要為摩根大通、微軟、芝加哥大學和部分創業企業等。2017年11月,又暴露多個簽名錢包存在漏洞,造成價值2.8億美元的以太幣被凍結。

目前,以太坊網絡支持了接近比特幣網絡的交易量,成為最受關注的公有鏈項目,也讓在以太坊上使用的以太幣成為全世界排名第二的數字貨幣。后面按照計劃,以太坊將發布第三階段Metropolis和第四階段Serenity,主要特性包括支持Po S(股權證明)的共識機制,以降低原先Po W機制造成的能耗;以及支持圖形界面的錢包,以提升易用性。包括The DAO在內,以太坊網絡已經經歷了數次大的硬分叉,而每次硬分叉后的版本對之前的版本并不兼容。

以太坊與圖靈完備

根據維基百科,圖靈完備的釋義是,在可計算性理論里,如果一系列操作數據的規則(如指令集、編程語言、細胞自動機)可以用來模擬單帶圖靈機,那么它就是圖靈完備的。這個詞源于引入“圖靈機”概念的數學家艾倫·圖靈,雖然圖靈機會受到存儲能力的物理限制,但圖靈完備性通常是指“具有無限存儲能力的通用物理機器或編程語言”。

也就是說,“圖靈完備”意味著這門語言可以做到能夠用圖靈機做到的所有事情,可以解決所有的可計算問題,它帶來了強大的處理能力。圖靈完備的數字貨幣更加智能,例如以太坊,就是想以圖靈完備的編程語言,幫助以太坊進行智能合約的部署。

其實我們對于圖靈完備這一條不敢茍同。如果一條公鏈的目的是實現所有的功能,那么它最終可能什么都做不好。

主站蜘蛛池模板: 上杭县| 定兴县| 西畴县| 铁力市| 逊克县| 聂拉木县| 岳阳市| 武邑县| 新沂市| 涪陵区| 武威市| 罗山县| 浮山县| 图木舒克市| 英吉沙县| 长治市| 敖汉旗| 金沙县| 宜章县| 青冈县| 巴林左旗| 晴隆县| 崇州市| 渭源县| 霍林郭勒市| 昭苏县| 灵璧县| 张家川| 项城市| 嘉定区| 高唐县| 广饶县| 清水河县| 黎城县| 黄龙县| 若尔盖县| 云南省| 鱼台县| 嘉荫县| 尖扎县| 宣武区|