簡體   English   中英

區塊鏈中的交易驗證

[英]Transaction verification in Blockchain

讓我們假設我們有一個名為ABCCoin,ABC的AltCoin。 我將被稱為X,開采了一個街區並獲得了新鮮鑄造的25 ABC作為采礦獎勵。 現在,我想將此硬幣送給朋友Y。

Tx: X -> Y : 25ABC

並假設它存儲在塊B100中。 現在幾個月后,Y女士出於任何原因都希望將其轉移到Z。 所以,

Tx: Y -> Z : 25ABC

現在,幾個月后。 Z先生想和女友約會時用星巴克買咖啡。

現在,交易鏈如下:

|Tx|Minted -> X |
   --> "Tx: X -> Y : 25ABC" 
   --> "Tx: Y -> Z : 25ABC"
   --> "Tx: Z -> Starbucks : 25ABC"

因此,在這種情況下。 當我們需要驗證“ Tx:Z-> Starbucks:25ABC”時,我們必須追溯到其起源,即該硬幣鑄造的時間點,或者僅通過檢查其直接來源就可以對其進行驗證。 即“ Tx:X-> Y:25ABC”,並且不關心其他先前版本。

假設您正在詢問基於UTXO交易的區塊鏈(如比特幣)。

驗證有2種類型

  1. 全節點驗證

  2. SPV驗證

全節點

全節點程序是一種完全驗證交易和區塊(例如bitcoindlitecoindgeth 因此,每當一個完整的節點從其他對等方接收到新的塊時,它都會驗證該塊中的所有交易,並僅在該塊完全有效時才將其添加到其區塊鏈中並更新UTXO列表。

為了驗證交易,全節點檢查類似

  • 交易格式
  • 交易簽名
  • 從其區塊鏈中查找先前的交易
  • 雙重支出交易的存在

因為完整節點具有它認為正確的UTXO列表,所以檢查事務格式/簽名和UTXO列表足以驗證新事務。

SPV

SPV客戶端沒有完整的區塊鏈數據或UTXO列表,SPV僅使用MarkleTree檢查交易是否在區塊中,並且包含該交易的區塊是否滿足區塊難度。 這就是SPV可以檢查的所有內容,因為它必須逐個檢查所有塊頭和塊體以創建UTXO列表。 因此,SPV無法檢查是否是雙重消費交易。 但是,因為只要區塊鏈具有足夠的難度,創建一個假塊的成本很高,所以它是可用的驗證。 就像評論中提到的@Haardik一樣,在將來的更新中可能會獲得可信任的UTXO列表而不使用標記樹下載所有區塊鏈數據

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM