# 何謂區塊?何謂鏈?

在上一篇文章中,我們用了「麻將」的概念來講一個以太坊的粗淺比喻,希望能幫助大家有個大略的想像。接下來,將以名詞解釋系列,一步步補充這些背景知識。

# 區塊

區塊鏈,顧名思義,是由「區塊(Block)」與「鏈(Chain)」所組成的名詞。要理解區塊鏈,我們就要先理解這兩個名詞實際上的含義。

天地洪荒,萬物混沌之初,這世界本沒區塊,直到「創始區塊(Genesis Block)」的出現,才定義了萬物的狀態。有了基礎的狀態,在未來的每個區塊只需要記錄「狀態的變化」即可。

因此,在一個區塊裡面包含了多筆「交易(Transaction)」,而在以太坊裡的交易又分為:「建立(Create)」與「執行(Execute)」。

# 建立(Create)

通常發生在「部署智能合約」所使用。我們將在智能合約章節有詳細的解釋。

# 執行(Execute)

代表著以下幾種可能的狀態變化:

  1. 收發以太(Ether):增減該帳戶的 Ether 餘額。
  2. 與智能合約互動:改變智能合約的儲存資料。

# 以創始區塊為例

圖片擷取自:https://etherscan.io/txs?block=0

我們可以發現這個創始區塊紀錄了多筆由「GENESIS」轉給「以太坊帳戶」的以太轉帳。

# 以第15553296區塊為例

圖片擷取自:https://etherscan.io/txs?block=15553296

在這個區塊中,就能看到很多與智能合約互動的交易,比如說近期熱門的 NFT 就會提供一個 Mint 的函式,讓使用者可以鑄造 NFT 出來。

#

有了對區塊的初步概念,我們就能來探討「鏈」了。

鏈的目的是把區塊有順序地給串起來。而為什麼「順序」如此重要呢?

每個區塊實際上是記錄「交易」,也就是「狀態的變化」,如果順序不同會發生什麼事?

# 以銀行交易為例

Alice 的戶頭有 100 元,Bob 的戶頭有 200 元,海帶的戶頭有 300 元

初始狀態

Alice Bob 海帶
100 200 300

Alice 今天請海帶幫忙代購商品,欠了海帶 200 元。 而 Bob 同時欠了 Alice 100 元。 Alice 為了能還海帶錢,請 Bob 先還她 100 元。

Bob 還錢後的狀態

Alice Bob 海帶
200 100 300

Alice 這時還給海帶 200 元

最終狀態

Alice Bob 海帶
0 100 500

上面的交易如果順序亂了, Alice 要還錢的交易被放在 Bob 還錢之前,那發生的瞬間就會因為餘額不足導致交易失敗。

# 結語

同理在區塊鏈上前面交易的順序、成功與否都會影響後面的狀態,因此我們需要通過「鏈」的概念確保所有的「區塊」都能以一個不可變動的順序被牢牢的串在一起。

而這,就是區塊鏈。

Last Updated: 2023/1/12 上午6:20:49