Bitcoind

交易驗證

  • October 4, 2013

我執行一個 0 確認工具。要跟踪我使用的新交易:

  1. 比特幣getrawmempool
  2. 新區塊中的新交易在記憶體池中不可用(在我的客戶接受新區塊之前,我似乎沒有收到記憶體池中的所有交易)

我信任我的比特幣客戶端交易驗證流程(協議規則)。(我希望它完成所有步驟:https ://en.bitcoin.it/wiki/Protocol_rules#.22tx.22_messages )

我希望我不能保證創建新塊的客戶/人遵循了包含交易的協議規則,所以我想從我的記憶體池中檢查“失去”的交易。

我知道 6 次確認預計是“安全的”,但我想盡可能安全地進行 0 次確認(或關於新區塊的 1 次確認)。

1:在接受新區塊(本地)之前,我的 bitcoind 客戶端是否檢查了每筆交易?(確保我的(官方)客戶的記憶體池和區塊鏈中可用的每筆交易都符合協議規則)

2:如果 1. 不正確:如果新區塊中包含的交易確實符合(官方)協議規則,那麼可以使用哪些 bitcoind API 或(python)程序來驗證它們?

是的,您的客戶將完全驗證它收到的每個塊。

接受 0 確認交易的最大問題是確保攻擊者無法向您的節點發送交易,而該交易將被網路的其餘部分作為雙花丟棄。基本上,您會希望禁止直接連接到您的節點並將它們連接到受信任的節點,例如大型礦工。

這並沒有消除風險,而是在一定程度上降低了 Finney 攻擊的風險,並且攻擊者很幸運地通過大型礦工將不良交易發送給您,最終在衝突交易被探勘之前沒有將該交易放入區塊中。

引用自:https://bitcoin.stackexchange.com/questions/13587