跳到正文

區塊鏈:狀態、共識與驗證

區塊鏈是一套版本化協定,讓多個副本對狀態轉換進行排序和驗證。雜湊連結只是其中一個元件;信任還取決於共識、權限、獨立驗證、資料可用性、治理和復原機制。

更新於

僅用於協定教育分析。區塊鏈標籤、有效的雜湊鏈或成功交易本身不能證明去中心化、輸入真實、資料可用、最終性、法律所有權或投資價值。

直接回答

區塊鏈是一種版本化協議,允許多個副本對提議的交易進行排序、驗證狀態轉換並在規定的共識和網路假設下收斂到可接受的歷史記錄。區塊是協議定義的容器,其中包含交易或其他資料以及對先前歷史記錄和結果狀態的承諾;鏈或定向歷史透過加密承諾連結接受的容器。

雜湊連結可以偵測未經授權的歷史變更,但不能單獨使系統去中心化、不可變或正確。這些屬性取決於誰能提議和驗證、使用者能否獨立驗證、分叉選擇與最終性規則、資料可用性、用戶端多樣性、治理、金鑰控制、誘因和復原程序。

區塊鏈可以使用 UTXO、帳戶、物件或特定於應用程式的狀態模型;工作量證明、權益證明、拜占庭容錯投票或許可共識;以及機率或基於檢查點的最終性。因此,「區塊鏈」一詞指的是一個廣泛的架構系列,而不是一種安全保證或一種資料庫產品。

1
建立

錢包填入目標、金額、費用參數,以及已花費輸入或 nonce 等防重放資料,並建立交易。

它是如何運作的

  1. 固定正在測試的鏈、網路、協定版本、權限模型、狀態模型和聲明。記錄創世或可信任檢查點、鏈標識符、客戶端實現和升級權限。
  2. 建立準確的交易位元組和授權。在廣播前檢查發送者或輸入所有權、nonce 或未花費輸出參照、金額、目的位址、費用上限、有效期間、簽名和應用程式呼叫。
  3. 透過對等點或網關傳播交易。區分本地存取和記憶體池政策與共識有效性;節點可能會拒絕、延遲、替換或永遠不會接收區塊中可能有效的交易。
  4. 提議者選擇交易、決定順序並裝入候選區塊,對父區塊、交易、收據、狀態或資料根等協定欄位作出承諾。交易順序會影響執行結果、費用、清算和可提取價值。
  5. 獨立節點反序列化區塊,驗證共識授權和每個所需的狀態轉換,重新計算承諾並根據其規則拒絕無效或不可用的輸入。生產者簽名或工作證明不會涵蓋失敗的驗證。
  6. 分叉選擇是在競爭的有效歷史中進行選擇,而確認、投票或檢查點會隨著時間的推移改變重組風險。 「包含」、「安全」和「最終確定」是不同的狀態,並且仍然特定於協議。
  7. 將協定狀態與應用程式意圖、託管、橋或平台帳務及封存要求核對。保留交易位元組、區塊雜湊、高度或時隙、收據、日誌、狀態證明、最終性狀態、用戶端版本和獨立端點證據。

工作範例

  • 帳戶狀態核對。 帳戶初始有 10 ETH,nonce 為 41。nonce 為 41 的有效交易轉出 2 ETH 並消耗 0.00042 ETH 手續費,因此簡化後的狀態為 10 - 2 - 0.00042 = 7.99958 ETH;接收方增加 2 ETH,發送方 nonce 變為 42。只有有效簽名並不能證明前置餘額充足或執行成功。
  • UTXO 守恆。 一筆交易花費 0.80 BTC0.35 BTC 兩個輸入,合計 1.15 BTC。輸出 1.00 BTC0.1496 BTC 合計 1.1496 BTC;差額 1.15 - 1.1496 = 0.0004 BTC 是手續費。節點還必須驗證每個參照輸出存在、尚未花費並符合花費條件。
  • 承諾證明大小。 在具有 8 leaves 的說明平衡二元 Merkle 樹中,包含路徑需要 log2(8) = 3 sibling hashes。對於 256-bit = 32-byte 哈希,這些同級在索引和編碼之前佔用 3 * 32 = 96 bytes。該證明將葉子與所聲稱的根綁定在一起;它不能證明來源資料是真實的或目前可用的。
  • 權重不等於節點數。 在一個明確以 >= 2/3 權重作為最終性閾值的示例投票協定中,驗證者權重為 30%, 25%, 20%, 15%, 10%。前三者合計 30 + 25 + 20 = 75%,超過閾值;前兩者合計 55%,未達閾值。真實閾值、相關性、雙重投票和復原規則必須以具體協定為準。

風險

  • 使用錯誤的鏈、網路、分叉、檢查點或鏈標識符。
  • 將品牌名稱視為完整的協議或信任模型規格。
  • 假設哈希連結本身就可以防止授權或共識批准的重寫。
  • 將生產者的區塊提案與獨立節點驗證混為一談。
  • 將記憶體池接受、廣播、包含、執行成功和最終確定視為一種狀態。
  • 簽署與介面顯示不同的位元組、網域或目標。
  • 重複使用 nonce、花費過時的 UTXO,或錯誤計算手續費和找零。
  • 信任代幣符號、標籤、事件或區塊瀏覽器解讀,而不是協定識別碼和狀態。
  • 將簽署的預言機、橋接器或文件輸入視為鏈下聲明真實性的證據。
  • 忽略交易排序、審查、搶先交易以及提議者或建構者的集中度。
  • 在不解析常見運算子、權重和基礎架構的情況下對節點或驗證器進行計數。
  • 忽略用戶端、雲端服務商、地域、治理、金鑰和軟體供應鏈集中度。
  • 假設所有共識模型具有相同的故障閾值或最終語義。
  • 忽略網路分區、最終性延遲、重組、雙重投票和復原程序。
  • 在沒有所需資料可用性假設的情況下接受區塊頭或證明。
  • 依賴一個 RPC、瀏覽器、錢包、索引器或託管平台作為事實來源。
  • 將協議佔有或控制與法定所有權、追索權或可恢復性混淆。
  • 低估狀態增長、檔案遺失、同步成本和硬體障礙。
  • 忽略升級金鑰、緊急暫停、社交恢復和有爭議的分叉。
  • 從區塊鏈標籤推斷隱私性、可擴展性、投資價值或應用安全性。

常見的誤解

  • 每個區塊鏈都是去中心化且不可變的。 權限、操作員獨立性、分叉選擇、治理和恢復決定了誰可以改變或拒絕歷史。
  • 鏈上記錄的資料必須真實。 共識可以同意如實記錄虛假價格、偽造文件或惡意應用程式輸入。
  • 有效的交易證明了預期的結果。 它可能會瞄準錯誤的地址、消耗費用後恢復、發出誤導性事件或依賴後續的橋接和託管步驟。
  • 副本越多就一定越安全。 由同一營運方、用戶端、雲端服務或金鑰控制的副本可能同時失效,也未必提供獨立驗證。
  • 區塊鏈總是比傳統資料庫更好。 受信任的運營商、所需的刪除、高吞吐量或簡單的爭議解決可以使傳統系統更合適。

相關主題

來源

導覽

搜尋知識庫...