文章類型
文章類型

【Blockchain入門】「區塊」與「鏈」的相遇

作者:Angelina H. Huang

區塊鏈是什麼?區塊裡裝的是什麼?為什麼又要用鏈接起來?它到底長什麼樣子?本文是區塊鏈入門文章,為想跟上金融科技時事、但又不是很熟的區塊鏈新手訴說一個簡單易懂又生動的故事。

區塊鏈,簡單來說是一種「新式資料庫」(Database),過去我們常使用硬碟與雲端資料庫來儲存資料,這兩者是實體與虛擬的差別,但都屬於將資料存在一個中心化、集中式的資料庫中,因此若中心伺服器當機或遭遇駭客攻擊,都會讓用戶遇到服務停擺或個資外洩的危機,而這些中心化的資料庫也有被竄改的風險,例如駭客駭進銀行資料庫,只要刪掉一個 0,客戶就損失重大了! 台灣也時有行員偽造文書、盜領顧客存款的新聞,顯示若管理這個資料庫的人不具誠信,也會對於文件儲存的安全性造成風險。

透過層層加密,區塊鏈的安全性相當高(本圖片係以創用CC 姓名標示 4.0 國際 授權條款 授權。)

因此,區塊鏈與傳統資料庫的差別,在於「去中心化」和中心化的差別,如下面的概念圖,去中心化的差別在於沒有一個主要的頭,但與最右邊的分散式仍有些許差異。區塊鏈的資料儲存分布多處於去中心化和分散式之間,如下圖(B)所示。

