區塊鏈的創世紀

藉由實作乙太坊私網一窺加密貨幣的起源

James Shieh
Oceanus 區塊鏈知識+
8 min readOct 6, 2018

--

Photo by NASA on Unsplash

區塊鏈的本質是一個用來建立信任的技術,但其去中心化的特性,仍然需要有許多人貢獻自己的電腦,作為區塊鏈網路節點,才能讓這個系統順利運作,要如何讓大家願意讓出電腦的儲存資源和運算資源呢?

挖礦的原理

前幾年挖礦盛行,許多人在家裡放了一台礦機挖各種加密貨幣,也有人以販售礦機為業。其實挖礦就是將自己的電腦作為區塊鏈網路的節點,連上區塊鏈主網,提供電腦的運算資源換取獎勵,幫主網建立區塊,以便儲存更多的交易紀錄。

透過這樣的獎勵機制,讓大家願意提供自己的電腦作為區塊鏈網路的節點,如此一來便能創造出一個遍佈世界的區塊鏈網路:

截止目前為止,全球約有10088個比特幣節點 (Ref:https://bitnodes.earn.com/)

區塊鏈的創世紀

我們就以乙太坊來一窺區塊鏈的創世紀吧,建立區塊鏈網路主要需要4個步驟:

  1. 建立第一個區塊鏈節點
  2. 初始化區塊鏈網路
  3. 建立創世區塊
  4. 將其他電腦加入同一個區塊鏈網路

以geth建立區塊鏈網路

有了節點,就可以請礦工幫忙挖礦,以便建立更多的區塊供網路使用,同時也以加密貨幣作為挖礦獎勵。接下來會透過geth這個工具來建立區塊鏈網路。如果是Mac OS可直接以root權限執行以下shell script:

其他作業系統,可以參考以下幾篇文章。

下載geth:

建立乙太坊私網(private network):

其中 init-private-network.sh,主要是透過以下json檔,來定義乙太坊網路的相關屬性:

幾個重要參數:

創世區塊建立成功…
以上執行過程相當於在一個節點上建立第一個區塊(創世區塊)

私網建立成功後,就可以在console中執行挖礦指令:

挖礦過程會不斷顯示挖礦的狀況,這其實是個藉由複雜運算建立區塊的過程。
成功挖到區塊(block)
透過挖礦(mining),可以建立區塊,串接成鏈

將其他電腦加入同一個區塊鏈網路

至此,我們已經建立好一個區塊鏈私網的節點了,我們可以透過以下指令把其他電腦也加入同個網路中:

每個礦工都提供自己的電腦作為節點,就會形成遍布全球的區塊鏈網路

總結

本篇藉由geth建立乙太坊私網,並透過挖礦建立區塊,以實作的方式讓大家理解整個區塊鏈網路的發展過程。

獎勵機制是區塊鏈網路成長很重要的元素,從鼓勵大家成為節點的角度來看,這個機制也是讓區塊鏈朝去中心化發展的誘因,但也使得發展大型礦池、礦場、礦機都成為一種獲利的方法,導致區塊鏈網路的算力資源多集中在少數人手上,形成某種形式上的中心化。對於追求去中心化的區塊鏈而言,這樣的發展值得玩味。

--

--

James Shieh
Oceanus 區塊鏈知識+

Find something more important than you are and dedicate your life to it.