$ irb irb(main):001:0> require 'ecdsa' => true irb(main):002:0> require 'securerandom' => true irb(main):003:0> group = ECDSA::Group::Secp256k1 => #<ECDSA::Group:secp256k1> 法素数 irb(main):005:0> group.field.prime => 115792089237316195423570985008687907853269984665640564039457584007908834671663 ベースポイントのx座標 irb(main):006:0> group.generator.x => 55066263022277343669578718895168534326250603453777594175500187360389116729240 ベースポイントのy座標 irb(main):007:0> group.generator.y => 32670510020758816978083085130507043184471273380659243275938904335757337482424 群の位数 irb(main):008:0> group.order => 115792089237316195423570985008687907852837564279074904382605163141518161494337 秘密鍵生成 irb(main):009:0> privkey = 1 + SecureRandom.random_number(group.order-1) => 31932174844998617020519545778334124388425430302588218071507179824399413999474 >privkey.to_s(16) => "4698f87166219ad50731a43a61bcafbc52168b1965ed148cf63be3f76470f772" 公開鍵導出 irb(main):010:0> pubkey = group.generator.multiply_by_scalar(privkey) => #<ECDSA::Point: secp256k1, 0x3b26dff8e5cc352b036b119fec0e0f24e7355135cd94eda4c457be2f4317939d, 0xfd015986045bff45746ef9c716dfa66f9ea9a09f85dfc704d021cd32443ecf60> 公開鍵のx座標 irb(main):011:0> pubkey.x => 26755144054576924229872070338383934509238382349899682642883476599488663491485 公開鍵のy座標 irb(main):012:0> pubkey.y => 114437535407147987001672943056342111150865668978537454145423922350647379152736
こちらの値と同じで正しく取得できていることが分かります。 secp256k1仕様 - Pebble Coding