簡單的說,區塊鏈就是一種計算機的技術,和網際網路是一樣。再複雜一點的說,區塊鏈是一種電子化資料的儲存方法。資料是以區塊的形式出現的,這些區塊都連結在了一起,為其內部資料賦予了不可變性。當一個資料塊被連結到了這條鏈上,其內部資料就再也無法更改了,裡面的資料對任何人都是公開可見的。
區塊規則
每個區塊的大小在 1 MB 左右。區塊按照時間順序從第一筆交易開始記錄,當資料量達到 1 MB 後,交易會記錄在下一區塊中,依次順延。
區塊連結
把這些區塊連結在一起的,就是根據每個區塊內部資料串生成的特殊數字簽名。這個數字簽名是透過雜湊運算得出,如果這個區塊中的資料發生任何變動,即使只改變了一個數字,這個區塊的簽名也會發生改變。
雜湊運算
密碼學雜湊函式是一個極其複雜的數學公式:將任意資料串作為輸入值代入公式,可以得到一個獨一無二的 64 位輸出值,但是無法用輸出值倒推出輸入值。
合格的數字簽名
區塊鏈協議會預先確定一些要求,比如,在比特幣區塊鏈上,只有在數字簽名以不少於 連續 10 個零 開頭的情況下,對應的區塊才能上鍊。為了獲得符合條件的區塊數字簽名,需要反覆改變輸入的資料串,直到能生成以連續 10 個零開頭的簽名為止。區塊鏈網路上的任何使用者都可以參與到區塊數字簽名的雜湊運算,這個“區塊數字簽名的雜湊運算”就是挖礦。
區塊鏈的不可變性
更改某個區塊會導致它的簽名改變,與後續區塊記錄的對不上,從而與後面的區塊斷開連結。要想讓網路中的其他參與者接受這個被更改過的區塊,就要把它跟後面的區塊重新連結起來。
假設有一個礦工 惡意 篡改了某個區塊內的交易,然後根據雜湊運算為這個區塊連同跟在它後面的所有區塊生成了新的簽名,以此讓網路中的其他參與者都接受被篡改過的交易。問題在於,網路中的其他礦工也在原來的鏈上不斷為新的區塊計算簽名。隨著新的區塊不斷上鍊,作惡的礦工也要重新計算這些區塊的簽名。他必須保證所有區塊都連結在一起,包括不斷被新增到鏈上的新區塊。除非這個礦工擁有的算力超過全網其他人的總算力,否則他永遠趕超不了其他礦工。
只有一種例外,就是惡意參與者的算力真的超過全網其他人的算力總和,這種情況下是有可能篡改區塊鏈的(即改變大家共同認可的歷史記錄),這就叫做 51% 攻擊(以後為各位朋友們詳細介紹)。
密碼學貨幣
區塊鏈是一種技術,實現和執行區塊鏈技術的就是密碼學貨幣,大家透過區塊鏈技術記錄密碼學貨幣的交易記錄,又可以透過“區塊數字簽名的雜湊運算”獲得獎勵。這就是區塊鏈和比特幣的基礎關係。
來源: 啟明拉呱