×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
x-only Public Key
Slide 2
Slide 2 text
1 楕円曲線暗号の公開鍵 【秘密鍵】 secp256k1の場合、256 bitのランダム値 【公開鍵】 xを秘密鍵とした場合、楕円曲線のベースポイントGに対して P = xGを計算したPが公開鍵 楕円曲線の点は、その(x, y)座標がy2 = x3 + ax + bを満たす (secp256k1の場合、 a = 0, b = 7、つまりy2 = x3 + 7)
Slide 3
Slide 3 text
2 公開鍵の表現方法 公開鍵 P = xGの(x, y)座標の値はそれぞれ32バイト=合計64バイト ● 非圧縮公開鍵:65バイト 04 || x座標 || y座標 ● 圧縮公開鍵:33バイト x座標が分かると、y2 = x3 + ax + b (mod p)からy座標が計算できる ○ y座標が偶数の場合 02 || x座標 ○ y座標が奇数の場合 03 || x座標 Segwit v0まではデータスペースの観点から圧縮公開鍵の使用が主流
Slide 4
Slide 4 text
3 x-only Public Key とは? x座標のみで表現される公開鍵で、圧縮公開鍵より1バイト小さい TaprootやLN Offerなどで採用 ● x座標のみだと、y座標が偶奇どちらか特定できないんじゃ? y座標が偶数の鍵を使用する ● P = xGのy座標が奇数の場合、秘密鍵はどうする? 変換後の秘密鍵x’ = 曲線の位数n - x (n = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 )