Ethereum 開發筆記 1–5:Blockchain 的一些定義與名詞

Fukuball Lin
Sep 9, 2018 · 5 min read

在 Ethereum 開發筆記 1–4 應該已經將 Blockchain 的技術原理說明得很清楚了,不過如果要向一般大眾簡單說明 Blockchain 是什麼,要怎麼說呢?我會說:Blockchain 就是一個分散式帳本,大家都有一樣的帳本,大家都可一起參與記帳,且記完帳大家的帳本就會自動更新到最新版本,而帳裡的紀錄都會分塊並用密碼按順序鏈結起來,用以驗證帳的正確性,如果中間有人改了資料,那後面的鏈結密碼都會發生錯誤,因此沒有人可以亂改帳,這就是 Blockchain。

但 Blockchain 這個名詞還包含了許多概念與內涵,我們之前說過,Blockchain 是因為分散式去中心化帳本的發展而慢慢產生出來的,這樣慢慢被統稱出來的名詞裡底下也就會包含了許多內涵,很難用三言兩語來說明,所以有一些 Blockchain 相關的定義與名詞我們都可以了解一下,這樣就能更了解 Blockchain。

交易(Transaction)

交易是 Blockchain 帳本中的原子單位,如果將交易再往下拆分就會變得沒有意義,比如下列就是一個交易:

  1. A 減少了 $10
  2. B 增加了 $9
  3. C 增加了 $1

如果只看 1,我們就會想那減少的 $10 到哪裡去了?所以 1、2、3 一起看才算是一個交易。

Blockchain 是一個分散式帳本(Distributed Ledger)

不像銀行依靠自己的帳本來記帳,Blockchain 提供了可靠的分散式帳本,當銀行之間要進行交易時,會需要一個受信任的第三方來進行銀行之間的交易,這也是為何你在做跨國轉帳時,需要付出高昂的手續費以及等待數天處理交易,Blockchain 可靠的分散式帳本讓跨國交易可以在幾分鐘甚至幾秒之內完成,這也是為何銀行想要應用 Blockchain 在金融交易上以降低交易成本。

Blockchain 是一個資料結構(Data Structure)

通常 Blockchain 的資料結構如下組成:

  • 交易是原子單位
  • 區塊是由一系列的交易組成
  • 區塊鏈由排序良好的區塊所組成

Blockchain 會有分叉(Fork)

當有兩名礦工 A 及 B 幾乎在相同時間內算出了合法的 hash,這兩個區塊傳播到鄰近節點時,有些節點收到了 A 的區塊,有些節點收到了 B 的區塊,這兩個區塊都可以是主鏈的延伸,這時就會產生區塊鏈分叉。

這時會比較分叉中哪個鏈有更多的工作量(工作量證明)來決定作為主鏈,另一個分叉作為備用鏈保存(因為未來可能會超過主鏈工作量成為新主鏈),如此各節點繼續工作下去延長區塊鏈。

更短的區塊產生間隔可以讓較易確認更快完成,但也可能更頻繁的產生分叉,而長的區塊產生間隔可以減少分叉數量,但卻會導致更長的交易確認時間。為了減少分叉的發生,Bitcoin 將區塊間隔設計為10分鐘(用工作難度來調整時間),這個時間設計是在交易確認速度與分叉機率之間做出的妥協。

Blockchain 是一個去中心化共識系統(Decentralized Consensus)

Blockchain 是個分散式帳本,且各個節點之間並沒有哪個節點比其他節點更有權威性,也因此許多人稱之為「去中心化」。沒有了權威中心的控制系統要如何讓各節點之間可以協同運作?Blockachin 就是使用了共識機制來彼此協同運作,決定整個鏈如何延展下去。

Blockchain 代表數位自由化

由於 Blockchain 中各個節點之間並沒有哪個節點比其他節點更有權威性,任何節點都可以自由的存取資料,也因此在 Blockchain 相較於其他中心化的系統更具自由,言論審查在 Blockchain 上基本上不可行。

Blockchain 是新的運算平台

在 Ethereum 這樣的 Blockchain,由於可以將程式在 Blockchain 上運行,這讓一個全球性的運算平台成為可能,也因此我們可以將 Blockchain 視為一種新的運算平台。

公有鏈、聯盟鏈、私有鏈(Public Chain、Consortium Chain、Private Chain)

公有鏈是指任何人都可以存取與發送交易、任何人都可以參與共識過程的區塊鏈,這就是我們一般在說的 Blockchain。

有時我們在應用場景上不希望完全公開,但卻又希望借重 Blockchain 的不可竄改及 P2P 共識機制,比如在銀行間進行支付、結算等交易就可能不希望完全公開,這時就可以用聯盟鏈的形式來整合各家銀行的記帳節點。

私有鏈與聯盟鏈最大的不同在於,聯盟鏈是為一個聯盟,比如為一個行業服務;而私有鏈則是為一個組織,比如一家公司的內部服務,完全私有的區塊鏈,寫入權限僅在一個組織手裡的區塊鏈。

分散式與去中心化的差異(Distributed vs. Decentralised)

分散式與去中心化常混為一談,但分散式與去中心化是不同的,分散式代表系統不存在單點脆弱性,而去中心化則代表各系統中沒有不同的權威性,比如 Google 其實是一個分散式系統,但卻是中心化系統,Google 可以控制整個系統,而 Bitcoin 就是一個既分散也去中心的系統,由各系統彼此協同共治。我們可以用下圖更清楚地了解分散式與去中心化(沒有控制的手)的概念。

Distributed vs. Decentralised

以上就是你可能會常常聽到和 Blockchain 一起出現的一些定義與名詞,其實就稍微了解就好,畢竟這還是會隨著發展而改變啊。

Fukuball Murmur

Fukuball murmur…

Fukuball Lin

Written by

我是林志傑,網路上常用的名字是 Fukuball。我使用 PHP 及 Python,對機器學習及區塊鏈技術感到興趣。 https://www.fukuball.com

Fukuball Murmur

Fukuball murmur…

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade