1. 程式人生 > >《以太坊官方文件》什麼是以太坊(What is Ethereum?)

《以太坊官方文件》什麼是以太坊(What is Ethereum?)

什麼是以太坊

以太坊是一個開放的區塊鏈平臺,他允許任何人構建和使用執行在區塊鏈技術上的去中心化應用。與比特幣相似,沒有人可以控制或者擁有以太坊 – 以太坊是一項由世界各地人一起構建的開源專案。但是與比特幣協議不同,以太坊設計得適應性強和靈活。在以太坊平臺建立新應用很容易,使用以太坊Homestead release(以太坊第二版本),所有人可以安全地使用這些應用。

下一代區塊鏈

區塊鏈技術是比特幣技術的基礎,“比特幣:一種對等的電子現金系統”第一次被比特幣的神祕作者中本聰在他2008年釋出的白皮書中描述。雖然在原始文獻中已經討論過使區塊鏈擁有更廣泛的用途,但是直到幾年後區塊鏈技術才描述為專業術語。區塊鏈是一個分散式計算架構,每一個網路節點執行和記錄相同的交易,這些內容被分組成塊。同一時間只能新增一個塊,每個塊包含一個數學證明,驗證他按照前一個塊順序排列。通過這種方式,區塊鏈通過整個網路達成分散式資料庫共識。密碼系統使個人賬戶與分類賬(交易)互動安全。維護和驗證網路節點通過編碼到協議中的數學強制經濟來激勵。

在比特幣的情況下,分散式資料庫被設想成賬戶餘額表,分類賬和交易是比特幣令牌的轉移去促進個體間無信任的金融交易。但是隨著比特幣開始吸引開發者和技術專家的關注,新的專案開始使用比特幣網路而不是價值令牌轉移。其中許多采取山寨幣,使用自有加密的單獨區塊鏈,這些山寨幣改善原有的比特幣協議去新增新的特性和功能。在2013末,以太坊的發明者維塔裡克•布特林提出一個具有重新編碼以執行復雜計算能力的單鏈,他可以包含許多其他專案。

在2014年,以太坊創始人維塔裡克•布特林,加文伍德和傑夫瑞威爾克開始研究下一代區塊鏈,他們的目標是實現一個通用的,無信任的智慧合約平臺。

以太虛擬機器

以太坊是一個可程式設計的區塊鏈。相較於給予使用者一系列預定義操作(例如比特幣交易),以太坊允許使用者去建立他們希望的任何複雜操作。就這樣,以太坊作為一個平臺服務於不同種類的去中心化應用,以太坊包括但不僅限於加密貨幣。

以太坊在狹義上指定義一個去中心化應用平臺的一系列協議。以以太虛擬機器為中心,他可以執行任何複雜度的演算法程式碼。用計算機科學術語描述,以太坊就是圖靈機。開發者可以使用友善的程式語言模仿存在的語言例如JavaScript和Python來建立能夠執行在以太虛擬機器上的應用。

和其他任何的區塊鏈一樣,以太坊也包含一個點對點的網路協議。以太坊區塊鏈資料庫通過連結在網路上的許多節點來維護和更新。每一個網路節點執行在以太虛擬機器上執行一樣的指令。因為這個原因,以太坊有些時候也被形象地描述為世界計算機。

大量通過完全以太坊網路計算機平行計算並沒有使得計算更加高效。事實上,這個過程使得在以太坊上的計算相較於傳統電腦更慢和更昂貴。相反,每個執行在以太虛擬機器上的節點為了在區塊鏈上保持一致。去中心化共識給予以太坊極高的容錯水平,確保零停機時間,並使儲存在區塊鏈上的資料永遠不可修改和審查。

