Security

在測試中刪除 CHECKSIG 的安全隱患

  • December 30, 2018

如果我在不包含 OP_CHECKSIG 的測試網上進行 htlc 交易,攻擊者是否仍會花費超過(例如)10 美元的處理能力或儲存來破壞我的測試?

詳細資訊:我正在修改BIP-0199 htlcs,最後一步是 CHECKSIG。現在,bitcoind 還沒有()通過 RPC 公開 htlc 功能,所以為了修補,我必須自己通過 RPC 請求來實現 BIP-0199。到目前為止,我已經實現了最終 CHECKSIG 所需的一切。我在這裡了解 Pieter Wuille ,我需要自己實現 CHECKSIG 的簽名邏輯,這似乎是合乎邏輯的。但是,我對 CHECKSIG 在 htlc 中的角色不感興趣,因為我認為它與任何標準事務中的相同操作碼無法區分,因此我建議在我的修補仍在測試網上時跳過實現它。

顯然,沒有 CHECKSIG 的 htlc 是不安全的。就我的目的而言,它是否足夠安全:從邏輯上講,

  1. 雖然它仍然在測試網上,但成功的攻擊只會獲得測試網硬幣;

  2. 可獲取的測試網幣僅限於p2sh地址承諾的資​​金;

  3. 以某種方式知道兌換腳本不包含 CHECKSIG 的攻擊者仍然必須暴力破解 sha256 雜湊與兌換腳本匹配的腳本才能贖回資金;

  4. 看到賣家redescript 的攻擊者必須獲得摘要和公鑰的匹配項(可能通過雜湊表),並且仍然必須首先獲得他的交易副本以欺騙賣家;

  5. 攻擊者“只”看到買家的交易,必須匹配公鑰,然後先挖出副本來欺騙買家;

  6. 太慢而無法首先被探勘的攻擊者仍然可以通過使包含交易的塊成為孤立塊而成功。

因此,對不包括 CHECKSIG 的測試網雜湊時間鎖定合約的攻擊仍然需要超過 10 美元的處理能力和/或儲存空間。我的推理是否合理,如果不是,我錯過了什麼?

從產權負擔腳本中刪除檢查簽名操作的安全含義是,任何人,尤其是礦工,都可能在飛行中盜取硬幣。顯然,在測試網上,只有無聊或有興趣去搶硬幣的人才會花時間“攻擊”你的交易。

列出和分析方法中的漏洞沒有多大意義。測試網硬幣毫無價值,當然沒有人會花時間暴力破解 sha256,或者通過雜湊表來獲取它們。

至於一般的無校驗腳本,主網上確實有機器人偵聽此類被中繼的交易並嘗試獲取任何硬幣。在測試網上執行相同的機器人可能很容易。

無論如何,如果您想完全避免這種情況,您可以將您的設置遷移到 regtest。

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