以太坊是一個全新開放的區塊鏈平台,它允許任何人在平台中建立和使用通過區塊鏈技術運行的去中心化應用。就像比特幣一樣,以太坊不受任何人控制,也不歸任何人所有。 – 它是一個開放源代碼項目,由全球範圍內的很多人共同創建和比特幣協議有所不同的是,以太坊的設計十分靈活,極具適應性在以太坊平台上創立新的應用十分簡便,隨著宅基地的發布,任何人都可以安全地使用該平台上的應用。
區塊鏈技術是比特幣的底層技術,這一技術第一次被描述是在中本聰2008年發表的白皮書“比特幣:點對點電子現金系統。”中區塊鏈技術更多的一般性用途在原書中已經有所討論,但直到幾年後,區塊鏈技術才作為通用術語出現。一個區塊鏈是一個分佈式計算架構,裡面的每個網絡節點執行並記錄相同的交易,交易被分組為區塊。一次只能增加一個區塊,每個區塊有一個數學證明來保證新的區塊與之前的區塊保持先後順序。這樣一來,區塊鏈的“分佈式數據庫”就能和整個網絡保持一致。個體用戶與總賬的互動(交易)受到安全的密碼保護。由數學執行並編碼到協議中的經濟激勵因素刺激著維持和驗證網絡的節點。
在比特幣中,分佈式數據庫被設想為一個賬戶餘額表,一個總賬,交易就是通過比特幣的轉移以實現個體之間無需信任基礎的金融活動。但是隨著比特幣吸引了越來越多開發者和技術專家的注意,新的項目開始將比特幣網絡用於有價代幣轉移之外的其他用途其中很多都採用了“代幣”的形式 – 以原始比特幣協議為基礎,增加了新的特徵或功能,採用各自加密貨幣的獨立區塊鏈。在2013年末,以太坊的發明者Vitalik Buterin建議能夠通過程序重組來運行任意複雜運算的單個區塊鏈應該包含其他的程序。
2014年,以太坊的創始人Vitalik Buterin,Gavin Wood和Jeffrey Wilcke開始研究新一代區塊鏈,試圖實現一個總體上完全無需信任基礎的智能合約平台。
以太坊是可編程的區塊鏈。它並不是給用戶一系列預先設定好的操作(例如比特幣交易),而是允許用戶按照自己的意願創建複雜的操作。這樣一來,它就可以作為多種類型去中心化區塊鏈應用的平台,包括加密貨幣在內但並不僅限於此。
以太坊狹義上是指一系列定義去中心化應用平台的協議,它的核心是以太坊虛擬機(“EVM”),可以執行任意複雜算法的編碼。在計算機科學術語中,以太坊是“圖靈完備的“。開發者能夠使用現有的JavaScript的和Python的等語言為模型的其他友好的編程語言,創建出在以太坊模擬機上運行的應用。
和其他區塊鏈一樣,以太坊也有一個點對點網絡協議。以太坊區塊鏈數據庫由眾多連接到網絡的節點來維護和更新。每個網絡節點都運行著以太坊模擬機並執行相同的指令。因此,人們有時形象地稱以太坊為“世界電腦”。
這個貫穿整個以太坊網絡的大規模並行運算並不是為了使運算更高效。實際上,這個過程使得在以太坊上的運算比在傳統“電腦”上更慢更昂貴。然而,每個以太坊節點都運行著以太坊虛擬機是為了保持整個區塊鏈的一致性。去中心化的一致使以太坊有極高的故障容錯性,保證零停機,而且可以使存儲在區塊鏈上的數據保持永遠不變且抗審查。
以太坊平台本身沒有特點,沒有價值性。和編程語言相似,它由企業家和開發者決定其用途。不過很明顯,某些應用類型較之其他更能從以太坊的功能中獲益。以太坊尤其適合那些在點與點之間自動進行直接交互或者跨網絡促進小組協調活動的應用。例如,協調點對點市場的應用,或是複雜財務合約的自動化。比特幣使個體能夠不借助金融機構,銀行或政府等其他中介來進行貨幣交換。以太坊的影響可能更為深遠。理論上,任何複雜的金融活動或交易都能在以太坊上用編碼自動且可靠地進行。除金融類應用外,任何對信任,安全和持久性要求較高的應用場景 – 比如資產註冊,投票,管理和物聯網 – 都會大規模地受到以太坊平台影響。
以太坊合併了很多對比特幣用戶來說十分熟悉的特徵和技術,同時自己也進行了很多修正和創新。比特幣區塊鏈純粹是一個關於交易的列表,而以太坊的基礎單元是賬戶。以太坊區塊鏈跟踪每個賬戶的狀態,所有以太坊區塊鏈上的狀態轉換都是賬戶之間的價值和信息的轉移。賬戶分為兩類:•外部賬戶(EOA),由私人密碼控制•合約賬戶,由它們的合約編碼控制,只能由外部賬戶“激活”
對於大部分用戶來說,兩者基本的區別在於外部賬戶是由人類用戶掌控。 – 因為他們能夠控制私鑰,進而控制外部賬戶而合約賬戶則是由內部編碼管控如果他們是被人類用戶“控制”的,那也是因為程序設定它們被具有特定地址的外部賬戶控制,進而被持有私鑰控制外部賬戶的人控制著。“智能合約”這個流行的術語指的是在合約賬戶中編碼 – 交易被發送給該賬戶時所運行的程序用戶可以通過在區塊鏈中部署編碼來創建新的合約。
只有當外部賬戶發出指令時,合約賬戶才會執行相應的操作所以合約賬戶不可能自發地執行諸如任意數碼生成或應用程序界面調用等操作 – 只有受外部賬戶提示時,它才會做這些事。這是因為以太坊要求節點能夠與運算結果保持一致,這就要求保證嚴格確定執行。
和比特幣一樣,以太坊用戶必須向網絡支付少量交易費用。這可以使以太坊區塊鏈免受無關緊要或惡意的運算任務干擾,比如分佈式拒絕服務(DDoS)攻擊或無限循環。發送者必須在激活的“程序”每一步付款,包括運算和記憶儲存。費用通過以太坊自有的有價代幣,以太幣的形式支付。
交易費用由節點收集,節點使網絡生效這些“礦工”就是以太坊網絡中收集,傳播,確認和執行交易的節點礦工們將交易分組。 – 包括許多以太坊區塊鏈中賬戶“狀態”的更新 – 分成的組被稱為“區塊”,礦工們會互相競爭,以使他們的區塊可以添加到下一個區塊鏈上礦工們每挖到一個成功的區塊就會得到以太幣獎勵。這就為人們帶來了經濟激勵,促使人們為以太坊網絡貢獻硬件和電力。
和比特幣網絡一樣,礦工們有解決複雜數學問題的任務以便成功地“挖”到區塊。這被稱為“工作量證明”。一個運算問題,如果在算法上解決,比驗證解決方法需要更多數量級的資源,那麼它就是工作證明的極佳選擇。為防止比特幣網絡中已經發生的,專門硬件(例如特定用途集成電路)造成的中心化現象,以太坊選擇了難以存儲的運算問題。如果問題需要存儲器和CPU,事實上理想的硬件是普通的電腦。這就使以太坊的工作量證明具有抗特定用途集成電路性,和比特幣這種由專門硬件控制挖礦的區塊鏈相比,能夠帶來更加去中心化的安全分佈。