Bitcoin Core baş koruyucusu Wladimir van der Laan tarafından denetlenen bu en son büyük sürüm, yaklaşık altı aylık bir süre içinde yüzden fazla katılımcı tarafından geliştirildi. 600’den fazla birleştirilmiş çekme talebinin sonucu olan Bitcoin Core 0.21.0, son yılların en büyük Bitcoin Core sürümlerinden biridir ve çeşitli yeni özelliklerin yanı sıra gizlilik ve performans iyileştirmeleri sunarken, Schnorr / Taproot protokol güncellemesine doğru büyük bir adım atmaktadır. .
Aşağıda daha dikkate değer değişikliklerden bazıları verilmiştir.
Madeni paralar bir Bitcoin adresine gönderildiğinde, kaputun altında gerçekte olan şey, harcanmamış bir işlem çıktısında (UTXO) “kilitlenmeleri” ve koşullar gizliyse sonraki bir işlemde yalnızca “kilidi açılmış” (harcanmış) olmasıdır. UTXO karşılandı. Tipik bir koşul, belirli bir genel anahtara karşılık gelen geçerli bir imzanın dahil edilmesidir. Ancak koşullar, örneğin, gizli bir kodun dahil edilmesinden, bir zaman kilidinin atlanmasından veya imzaların bir kombinasyonundan (multisig) oluşabilir.
Şimdiye kadar Bitcoin Core, cüzdanındaki UTXO’ları karşılık gelen özel anahtarlar etrafında yönetmek için tasarlandı – özel anahtarlar madeni para harcamak için birkaç potansiyel koşuldan sadece biri olsa da. Bitcoin Core 0.21.0 bunun yerine “tanımlayıcı cüzdanlar” sunuyor. Tanımlayıcı cüzdanlar, kullanıcıların UTXO’larını harcamak için gerekli koşul türlerine göre kategorize etmelerine izin verir. (Örneğin: yalnızca geçerli bir imza gerektiren UTXO’lar için bir cüzdan ve çok amaçlı UTXO’lar için bir cüzdan.)
Tanımlayıcı cüzdanlar, özellikle Bitcoin Core üzerine yazılım tasarlayan uygulama geliştiricileri için kullanışlıdır. Artık belirli bir uygulama, multisig UTXO’lar gibi yalnızca belirli bir UTXO türünü kullanmak ve multisig olmayan UTXO’ları yok saymak için kolayca tasarlanabilir.
Düzenli kullanıcılar, tanımlayıcı cüzdanların uygulanmasına göre bir fark da görebilir. Belki de en önemlisi, yeni bir Bitcoin Core düğümü başlatıldığında hiçbir varsayılan cüzdan oluşturulmayacaktır. Bunun yerine, yeni bir cüzdan yalnızca bir kullanıcı özel olarak bunu seçtiğinde oluşturulur ve yalnızca özel olarak istenen cüzdan türünü oluşturmalarına izin verir. Tanımlayıcı cüzdanlar ayrıca Yalnızca İzle cüzdanlarını daha iyi destekler: düğümde harcamak için gerekli özel anahtarlara sahip olmasa bile belirli UTXO’ları takip eden cüzdanlar.
Bitcoin Core 0.21.0’a yükselten Bitcoin Core kullanıcıları şimdilik eski cüzdanlarını kullanmaya devam edebilecekler. (Eski cüzdanlar sonunda kullanımdan kaldırılacak, yani kullanıcıların eski cüzdanlarını tanımlayıcı bir cüzdana taşımaları gerekecek, ancak bu, gelecekteki bir Bitcoin Core sürümüne kadar kesinlikle gerekli olmayacak.)
“Hafif istemciler” Bitcoin cüzdanları ve tüm Bitcoin blok zincirini indirip doğrulamayan, bunun yerine yalnızca özellikle kendilerini ilgilendiren blokların ve işlemlerin parçalarını indirip doğrulayan uygulamalarıdır. Bu optimum düzeyde güvenli değildir, ancak çok daha az kaynak gerektirir.
Bunu yapmanın popüler bir yolu Bloom Filtreleridir. Kısacası, Bloom Filtreleri, ağdaki az veya çok rastgele eş düğümlerden ilgili verileri talep etmek için kriptografik bir hiledir. Ne yazık ki, ancak yıllar geçtikçe Bloom Filtrelerinin gizlilikle dost olmadığı anlaşıldı: esasen kullanıcının tüm adreslerini (az çok rastgele) eş düğümüne gösteriyorlar, ki bu tabii ki bir gizlilik ihlali tarafından çalıştırılabilir.
Bloom Filtre çözeltiye daha yeni ve çok daha gizliliği koruyan alternatif “kompakt bir müşteri tarafı blok filtreleme” (BIP adlandırılır 157 / 158 ). Kompakt istemci tarafı blok filtreleme, esas olarak Bloom Filtresi hilesini tersine çevirir. Tam düğümlere göndermek için filtreler oluşturan hafif cüzdanlar yerine, tam düğümler her blok için filtreler oluşturur ve bunları istek üzerine hafif istemcilere gönderir. Light müşterileri daha sonra kendileriyle ilgili işlemlerin bir bloğa dahil edilip edilmediğini anlamak için bu filtreleri kullanır. Eğer öyleyse, hafif cüzdan tüm bloğu alacak ve ondan ilgili herhangi bir işlem verisini seçecektir. (Bazı yanlış pozitifler olacaktır; filtre önerdiği halde içlerinde ilgili işlem verilerini içermeyen bloklar.)
Mevcut Bitcoin Core sürümleri, filtreleri zaten yerel olarak oluşturabilir ve düğümün üstünde çalışan uygulamalar (cüzdanlar gibi) için uzak prosedür çağrısı (RPC) aracılığıyla bunları kullanılabilir hale getirebilir. Bitcoin Core 0.21.0 artık bu filtreleri istek üzerine Bitcoin’in eşler arası ağı üzerinden kullanıma sunma seçeneğini de içeriyor. Bu, artık çiçek filtreleri kullanan bağımsız ışık istemcilerini çalıştırmayı mümkün kılar.
Bloom Filtrelerinin yanı sıra meraklılar, ağ analizi yoluyla Bitcoin kullanıcılarının gizliliğini de kırabilir. Belirli bir işlemin hangi düğümden kaynaklandığını bulabilirlerse, bu düğümün Bitcoin adres (ler) i IP adresine bağlanabilir ve bu da gerçek dünya kimliğiyle ilişkilendirilebilir.
Şimdiye kadar, Bitcoin Core düğümleri Bitcoin ağına bir işlem yayınladığında, işlem bir bloğa dahil edilene kadar her on beş dakikada bir işlemi yeniden yayınlamaya çalışırlardı. Bu, eğer bu Bitcoin Core düğümleri gözetleyen bir eşe bağlanırsa, 15 dakikada bir belirli bir işlemi yeniden yayınlamaya çalışan Bitcoin Core düğümünün aynı zamanda bu işlemin başladığı düğüm olduğu meraklısı için açık olacaktır.
Bitcoin Core 0.21.0, işlemleri yeniden yayınlama sıklığını büyük ölçüde azaltır: yalnızca 12 ila 36 saatte bir. Daha az sıklıkta yeniden yayınlama zorunluluğu, işlemin ilk yayından beri onaylanmış olma olasılığını çok daha yüksek kılar, bu nedenle düğümün yeniden yayınlamak zorunda kalması daha az olasıdır.
Gelecekteki Bitcoin Core sürümlerinde, bu gizlilik sızıntısı tamamen giderilecektir. Bir Bitcoin Core düğümü daha sonra yalnızca kendi mempool ve ücret hesaplamalarına göre onaylanması gereken işlemleri yeniden yayınlayacaktır. Dahası, sadece kendi işlemlerini değil, diğer işlemleri de yeniden yayınlayacak.
Gizliliği koruyan Tor protokolüne yapılan son güncelleme nedeniyle, yeni V3 (sürüm 3) Tor adresleri, kendilerinden önce gelen V2 (sürüm 2) adreslerinden daha uzundur. V2 adresleri hala kullanımda, ancak bundan yaklaşık bir yıl sonra kullanımdan kaldırılacak.
V2 adreslerinin kullanımdan kaldırılması, Bitcoin’i gizlilik ağı üzerinden kullanmak isteyen Bitcoin Core kullanıcıları için bir sorun teşkil edebilirdi. Bitcoin Core düğümleri, bilinen Tor kullanan Bitcoin düğümlerinin Tor adreslerini birbirleriyle paylaşarak eş bulur. Bunu, diğer düğümlerin normal IP adreslerini paylaşmak için kullandıkları mesajla paylaştılar. Tor V2 adresleri normal IP adresi formatında (IPV6) “gizli” olabilirken, Tor V3 adresleri bunun için çok uzun; başka bir deyişle, mevcut mesajlar Tor yükseltmesiyle uyumlu olamayacak kadar sınırlı.
Bu nedenle Bitcoin Core 0.21.0, IP / Tor adreslerini eşlerle paylaşmak için yeni bir format sunar. Bu mesajlar Tor V3 adreslerini paylaşacak kadar büyük olabilir.
Schnorr / Taproot , Ağustos 2017’de Segregated Witness (SegWit) ‘ten bu yana Bitcoin’in ilk protokol yükseltmesi olmaya aday . İki yıldan uzun süredir geliştirilmekte olan Schnorr imza algoritması, Bitcoin’in mevcut ECDSA imza algoritmasına göre çok yönlü bir gelişme olarak kabul ediliyor. Kriptografik bir hash ağacında para harcamak için çeşitli koşulları gizlemek için akıllıca bir numara olan Taproot ile birlikte yükseltme, ölçeklenebilir ve gizliliği koruyan bir şekilde daha akıllı sözleşme esnekliği sunmayı vaat ediyor.
Schnorr / Taproot kodu artık Bitcoin Core 0.21.0’a dahil edilmiştir. Beklenmedik gelişmelerin dışında bu, daha fazla değişikliğe tabi olmayacağı anlamına gelir; bu, örneğin uygulama geliştiricilerin yükseltme etrafında yazılım tasarlamaya başlayabileceği anlamına gelir. Ek olarak, Schnorr / Taproot artık Signet’te (geliştiriciler tarafından yeni Bitcoin yazılımını test etmek için kullanılan daha yeni ve daha güvenilir bir testnet çeşidi) ve potansiyel olarak da Regtests’te (daha fazla, yerel, testnet varyantları) mevcuttur.
Ancak Schnorr / Taproot henüz Bitcoin’in ana ağında mevcut olmayacak. Bunun için, öncelikle bu Bitcoin Core sürümüne dahil olmayan bir aktivasyon mantığı gerektiren yükseltmenin etkinleştirilmesi gerekecektir . Aktivasyon mantığının, muhtemelen önümüzdeki aylarda küçük bir Bitcoin Core sürümüne dahil edilmesi bekleniyor.
Yukarıdaki değişikliklerin yanı sıra, Bitcoin Core 0.21.0, normal kullanıcılar için görünür olmayacak çeşitli hata düzeltmeleri ve performans iyileştirmeleri içerir. Bitcoin Core cüzdanı, örneğin Berkeley DB’yi kullanmaktan, bir uygulama veri dosyası olarak daha uygun olan ve uyumluluk, destek ve test açısından çeşitli garantiler sunan SQLite veritabanına geçecektir. Bitcoin Core 0.21.0’ın bir işlem talebi revizyonu içermesi de ilgi çekicidir: Bitcoin düğümlerinin yeni işlemler hakkında bilgi edinmek için kullandığı yeni mesaj protokolü daha iyi test edilir, daha iyi belirlenir ve bakımı ve gözden geçirmesi daha kolaydır.