這是一段「區塊」與「鏈」的故事

區塊鏈是什麼?區塊裡裝的是什麼?為什麼又要用鏈接起來?它到底長什麼樣子?

本文是區塊鏈入門文章,為想跟上金融科技時事、但又不是很熟的區塊鏈新手說一個簡單易懂又生動的故事。

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

 

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

 

出自Centralized, decentralized and distributed network models by Paul Baran (1964)

 

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

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

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

把記有交易紀錄的帳本鎖進加密的保險箱(本圖片係以創用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 國際 授權條款 授權。)

 

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

 

這是一段「區塊」與「鏈」的故事由Angelina H. Huang製作,以創用CC 姓名標示 4.0 國際 授權條款釋出。

此作品衍生自https://medium.com/flowchain-tw/%E9%80%99%E6%98%AF%E4%B8%80%E6%AE%B5-%E5%8D%80%E5%A1%8A-%E8%88%87-%E9%8F%88-%E7%9A%84%E6%95%85%E4%BA%8B-c949a285b964

投資一定有風險,投資有賺有賠,購買前應詳閱相關資訊

免責聲明:

1.以上內容不代表本網立場

2.轉載/內容合作/尋求報導請聯繫 Like-BTC Facebook Page,未經授權嚴禁轉載,違規轉載法律必究。

 

文章轉載自:Angelina H. Huang, Flowchain Foundation https://medium.com/flowchain-tw/%E9%80%99%E6%98%AF%E4%B8%80%E6%AE%B5-%E5%8D%80%E5%A1%8A-%E8%88%87-%E9%8F%88-%E7%9A%84%E6%95%85%E4%BA%8B-c949a285b964

發表回覆

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