Receipts

收據和交易有什麼區別?

  • August 29, 2019

收據的資料結構與交易沒有太大區別。那麼為什麼區塊頭有收據樹根呢?有沒有必要?

在乙太坊的黃皮書中,交易收據儲存了執行交易產生的資訊。

它是一個有四個欄位的元組

  • 區塊累計使用氣體
  • 事務執行期間產生的日誌
  • 來自日誌的布隆過濾器
  • 交易執行的狀態碼

收據的目的是向外界提供有關交易執行的資訊。

儲存在區塊頭中的收據樹根用於驗證區塊中所有合約的執行情況。如果惡意礦工不正確地執行交易,則生成的 trie 根將與好礦工的執行不匹配,並且壞塊將被拒絕。

交易收據包含只有在區塊中執行交易後才可用的資訊,例如發出日誌的根。基本上,交易會告訴您應該發生的事情,收據會告訴您實際發生的事情的資訊。

引用自:https://ethereum.stackexchange.com/questions/46021