區塊鏈原理簡介

2022-09-09 20:54:22 字數 1136 閱讀 8352

密碼學hash()函式的單向性: hash(x) =y , 通過y很難找到x

雜湊鏈: 假如現在有順序產生的資料塊 a, b , c 。 那麼我們可以這樣計算乙個hash 。 注意 「||」 表示拼接

(ps : a, b, c 可以是所在節點的二進位制資訊,等等,反正就是已經知道的值,比如乙個普通檔案的二進位制資訊)

h0=hash(a) 

h1 = hash(b ||h0)

h2 = hash(c || h1)

h2是我們計算的hash頭部,現在來看, 為什麼我們管這個東西叫hash鏈, 因為h2 的值依賴於之前一系列資料的內容和計算順序。

假如說現在你知道了h2 , 別人拿著a,b, c, 他不管是修改a,b, c的任一點內容還是a,b, c的出現順序,你都無法再次計算出正確的h2

位元幣區塊鏈其實就是雜湊鏈的乙個變種

(注意, 下文描述的這種新增隨機數以及對隨機數有特殊要求的規則是位元幣為了實現工作量證明 proof of work 的共識機制而新增的, 並不是區塊鏈的乙個必要特徵)

怎麼變? 新增乙個隨機數(nonce)

假如現在有順序產生的資料塊 a, b , c 。 我們來這樣計算hash頭。 注意 「||」 表示拼接

h0=  hash(a||nonce0) 

h1 = hash(b || h0 ||nonce1)

h2 = hash(c || h1 || nonce2)

這裡我們還新增乙個額外的要求, 就是 h0, h1, h2 必須都得是以指定數目的0 bit開頭的

例如要求每個雜湊值都必須以5個0開頭,則h0,h1,h2都應該是這樣的形式(00000*****************)

新增了這個要求以後, h0, h1, h2就都不是那麼容易計算的了, 因為你不能根據輸出的形式來反推輸入是什麼,

而a, b, c又是給定的, 那只能不斷更改nonce來窮舉計算, 然後找到乙個可以滿足要求的nonce值 ,使得h0, h1, h2符合要求

到這裡大家就知道所謂的礦工是在幹什麼了, 就是接受廣播出來的資料塊,然後計算當前最新的雜湊鏈的頭部, 當成功計算出了乙個符合要求的hash後, 就告訴所有人,自己找到了, 讓別人再去計算下乙個雜湊頭部。

**:

區塊鏈簡介

區塊鏈 blockchain 是位元幣的底層技術,像乙個資料庫賬本,記載所有的交易記錄。這項技術也因其安全 便捷的特性逐漸得到了銀行與金融業的關注。該概念在中本聰的 中提出,中本聰創造第乙個區塊,即 創世區塊 2009年1月3日,位元幣的創始人中本聰在創世區塊裡留下一句永不可修改的話 the tim...

區塊鏈 簡介

區塊 去中心化,具有加密演算法,不可篡改的,分布式儲存容器 鏈 賬本 bt bittorrent 網路 a伺服器,b客戶,c客戶,d客戶,b客戶請求,a伺服器,資料x c客戶與b客戶在同一區域,且c客戶有資料x 則資料流,從a b 變為c b。p2p 去中心化,點到點,無法追查 成功案例 1 位元幣...

區塊鏈簡介

一 區塊鏈本質 它是一種特殊的分布式資料庫。首先,區塊鏈的主要作用是儲存資訊。任何需要儲存的資訊,都可以寫入區塊鏈,也可以從裡面讀取,所以它是資料庫。其次,任何人都可以架設伺服器,加入區塊鏈網路,成為乙個節點。區塊鏈的世界裡面,沒有中心節點,每個節點都是平等的,都儲存著整個資料庫。你可以向任何乙個節...