Sözlük / Düğümler ve yazılım
Neutrino
Diğer adları: BIP157, Kompakt blok filtreleri.
- Neutrino nedir?
- Neutrino, cüzdanınızın her blok için küçük bir filtre indirdiği, bunu yerel olarak kontrol ettiği ve yalnızca sizi ilgilendirebilecek tam blokları getirdiği hafif istemci tasarımıdır.
Tanımlandığı belge: BIP-157.
Eski düzenin tersine çevrilmesi fikrin bütünüdür. Cüzdan, bir sunucuya hangi adresleri izleyeceğini söylemek yerine her bloğun kompakt bir özetini alır ve eşleştirmeyi kendi donanımında yapar. Bitcoin Core bu filtreleri Kasım 2019 tarihli 0.19.0 sürümünden beri oluşturabiliyor ve 0.21.0 sürümünden beri eşlere sunabiliyor, dolayısıyla mekanizma artık tek bir sağlayıcıya güvenmeye bağlı değil.
Nasıl çalışır
Neutrino, aralarında tek bir işi paylaşan iki şartnameye dayanır.
BIP158 filtrenin kendisini tanımlar: her blok için, bloğun oluşturduğu her çıktı betiğini ve harcadığı her çıktı betiğini içeren bir küme, Golomb-Rice kodlamalı bir yapıya sıkıştırılır. İki parametresi şartname tarafından sabitlenmiştir, P 19 ve M 784.931, bu da test edilen her öğe için yaklaşık 784.931 öğede bir yanlış pozitif oranı verir. Uygulamada birkaç düzine betiği izleyen bir cüzdan yılda bir avuç gereksiz blok indirir.
BIP157 bu filtreleri taşıyan mesajları tanımlar: filtreler için getcfilters ve cfilter, filtre başlıkları zinciri için getcfheaders ve cfheaders, düzenli kontrol noktaları için getcfcheckpt. Filtre başlıkları kulağa geldiğinden daha önemlidir. Her biri bir öncekine bağlanır, böylece bir istemci birkaç bağımsız eşten kontrol noktası isteyebilir ve bunlardan biri diğerlerinden farklı bir filtre kümesi sunuyorsa, öğrenmek için blokları indirmeye gerek kalmadan hemen fark edebilir.
Cüzdanın rutini o zaman basittir. Blok başlıklarını eşitler, her filtreyi indirir, her birini sahip olduğu betiklere karşı test eder ve yalnızca bir filtre eşleşme olabileceğini söylediğinde tam bloğu ister. O bloğu sunan eş, sizin 912.345 numaralı bloğu istediğinizi ve başka bir şey istemediğinizi öğrenir, bu da adreslerinizin bir listesinden çok daha zayıf bir sinyaldir. Bir Bitcoin Core düğümünde dizin blockfilterindex ile etkinleştirilir, özellik yayımlandığında yaklaşık 4 GiB disk alanı kaplıyordu, ve peerblockfilters ile eşlere sunulur.
Nerede karşılaşırsınız
Neutrino, sunucu çalıştırmayı reddeden mobil Lightning cüzdanlarındaki zincir arka ucudur.
Ad öncelikle Lightning Labs tarafından geliştirilen Go uygulamasına aittir; lnd bunu tam bir düğüm yerine kullanabilir ve çoğu kişi Neutrino ile burada karşılaşır: kendi blok zinciri olmadan kanal açan ve fatura ödeyen bir telefon cüzdanı. Breez ve birkaç başka mobil cüzdan aynı yolu izler.
Bedeli bant genişliği ve sabırdır. Bir Neutrino istemcisi, eşleşme olsun olmasın her filtreyi indirir, dolayısıyla bakiyesini bir sunucudan isteyen bir cüzdandan çok daha fazla veri kullanır ve eski bir yedeği geri yüklemek, tek bir sorguda yanıt almak yerine cüzdanın doğuş yüksekliğinden ileriye doğru filtreleri taramak demektir. Kotalı bir mobil bağlantıda bu denge gerçek bir karardır, bir formalite değil.
Neutrino vs BIP37 bloom filtreleri
Neutrino'da istemci blokları filtreler; BIP37 ise istemcinin filtresini bir sunucuya teslim etmesini sağlıyordu, ki bu ters yöndür. Bir BIP37 bloom filtresi kendi adreslerinizden oluşturulur ve bir eşe gönderilir, araştırmacılar da yanlış pozitiflerin içindekini gizlemeye pek yaramadığını defalarca göstermiştir. Aynı zamanda ucuz bir hizmet engelleme yoluydu, çünkü herhangi bir eş bir düğümden tüm zinciri rastgele bir filtreye karşı yeniden taramasını isteyebiliyordu. Bitcoin Core, kompakt filtre dizinini tanıtan aynı sürüm olan 0.19.0 sürümünde BIP37 sunmayı varsayılan olarak durdurdu ve hâlâ ona dayanan her cüzdan, adres kümesini o anda bağlı olduğu düğüme sızdırıyor demektir.
Neutrino vs bir Electrum sunucusu
Neutrino işi ve bilgiyi cihazınıza kaydırır; bir Electrum sunucusu ikisini de tutar. Bir sunucuya sorgu kilobaytlar tutar ve hemen yanıtlanır, bu yüzden masaüstü cüzdanlar onu tercih eder, ancak sonunda işletmeci adres geçmişinizi elinde tutar. Neutrino, bir cüzdanın ömrü boyunca gigabaytlar harcayarak bu geçmişi bunun yerine telefonunuzda tutar.