Python-Code
def inverse(x, p):
return pow(x,p-2,p)
p = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f
#private key 2 -->(x , y) value
xx = 0xc6047f9441ed7d6d3045406e95c07cd85c778e4b8cef3ca7abac09b95c709ee5L
yy = 0x1ae168fea63dc339a3c58419466ceaeef7f632653266d0e1236431a950cfe52aL
#private key 4 -->(x , y) value
x = 0xe493dbf1c10d80f3581e4904930b1404cc6c13900ee0758474fa94abe8c4cd13L
y = 0x51ed993ea0d455b75642e2098ea51448d967ae33bfbdfe40cfe97bdc47739922L
a= (x*inverse(xx,p))%p
print "x = " + hex(a)
b= (y*inverse(yy,p))%p
print "y = " + hex(b)
Ausgang
x = 0x1d8a71dd4218a520a1f976b6a4f66ed600880baf69d401a73dd010dd60f859ffL
y = 0x8f73b0d00f8d9e262cc230b7a6bee35d44ac898986195e819d68ecafd6b7803bL
normale Mathematik 4/2 = 2
aber hier x,y-Wert des privaten Schlüssels 2 dividiert durch x,y-Wert des privaten Schlüssels 4, nicht korrekten Wert von x,y angeben
Bitcoin, Mathe lernen
In der Welt der ECC-Mathematik gibt es keine Multiplikation (oder Division) von zwei Punkten . Dies liegt daran, dass die Punkte auf einer elliptischen Kurve eher eine mathematische Gruppe als einen Ring bilden.
Daher sollten Sie nicht erwarten, dass die Koordinaten von 4 * G und 2 * G durch die von Ihnen beschriebene Methode in Beziehung stehen. Das Ergebnis von 2*G ist nicht dasselbe wie die Multiplikation der Koordinaten von G mit 2. Sie können das jedoch überprüfen
4*G - 2*G = 2*G
Die Subtraktion hier ist eigentlich eine Abkürzung für ein komplexes, aber formelhaftes Verfahren für zwei ECC-Punkte. Beachten Sie, dass die Subtraktion einfach die Addition der additiven Umkehrung in der ECC-Gruppe ist. Dies unterscheidet sich stark von der multiplikativen Umkehrung im modularen Feld, die Ihre Python-Methode definiert hat.