Schnorr imzaları ve multisig toplaması

·9 dk okuma·Yazar: SSP Editorial Team
Lacivert SSP kapağı; karanlık degrade üzerinde anahtar, kalkan, CPU ve şimşek ikonları; Multisig Deep Dive serisinin Schnorr bölümü

Önceki yazıda SSP'nin bir multisig cüzdanını zincirde aslında nasıl inşa ettiğini gezdik: BIP48 yolları, leksikografik sırada iki xpub, chain'in karşı kontrol ettiği bir redeem script. Tüm bu mekanik belirli bir imza şemasının üstüne kurulu — secp256k1 eğrisinde ECDSA, Bitcoin'in 2009'da çıktığı ve çoğu chain'in miras aldığı aynı şema.

Bu yazı diğer imza şeması — Schnorr — ve onun üstüne multisig kurulduğunda neyin değiştiği hakkında. Başlık niteliğindeki değişiklik şu: Schnorr toplamayı (aggregation) destekler — doğru protokol altında, n cosigner'dan gelen n imza, zincirde tek bir anahtardan gelen normal bir imza gibi görünen tek bir imzaya birleştirilebilir. Cüzdan multisig bir cüzdan gibi davranır, ama chain çokluğu hiç görmez. Bu, ücretler, gizlilik ve hangi tür multisig'lerin ekonomik açıdan uygulanabilir hale geldiği için gerçek sonuçlara sahip.

TL;DR

  • ECDSA, mevcut multisig'in çoğunun (bugün SSP dahil) onunla imzaladığı şey. Her cosigner ayrı bir imza üretir; chain hepsini kontrol eder. Maliyet ve ayak izi n ile ölçeklenir.
  • Schnorr, Bitcoin'de 2021 Taproot yükseltmesi ile etkinleştirilmiş farklı bir imza şeması. ECDSA'da olmayan matematiksel bir özelliği var — doğrusallık. Doğrusallık, birden fazla Schnorr imzasının birleştirilerek birleşik bir anahtar için tek bir geçerli imza haline gelmesine izin verir.
  • MuSig2, o matematiksel özelliği kullanılabilir bir multisig protokolüne dönüştüren modern, pratik protokoldür. n cosigner kısa bir etkileşimli protokol çalıştırır, her biri bir tur nonce ve bir kısmi imza katar; sonuç, tek anahtarlı bir imzadan ayırt edilemez tek bir Schnorr imzasıdır.
  • Bu, doğrulama tarafında kesin bir kazançtır — ücretler, blockchain şişkinliği ve gizlilik hepsi fayda görür. İmzalama tarafında bedava kazanç değil: toplama, nonce yönetiminde dikkat gerektirir ve hatalı bir uygulama özel anahtarları sızdırabilir.
  • SSP bugün desteklediği chain'lerde BIP48 + ECDSA multisig kullanır. Roadmap, chain'in destekledikleri yerlerde Schnorr/MuSig2 yolları eklemek; kullanıcıların zaten sahip olduğu mevcut 2-of-2 modelini bozmadan.

Bir imzanın ne yaptığına dair hızlı bir hatırlatma

Bir dijital imza doğrulayıcıya iki şeyi kanıtlar: bu tam mesaj, bu açık anahtarın özel anahtarını elinde tutan biri tarafından imzalandı. Zincir üzerinde "mesaj" bir işlem hash'i, "açık anahtar" adres (veya adresi türeten şey), "doğrulayıcı" ise ağdaki her node. İmza tutarsa, işlem geçerli; tutmazsa, reddedilir.

ECDSA — Bitcoin ve çoğu EVM chain'in kullandığı şema — iyi anlaşılmış, muhafazakar ve tek imzacı durumu için iyi çalışır. Sıkıntı, birden fazla imzacının aynı işlemi yetkilendirmesini istediğinde başlar. ECDSA'nın imzaları birleştirmenin bir yolu yok. Two-of-two istiyorsanız, chain her iki imzayı da saklamak ve her ikisini kontrol etmek zorundadır. Three-of-five, beş imza. İşlem cosigner sayısıyla büyür.

What is multisig protokol kısmını anlatıyor — m adet n anahtar, redeem kuralları, eşik dayatan chain. O önceki yazının üzerinde durmadığı şey maliyet: ECDSA altında, tüm o imzalar işlemde yaşar. 2-of-2 bir P2WSH işlemi, aynı etkiyi yaratan tek imzalı bir işlemden gerçekten daha büyük ve yayınlanması daha pahalıdır.

Schnorr neyi değiştirir

