數據如何在區塊鏈中處理和存儲

隨着區塊鏈技術接管網絡,用戶仍然發現理解傳統網絡技術和 web3 技術之間的區別具有挑戰性。

在本文中,我們將分解區塊鏈的位置、區塊鏈的存儲位置以及數據在其中的處理方式。

區塊鏈技術基礎

簡單地說,區塊鏈是一個在網絡中的多台計算機之間共享和同步的數據庫。在區塊鏈中,交易安全地存儲在對等計算機網絡中,也稱為節點。它使用哈希,這是一個不可更改的加密簽名。散列將每種類型的數據轉換為一組獨特的字符,提高了區塊鏈的完整性。區塊鏈技術的關鍵特徵是透明性、安全性和不變性。這意味着交易一旦被記錄,就無法更改或刪除。

要想清楚地了解區塊鏈存儲在哪裡,我們首先要清楚地了解傳統網絡是如何存儲和處理信息的。

數據的傳統存儲方式

在傳統的 Web 中,計算機將數據存儲在具有表、行和列的集中式數據庫中,數據庫管理員可以讀取、寫入、更新或刪除這些數據。

集中式數據庫更易於管理且可擴展性強;但是,缺乏透明度、安全性和完整性。這與透明且不可變的區塊鏈網絡非常不同。

區塊鏈中的交易是如何發生的

要在區塊鏈中進行交易,必須存在區塊鏈的三個組成部分:節點、區塊和礦工。

1. 節點

節點可以是連接到區塊鏈網絡以驗證和中繼交易的任何計算機。區塊鏈上的所有節點都鏈接在一起,它們經常相互交換最新數據,確保所有節點都是最新的。

節點的三個主要角色是:驗證區塊鏈上的交易,並根據真實性接受或拒絕交易。在區塊鏈上存儲區塊交易。與區塊鏈上的其他節點共享交易信息。

2. 區塊

在區塊鏈中,區塊是單個、唯一的交易記錄單元。區塊可以根據它們在網絡中的角色來區分。

  • 創世塊:網絡中的創始塊。換句話說,區塊鏈中的第一個區塊。該塊通過允許創建和鏈接後續塊使網絡不可變。
  • 有效區塊:已開採且現在是區塊鏈一部分的區塊。有效塊包含已被礦工驗證/驗證的交易。
  • 孤塊:不再屬於區塊鏈網絡的塊。孤立塊是在同時挖掘多個塊但未添加到區塊鏈時創建的被拒絕塊。
  • • 礦工

在區塊鏈上添加新交易的過程稱為挖礦。礦工驗證/驗證交易,然後將其添加到區塊鏈中。

交易如何發生

區塊鏈交易生命周期分為三個階段:身份驗證、授權和工作量證明(PoW)。

1. 認證

在進行任何交易之前,用戶必須使用錢包的私鑰成功驗證自己的身份。最流行的身份驗證方法是使用助記詞。

種子短語是一組隨機選擇的單詞,代表一長串隨機數字和字母(您的私鑰)。

私鑰如下所示:

0C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D

這有點難記住,所以我們使用這樣的助記詞:

spare govern hawk eternal decline session load grace peasant west bargain always meadow ensure quality hill neglect hand toss lyrics stereo call snap about

通常,使用助記詞訪問你的錢包比使用你的私鑰更容易,因為它更容易記住。種子短語身份驗證增強了區塊鏈交易的匿名性和隱私性,因為沒有中心機構管理身份驗證。

2.授權

授權是指網絡上的每個節點都相互同意以批准交易。換句話說,在區塊鏈中,必須達成共識才能驗證交易。一旦滿足智能合約設定的標準,節點將批准交易。

交易獲得批准後,將存儲在區塊鏈上。一旦交易存儲在區塊鏈上,就無法更改。

3.工作證明(PoW)

簡而言之,工作量證明是加密貨幣礦工用來驗證交易的複雜算法。使用此算法,您可以確認交易以在區塊鏈中創建新塊。

礦工們相互競爭以完成這個複雜的算法,因為每次將新區塊添加到鏈中時,他們都會獲得經濟補償。這是因為解決這些複雜的算法需要大量的計算能力。

權益證明(PoS):權益證明是區塊鏈中使用的替代共識機制。通過權益證明,持有最多網絡原生貨幣的成員擁有驗證交易的最大權力。

數據如何存儲在區塊鏈中

在區塊鏈中,數據由網絡中的所有節點訪問、驗證和記錄。那麼區塊的實際內容是什麼,區塊鏈中存儲了哪些類型的數據呢?