資料儲存模型分為中心化、去中心化、分散式(圖片來源:Paul Baran— On Distributed Communications

從上圖可看到許多點,這些點稱為「節點」,節點可以是一台電腦或伺服器,因此儲存在區塊鏈的資料是指存在這些分散的節點裡,而非一個集中式的中心伺服器,類似「雞蛋不要放在同一個籃子裡」分散風險的概念。而每一個節點存的資料都必須一樣,也就是資料正本只有一個,但每個參與區塊鏈的節點會有一個副本,如果有人想要修改已經存在區塊鏈中的資料,必須要經過這些節點的同意,換句話說,一個人好說話,但若要一百個人都同意,那可是非常困難的,因此區塊鏈具有「不可竄改的特性」便是從這而來。

區塊鏈裡的秘密

區塊鏈的區塊究竟裝的是什麼? 前面提過,區塊鏈是種分散式的資料庫,資料庫裡存的就是交易紀錄,也可以視為一本帳本,記錄著流水帳。你可能會想流水帳為何這麼重要?還要大費周章的找一堆節點分散儲存?其實流水帳如同你的銀行明細,紀錄的是錢的支出與收入,最後算出個人帳戶裡有多少結餘,若今天一個駭客偷偷在你的銀行帳本裡加一筆匯出的紀錄,銀行就會根據這筆紀錄認定你有這筆支出,扣掉你戶頭裡的錢,這也是為什麼帳本的正確性與安全性非常重要,而區塊鏈技術會造成這麼大的轟動原因之一。

我們已經知道區塊裡裝的是交易紀錄,但區塊本身是什麼東西?其實是為了帳本的安全性,我們需要為這些帳本加裝保全,也就是使用密碼學來加密,包一層加密規則來保護記錄,最後產生的密碼值就是「區塊」。區塊也可視為一個保險箱,把珍貴的帳本放入保險箱鎖上,最後看到的就是一個保險箱的區塊。

把記有交易紀錄的帳本鎖進加密的保險箱(本圖片係以創用CC 姓名標示 4.0 國際 授權條款 授權。)

實際在電腦裡又是怎麼跑的呢?如:A 轉帳 1000 元給 B,但在電腦的世界裡這筆交易紀錄會被轉為二元的資料,呈現出由 0 和 1 組成的數字序列,如:10011001101111。接著經過一道加密手續(通常是使用密碼學 SHA-256 的規則來加密),整個加密過程稱為 Hash Function,產生出來就是 Hash 值(區塊)。

區塊(鎖著帳本的保險箱)= Hash 值 = 交易紀錄(帳本) + Hash Function(密碼鎖)

(本圖片係以創用CC 姓名標示 4.0 國際 授權條款 授權。)

那 「鏈」又是指什麼呢?其實區塊鏈的鏈非彼鏈,而是指「區塊之間彼此交疊扣住的區域」,將每個區塊以這個方式串接起來。

「鏈」是指區塊之間彼此交疊扣住的區域,將每個區塊以這個方式串接起來.因此除了第一塊創世塊外,每塊的「區塊頭」都會包含前一塊的 Hash 值,再加上本身新的交易資料與後續的加密步驟(本圖片係以創用CC 姓名標示 4.0 國際 授權條款 授權。)

剛剛提到,區塊鏈的安全性是相當高的,在於其加密的過程非常複雜,環環相扣到牽一髮動全身的程度。Hash Function 的過程又可細分為 Nonce 和 Difficulty。簡單來說,Nonce 是一個加密的規則,例如:規定在這筆交易的二元數字序列中,每五個數字就分別按照順序插入 101011:

交易序列:1001100110101101100101010…
Nonce:每五個、101011
Hash 值:10011100110010110111001001010…

Hash Function 的過程又可細分為 Nonce 和 Difficulty(本圖片係以創用CC 姓名標示 4.0 國際 授權條款 授權。)

組合而成,便成了區塊鏈的第一塊區塊-創世塊:

創世塊的組成有 6 個欄位:交易資料、Nonce、Difficulty、時間戳記、Merkleroot 和 Version,為了避免讓讀者頭暈,後三個欄位在此略過不提(本圖片係以創用CC 姓名標示 4.0 國際 授權條款 授權。)

Nonce 的設定也不是隨便亂設的,需要符合 Difficulty 這條遊戲規則。我用 Nonce 算出的 Hash 值需要小於或等於 Difficulty,最後才算符合遊戲規則,贏得遊戲 、成功「上鏈」。後面的區塊同樣需要遵守相同的遊戲規則,才可上鏈成為區塊鏈的一份子,也就是前一塊的 Hash 值加上新的 Nonce,並符合 Difficulty 的規則,產生新的 Hash 值,以此類推,區塊鏈則會越接越長。

也因為如此,每一塊區塊都用了前一塊的 Hash 值做加密的動作,所以如果我想要更改第 1001 塊的區塊的交易資料,我連前面的 1000 塊都要跟著一起改,否則很容易被其他節點識破我在偷偷幹的好事,所以一般而言,區塊鏈是越長越安全。

新 Hash 值(新區塊)

= 前 Hash 值(上一個區塊) + 新交易資料 + Nonce(加密) ≤ Difficulty(遊戲規則)

1(前一塊Hash值)+ 2(新交易)+ 3(Nonce)+ 4(≤Difficulty)= 5(新Hash值)(本圖片係以創用CC 姓名標示 4.0 國際 授權條款 授權。)

越來越長的區塊鏈(本圖片係以創用CC 姓名標示 4.0 國際 授權條款 授權。)

小結

區塊鏈小檔案(本圖片係以創用CC 姓名標示 4.0 國際 授權條款 授權。)

那你們有沒有想過,從裝入保險箱加密到上鏈的工作是誰執行的呢?就是大名鼎鼎的礦工啦!我們將在下回曝光神秘的礦工身分!

(本文經作者同意轉載自 Flowchain Foundation原文連結,本文章圖文依創用CC 姓名標示 4.0 國際 授權條款釋出,歡迎轉載,但需標明作者 “Angelina H. Huang, Flowchain Foundation”和文章出處連結;責任編輯:葉于甄)

Flowchain Taiwan

Flowchain Taiwan

Flowchain基金會專為P2P物聯網和即時數據交易提供分散式帳本技術,結合區塊鏈和IPFS星際檔案系統的底層技術,推出數位資產 Flowchain Coin(FLC) 打造算力與存儲共享的生態系,提供AI和IOT產業能源困境的解決方案。
Flowchain Taiwan

Latest posts by Flowchain Taiwan (see all)

上一篇: | 下一篇:

468 ad

我想回應

你的電子郵件位址並不會被公開。 必要欄位標記為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料

成城共創股份有限公司版權所有、轉載必究.Copyright(c) 2017 MakerPRO