Schnorr imzaları, ilk kez 1980'lerin sonunda önerildi, ancak o zamanın patent belirsizliği nedeniyle Bitcoin'in orijinal tasarımında atlandı. Belirli bir noktada ECDSA'dan matematiksel olarak daha temizdirler: doğrusaldırlar. Eğer s1, P1 anahtarı altında bir mesaj üzerinde geçerli bir imza ise ve s2, aynı mesaj üzerinde P2 anahtarı altında geçerli bir imza ise, o zaman s1 + s2, P1 + P2 altında o mesaj üzerinde geçerli bir imzadır. Hem anahtarlar hem de imzalar toplanır.

Neden önemli: aniden imzaları chain'e ulaşmadan önce birleştirmek mümkün hale gelir. İşleme iki imza koymak yerine bir tane koyarsınız — toplamı. Doğrulayıcı tek imzayı, her iki imzacının önceden hesaplayabileceği iki açık anahtarın toplamına karşı kontrol eder. Chain perspektifinden bakıldığında, ortaya çıkan işlem tek bir anahtarla imzalanmış bir işlemden ayırt edilemez görünür.

ECDSA bunu yapamaz. ECDSA'nın matematiği doğrusallığı kıran çarpımsal bir tersini içerir; ECDSA imzalarının toplamları geçerli imzalar değildir. Bu yüzden ECDSA tabanlı multisig tüm bireysel imzaları zincirde göndermek zorundadır. Chain her birini ayrı ayrı inceler.

Bitcoin, Schnorr imzalarını (BIP340 üzerinden) 2021 Taproot soft fork'unun parçası olarak gönderdi. İmzaların kendisi ECDSA imzalarından biraz daha küçüktür (64 bayt vs ~71), ancak çok daha büyük olay, o doğrusallığın multisig ile birleştirildiğinde mümkün kıldığı şeydir.

MuSig2 — zincirde tek bir imza gibi görünen multisig

"Schnorr imzalarını toplayabilirsiniz"in dürüst hali, bunu dikkatlice yapmanız gerektiğidir. Saf yaklaşım — her cosigner bir nonce seçsin, kısmi imzasını paylaşsın, hepsini toplayalım — tekrarlı imzalamada anahtar materyalini sızdırır ve bir sınıf "rogue key" saldırısına karşı savunmasızdır. Pratik bir toplama protokolünün her ikisine karşı savunma yapması gerekir.

MuSig2, bu problem üzerinde yaklaşık on yıllık iyileştirmenin sonucudur. n-of-n Schnorr multisig için de facto standarttır: imzalama zamanında, cosigner'lar iki tur nonce alışverişi yapar, her biri bir kısmi imza üretir ve içlerinden biri kısmileri nihai bir toplanmış imzaya toplar. Sonuç tek bir Schnorr imzasıdır, tek bir toplanmış açık anahtara karşı geçerlidir, zincirde tek anahtarlı bir imzadan ayırt edilemez.

MuSig2 hakkında birkaç önemli nokta:

  • Şu anda n-of-n. Toplama altında gerçek bir m-of-n (örn. 2-of-3) elde etmek için ek mekanizma gerekir — FROST lider tekliftir — ve hâlâ üretime alınıyor. Yani 2026'da SSP'nin temiz bir şekilde toplayabileceği şey 2-of-2 varsayılanıdır. Seçici makalenin 2-of-3 ve daha yüksek yapılandırmaları hâlâ çoğunlukla ECDSA tarzı zincir-üzeri görünürlüğü kullanır.
  • İmzalamak için hâlâ her iki cosigner'ın online olması gerekir. Toplama, gereken imzacı sayısını azaltmaz; sadece nihai çıktıyı sıkıştırır. UX bugünkü gibi — iki cihaz aynı işlemi imzalar — ama sonucun zincirdeki ayak izi daha küçüktür.
  • Hatalı bir MuSig2 uygulaması anahtarları sızdırabilir. Nonce yönetimi inceliklidir. Üretim dağıtımları bu nedenle iyi denetlenmiş kütüphanelere (libsecp256k1'in MuSig2 modülü, rust-bitcoin stack'ı, vs.) yaslanır.

Bu, SSP için bugün ne anlama gelir

SSP bugün desteklediği her chain'de BIP48 türetilmiş ECDSA multisig kullanır. İki cihaz, iki özel anahtar, zincirde iki ayrı imza. Bu doğrudur, denetlenmiştir (Halborn tarafından — mevcut 2-of-2 yazısındaki inside-ssp-2025-halborn-audits referansına bakın) ve BIP48 uyumlu diğer her cüzdanla birlikte çalışabilir. Dezavantajı, 2-of-2'nin tam zincir-üzeri maliyetini ödüyor olmanızdır.

