Sözlük / Protokol ve güncellemeler
Toplu doğrulama
- Toplu doğrulama nedir?
- Toplu doğrulama, çok sayıda Schnorr imzasını tek tek değil, tek bir eliptik eğri denkleminde kontrol eder ve kümenin tamamı için tek bir başarılı ya da başarısız sonucu döndürür.
Tanımlandığı belge: BIP-340.
Bir doğrulayıcı u imzayı bir araya getirir, ilki dışındakilerin tümünü rastgele bir skalerle ağırlıklandırır ve u denklem yerine tek bir denklemde kümeyi sonuçlandırır. BIP-340 bunun için tasarlandı ve imzaları 64 baytta sabitledi; standartlaştırılmış ECDSA ise ek tanık verisi eklenmediği sürece toplu olarak hiç doğrulanamaz. Toplu doğrulama her doğrulayıcının kendi seçimidir, dolayısıyla bir düğümün geçmişi ne kadar hızlı kontrol ettiğini değiştirir, bitcoinlerinizle ilgili hiçbir şeyi değiştirmez.
Nasıl çalışır
Toplu doğrulama, BIP-340 içinde BatchVerify olarak tanımlanır; u adet 32 baytlık genel anahtar, u mesaj ve u adet 64 baytlık imza alır ve hepsi için tek bir yanıt verir.
Önce ağırlıklar gelir. Doğrulayıcı, n eğri mertebesi olmak üzere 1 ile n-1 aralığında u-1 tam sayı üretir; bunu kümedeki her girdinin, yani anahtarların, mesajların ve imzaların bir hash'iyle tohumlanan bir üreteçten belirlenimci biçimde yapar. BIP-340, SHA256 değerini güvenli bir tohum hash'i, ChaCha20'yi ise bunu 256 bitlik tam sayılara genişletmenin güvenli bir yolu olarak nitelendirir ve aralık dışına düşenleri atlar.
Ardından küme tek bir teste indirgenir: s değerlerinin ağırlıklı toplamının üreteç noktasıyla çarpımı, R noktalarına ve her imzanın kendi genel anahtarıyla çarpılmış meydan okumasına uygulanan aynı ağırlıklandırmaya eşit olmalıdır. Bu u ayrı kontrol tek bir karşılaştırmaya dönüşür; BIP-340 bunun önemli hız kazançları sağladığını belirtir.
Bu tasarrufun bedeli imza başına bir maliyettir. BatchVerify her r değerini yeniden eğriye taşır; tek doğrulama bunu hiç yapmaz: Verify, R değerini s ve meydan okumadan yeniden hesaplar, sonra yalnızca x koordinatının r'ye eşit olduğunu kontrol eder.
Garanti kasıtlı olarak asimetriktir. Kümedeki her imza geçerliyse BatchVerify her zaman başarılı olur; tek biri bile geçersizse en fazla ihmal edilebilir bir olasılıkla başarılı olur. Yapmayacağı şey suçluyu adlandırmaktır, bu yüzden hangi imzanın bozulduğunu bilmesi gereken bir doğrulayıcı imzaları tek tek kontrol eder.
Nerede görülür
Toplu doğrulama tamamen ağın doğrulayıcı tarafında yaşar, bu yüzden hiçbir zaman bir cüzdan arayüzünde ya da ücret tahmininde görünmez.
Kazanç sağladığı yer, tek bir ödeme gönderen cüzdan değil, yıllarca süren Taproot harcamalarını bir kerede işleyen bir düğümdür. BIP-340 toplu doğrulamayı hiçbir yerde zorunlu kılmaz: tek imza doğrulaması tanımdır ve toplu doğrulama bir doğrulayıcının seçebileceği bir şeydir. BIP, bayt düzeyinde tanımlanmış bir algoritma talep eder; bu, DER ayrıştırmasının BIP-66'ya kadar eksik olan kesinliğidir, böylece kimse bazı doğrulayıcılar için geçerli, başkaları için geçersiz bir imza kuramaz. Doğrulayıcı kendi kümelerini seçtiği için, toplu ve tek doğrulamanın yalnızca ihmal edilebilir bir olasılıkla farklılaşmasını sağlayan özellik budur; bu, onları birbirinden ayırmaya çalışan bir saldırgana karşı bile geçerlidir.
Toplu doğrulama, BIP-340 içinde tek başına keyfi görünen seçimleri de açıklar. İmzalar daha kısa bir biçim alabilirdi; 16 baytlık bir hash'in 128 bitlik güvenlik hedefi için yeterli olduğu bir biçim. BIP bunu reddetti: birbirine güvenmeyen imzalayanlar birlikte çalıştığında kısa hash'ler kırılgandır ve toplu doğrulamayı destekleyen, R'yi taşıyan daha uzun biçimdir. Genel anahtarlar, kompaktlık için seçilen ve Bitcoin'in olağan 33 baytlık sıkıştırılmış kodlaması yerine 32 bayttır; dışarıda bırakılan y koordinatı belirsiz bırakılmak yerine çift olana sabitlenir, çünkü hem verimli doğrulama hem de toplu doğrulama bunun belirsiz olmamasını gerektirir.
ECDSA bundan hiçbir şey elde etmez. BIP-340 bunu imza şemasını değiştirmenin bir nedeni olarak verir: standartlaştırılmış formülasyon, ek tanık verisi eklenmediği sürece tek tek doğrulamadan daha verimli biçimde toplu olarak doğrulanamaz.
Toplu doğrulama vs MuSig2
Toplu doğrulama da MuSig2 de çok sayıda imzayı daha ucuz hale getirir, ancak yalnızca MuSig2 yayınlananı değiştirir.
MuSig2, işlem ağa ulaşmadan önce birkaç imzalayanı tek bir anahtarda ve tek bir olağan 64 baytlık imzada birleştirir, dolayısıyla kazancı gizlilik ve blok alanındadır ve n-of-n'dir: her imzalayan katılmak zorundadır. Toplu doğrulama her imzayı olduğu yerde bırakır ve yalnızca bir doğrulayıcının gerçekleştirdiği aritmetiği yeniden düzenler; kimsenin işbirliği ya da haberi olmadan: bir düğüm, yabancıların yıllar arayla, ilgisiz işlemlerde yaptığı imzaları toplu olarak doğrulayabilir.