以太坊連載(一):以太坊是什麼?

以太坊是什麼?
以太坊是一個全新開放的區塊鏈平臺,它容許任何人在平臺中創建和使用經過區塊鏈技術運行的去中心化應用。就像比特幣同樣,以太坊不受任何人控制,也不歸任何人全部——它是一個開放源代碼項目,由全球範圍內的不少人共同建立。和比特幣協議有所不一樣的是,以太坊的設計十分靈活,極具適應性。在以太坊平臺上創立新的應用十分簡便,隨着Homestead的發佈,任何人均可以安全地使用該平臺上的應用。算法

下一代區塊鏈
區塊鏈技術是比特幣的底層技術,這一技術第一次被描述是在中本聰2008年發表的白皮書「比特幣:點對點電子現金系統」中。區塊鏈技術更多的通常性用途在原書中已經有所討論,但直到幾年後,區塊鏈技術才做爲通用術語出現。一個區塊鏈是一個分佈式計算架構,裏面的每一個網絡節點執行並記錄相同的交易,交易被分組爲區塊。一次只能增長一個區塊,每一個區塊有一個數學證實來保證新的區塊與以前的區塊保持前後順序。這樣一來,區塊鏈的「分佈式數據庫」就能和整個網絡保持一致。個體用戶與總帳的互動(交易)受到安全的密碼保護。由數學執行並編碼到協議中的經濟激勵因素刺激着維持和驗證網絡的節點。數據庫

在比特幣中,分佈式數據庫被設想爲一個帳戶餘額表,一個總帳,交易就是經過比特幣的轉移以實現個體之間無需信任基礎的金融活動。可是隨着比特幣吸引了愈來愈多開發者和技術專家的注意,新的項目開始將比特幣網絡用於有價代幣轉移以外的其餘用途。其中不少都採用了「代幣」的形式——以原始比特幣協議爲基礎,增長了新的特徵或功能,採用各自加密貨幣的獨立區塊鏈。在2013年底,以太坊的發明者Vitalik Buterin建議可以經過程序重組來運行任意複雜運算的單個區塊鏈應該包含其餘的程序。編程

2014年,以太坊的創始人Vitalik Buterin, Gavin Wood和Jeffrey Wilcke開始研究新一代區塊鏈,試圖實現一個整體上徹底無需信任基礎的智能合約平臺。安全

以太坊虛擬機
以太坊是可編程的區塊鏈。它並非給用戶一系列預先設定好的操做(例如比特幣交易),而是容許用戶按照本身的意願建立複雜的操做。這樣一來,它就能夠做爲多種類型去中心化區塊鏈應用的平臺,包括加密貨幣在內但並不只限於此。網絡

以太坊狹義上是指一系列定義去中心化應用平臺的協議,它的核心是以太坊虛擬機(「EVM」),能夠執行任意複雜算法的編碼。在計算機科學術語中,以太坊是「圖靈完備的」。開發者可以使用現有的JavaScript和Python等語言爲模型的其餘友好的編程語言,建立出在以太坊模擬機上運行的應用。架構

和其餘區塊鏈同樣,以太坊也有一個點對點網絡協議。以太坊區塊鏈數據庫由衆多鏈接到網絡的節點來維護和更新。每一個網絡節點都運行着以太坊模擬機並執行相同的指令。所以,人們有時形象地稱以太坊爲「世界電腦」。編程語言

這個貫穿整個以太坊網絡的大規模並行運算並非爲了使運算更高效。實際上,這個過程使得在以太坊上的運算比在傳統「電腦」上更慢更昂貴。然而,每一個以太坊節點都運行着以太坊虛擬機是爲了保持整個區塊鏈的一致性。去中心化的一導致以太坊有極高的故障容錯性,保證零停機,並且可使存儲在區塊鏈上的數據保持永遠不變且抗審查。分佈式

