İki bitcoinjs-lib açığı, uygulamaların geçerli bir Bitcoin işlemindeki madenci ücretini olduğundan düşük göstermesine yol açabiliyor. 26 Ekim tarihli duyurularda 5.2.2, 6.1.9 ve 7.0.4 sürümlerindeki düzeltmeler listeleniyor. Etkilenen iş akışında, uygulamalar işlem verilerini ve imzaları istemciler arasında aktarmak için kısmen imzalanmış Bitcoin işlemlerini, yani PSBT'leri kullanıyor.
Açıklardan birinde, imzalama ve ücret hesaplama aynı girdiye ilişkin farklı değerleri kullanabiliyor. bitcoinjs-lib 7.0.1 üzerinde yapılan bir gösterimde, gerçek ücreti 900,000,000 satoshi olan işlem yalnızca 200 satoshi olarak raporlandı. Böylece işlem, varsayılan ücret oranı uyarısını aşabildi. İkinci açık ise değer kayıtları eksik olan kesinleştirilmiş girdilerle ilgili. Varsayımsal örnekte gerçek ücret 91,000 satoshi iken 1,000 satoshi olarak raporlandı.
Neden önemli?
Hatalar tek başına imza oluşturamıyor veya transferleri yetkilendiremiyor. Kayıp yaşanması için yetkilendirilmiş ve geçerli bir işlemin Bitcoin ağına yayınlanması, ağ tarafından kabul edilmesi ve fazla tutarın madenci ücreti olarak ödenmesi gerekiyor. Risk, bitcoinjs-lib'in ücret hesaplamasına veya yüksek ücret korumalarına, harcanan çıktıların bağımsız doğrulamasını yapmadan güvenen uygulamalarda yoğunlaşıyor.
Etkilenen sürümler, çakışan kayıt açığı için 5.2.0'dan 5.2.1'e, 6.0.0'dan 6.1.8'e ve 7.0.0-rc.0'dan 7.0.3'e kadar olan sürümleri kapsıyor. Eksik kayıt açığı ayrıca 5.1.0'dan 5.2.1'e kadar olan sürümleri de etkiliyor.
Piyasa etkisi
Bu, Bitcoin mutabakat kurallarında bir arızadan ziyade uygulama ve cüzdan güvenliği sorunu. Bakım ekipleri yamalı sürümlere yükseltmeli, çakışan girdi değerlerini veya betikleri reddetmeli ve imzalama, ücretlere güvenme ya da bir işlemi çıkarma öncesinde her girdinin değerini doğrulamalı.
Düzeltme, önceki çıktıların çözümlenmesi için imzalama ve muhasebeye ortak bir yöntem sağlıyor, ücret hesaplanırken her girdi için bir tutar bulunmasını zorunlu kılıyor ve ilgili meta veriler değiştikten sonra önbelleğe alınan ücretleri ve çıkarılmış işlemleri temizliyor. Yükseltme yapamayan ekipler, başvurulan çıktı değerlerini bağımsız olarak doğrulamalı.
Sıkça sorulan sorular
-
bitcoinjs-lib neyi düzeltti?
Kısmen imzalanmış Bitcoin işlemleri işlenirken uygulamaların madenci ücretlerini olduğundan düşük göstermesine yol açabilecek iki hata düzeltildi.
-
Bir gösterimde ücret farkı ne kadardı?
bitcoinjs-lib 7.0.1 üzerinde yapılan bir gösterimde gerçek ücret 900,000,000 satoshi iken 200 satoshi olarak raporlandı.
-
Açıklar imza olmadan Bitcoin transferi yapabilir mi?
Hayır. Hatalar imza oluşturmuyor veya transferleri yetkilendirmiyor. Kayıp yaşanması için yetkilendirilmiş ve geçerli bir işlemin yayınlanıp kabul edilmesi gerekiyor.
-
Düzeltmeleri hangi bitcoinjs-lib sürümleri içeriyor?
Duyurularda ilgili sürüm serileri için 5.2.2, 6.1.9 ve 7.0.4 sürümlerindeki düzeltmeler listeleniyor.
-
Yükseltme yapamayan bakım ekipleri ne yapmalı?
Başvurulan çıktı değerlerini bağımsız olarak doğrulamalı, imzalama veya ücretlere güvenme öncesinde çakışan kayıtları reddetmeli ve işlem çıkarılmadan önce her girdinin değerini doğrulamalılar.
CryptoSlate