區塊鏈基礎
引言
區塊鏈技術是一種革命性的資料儲存與追蹤方式,同時讓任何人都能檢視這些資料。它把資料整理成一份公開的歷史交易清單,人人可看,但誰都無法修改。這份公開的交易清單統稱為區塊鏈帳本。
瞭解區塊鏈的各個層次之後,你就能讀懂區塊瀏覽器這個工具所展示的結構:區塊的列表、這些區塊裡的交易,以及每一筆交易的細節。想親眼看看,可以試試 Etherscan,這是以太坊上很常用的區塊瀏覽器。
區塊鏈的結構
「區塊鏈」既可以當名詞用(比特幣區塊鏈),也可以當形容詞用(區塊鏈技術)。無論哪種用法,區塊鏈指的都是加密貨幣賴以建立的整個結構。
從外往裡看,區塊鏈有 3 個層次:
- 整條
區塊鏈由按順序連線在一起的區塊組成 區塊由一組組交易彙集而成交易是網路上地址之間的價值轉移,或是發給程式的指令
這三層結構合在一起,構成一份密碼學帳本:網路上所有交易的、不可更改的歷史記錄。
知識檢測 1
什麼是區塊鏈?
-
[ ] 由交易整理而成的一組組區塊
-
[ ] 一份人人可看、誰都無法修改的共享記錄
-
[ ] 按順序連線在一起的區塊
-
[ ] 以上都對
細看帳本
在常見的貨幣體系裡,我們信任銀行這類第三方去記錄每個人有多少錢。但要真正做到 Bankless,我們想要一個不必信任某個實體來管理帳本的體系。
帳本是區塊鏈上有史以來所有交易的清單;對於公開區塊鏈,任何人都能檢視它。帳本里一批批相互獨立的交易組成區塊,區塊又共同組成區塊鏈。
新交易被記入帳本後,每個地址上的餘額隨之更新;過去的交易無法改動。這就像允許任何人隨時檢視所有人歷來的銀行帳戶交易記錄。
帳本上的交易
我們來看幾筆示例交易:
- Alice 向 Bob 傳送 5 ETH
- Bob 向 Charlie 傳送 2 ETH
單筆交易顯示的是每個地址上加密貨幣數量的變化,因此所有交易的累計結果,就是每個地址持有的加密貨幣數量。
⇒ Alice 減少了 5 ETH
⇒ Bob 淨增加了 3 ETH(收到 5,發出 2)
⇒ Charlie 增加了 2 ETH
知識檢測 2
關於公開區塊鏈的帳本,下面哪一項是正確的?
-
[ ] 所有交易都公開,過去的交易無法更改
-
[ ] 帳本記錄著每個地址當前持有多少加密貨幣
-
[ ] 帳本會隨著新交易的加入而增長
-
[ ] 以上都對
去中心化
寫進區塊鏈帳本的交易不僅無法更改,還會在一個龐大的計算機網路裡被共享和分發。為了確保沒有任何單一實體有權改動資料,區塊鏈帳本的副本被儲存在網路中的許多臺計算機上,這些計算機叫節點。
正是這種資料共享,讓區塊鏈帳本變得去中心化。沒有任何單一權威或實體控制這些資料。像以太坊這樣的區塊鏈還是公開的,因為帳本人人可查。
這一課你只需要記住:帳本資料被共享在執行以太坊網路的眾多計算機上。
知識檢測 3
是什麼讓區塊鏈去中心化?
-
[ ] 只有一個實體可以向區塊鏈寫入資料
-
[ ] 它符合政府設定的去中心化要求
-
[ ] 沒有單一實體控制帳本,帳本存在許多計算機上
-
[ ] 帳本儲存在一臺安全的伺服器上
區塊的構造
區塊鏈有一個重要特性:交易資料一旦被寫進區塊,就無法再更改。原因在於每個區塊都有一個獨一無二的區塊雜湊,像指紋一樣,用來把區塊一個接一個地串起來。誰要改動過去的交易,就必須同時改掉那個指紋,以及它之後每一個區塊的指紋,因為每個指紋都依賴前一個。
所以每個區塊其實就是一組交易,加上一個由區塊內容算出的獨特指紋(它的區塊雜湊)。區塊之所以連成一條鏈,是因為每個區塊都引用了前一個區塊的獨特指紋,從而形成一條完整相連的區塊鏈。
知識檢測 4
區塊雜湊的用途是什麼?
-
[ ] 加密區塊資料,讓別人讀不到
-
[ ] 把區塊串聯起來,讓過去的交易資料無法更改
-
[ ] 確保交易被髮送到正確的地址
-
[ ] 確保區塊鏈保持去中心化
區塊內部
記住,區塊資料就是一組打包在一起的交易。深入單個區塊看,我們會看到一份交易清單,以及一些關於誰建立了這個區塊的資料。
回到前面討論區塊鏈帳本時的例子,那兩筆交易可能被歸進同一個區塊,也可能隨著時間被分散到多個區塊裡。但無論落在哪個區塊,它們最終都會被記入整個區塊鏈帳本。
- Alice 向 Bob 傳送 5 ETH
- Bob 向 Charlie 傳送 2 ETH
別忘了,每個區塊還必須引用上一個區塊的區塊雜湊,才能把區塊鏈連起來。
知識檢測 5
一個區塊裡包含哪些資訊?
-
[ ] 之前所有區塊裡包含的全部資訊
-
[ ] 與區塊鏈相關的一切,因為區塊大小沒有限制
-
[ ] 交易資料,以及對上一個區塊的引用
-
[ ] 固定時間段內產生的全部交易資料
單筆交易
任何區塊鏈上的資料,本質上都是一份交易清單,記錄著貨幣在使用者之間的轉移。每一筆交易都必須有傳送方的數位簽章才有效。
你在錢包裡確認交易時做的就是這件事:用你的數位簽章來授權一筆交易。可以把它想成在支票、收據或刷卡單上簽字的數位版。
交易可以很簡單,比如轉出加密資產;也可以更復雜,比如兌換加密資產,甚至部署一段被觸發時才執行的特殊程式碼,也就是智能合約。
最後,每筆交易都有一個獨一無二的數位標識,叫交易雜湊,其他交易都不會與它相同。這讓人們日後可以方便地指認任何一筆交易,也確保這筆交易的細節事後無法被改動。
知識檢測 6
區塊鏈上的資料就是一份被打包進區塊的交易清單。這樣的交易例如:
-
[ ] 傳送或接收加密資產
-
[ ] 改變區塊的大小
-
[ ] 編輯過去的區塊鏈資料
-
[ ] 以上都對
使用者地址
地址是一個公開標識,任何人都能在區塊鏈上查到它。就像電子郵箱地址一樣,誰都可以往裡面轉帳,但只有掌握私鑰的人,才能解鎖並動用該地址上的資金。
在以太坊上,地址總是以 _0x__________ 開頭,由 42 位數字和字母組成,從該地址的公鑰推導而來。
在區塊瀏覽器裡檢視單筆交易時,我們能看到 From: 和 To: 兩個地址。這並不能告訴我們控制這些地址的人是誰,但讓任何使用者都能追蹤加密貨幣在區塊鏈帳本中的流動。
知識檢測 7
關於區塊鏈地址,下面哪一項是正確的?
-
[ ] 它們是區塊鏈上不同主體的公開標識
-
[ ] 在以太坊上它們總是以 0x 開頭
-
[ ] 誰掌握私鑰,誰就能動用該地址上的資金
-
[ ] 以上都對