İçeriğe geçin
buybitcoinsmart

Sözlük / Adresler ve anahtarlar

Sıkıştırılmış genel anahtar

Sıkıştırılmış genel anahtar nedir?
Sıkıştırılmış genel anahtar, bir eğri noktasının yalnızca x koordinatını ve bir baytlık eşlik işaretini saklar; böylece tam bir genel anahtar 65 bayt yerine 33 bayta sığar.

secp256k1 üzerindeki her noktanın belirli bir x için iki olası y değeri vardır, bu yüzden hangisinin geçerli olduğunu kaydetmek 32 bayt yerine tek bir bayta mal olur. Cüzdanlar, Mart 2012'de yayımlanan Bitcoin Core 0.6 sürümünden beri varsayılan olarak sıkıştırılmış anahtarlar üretir ve tasarruf edilen baytlar, daha sonra harcadığınız her girdinin boyutundan düşer. Daha ucuz harcama, kazancın tamamıdır ve biçim günlük kullanımda görünmez.

Nasıl çalışır

Genel anahtar sıkıştırma, veri sıkıştırma değil cebirdir. y kare eşittir x küp artı 7 biçimindeki eğri denkleminin herhangi bir x için en fazla iki y çözümü vardır ve bu iki çözüm her zaman bir çift ve bir tek sayıdır. Dolayısıyla x ile hangi çözümün geçerli olduğuna dair bir bit bilgiyi saklamak, herhangi birinin denklemi çözüp doğru eşliğe sahip kökü seçerek noktayı tam olarak geri elde etmesi için yeterlidir.

Kodlama bu biti ilk bayta koyar. 0x02 öneki y değerinin çift, 0x03 ise tek olduğu anlamına gelir ve ardından gelen 32 bayt x koordinatıdır. Toplam uzunluk: 33 bayt. Eski biçim kendini 0x04 önekiyle belli eder ve her iki koordinatı da tam olarak taşır, toplam 65 bayt. Anahtarı okuyan herhangi bir yazılım ikisini yalnızca ilk bayttan ayırt edebilir; cüzdanların geçiş boyunca uyumlu kalması da böyle olmuştur.

Tasarruf edilen 32 bayt, çıktı türüne göre farklı yerlere düşer. Eski (legacy) bir girdide anahtar kilidi açan betikte durur ve tam ağırlıkta ücretlendirilir, bu yüzden 32 bayt 32 vbayt eder, yani 20 sat/vB ücret oranında yaklaşık 640 satoshi. Bir SegWit girdisinde anahtar tanıkta (witness) durur ve dört kat indirimlidir, bu yüzden aynı 32 bayt 8 vbayt eder. İki rakam da tek başına çarpıcı değildir ve ikisi de imzaladığınız her işlemin her girdisinde tekrarlanır.

Nerede görürsünüz

Sıkıştırılmış anahtarlarla ham işlem verilerinde karşılaşırsınız. Bir blok gezgininde herhangi bir güncel harcamayı açın; tanıktaki veya betikteki genel anahtar 02 veya 03 ile başlayacak ve ardından 64 onaltılık karakter gelecektir. 04 ile başlayan anahtarlar eski dönemden kalmadır.

Biçim ayrıca bir adresin neye benzeyeceğini belirler. Sıkıştırılmış bir anahtarın hash edilmesi, aynı anahtarın sıkıştırılmamış sürümünün hash edilmesinden farklı bir sonuç verir, bu yüzden tek bir özel anahtar, ayrı bakiyelere sahip tamamen ayrı iki eski adrese karşılık gelebilir. Cüzdanlar bunu zekâyla değil gelenekle ele alır: sıradan kullanımdaki her kurtarma ifadesi cüzdanını kapsayan BIP-32 üzerinden türetilen her şey baştan sona sıkıştırılmıştır ve K veya L ile başlayan bir Wallet Import Format dizisi, anahtarın bu çatallanmanın sıkıştırılmış tarafına ait olduğunu bildirir.

SegWit belirsizliği kalıcı olarak ortadan kaldırdı. BIP-143, sürüm 0 tanık programlarında sıkıştırılmamış anahtarları yasaklar, bu yüzden kural gereği her bc1q adresi sıkıştırılmıştır ve Taproot daha ileri giderek eşlik baytını tamamen bırakan, yalnızca x içeren 32 baytlık anahtarlar tanımladı.

Sıkıştırılmış genel anahtar vs sıkıştırılmamış genel anahtar

Sıkıştırılmış ve sıkıştırılmamış biçimler aynı noktayı kodlar ve fark yalnızca neyin yazıya dökülmesi gerektiğindedir. Sıkıştırılmış biçim x'i saklar ve gerektiğinde y'yi türetir; bu birkaç mikrosaniyelik aritmetik harcamasına mal olur ve 32 baytı sonsuza dek tasarruf eder. Sıkıştırılmamış biçim y'yi doğrudan saklar; bu 2009 döneminin donanımında hesaplama tasarrufu sağlıyordu ve bugün hiçbir şey kazandırmıyor. İki bayt dizisi farklı olduğu için hash edildiklerinde farklı adreslere dönüşürler ve çok eski cüzdanlardan kalan fonları ara sıra askıda bırakan şey, bayt sayısı değil, bu uyuşmazlıktır.

Karıştırılmaması gerekenler

Sık sorulan sorular

Sıkıştırılmış anahtar kullanmak bitcoinlerimi daha güvenli yapar mı?

Hayır, güvenlik aynıdır çünkü iki biçim de aynı eğri noktasını tanımlar. Sağladığı fayda boyuttur: harcadığınız her girdide 65 bayt yerine 33 bayt, bu da aynı işlemin ücretini düşürür.

Sıkıştırılmış anahtar kullanmak için bir şey yapmam gerekiyor mu?

Hayır. Kurtarma ifadesine dayanan her cüzdan bunları baştan sona kullanır ve yerel SegWit adresleri bunları zorunlu kılar. Biçim yalnızca 2012 öncesinde oluşturulmuş bir anahtarı içe aktardığınızda bir soru haline gelir.

İlgili terimler

Daha fazlası: Adresler ve anahtarlar

Bu sayfayı İngilizce okuyun