在繼續研究腦<del>腦包</del>錢包的過程中 發現了這個精美的描述 私鑰->公鑰->WIF/Legacy Address 生成的實作圖解,如附圖,可以到這自己玩玩: http://royalforkblog.github.io/2014/08/11/graphical-address-generator/#noise 這也讓我意識到我之前理解的 https://noise.cash/post/l4ng2z75 0x04 前綴的部分是片面偏剖的。並不見得是一個固定的前綴,而是視縱座標的奇偶而定。(但在這網頁裡僅為 0x02 或 0x03,所以尚待分曉。) 補充:下面 @Ayukawayen 已經給出說明 https://noise.cash/post/l7n2p90v 這兩者都是對的,只是格式不同。這則的附圖是 compressed 壓縮公鑰格式,而另外一篇的是 uncompressed 未壓縮公鑰格式。可參考: https://ethereum.stackexchange.com/questions/103482/what-is-the-difference-between-compressed-and-uncompressed-public-key https://github.com/bitcoinbook/bitcoinbook/blob/develop/ch04.asciidoc#public-key-formats https://iancoleman.io/bitcoin-key-compression/
5 comments
這個值得花時間研究的.
橢圓曲線方程式,一個x輸入會對應兩個y輸出。 (有重根,就是y=0那個點) 0x04是無壓縮表示,x座標和y座標都寫上去,512bits (十六進位碼含header 130位)。 0x02和0x03是壓縮表示,只寫x座標,256bits。照圖的敘述此方程式應該對任何x,兩個y值必定為一奇一偶,奇數是0x03,偶數是0x02。這樣拿到x代入方程式算出兩個y後,再依header判斷是哪一個即可得到公鑰之完整座標。
你是對的
太專業惹推!
我覺得你這些内容可以自成一個缺牛惹XDD