secp256k1 vs ed25519: Kriptodaki Eliptik Eğriler
İçindekiler
Her kripto para işlemi dijital bir imza gerektirir --- fonları gönderen kişinin hesabı gerçekten kontrol ettiğinin matematiksel kanıtı. Bu imza, bir eliptik eğrinin özelliklerine dayanan bir algoritma tarafından üretilir. Blokzincir dünyasına hakim olan iki eğri secp256k1 ve ed25519'dur. Aynı temel amaca hizmet ederler, ancak tasarımları, performans özellikleri ve benimsenme geçmişleri çok farklıdır.
Bu rehber, eliptik eğrilerin kriptografide ne yaptığını, secp256k1 ve ed25519'un nasıl farklılaştığını ve bu farkların anahtar üretimi, cüzdan güvenliği ve kullandığınız blokzincirler için ne anlama geldiğini açıklar.
Eliptik Eğriler Nedir?¶
Kriptografi bağlamında eliptik eğri, y^2 = x^3 + ax + b formunda bir denklemle tanımlanan matematiksel bir yapıdır (secp256k1 gibi eğriler için) veya ilişkili bir form (ed25519 gibi eğriler için). Eliptik eğri kriptografisinin (ECC) güvenliği, Eliptik Eğri Ayrık Logaritma Problemi'ne (ECDLP) dayanır: P eğri üzerinde bir nokta ve Q = k * P verildiğinde (k bir skaler ve * nokta çarpımını temsil eder), yalnızca P ve Q'dan k'yı belirlemek hesaplama açısından uygulanabilir değildir.
Kripto para terimleriyle:
- k özel anahtarınızdır --- gizli bir sayı.
- P üreteç noktasıdır --- eğri üzerinde sabit, kamuya açık bilinen bir nokta.
- Q açık anahtarınızdır --- nokta çarpımı ile özel anahtardan türetilir.
ECC, çok daha küçük anahtar boyutlarıyla RSA ile aynı güvenliği sağlar. 256 bitlik bir eliptik eğri anahtarı yaklaşık 3.072 bitlik bir RSA anahtarıyla aynı güvenliği sunar. Bu kompaktlık, her işlem baytının depolama ve bant genişliği maliyeti olan blokzincirler için esastır.
secp256k1: Bitcoin ve Ethereum'un Eğrisi¶
secp256k1, Bitcoin, Ethereum ve ekosistemlerindeki çoğu blokzincir tarafından kullanılan eliptik eğridir. Adın açılımı:
- sec --- Verimli Kriptografi Standartları
- p --- Eğri asal alan üzerinde tanımlanmıştır
- 256 --- Asal 256 bit uzunluğundadır
- k --- Koblitz eğrisidir (hesaplama verimliliği avantajları olan belirli bir sınıf)
- 1 --- Standarttaki bu türün ilk (ve tek) eğrisidir
Eğri denklemi: y^2 = x^3 + 7 (asal p = 2^256 - 2^32 - 977 tarafından tanımlanan sonlu alan üzerinde).
Satoshi Nakamoto, 2009'da Bitcoin için secp256k1'i seçti. O zamanlar alışılmadık bir seçimdi. Bazı kriptograflar NIST eğrilerinin NSA tarafından etkilenmiş parametrelere sahip olabileceğinden uzun süredir endişeleniyordu. Secp256k1 bu şüpheden tamamen kaçınır çünkü parametreleri basit ve şeffaftır: a = 0, b = 7.
İmzalar: ECDSA¶
Bitcoin ve Ethereum'da secp256k1 ile eşleştirilen imza algoritması ECDSA --- Eliptik Eğri Dijital İmza Algoritmasıdır. ECDSA imzaları secp256k1 üzerinde 64 bayttır (r ve s olarak adlandırılan iki 32 baytlık değer) artı bazı uygulamaların dahil ettiği bir kurtarma baytı. RFC 6979 kullanıldığında deterministiktir.
Bir ECDSA özelliği imza değiştirilebilirliğidir: geçerli bir imza (r, s) verildiğinde, (r, -s mod n) çifti de geçerlidir. Bitcoin bunu BIP66 ve sonra SegWit ile ele aldı. Ethereum, s için kanonik bir form zorunlu kılarak çözer.
Performans¶
Optimize edilmiş uygulamalarda (Bitcoin Core'un kullandığı libsecp256k1 gibi) secp256k1 doğrulaması hızlıdır. Ancak ECDSA imzalama ve doğrulama, hız için sıfırdan tasarlanmış EdDSA'dan doğası gereği daha karmaşıktır.
ed25519: Solana'nın Modern Seçimi¶
ed25519, Daniel J. Bernstein ve işbirlikçileri tarafından tasarlanmış bir eliptik eğridir. 2011'de, Bitcoin'in başlangıcından iki yıl sonra yayınlandı ve hem güvenliği hem de performansı önceliklendiren daha yeni nesil eğri tasarımını temsil eder.
Solana imza eğrisi olarak ed25519'u seçti; diğer birkaç modern blokzincir de öyle yaptı. Seçim, ed25519'un işlem hacmindeki avantajlarını yansıtır.
İmzalar: EdDSA¶
ed25519 ile eşleştirilen imza algoritması EdDSA --- Edwards-eğri Dijital İmza Algoritmasıdır. EdDSA, ECDSA'nın tuzaklarından kaçınmak için tasarlandı:
- İmzalama sırasında rastgelelik gerekmez. EdDSA imzaları doğal olarak deterministiktir --- nonce, özel anahtardan ve mesajdan hash yoluyla türetilir. ECDSA'da kötü bir rastgele sayı üreteci imzalama sırasında özel anahtarı tamamen sızdırabilir.
- İmza değiştirilebilirliği yoktur. EdDSA imzalarının tek bir kanonik formu vardır.
- Daha hızlı toplu doğrulama. Birden fazla Ed25519 imzası aynı anda, her birini tek tek doğrulamaktan daha hızlı doğrulanabilir --- yüksek hacimli blokzincirler için önemli bir avantaj.
- Daha basit uygulama. Algoritmada daha az uç durum ve dallanma koşulu vardır, yan kanal saldırıları için yüzeyi azaltır.
Performans¶
Ed25519, kıyaslamalarda ECDSA-secp256k1'den tutarlı olarak daha hızlıdır. İmzalama yaklaşık 2-3 kat daha hızlıdır. Toplu doğrulama, Ed25519'un gerçekten parladığı yerdir --- yüzlerce imzayı tek tek doğrulamaktan çok daha hızlı doğrulayabilir. Blokların binlerce işlem içerebildiği Solana'da bu performans farkı önemlidir.
ECDSA vs EdDSA: Doğrudan Karşılaştırma¶
| Özellik | ECDSA (secp256k1) | EdDSA (ed25519) |
|---|---|---|
| Eğri türü | Kısa Weierstrass | Bükülmüş Edwards |
| Anahtar boyutu | 256 bit | 256 bit |
| İmza boyutu | 64-65 bayt | 64 bayt |
| Güvenlik seviyesi | ~128 bit | ~128 bit |
| İmzalama hızı | Hızlı | Daha hızlı (2-3x) |
| Doğrulama hızı | Hızlı | Karşılaştırılabilir (tekli), daha hızlı (toplu) |
| Deterministik imzalama | İsteğe bağlı (RFC 6979) | Tasarım gereği yerleşik |
| İmza değiştirilebilirliği | Mümkün (pratikte hafifletilmiş) | Yok |
| Nonce açığı | Evet (kötü RNG anahtarı sızdırır) | Hayır (nonce anahtar + mesajdan türetilir) |
| Benimseme | Bitcoin, Ethereum, BNB Chain, Tron, Dogecoin, Litecoin | Solana, XRP (kısmen), Cardano, Polkadot |
Her iki algoritma da yaklaşık 128 bit güvenlik sağlar. Farklar uygulama güvenliği ve performanstadır, ham güvenlik gücünde değil.
Anahtar güvenliğinin pratikte nasıl çalıştığına daha derin bir bakış için Özel Anahtar Güvenliği En İyi Uygulamaları yazısına bakın.
Hangi Zincirler Hangisini Kullanır?¶
secp256k1 Zincirleri¶
- Bitcoin --- Orijinal. Standart işlemler için ECDSA, Taproot için Schnorr imzaları (her ikisi de secp256k1 üzerinde).
- Ethereum --- secp256k1 ile ECDSA. Tüm EVM uyumlu zincirler bu seçimi miras alır.
- BNB Chain, Polygon, Arbitrum, Optimism --- EVM uyumlu, secp256k1 kullanır.
- Tron, Dogecoin, Litecoin --- secp256k1 kullanır.
- Avalanche (C-Chain) --- EVM uyumlu, secp256k1 kullanır.
ed25519 Zincirleri¶
- Solana --- Ed25519'u münhasıran kullanır. Solana'nın saniyede binlerce işlem gerçekleştirebilmesinin temel nedenlerinden biridir.
- XRP --- Hem secp256k1 hem de ed25519'u destekler.
- Cardano --- Ed25519 kullanır (özellikle Ed25519-BIP32, genişletilmiş bir varyant).
- Polkadot --- Esas olarak Sr25519 kullanır (ed25519 ile yakından ilişkili).
Ayrım büyük ölçüde nesillere dayanır. 2015 öncesi tasarlanan blokzincirler secp256k1 kullanma eğilimindedir. 2017 sonrası tasarlananlar giderek ed25519 veya ilgili eğrileri tercih etmektedir.
Anahtar Üretimi Üzerindeki Etkisi¶
secp256k1 Anahtar Üretimi¶
- Rastgele 256 bitlik bir sayı (özel anahtar) oluşturun.
- Açık anahtarı hesaplayın: özel anahtarı secp256k1 üzerindeki üreteç noktası G ile çarpın.
- Sıkıştırılmamış açık anahtar 65 bayttır (04 öneki + 32 bayt x + 32 bayt y). Sıkıştırılmış form 33 bayttır.
- Adresi üretmek için açık anahtarı hash'leyin (Bitcoin için SHA-256 + RIPEMD-160; Ethereum için Keccak-256).
Bitcoin Özel Anahtar Oluşturucusu veya Ethereum Özel Anahtar Oluşturucusu ile secp256k1 anahtarları oluşturabilirsiniz.
ed25519 Anahtar Üretimi¶
- Rastgele 32 baytlık bir tohum oluşturun.
- Tohumu SHA-512 ile hash'leyerek 64 bayt üretin. İlk 32 bayt (belirli bitler sabitlenmiş) imzalama için kullanılan skaler olur.
- Açık anahtarı hesaplayın: skaleri edwards25519 üzerindeki temel nokta B ile çarpın. Sonuç 32 baytlık sıkıştırılmış bir noktadır.
- Adres formatı zincire özeldir. Solana'da, açık anahtarın kendisi (Base58 kodlu) adrestir.
Solana Özel Anahtar Oluşturucusu ile ed25519 anahtarları oluşturabilirsiniz.
Eğriler Arası Etkiler¶
secp256k1 ve ed25519 matematiksel olarak uyumsuz olduğundan, bir eğride geçerli olan özel anahtar diğerinde anlamlı bir ilişkiye sahip değildir. Hem Bitcoin hem de Solana'yı destekleyen bir cüzdanda tohum ifadesini geri yüklediğinizde, cüzdan aynı ana tohumdan iki tamamen ayrı türetme işlemi çalıştırır --- Bitcoin/Ethereum hesapları için secp256k1 kullanan ve Solana hesapları için ed25519 kullanan.
Bu nedenle türetme yolu bir coin türü içerir: Bitcoin'in yolu (m/44'/0'/0'/0/0) ve Solana'nın yolu (m/44'/501'/0'/0') coin türü seviyesinde dallanır ve her dal kendi eğrisini kullanır. Türetme yollarının zincirler arasında nasıl çalıştığının kapsamlı açıklaması için HD Cüzdanlar ve Türetme Yolları yazısını okuyun.
Kuantum Bilgisayarlar Ne Olacak?¶
Hem secp256k1 hem de ed25519, Shor algoritmasını çalıştıran yeterince güçlü bir kuantum bilgisayara karşı eşit derecede savunmasızdır. Hiçbir eğri diğerinden "daha kuantum dirençli" değildir. Güncel değerlendirme için Kuantum Bilgisayarlar ve Kripto Tehdidi yazısına bakın.
Doğru Aracı Seçmek¶
Kullanıcı olarak secp256k1 ile ed25519 arasında doğrudan seçim yapmazsınız. Kullandığınız blokzincir bu seçimi sizin yerinize yapar. Bitcoin ve Ethereum secp256k1'i zorunlu kılar. Solana ed25519'u zorunlu kılar. SafeSeed'in oluşturucuları bunu otomatik olarak halleder. Bitcoin Tohum İfadesi Oluşturucusu secp256k1 anahtarları türetir. Ethereum Tohum İfadesi Oluşturucusu aynısını yapar. Solana Tohum İfadesi Oluşturucusu ed25519 anahtarları türetir. Hepsi tamamen istemci tarafında çalışır, güvenli rastgele sayı üretimi için tarayıcınızın Web Crypto API'sini kullanır. Hiçbir özel anahtar malzemesi cihazınızdan ayrılmaz.
Blokzincirinizin altındaki eğriyi anlamak, cüzdanınızı günlük olarak nasıl kullandığınızı değiştirmez. Ama Solana adreslerinin neden Ethereum adreslerinden farklı göründüğünü, ham bir Solana özel anahtarını neden Ethereum'da kullanamayacağınızı ve fonlarınızın ardındaki güvenlik varsayımlarının neden bu kadar güçlü olduğunu anlamanıza yardımcı olur. Bu eğriler, kripto para sahipliğinin matematiksel temelidir --- normal kullanımda görünmez, ama kesinlikle temeldir.