Ecdsa

如果 X 可以使用曲線方程求解 Y,為什麼鍵需要 X 和 Y 座標?

  • January 1, 2014

參考: https ://en.bitcoin.it/wiki/File:PubKeyToAddr.png 和 <https://en.bitcoin.it/wiki/Secp256k1>

為什麼我們需要 X 和 Y 來製作私鑰?

私鑰只是一個以曲線階數為模的數字。

公鑰是對應於該數字(私鑰)的(X,Y)座標對乘以基點(這是所用曲線的屬性)。

如果您在談論公鑰:您幾乎是對的。如果您知道符號,則確實可以從 X 座標計算 Y 座標(給定公式 y^2 = x^3 + 7,對於每個 X,Y 都有兩個解)。

事實上,如果你正在使用幾個錢包客戶端的最新版本(例如,從 0.6.0 開始的比特幣/比特幣-qt),就會使用這個技巧。它被稱為壓縮公鑰,這意味著當花費一筆交易輸出時,儲存在花費腳本(以及區塊鏈)中的公鑰只包含 X 座標和一個標記字節來表示使用兩個 Y 座標中的哪一個。驗證速度稍慢,但節省空間。

在實踐中,公鑰以以下合法方式進行編碼:

  • 0x02 + [32 字節 X 座標](如果 Y 座標為偶數)
  • 0x03 + [32 字節 X 座標](如果 Y 座標為奇數)
  • 0x04 + [32 字節 X 座標] + [32 字節 Y 座標]

(Y 的兩個解總是有不同的奇數,但是當我們談論的是有限域中的座標而不是實數時,它實際上沒有“符號”)

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