以太坊平臺本身是無特徵或價值不確定的。與程式語言相似,企業家和開發人員應該決定使用他做什麼。然而,很明顯,某些應用程式型別從以太坊能力中獲益更多。具體地說,以太坊適用於自動化連結或促進跨網路的協調組操作的應用程式。例如,用於協調點對點市場的應用程式,或者複雜金融合同的自動化。比特幣允許個人在不涉及金融機構,銀行和政府機構等中間人進行現金交易。以太坊的影響可能更深遠。理論上,執行在以太坊上的程式碼可以自動可靠地進行任何複雜性的財務互動或交換。除了金融應用程式之外,任何信任,安全性和永續性都很重要的環境—-例如,資產註冊,投票,治理和物聯網—-都可能受到以太坊平臺的巨大影響。

以太坊如何工作

以太坊包含許多與比特幣相似的特性和技術,同時也介紹許多以太坊本身的修改和改革。然而,比特幣區塊鏈是純粹的交易清單,以太坊的基礎單位是賬號。以太坊區塊鏈跟蹤每個賬戶,並且以太坊區塊鏈上的狀態轉換都是在賬戶之間傳輸價值和資訊。有兩種型別的賬戶:

  • 外部擁有的賬戶,由私鑰控制
  • 合約賬戶,由其合同程式碼控制,並且只能被外部擁有賬戶啟用

對於大多數使用者來說,基本的區別是,人類使用者控制外部擁有的賬戶—-因為他們能夠控制對外部擁有的賬戶進行控制的私鑰。另一方面,合約賬戶受其內部程式碼管理。如果他們是由人類使用者控制,那是因為他們被程式設計為由特定地址外部擁有的賬戶控制,而外部擁有的私鑰反過來又要被擁有控制外部賬戶的私鑰的人控制。流行的術語”智慧合約”指的是合同賬戶中的程式碼—-當交易被髮送到該賬戶時執行的程式。使用者可以通過將程式碼部署到區塊鏈來建立新的契約。

合約賬戶只有在外部擁有的賬戶發出指令的時候才能執行操作。因此,合約賬戶不可能執行本地操作,比如隨機數生成或者API呼叫—-只有在外部擁有賬戶的提示下,他才能執行這些操作。這是因為以太坊需要節點能夠就計算結果達成一致,這就要求保證嚴格的確定性的執行。

就像比特幣一樣,使用者必須向網路支付小額交易費。這可以保護以太坊區塊鏈避免不必要的或者惡意的計算任務,比如DDoS攻擊或者無限迴圈。交易的傳送方必須為其啟用的程式的每一個步驟付費,包括計算和記憶體儲存。這些費用是用以太坊的本地價值令牌標記和支付的。

這些交易費用由驗證網路的節點收取。這些礦工是在以太坊中接受,傳播,驗證和執行交易的節點。然後,礦工把交易分組—-其中包括許多以太坊區塊鏈中賬戶狀態的更新—-歸納到所謂的塊,並且然後礦工們相互競爭為了讓他們的塊能夠成為區塊鏈中下一個要新增的塊。礦工們開採每一塊成功的區塊都能夠得到以太坊的獎勵。這為人們將硬體和電力投入到以太坊網路提供經濟激勵。

就像在比特幣網路中一樣,礦工被分配任務解決一個複雜的數學問題,以便成功地挖掘一個區塊。這被稱為工作證明。任何需要大量資源來解決演算法問題的計算問題比驗證該解決方案所需要的資源更多,是更好的工作證明的候選。為了阻止由於經常使用專用硬體(如ASICs)而導致的集中化,就像比特幣網路中發生一樣,以太坊選擇一個難以記憶的計算問題。如果問題需要記憶體和CPU,理想的硬體實際上是通用計算機。這些使得以太坊的工作證明ASIC具有抵抗性,區塊鏈的安全分佈更為分散,區塊鏈的開採主要是專門的硬體,例如比特幣。

Learn about Ethereum

[to be extended]

PR videos with some pathos:

Blockchain and Ethereum 101

[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
[15]
[16]
[17]
[18]
[19]

Videos

Infographics

Comparison to alternatives