Ayrıca dikkat edersen benim paylaştığım kodlarda literal bir değer yok, bu da anlaşılmasını kolaylaştırıyor fakat sen 5, 27, 31 gibi sayılar kullanıyorsun hiç bir şey anlamıyorum. Bu sayılar nereden geldi ve ne için oradalar?
Merhaba John_Ahmet
300 burada private key aslında
330*G = N = EllipticCurve ( (330*G).x , (300*G).y)
Kusura bakma dikkatli olmaya çalışıyorum 5,27,31 bu sayılar nokta indirgemede kullandığım sayılar ECDSA ile direkt alakası yok. Sadece Eliptik Eğri Aritmetiği ile ilgili.
senin merak ettiğin ise imza yani mesaj nasıl şifreleniyor.
RSA'in imza algoritması (aralarında asal sayılarla çalışır)
ECDSA imza algoritması (aralarında asal noktalarla çalışır.)
ECDSA da işlem yapmak için ise Eliptik Eğri aritmetiğini bilmek gerekir.
Benim yoğunlaştığım konu sadece eğri matematiği
RSA için Şadi hocanın videosunu izlemeni öneririm.
http://bilgisayarkavramlari.com/2008/03/19/rsa/imza algoritmasında rastgele seçilen sayıyı tekrar kullanıp başka bir imza oluşturursan
burada bir güvenlik açığı oluşur. Sony Ps3 gibi aynı durum android telefonlarda 2014 yılında random fonksiyonun kendini tekrar etmesi ile bitcoin üzerinde de yaşandı.
R values diye geçer
İstediğin gibi anlatmaya çalışacağım.
Büyükharfler nokta tanımlasın -> J
Küçükharfler sayı -> j
PrivateKey = x
PublicPoint = X
RandomKey = b
b * G = (bx,by)
ECDSA imza algoritmasında kullanılan R = bx tir
secp256k1 de
sayılarda 0 olan uzaklığı hesaplamaya çalışırsın yani Base 0 dır
noktalarda ise G ye olan uzaklığı hesaplarsın. Yani Base G dir
G = Point( gx, gy, curve=secp256k1))
x * G = EllipticCurve(xx,xy, curve=secp256k1) = X tir.
buradaki
x private key
X PublicPoint tir diyelim aslında publickeyle aynı şeydir
bizim bitcoinde kullandığımız publickey PublicPoint teki xy ve xx ile ilgili
Comporessed Pubickey için
xy çift ise -> "02"+hex(xx)
xy tek ise -> "03"+hex(xx)
UnComporessed Publickey için
"04"+hex(xx)+hex(xy)
yani buradan da anlaşılacağı üzere PublicPoint e bağlı xx ve xy değerleri secp256k1 bir kullanan tüm işlemlerde kullanılıyor
imza algoritması veya cüzdan oluşturulması.
Bu imza ilgili işlemleri anlattıktan sonra
walletlar birbirine ECDSA ile ilişkili
transactionlar birbirine ECDSA ile ilişkili
bloklar birbirine ECDSA ile bağlı ile ilişkili
düz mantıkla bunlarda chain i oluşturuyor diyebiliriz.