Zephyrnet Logosu

Bitcoin Core 24.0 Yayınlandı: İşte Yenilikler

Tarih:

Tarafından başlatılan orijinal Bitcoin yazılımının yeni bir sürümü Satoshi Nakamoto 2009 yılında serbest bırakıldı.

Bitcoin Core 24.0, Bitcoin Core'un cüzdanına, eşler arası (P112P) iletişimine, grafik kullanıcı arayüzüne (GUI) ve çok daha fazlasına somut iyileştirmeler getirmek için yaklaşık yedi ay boyunca 2 geliştirici tarafından üzerinde çalışıldı.

Bu makale, bazı ana değişiklikleri incelemektedir.

Cüzdan Güncellemeleri

İlk Küçük Yazı Desteği

Bitcoin Core 24.0, genişleterek Miniscript için destek sunuyor. wsh() çıktı tanımlayıcısı İlk ve ilkel bir entegrasyon olsa da, hareket daha karmaşık komut dosyalarının Bitcoin'e daha basit ve daha güvenli bir şekilde dağıtılmasının yolunu açıyor.

mini yazı için bir çerçeve (veya şablon) olarak düşünülebilir. Bitcoin Komut Dosyası, Bitcoin'in yerel programlama dili. Bitcoin Komut Dosyası, Bitcoin için mevcut olan tüm programlama işlevlerini etkinleştirmekten sorumludur, örneğin bunlardan belki de en basit olanı: belirli bir madeni parayı kimin harcamasına izin verildiğini belirlemek. Her Bitcoin işlemi için gönderici, alıcının adresini ister ve bu bilgilerle, gönderilen bitcoini yalnızca alıcının harcayabileceği şekilde kilitleyen bir komut dosyası oluşturur. Bitcoin Komut Dosyası ile yukarıdaki gibi basit komut dosyaları oluşturmak oldukça kolay olsa da, komut dosyası ne kadar karmaşık olursa insan hatası olasılığı o kadar artar. Miniscript'in devreye girdiği yer burasıdır.

Miniscript, bir Bitcoin Komut Dosyası alt kümesinin yazılmasına izin verir. yapılandırılmış yol. Gelişmiş komut dosyalarının geliştiriciler tarafından daha güvenli bir şekilde yazılmasına izin vererek, diğer şeylerin yanı sıra analiz, oluşturma ve genel imzalama sağlar. Başka bir deyişle, Miniscript, önceden ayarlanmış Bitcoin Komut Dosyalarının bazı işlevlerini beklenen bir davranış modeline "içerir" ve beklenmeyen davranış en aza indirildiği için olası riskleri sınırlar. Uygulamada, geliştiricilerin her şeyi Bitcoin Komut Dosyası aracılığıyla manuel olarak yapmak zorunda kalmak yerine, Bitcoin için gelişmiş ve karmaşık komut dosyaları oluşturmaları ve kurcalamaları için bir "araç kutusu" sağlar.

Bitcoin Core 24.0 ile başlayarak, kullanıcılar artık bir Miniscript komut dosyası içeren bir cüzdan oluşturabilir, bu cüzdan için adresler oluşturabilir ve bunları bitcoin ile finanse edebilir. Ancak, bu adreslerden yapılan harcamalar henüz Bitcoin Core cüzdanı tarafından desteklenmiyor, yani Bitcoin Core'daki Miniscript özellikli cüzdanlar şimdilik yalnızca izleniyor.

Değişmeyen İşlemler