以太坊平臺自己沒有特色,沒有價值性。和編程語言類似,它由企業家和開發者決定其用途。不過很明顯,某些應用類型較之其餘更能從以太坊的功能中獲益。以太坊尤爲適合那些在點與點之間自動進行直接交互或者跨網絡促進小組協調活動的應用。例如,協調點對點市場的應用,或是複雜財務合約的自動化。比特幣使個體可以不借助金融機構、銀行或政府等其餘中介來進行貨幣交換。以太坊的影響可能更爲深遠。理論上,任何複雜的金融活動或交易都能在以太坊上用編碼自動且可靠地進行。除金融類應用外,任何對信任、安全和持久性要求較高的應用場景——好比資產註冊、投票、管理和物聯網——都會大規模地受到以太坊平臺影響。區塊鏈

以太坊如何工做?
以太坊合併了不少對比特幣用戶來講十分熟悉的特徵和技術,同時本身也進行了不少修正和創新。比特幣區塊鏈純粹是一個關於交易的列表,而以太坊的基礎單元是帳戶。以太坊區塊鏈跟蹤每一個帳戶的狀態,全部以太坊區塊鏈上的狀態轉換都是帳戶之間價值和信息的轉移。帳戶分爲兩類:大數據

外部帳戶(EOA),由私人密碼控制
合約帳戶,由它們的合約編碼控制,只能由外部帳戶「激活」
對於大部分用戶來講,二者基本的區別在於外部帳戶是由人類用戶掌控——由於他們可以控制私鑰,進而控制外部帳戶。而合約帳戶則是由內部編碼管控。若是他們是被人類用戶「控制」的,那也是由於程序設定它們被具備特定地址的外部帳戶控制,進而被持有私鑰控制外部帳戶的人控制着。「智能合約」這個流行的術語指的是在合約帳戶中編碼——交易被髮送給該帳戶時所運行的程序。用戶能夠經過在區塊鏈中部署編碼來建立新的合約。

只有當外部帳戶發出指令時,合約帳戶纔會執行相應的操做。因此合約帳戶不可能自發地執行諸如任意數碼生成或應用程序界面調用等操做—只有受外部帳戶提示時,它纔會作這些事。這是由於以太坊要求節點可以與運算結果保持一致,這就要求保證嚴格肯定執行。

和比特幣同樣,以太坊用戶必須向網絡支付少許交易費用。這可使以太坊區塊鏈免受可有可無或惡意的運算任務干擾,好比分佈式拒絕服務(DDoS)攻擊或無限循環 。交易的發送者必須在激活的「程序」每一步付款,包括運算和記憶儲存。費用經過以太坊自有的有價代幣,以太幣的形式支付。

交易費用由節點收集,節點使網絡生效。這些「礦工」就是以太坊網絡中收集、傳播、確認和執行交易的節點。礦工們將交易分組——包括許多以太坊區塊鏈中帳戶「狀態」的更新——分紅的組被稱爲「區塊」,礦工們會互相競爭,以使他們的區塊能夠添加到下一個區塊鏈上。礦工們每挖到一個成功的區塊就會獲得以太幣獎勵。這就爲人們帶來了經濟激勵,促令人們爲以太坊網絡貢獻硬件和電力。

和比特幣網絡同樣,礦工們有解決複雜數學問題的任務以便成功地「挖」到區塊。這被稱爲「工做量證實」。一個運算問題,若是在算法上解決,比驗證解決方法須要更多數量級的資源,那麼它就是工做證實的極佳選擇。爲防止比特幣網絡中已經發生的,專門硬件(例如特定用途集成電路)形成的中心化現象,以太坊選擇了難以存儲的運算問題。若是問題須要存儲器和CPU,事實上理想的硬件是普通的電腦。這就使以太坊的工做量證實具備抗特定用途集成電路性,和比特幣這種由專門硬件控制挖礦的區塊鏈相比,可以帶來更加去中心化的安全分佈。

汪曉明 HPB芯鏈創始人,巴比特專欄做家。十餘年金融大數據、區塊鏈技術開發經驗,曾參與建立銀聯大數據。主創區塊鏈教學視頻節目《明說》30多期,編寫了《以太坊官網文檔中文版》,並做爲主要做者編寫了《區塊鏈開發指南》,在中國區塊鏈社區以ID「藍蓮花」知名。
相關文章
相關標籤/搜索