乙太坊黃皮書之閱讀筆記

Ethereum Yellow Paper Reading Note #1

PSWU
5 min readAug 8, 2019
https://www.flickr.com/photos/ethereumclassic/37724003875

首先,身為一個麻瓜,我先說說我為什麼要虐待(誤)自己。其實這一切都來自於,當時我一念之下,參加了乙太坊開發者大會獎學金計畫,然後屏雀中選後的發展…

有興趣的人們直接可以參考我之前的文章。

乙太坊來歷

比特幣的成功證明了區塊鍊技術在加密貨幣方面的可應用性,但是區塊鍊技術可以被應用在更廣泛的領域。

比特幣白皮書問世的五年之後,乙太坊(Ethereum)的創造者 Vitalik Buterin(很多人又稱他為V神)在2013年11月時首次發表了乙太坊白皮書(Ethereum White Paper),全名「乙太坊:新一代的智慧合約與去中心化應用平台」(Ethereum: A Next-Generation Smart Contract and Decentralized Application Platform)。

什麼是乙太坊黃皮書?

前面所提到的乙太坊白皮書,是一篇偏行銷以及商業導向的計畫報告書。除了長度較為精簡,也沒有過於深入解釋其演算法以及技術架構。

但乙太坊黃皮書就不一樣了。

乙太坊黃皮書(Ethereum Yellow Paper)的全名是「乙太坊:一個安全的、去中心化的通用交易帳本」(Ethereum: A Secure Decentralized Generalized Transaction Ledger)。這個論文的作者是Dr. Gavin Wood,是乙太坊的共同創辦者,也是後來的Parity Technologies的創辦者。

相較於白皮書,乙太坊黃皮書就是將白皮書的更探討其技術層面的版本。是一篇就算是電腦科學專業出身的人都要讀上好幾遍才漸漸懂了的一篇論文。基本上,他就是一篇技術導向論文。乙太坊黃皮書提及了乙太坊被創立的背景,也嚴謹地解釋了乙太坊的運作機制。

乙太坊的目標

創造乙太坊這個平台最重要的目的之一是想要促成使用者之間的交易,尤其針對因為在地理、政治等因素之下使用者之間無法彼此信任的前提。(Ethereum Yellow Paper Byzantium Verion)

為了達成這個目的,乙太坊項目的宗旨是建立一個通用化的科技,這個科技能夠提供軟體開發者一個計算框架,稱作可信任的物件消息傳遞計算框架(a trustful object messaging compute framwork)。在此框架之下,開發者可使用一種新的計算樣式來開發各種應用軟體。

簡單來說,乙太坊是一個可以被用來開發應用軟體的平台。

區塊鍊範式

與比特幣相似的是,乙太坊是一個具體可實現的的區塊鍊範式,但乙太坊並非是以加密貨幣應用為主的區塊鍊。

我們可以將乙太坊的整體看作為一個基於交易的狀態機(a transaction-based state machine)。每當交易產生,然後被執行,狀態(state)就被改變。這裡的交易不一定要是金錢的轉移,它可以是任何能被電腦所有效地代表的事物

之所以叫做區塊鍊,是因為這些所謂的交易(transaction)會被蒐集成區塊(block)。就如同比特幣一般,乙太坊的區塊鍊也會使用雜湊(hash,哈希)演算法加密後形成鍊(chain)的狀態。

然而,這個產生區塊所形成的鍊的過程,一樣需要需要節點(node)來投入運算資源,也需要獎勵來激勵這種貢獻。有言,這個過程類似於礦工開採礦產,因此被廣泛地稱為採礦(Mining)

在乙太坊系統中,也有內建的加密貨幣以作為激勵採礦的獎勵,就是所謂的乙太幣(Ether,ETH)

乙太坊黃皮書之要素概念

根據乙太坊黃皮書,可以概括出了解乙太坊這個平台所需要知道的概念:

  • 乙太幣(Ether, ETH)
  • 狀態(world state or state)
  • 交易(transaction)
  • 區塊(block)
  • 燃料(gas)
  • 交易執行(transaction execution)
  • 合約建立(contract creation)
  • 虛擬狀態機(Ethereum Virtual Machine, EVM)
  • 挖礦(mining)
  • 工作證明(proof-of-work)
  • 延展性(scalability)

然而,下一篇文章中我將會詳細一點解釋這些概念。

一些感想

總括來說,乙太坊黃皮書詳細的解釋了乙太坊區塊鍊的技術結構,還有各種概念。

我們可以看出,乙太坊致力於發展一個可以基於區塊鍊基礎架構來開發應用軟體的平台。因此,這也使得乙太坊有很大潛力成為一個具有影響力的應用軟體生態圈(ecosytem),同時也是社群(community)。

然而,在文中也有特別提及這樣的典型區塊鍊的一個很大的限制 — 延展性(scalability)。因此若要讓乙太坊生態圈能永續的發展,延展性勢必成為乙太坊技術上一個很重要的挑戰與課題。

值得注意的是,目前的乙太坊區塊鍊(Ethereum 1.0)還不是最終版本,致力於解決延展性以及能源消耗問題的Ethereum 2.0已經在測試階段了。

就看在今年的開發者研討會Devcon5,我們還會得到甚麼樣的新消息吧。

--

--

PSWU

Product @QuestDB | Previously DevRel @Jina AI | From Taiwan | Living in Germany | Passionate for Blockchain & Machine Learning | pswu.dev