Короткий ответ:
Почему порядок подгруппы в secp256k1 выбран числом 0xffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141 ? Кто его придумал?
1. Множитель конечной группы P выбран последним простым числом меньше чем 2^256 :
p = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F (115792089237316195423570985008687907853269984665640564039457584007908834671663)
Скорее всего вы правы. Везде еще пишут, что
FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F = 2
251 - 1 = 2
256 - 2
32 - 2
9 - 2
8 - 2
7 - 2
6 - 2
4 - 1
Но я что-то нигде не нашел доказательства того, что это число простое. Но тут думаю можно поверить. В википедии кстати пишут что это Число Мерсенна и типа равно 2
251 - 1 Однако там же в вике в статье про этого Мерсенна, про число 2
251 - 1 ничего не известно.
Короче тут поверю на слово: это наиболее близкое простое к 2
256Primality proof for n = 115792089237316195423570985008687907853269984665640564039457584007908834671663:
Take b = 2.
b^(n-1) mod n = 1.
205115282021455665897114700593932402728804164701536103180137503955397371 is prime.
b^((n-1)/205115282021455665897114700593932402728804164701536103180137503955397371)-1 mod n = 30133174243114333125352536507925183895021889065932097717961225114769139489295, which is a unit, inverse 38738227534097492269493948901333532538630784921480042032654553727346127695815.
(205115282021455665897114700593932402728804164701536103180137503955397371) divides n-1.
(205115282021455665897114700593932402728804164701536103180137503955397371)^2 > n.
n is prime by Pocklington's theorem.