Yeni bir RPC tanıtıldı, hepsini gönder, kullanıcıların belirli harcanmamış işlem çıktılarını (UTXO'lar) tamamen harcamalarına olanak tanır. RPC, belirtilen UTXO'larda tutulan tutarı değişiklik oluşturmadan bir veya daha fazla alıcıya gönderir. (Varsayılan olarak, hepsini gönder cüzdandaki her UTXO'yu harcayacaktır.)

Bu davranış birkaç durumda istenebilir. Birincisi, doğal olarak, kullanıcı cüzdanını boşaltmak isteyebilir. Yeni RPC'yi varsayılan yapılandırmalarla çağırmak, tam da bunu kolay bir şekilde yapacaktır. İkinci olarak, kullanıcı değişiklikten vazgeçerek gizliliğini geliştirmek isteyebilir.

Adresleri değiştir aldatıcıdır çünkü kullanıcılar genellikle nereden geldiklerini unuturlar ve bu nedenle bunları gelecekteki bir işlemde girdi olarak diğer UTXO'larla karıştırabilirler. nedeniyle bu bir mahremiyet endişesi doğuracaktır. ortak girdi sahipliği buluşsal yöntemi, bir işlemdeki tüm girdilerin aynı kullanıcıya ait olduğunu varsayan, zincir analizinde yaygın olarak kullanılan bir öncül. Değişiklik çıktısı örneğinde, bir zincir analisti bu kullanıcının bazı adreslerini bir cüzdan olarak kümeleyebileceğinden, kullanıcı bu bağlantıyı kuracak ve madeni paralarının birçoğunun isimsizleştirilmesini etkili bir şekilde riske atacaktır.

Değişmeyen bir ödeme, seçilen UTXO'ların tamamını harcayan bir işlem oluşturarak bu sorunla mücadele eder. Değişiklik olmadığı için kullanıcı yukarıda belirtilen hatayı yapamaz. Ayrıca, değişmeyen bir ödeme, yeni çıktının ödemeyi gönderen aynı kuruluşa mı ait olduğunu (yalnızca fonların yeni bir adrese taşınması) mı yoksa aslında artık farklı bir kullanıcıya mı ait olduğunu merak eden bir zincir analistine makul bir şüphe getirir.

Parmak İzini Önlemek İçin Çıktı Rasgeleleştirmesini Değiştirin

Yukarıda açıklandığı gibi değişiklik çıktıları bir gizlilik sızıntısı olabilir. Süre hepsini gönder değişiklik adresinin kullanımını tamamen azaltır, gerçekte, kullanıcının yapılması gereken ödemenin tam boyutunda bir UTXO'ya sahip olduğu birkaç kez olacaktır. Bir gözlemcinin çıktılardan hangisinin adres değişikliği olduğunu tespit edememesini sağlamak, kullanıcının biraz mahremiyet kazanmasına yardımcı olur çünkü yeni oluşturulan bir adresi (çıktıyı değiştir) o işleme şimdi harcanan girdiyle ilişkilendirmek önemsiz olmayacaktır. .

Genellikle, ödemenin kesin miktarını içeren bir UTXO olmadığında, çoğu cüzdan ve kullanıcı sezgisel olarak bu numaraya en yakın olanı seçer. Sonuç olarak, blok zincirini izleyen bir gözlemci, hangi çıktının ödeme (daha büyük olan) ve hangisinin değişiklik (daha küçük olan) olduğunu görebilir. Bu, yukarıda belirtilen risklerin çoğunu beraberinde getirir.

Bir gözlemcinin değişiklik çıktısını seçebilme ve kullanıcı adreslerini kümeleyebilme olasılığını azaltmak için, Bitcoin Core artık değişiklik çıktı değerlerini rasgele hale getiriyor.

24.0 sürümünden başlayarak, Bitcoin Core cüzdanı, ödeme boyutu ile ödeme boyutunun üç katı arasında rastgele bir sayı seçecektir. Bu sayı, harcama için UTXO seçimini bildirecektir. Bu etkili bir şekilde, algoritmanın bazen değeri ödemeye daha yakın olan bir UTXO seçeceği ve diğer zamanlarda değeri ödeme tutarının üç katı üst sınırına daha yakın olan bir UTXO seçeceği anlamına gelir. İlk senaryo, tipik değişim-çıktı-ödemeden-düşük senaryosunu üretecek, ikincisi ise tersini üretecektir - ödemeden daha büyük bir değişim çıktısı. Bir blockchain gözlemcisinin her senaryonun belirli bir zamanda ne zaman gerçekleştiğini söylemesinin bir yolu olmadığı göz önüne alındığında, kullanıcının daha fazla gizlilik güvencesinden yararlanabilmesi gerekir.

Ücrete Göre Değiştirilecek Güncellemeler

RBF, ağa bir işlem gönderirken bir Bitcoin kullanıcısı için isteğe bağlılık sağlar. Çoğu zaman, bir kullanıcı madenci ücretleri için fazla ödeme yapmak istemez ve bu nedenle ödenen ücret ile işlemin bir bloğa dahil edilme hızı arasında bir "orta yol" seçebilir. Ancak kullanıcı tarafından seçilen ücret değeri çok düşükse veya mempool tıkanmışsa, işlemin bir bloğa dahil edilmesi çok uzun sürebilir (veya mempool'da tamamen takılıp kalabilir). RBF, kullanıcının böyle bir durumda işlemlerinin ücretini "yükseltmesine" izin verir ve çoğu zaman daha hızlı bir anlaşmaya olanak tanır.

Kaputun altında, RBF aslında ücreti artırmıyor. Arka planda olan şey, yazılım istemcisinin bir yayın yapmasıdır. yeni aynı girdiler ve aynı çıktıların çoğu ile işlem. (Bazı çıktı değerleri değişir; ücret değeri doğal olarak yeni numarayı yansıtacak şekilde değişir ve genellikle bu fark, değişiklik adresine gönderilen tutardan düşülür.)

Tarihsel olarak, düğümler yalnızca gördükleri bir işlemin ilk sürümünü iletirdi. RBF'nin gelişiyle birlikte, kullanıcıların, sonunda ücretli olabilecek, yani daha yüksek ücretli bir sürümle değiştirilebilecek bir işlem gönderdiklerini işaretlemelerine izin veren bir mekanizma tanıtıldı. Bu, düğümlere bir uyarı görevi gördü ve bu işlemin daha yüksek ücretli sürümlerinin daha sonra gönderilebileceğini ve bunların da iletilmesi gerektiğini bilmelerini sağladı. Olasılıksal olarak, işlemin daha yüksek ücretli versiyonu madenciler için daha çekici olma eğiliminde olacak ve bu nedenle ilk olarak seçilecektir. Bu gerçekleştiğinde ve bir bloğa dahil edildiğinde, daha düşük ücretli işlem, çifte harcama girişiminde bulunacağı için düğümlerin mempool'larından çıkarılacaktır.

Bitcoin Core 24.0, RBF işlevselliğine iki güncelleme getiriyor.

İlk olarak, artık kullanıcıların düğümlerini değiştirilebilir işlemleri aktaracak şekilde yapılandırmasına izin veriyor. olmadan RBF bayrağını zorlamak. Bu, yeni aracılığıyla yapılabilir mempoolfullrbf seçenek. ayarlanacak kapalı varsayılan olarak, ancak etkinleştirmekle ilgilenenler açabilir.

İkincisi, RBF artık Bitcoin Core'un cüzdanında bir standart olarak belirlendi. İşlemler artık varsayılan olarak RBF'ye dahil oluyor ve -cüzdanrbf başlangıç ​​seçeneği varsayılan olarak true'dur. Kullanıcılar, oluşturma sürecinde belirli bir işlemi değiştirerek veya -cüzdanrbf başlangıç ​​seçeneğini false yapın.

Tanımlayıcı Cüzdan Geçişi

Bitcoin Çekirdeği 23.0 tanımlayıcı cüzdanları standart hale getirdi. Tanımlayıcılar, kullanıcının cüzdanını yedeklemesini ve daha sonra bu yedeği standart bir biçimde geri yüklemesini kolaylaştırır.

Tanımlayıcılar var olmadan önce, kullanıcıların cüzdanlarının türetme yolunu bilmeleri gerekiyordu; bu, cüzdanın ana anahtarının bitcoin almak ve göndermek için kullanılacak adresleri nasıl türeteceğini belirler. Cüzdanlar farklı türetme yollarına sahip olabileceğinden, bir yedeğin yalnızca çekirdek ifadeleri içermesi yeterli değildi. Bazen kullanıcı şanslı olabilir ve aynı türetme yolundan yararlanan bir cüzdanla bir yedeği geri yüklemeye çalışabilir, ancak bunun olma olasılığı düşük olduğundan, tüm web siteleri kullanıcıların eski ve yeni cüzdanlar için hangi türetme yolunu kullanacaklarını anlamalarına yardımcı olmaya adanmıştır. ortaya.

Tanımlayıcı, bu sorunu şu şekilde çözer: tanımlayıcı yedeklenen cüzdanın hangi türetme yolunu kullandığı hakkında, bu da kullanıcı deneyimini büyük ölçüde geliştirir. Buradaki fikir, bir tanımlayıcı cüzdan yedeğinin, herhangi bir yazılım istemcisi tarafından doğru bir şekilde geri yüklenmesi için gerekli tüm bilgileri kendi içinde içermesidir (istemcinin tanımlayıcı etkin olması koşuluyla).

Şimdi, Bitcoin Core 24.0, eski cüzdanları tanımlayıcı bir cüzdan formatına taşımak için yeni bir araç sunarak, kullanıcıların değerli bitcoinlerini daha iyi korumak için bu yeni ortaya çıkan standarttan yararlanmalarını sağlıyor. Hala deneysel olmasına rağmen, yeni bir RPC (geçiş cüzdanı) tanıtıldı. Bu belge işlevselliği hakkında daha fazla ayrıntı sağlar.

GUI Değişiklikleri

Bitcoin Core GUI'nin, uzaktan prosedür çağrıları (RPC'ler) ve komut satırı araçlarının sağlayabileceği aynı düzeyde işlevsellik sağlamadığı bilinmektedir. Bitcoin 24.0, bunu biraz değiştirmek için bazı adımlar atıyor.

Bitcoin Core'un en yeni sürümü, GUI'de kullanıcıların bir cüzdanı yedekten geri yüklemesine izin veren ve teknik olmayan kişilerin yedekleri geri yüklemesini kolaylaştıran yeni bir menü öğesi getiriyor. Önceden, bu seçenek yalnızca komut satırında mevcuttu.

GUI'nin RPC arayüzüne kıyasla sahip olduğu bir başka eksiklik, Bitcoin Core istemcisinin ayarlarıyla ilgiliydi. Ünlü bitcoin.conf file, Bitcoin Core yapılandırmasının kutsal kâsesidir, ancak yine de esas olarak komut satırı aracılığıyla ince ayar yapılabilirdi. GUI'deki ayarları değiştirmek için bir seçenek mevcuttu, ancak bir uyarı bunu açıkça ortaya koydu. bitcoin.conf hem dosyanın hem de GUI'nin aynı yapılandırma için veri ayarlamaya çalışması durumunda GUI'ye göre öncelik alır. Bu nedenle, GUI, ayarları değiştirmek için basit bir seçenek sunarken, yapılandırma dosyası, Bitcoin Core istemcisini özelleştirmenin en güvenilir yoluydu.

Bitcoin Core 24.0 bunu değiştirir. Yeni güncelleme, GUI ayarları sayfasını aşağıdakilerle birleştirir: bitcoin.conf dosya. Artık bir kullanıcı GUI'de istemci ayarlarını açtığında, gösterilen ayarlar yapılandırma dosyasından alınır. Benzer şekilde, GUI'de yapılan yapılandırma değişiklikleri artık bitcoin.conf. (Buradaki ilişkinin dolaylı olduğunu belirtmekte fayda var, çünkü GUI'deki değişiklikler aslında settings.json, öncelikli olan bir dosya bitcoin.conf.)

P2P İletişimlerinde Değişiklikler

Başlıkları İndirmek İçin Yeni Mantık

Bitcoin Core 24.0, ya ilk kez önyükleme yaptıkları ya da Bitcoin ağına bağlanmadan uzun bir süre geçirdikleri için ağdaki eşlerin zincirin ucuna yetişme biçimine bir güncelleme getiriyor.

Bu sürümden önce, Bitcoin'e katılan yeni bir eş, blok başlıklarını indireceği eşler aramaya başlayacaktı. Akran ilk başta tüm blokları indirmez çünkü o zincir için blokları indirmeden önce doğru zinciri takip edip etmediğini kontrol etmeye teşvik edilir. Aksi takdirde, blokları yanlış zincir için indirerek kaynakları israf etme riskiyle karşı karşıya kalırsınız.

Başlıkların indirilmesi zamandan ve kaynaklardan tasarruf edilmesine yardımcı olurken, kötü niyetli bir aktörün akranına milyonlarca sahte blok başlığıyla spam göndermesi durumunda bir kaynak tüketme saldırısı yine de gerçekleşebilir. İstemcinin başlıkları indirmesi ve diske kaydetmesi gerektiğinden, yeterince büyük miktarda veri eşin donanımını bozabilir.

Bu tehdidi azaltmak için Bitcoin Core, kontrol noktaları Yıllar önce. Kontrol noktaları hangi blokları belirler şart geçerli olabilmesi için bir zincirde bulunması gerekir. Ancak bu çözüm aynı zamanda bir sorunu da temsil ediyor çünkü kontrol noktaları en uzun zinciri etkili bir şekilde geri almak için kötüye kullanılabilir. Bitcoin'de böyle bir olasılık istenmiyor, bu yüzden farklı bir çözüm bulunması gerekiyordu. Bu yeni güncellemeyi girin.

Bitcoin Core 24.0 ile eşler artık blok başlıklarını iki kez indiriyor. İlk çalıştırmada, başlıklar indirilir ve yeterli miktarda iş bulunana kadar atılır (diske kaydedilmez). Bu durumda eş, işlemi yeniden başlatır, ancak şimdi indirmeye ek olarak eş, blok başlıklarını da diske kaydeder. Eş kişi, yalnızca üstbilgileri diske kaydederek bunların önemli çalışma kanıtına sahip bir zincirin parçası olduklarından emin olduktan sonra, kaynak tükenmesi gibi nihai bir saldırıda büyük miktarda depolama kullanmaktan kaçınır. Bu aynı zamanda kontrol noktalarına olan ihtiyacı ortadan kaldırır ve zincirin geçerliliğini belirlemek için insan girdisine bağlı olmadığı için muhtemelen daha şık bir çözümdür.

Geri bildirim için Aaron van Widum'a teşekkürler.

Daha fazla ayrıntı ve diğer değişiklikler için Bitcoin Core 24.0'a bakın. sürüm notları. Bitcoin Core 24.0'ı indirmek için, gezinin okuyun. Bitcoin Core 24.0 ile ilgili ayrıntılar ayrıca Bitcoin, Açıklaması podcast'inde sesli olarak açıklanmaktadır. bölüm 65.

spot_img

En Son İstihbarat

spot_img