透過上一期的文章我們大概知道區塊鏈是一種資料傳輸方式,有節點構成,節點再連成鏈。
我們假設搬磚的小王是一個節點,小王這個節點擁有一個記錄磚頭的賬本,有一套和其他搬磚仔一起同步資料的規則。如果磚廠發展壯大,小王和小麗之間隔了很多人,小王認識小張,小張又認識小陳……xxx認識小麗,最終靠大家互傳訊息,小王和小麗打了個招呼,如果小麗是磚廠最後一名工人,那麼他們一起構造了一個磚廠網路。而小張和一批人比較熟,這個小團伙也可以在自己的圈子加一些規則,比如記賬記一記磚頭的顏色啥的,這些都是允許的。
一、節點的基本結構是什麼樣呢的?
如果技術性來看,區塊鏈包含了這些基本的東西:共識機制、密碼演算法、網路路由、指令碼系統、區塊鏈賬本。
1、區塊鏈賬本
區塊鏈,區塊+鏈,區塊包含資料資訊,用某種方式把資料塊相連,就構成了區塊鏈。
那麼,怎麼表示每一個資料塊資訊呢?比特幣的區塊資料大概如下:
大概有三部分組成一個資料塊:區塊頭、區塊體、梅克爾根(簡單理解為身份)。
區塊頭透過梅克爾根關聯自己模組的交易事物,比如小王搬磚過程等。
區塊體中包含前一個區塊頭的身份資訊(雜湊值),用此方法把各個區塊資料連線在一起。
就類似略有不同的拉鍊,每一環都包含著上一環的資訊,然後連成一條。
這些不斷指向下一個資料塊的相連區塊構成一個區塊鏈的賬本,區塊鏈的點對點,其實就是區塊對區塊。
2、共識機制
大家都要記賬,都要記搬磚數目,小王喜歡寫正字,小李喜歡寫數字,小張美術天賦好,一塊一塊畫上去,大家爭論半天沒法達成一致。
於是商量了一個規則,比如年紀大的,工作做的最好的,或者最有話語權的做決定,最終有這個人確定一個共識的方法,大家跟著做。
回到區塊鏈,篩選最合適的節點,大家按它的規則記錄資料,保持賬本一致。
3、密碼演算法
密碼演算法在區塊鏈系統的用途很廣,比如標記、確定區塊以及區塊涉及的每一個業務。
比如小王—>小張—>小陳這個資訊溝通的過程,假如大家都隔著牆,只能看到對方的手臂和衣服,那麼,小張是根據小王的手指特徵+衣服+面板+聲音等確定了就是小王,這些特徵構成小王傳遞資訊的部分判斷依據。
結合前面的區塊鏈結構,資料塊之間連線其實也是靠彼此的區塊鏈雜湊串聯,這個雜湊就涉及密碼學。
每個區塊涉及很多事務,每個事務資料根據密碼學計算出一個雜湊值,唯一表示一個事務,最終這一組組事務雜湊組合、加工得到一顆雜湊樹,頂部就是上面所說的“梅克爾根”。
4、指令碼系統
比特幣系統是比較簡單的,只進行比特幣的傳送和接收;以太坊加了智慧合約,允許使用者自動編寫一些程式。
這也是為什麼很多新的區塊鏈專案的通證都是基於ETH而不是基於BTC開發的原因之一。
而這些執行的規則,都是屬於指令碼系統實現的。也正因為指令碼系統,記賬的區塊鏈,也可以記錄各種訂單、物流、眾籌等資訊的原因。
5、網路路由
路由器大家都知道,我們假設路由器的網路是附近某一個路由器分發的,而且B路由器只能練A,C只能連B,以此類推。
B服務C,也被A服務,大家彼此同步資料,同時負責尋找相鄰的路由。
區塊鏈的網路路由與此類似,大家不是依靠中間的網路訊號發射器,而是互相之間關聯,並沒有一箇中心。
二、學完概念再類比總結
看完概念再對比搬磚這事,會發現理解起來簡單了一些:
確定賬本有一部分共同資料怎麼記錄,屬於共識機制。
人數多了根據互相認識關係傳遞資訊,這個關係網相當於網路路由。
保留每個人特性的,比如小王的刀疤,小張的胎記,類似密碼學得來的雜湊值。
至於小張、小陳、小王想自己加點暗號的賬本資訊,則類似他們自己搞了一個指令碼系統。
三、為什麼區塊鏈不易被篡改?
透過上面區塊鏈賬本我們可以知道,區塊A會根據事物形成一個唯一的雜湊值,並同步到下一個區塊B,假如A被人篡改了,A根據密碼學形成的雜湊值就變化了,B中的雜湊值代表的區塊頭就不再是A的了,所以篡改的人必須也把B中的雜湊值修改掉,又影響到C……以此類推,並不容易。
宣告:文章部分圖片來源於網路,侵權請聯絡本人刪除!
感謝你的耐心閱讀,我是愛因斯坦一撇,歡迎關注本人公眾號:一撇區塊鏈。