Buradan roadmap, sade dille: Bitcoin için (Taproot'un canlı ve istikrarlı olduğu yer) aynı 2-of-2 cüzdanı toplama kullanarak imzalayan bir Schnorr/MuSig2 kod yolu eklemek. Cüzdanın eşik anlam bilgisi değişmez — her iki cihaz hâlâ imzalamak zorundadır. Zincir-üzeri baytlar küçülür ve ortaya çıkan işlem tek imzalı bir harcama gibi görünür.

Kullanıcı için bu çoğunlukla şu şekilde görünür:

  • Hafifçe daha düşük Bitcoin ücretleri işlem başına.
  • İyileştirilmiş gizlilik — cüzdan chain-analytics'e "ben bir multisig cüzdanıyım" diye bağırmayı bırakır.
  • Daha hızlı uzlaştırma cüzdan UI'si için (adres başına biraz daha az veri çekilir ve ayrıştırılır).

Bu bir güvenlik yükseltmesi değildir — ve bunu açıkça söylemeye değer. Kriptografi karşılaştırılabilir derecede zorlu, sadece farklı yapılandırılmıştır. Benimsemenin nedeni verimlilik ve gizliliktir, kaba güvenlik değil.

Bu, maliyet, gizlilik ve UX için ne anlama gelir

Bir chain'de toplama yaygın olarak dağıtıldığında bunun düştüğü üç yer:

Maliyet. Bitcoin ücretleri kabaca vbayt olarak işlem boyutuna göre alır. Bir ECDSA P2WSH 2-of-2 işlemi, eşdeğer Taproot-MuSig2 işleminden anlamlı şekilde daha büyüktür. Küçük tutarlar gönderen düşük bakiyeli cüzdanlar için göreli ücret tasarrufu %20-30 olabilir. Yüksek hacimli işletmeler için, yıllık ücretlerdeki mutlak tasarruf gerçek paradır.

Gizlilik. Bugün bir cüzdan bir P2WSH 2-of-2 harcaması yayınladığında, bu gerçek bir blockchain gezgini çalıştıran herkese görünür. Sofistike chain-analytics firmaları adresleri harcama deseni ile kümeler ve "bu adres multisig'tir" güçlü bir küme sinyalidir. Schnorr-toplanmış bir harcama, tek imzalı bir harcamaya tıpatıp benzer. Küme sinyali kaybolur.

UX. SSP'deki imzalama UX'i — tarayıcıda imzala, ardından telefonda onayla — değişmez. Her iki cihaz hâlâ kısmi imzalar üretir; cüzdan sadece her ikisini yayınlamak yerine yayınlamadan önce birleştirir. Kullanıcının perspektifinden tek görünür değişiklik "cüzdanın kullanması daha ucuz hissettirmesi"dir.

Ufukta daha derin bir UX kazancı da var. Bir kez m-of-n toplaması (FROST veya benzeri üzerinden) üretim için hazır olduğunda, önceki yazının anlattığı solo recovery kurulumu gibi, zincirde normal tek imzalı bir cüzdan gibi görünen bir 2-of-3 SSP cüzdanını hayal edebilirsiniz. Üçüncü "recovery" anahtarı gerçekten üçüncü bir imza anahtarıdır, ama chain'in asla bilmesine gerek yoktur.

Bu, sizin için ne anlama gelir

Üç çıkarım:

  1. SSP'yi doğru kullanmak için Schnorr'u düşünmek zorunda değilsiniz. Bugün sahip olduğunuz 2-of-2 kurulumu iyi denetlenmiş ECDSA multisig üzerine kuruludur ve toplama nereye düşerse düşsün öyle kalır. Serideki bir sonraki makale (social recovery vs multisig), toplamayı kasıtlı olarak görmezden gelir çünkü kim harcayabilir sorusu, imzanın zincirde nasıl göründüğünden bağımsızdır.
  2. Toplama bir "ücret ve gizlilik" yükseltmesidir, bir "güvenlik" yükseltmesi değildir. Eğer bir cüzdanın "MuSig2 = daha güvenli" diye pazarladığını görürseniz, şüpheli olun. İyi uygulanmış MuSig2'nin kriptografik güvenliği iyi uygulanmış ECDSA multisig ile karşılaştırılabilirdir; kazançlar başka yerdedir.
  3. Cüzdan pazarlamasını değil, chain desteğini izleyin. Schnorr Bitcoin'de aktif ve account abstraction üzerinden EVM dünyasında benimseniyor. İyi destekleyen chain'ler SSP'nin toplanmış multisig'i ilk dağıtacağı yerlerdir; başka her yerde BIP48 + ECDSA doğru ve güvenli varsayılan olarak kalır.

Bu serideki sonraki yazı, Social recovery vs multisig, odağı kriptografiden operasyonlara kaydırır: multisig'e ne zaman uzanırsınız ve social recovery onu ne zaman yener? İkisi de anahtarların kaybedilmesine karşı koruma sağlar; farklı sorulara cevap verirler. SSP'nin bugün hangi cihazları kullandığına ve nedenine dair hızlı bir hatırlatma için, Meet SSP Wallet başlangıç noktası olarak kalır.

Bu makaleyi paylaş

İlgili makaleler