科普 | 極簡科普篇——區塊鏈是什麼?
如果你對區塊鏈深感好奇,卻又不知道它究竟是什麼?這篇文章就是你的菜。本文旨在讓你瞭解區塊鏈是什麼,因此在寫作過程中簡化了部分內容。如果能助你理解區塊鏈技術是什麼,那我的任務就完成了。
小貼士:為了更好地理解區塊鏈技術,請不要忽略本文提到的圖片。這些圖片相當重要!
區塊鏈是什麼?
是的,區塊鏈 = 區塊+鏈條 = 一串(區塊)
我們首先把區塊鏈和轉賬系統進行類比。記住,區塊鏈有很多用例,而轉賬系統只是其中之一。
假設,我從自己的賬戶裡轉了一部分錢到你的賬戶。在我進行這筆交易時,一定要有個地方寫入交易資訊。
這個地方就是 區塊 。
在 區塊 中,我們會寫入如下資訊:
- 誰在轉賬給誰?
- 交易金額
- 簽名等其他資訊
public class Block { public String data; public String hash; ... }
所以區塊和銀行支票類似,都是一種資訊載體。
除資訊(I)外,每個區塊都有一個獨一無二的雜湊值(H)作為身份標識。雜湊值(H)是一個很重要的概念。
交易越多,區塊也會越多。
這些區塊通過一根鏈條相互連線成了一個區塊鏈。
為什麼要讓區塊相互連線呢?
是為了保證資訊的安全性。
連線方式:當前區塊的雜湊值取決於上一個區塊的雜湊值。
下面舉個簡單的栗子:chestnut:。
假設我們有 3 個區塊,包含如下資訊:
- 區塊 1 包含的資訊為 I1 , I1 的雜湊值為 H1 。
- 區塊 2 包含的資訊為 I2 , I2 的雜湊值為 H2 。
- 區塊 3 包含的資訊為 I3 , I3 的雜湊值為 H3 。
H2是由 H1 和 I2 結合起來算出的。同樣地, H3 是由 H2 和 I3 結合起來算出的,依此類推。
H2 = 某種加密函式(H1, I2)
H3 = 某種加密函式(H2, I3).
那 H1 從何而來?首先,我們要取一個預設值 H0 。
H1=某種加密函式(H0, l1),其中 H0 是個預設值。
到目前為止,上圖的區塊鏈是穩定的。
現在如果有人把區塊 2 的資訊 I2 改成 I2' , I2 的雜湊值 h2 改成 h2' ,其他區塊保持不變。在這種情況下,區塊鏈就會變成下圖中的不穩定狀態。
區塊鏈不穩定的原因如下:
- H3 ≠ 某種加密函式(H2', I3) ,H3 的值發生了變化。
- 用 H2' 代入公式重新得出 H3' = 某種加密函式(H2', I3)
- H4' , H5' , H6' 也以此類推。
修改後,這個區塊鏈就會變得像下圖一樣穩定。
這樣的話,所有修改要經過端對端修改和稽核。那黑客入侵電腦修改資料也就沒那麼容易了。如果有黑客修改了資料,區塊鏈就會變得不穩定,立馬就會被發現。
List<Block> blockList = new ArrayList();
我們將區塊放在一個類似上圖的列表中,這樣已知當前區塊所在 position
(位置),很容易就能通過執行 blocklist.get(position — 1)
找到上一個區塊。儲存區塊的方法有很多。
區塊互連主要是為了保證安全性。
接下來深度科普區塊鏈是什麼
區塊鏈是一個 分散式的去中心化分類賬 ,用來 儲存交易資訊等資料 ,這些資料 為整個區塊鏈網路中的節點所共享 。
這麼說是不是把區塊鏈定義得太過複雜了?
不過不用擔心。我來幫你剖析一下難點。
分類賬
分類賬是承載區塊列表的主要記錄載體。
儲存資料
區塊能儲存資料(資訊)。此處對資料的定義很廣泛,可以是我們能想到的任何資料。我們就拿交易資訊這一資料來舉個例子。
分散式的去中心化分類賬
資料處理通常由一箇中心機器負責。但是區塊鏈裡有很多機器(因此它不是中心化的),且所有機器都是點對點相互連線。另外,這些機器維護的是同一本分類賬。因此,區塊鏈被稱為分散式的去中心化分類賬。
換句話說,因為同一區塊鏈網路中的所有人都共享同一本分類賬,所以說區塊鏈是分散式的。每個人都有整個分類賬的副本,一旦有什麼東西新增進去,副本馬上就會更新。
為整個區塊鏈網路中的節點所共享
在區塊鏈網路中,所有機器全都相互連線。每個節點(機器)都持有相同的分類賬副本。這就意味著整個區塊鏈網路中的節點都共享一本分類賬。
區塊鏈是如何運作的?
區塊鏈的運作步驟:
- 阿米特(Amit)想建立一個交易。
- 阿米特建立了一個交易。
- 阿米特將該交易提交到網路上。
- 網路中的機器驗證交易並予以批准。
- 阿米特的交易被打包上鍊。
- 更新後的區塊鏈在全網廣播。
- 轉賬完成。
現在理解區塊鏈的定義以及它的運作方式了吧。
既然區塊鏈是分散式的,那它如何保證安全性呢?
區塊鏈利用密碼學來生成數字簽名。提到數字簽名,先要了解下私鑰和公鑰的概念。
我們每個人都可以獲得自己的私鑰和別人的公鑰。
私鑰:只有所有者可以訪問。
公鑰:網路中的每個人都可以訪問彼此的公鑰。
假設我想建立一個交易。我用自己的私鑰對資訊進行加密來建立一個數字簽名。
然後我把交易(內含資訊、公鑰以及上圖所示的數字簽名)提交到網上進行審批。
在這一過程中,網路會利用公鑰來解密數字簽名,並從簽名中提取資訊。
如果原資訊與從上圖所示的簽名中提取出來的資訊相匹配,就可以通過審批,否則就無法通過。
如果兩個資訊不匹配,可能是以下原因:
- 原資訊在中途被操控了。
- 生成數字簽名時所用的私鑰與所提供的公鑰不匹配。
這就是網路如何能發現篡改的方法。因此區塊鏈是安全的。
這就是今天要講的關於區塊鏈的全部內容。請繼續關注我的“ 循序漸進入門區塊鏈 ”系列教程。
區塊鏈學習愉快
原文連結: ofollow,noindex" target="_blank">https://medium.com/mindorks/what-is-blockchain-simplest-introduction-to-the-blockchain-764a468e1575
作者:Amit Shekhar
翻譯&校對:李麗 & 閔敏
本文由作者授權 EthFans 翻譯及再出版。