Transactions

為什麼之前比特幣交易中會出現重複的“R”值?

  • November 8, 2019

請解釋為什麼早些時候在比特幣交易中出現“R”的重複值。

例如,該交易有重複值“R”: https ://www.blockchain.com/btc/tx/19d66411a5aa716a04b37197c11c93c9446a54694a2d2302093d8b0a93ed5d83

如果您查看 RawTX: https ://btc.com/19d66411a5aa716a04b37197c11c93c9446a54694a2d2302093d8b0a93ed5d83.rawhex

重複值“R”:

R = cabc3692f1f7ba75a8572dc5d270b35bcc00650534f6e5ecd6338e55355454d5

這是什麼原因?解釋這個錯誤的原因?

R值是該k值(稱為隨機數)與 secp256k1 曲線的生成點之間的 EC 點相乘的結果。它實際上是 的公鑰kR值可以重複的唯一方法是 ifk也是相同的。鑑於這k是一個 256 位數字並且應該是完全隨機選擇k的,除非隨機數生成器被破壞,否則不應重複。

考慮到它k是在簽名時生成的並且應該是隨機的,我們可以得出結論,選擇k這些交易的人都有一個錯誤的隨機數生成器,它要麼輸出一個固定值,要麼輸出一個小值,這增加了k重複的機率。發生這種情況沒有充分的理由,因此此錯誤來自錯誤的 RNG 或對 ECDSA 工作原理的完全誤解。

因為r只依賴於隨機數k(除了曲線參數),復用k,只要私鑰不同,就可以了。

進一步閱讀:https ://www.maximintegrated.com/en/app-notes/index.mvp/id/5767

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