區塊有兩個部分:標題和正文。標頭是區塊的一部分,包含用於標識塊的信息,而主體是區塊的包含數據(事務)的部分。

塊頭

塊頭包含與區塊關聯的元數據。

元數據是:

  • 塊的版本。包含區塊版本號的 4 位元組字段。區塊的版本號指定驗證區塊的規則。例如,在比特幣中,有 4 個區塊版本,每個版本都是對前一個區塊規則的改進。
  • 前一個區塊的哈希。區塊的身份。它是一組獨特的字符串,用於標識特定區塊並將其與下一個塊聯繫起來,形成一個塊鏈。換句話說,每個新塊都是從前一個區塊的哈希生成的。

  • 時間。區塊被散列時的時間戳。
  • 默克爾樹。Merkle 樹是一種數據結構算法,其中每個節點都用區塊的加密哈希標記。Merkle 樹使用 Merkle 根數學公式來驗證網絡中的數據。這是為了在區塊鏈中高效和安全地驗證數據。
  • 。存儲難度目標,這是一個 4 位元組的文件,指定礦工為了驗證交易而解決的數學問題的難度。
  • 隨機數。隨機數(使用一次的數字)是一個隨機數,用於獲取區塊的哈希值。定位隨機數是礦工在驗證區塊時所做的事情。難度目標必須等於或小於要驗證的區塊的隨機數。

此元數據在比特幣網絡中是公開的,並且始終可以使用Etherscan[1]Blockchair[2]等區塊鏈瀏覽器進一步探索和查看。

塊體

區塊的主體是存儲塊的所有交易的地方。一個區塊最多可以容納 500 筆交易,比特幣網絡就是這種情況。區塊的大小越大,區塊鏈中的交易就越快。

區塊鏈的類型及其存儲數據的方式

不同的區塊鏈具有不同的數據結構。讓我們回顧一下比特幣和以太坊網絡中數據的結構。

比特幣

比特幣是第一個加密貨幣,也是區塊鏈技術的第一個實際應用。比特幣中的交易可以使用未使用的交易輸出 (UTXO) 進行建模。UTXO 是指交易發生後剩餘的比特幣數量。

UTXO 數據庫存儲來自比特幣交易的變化。該數據庫的初始狀態為 0。隨着事務數量的增加,數據庫中充滿了來自多個事務的更改條目。

到交易完成時仍未使用的任何輸出都將作為輸入存回數據庫,以在後續交易中使用。

每個比特幣交易中都會提供以下元數據:

  • tx_in count:交易輸入的總數。
  • tx_ins:保存所有交易輸入的列表。
  • tx_out count:交易輸出的總數。
  • tx_outs:所有交易輸出的列表。
  • 腳本見證:此文件包含所有 SegWit 交易見證數據的序列化。
  • 鎖定時間:指定交易何時可以包含在區塊鏈中。它是一個 4 位元組的值,用於指定交易的塊號或時間戳,直到它被鎖定。它通常設置為 0,這意味着交易在區塊完成後立即生效。

以太坊

比特幣的主要限制是可擴展性,這意味着比特幣網絡中的單個區塊只能容納 1MB 的數據。以太坊網絡是使用trie數據結構構建的,以解決比特幣網絡面臨的性能和可擴展性挑戰。

trie ,通常稱為數字樹,是一種數據結構方法,包含一組通過節點之間的鏈接連接的字符串。以太坊網絡有四種嘗試:狀態、存儲、交易和接收嘗試。

  • State trie:存儲臨時網絡數據,例如賬戶密鑰、交易數量、地址和賬戶餘額。隨着事務的發生,狀態樹的數據會不斷更新。基本上,狀態樹將地址映射到帳戶狀態。
  • Storage trie:存儲智能合約數據。它保存帳戶數據,例如帳戶餘額和與帳戶關聯的交易數量。每個以太坊賬戶都有自己的存儲嘗試。
  • transaction trie:事務樹特定於每個塊。Transaction trie 捕獲交易請求向量,如 gas value、transaction value、gas limit、receiver 和 nonce。
  • Receipt trie:保存交易後數據,例如使用的氣體量、交易後狀態和交易日誌。

結論

在本文中,我們分解了區塊鏈網絡中的交易是如何發生的以及它工作所需的組件。我們還探討了區塊鏈的類型以及它們如何存儲數據。

引用鏈接

[1] Etherscan: https://etherscan.io/
[2] Blockchair:
https://blockchair.com/