İçeriğe geçin
buybitcoinsmart

Sözlük / Protokol ve güncellemeler

Script yolu harcaması

Script yolu harcaması nedir?
Script yolu harcaması, bir yaprak script'i, onu karşılayan girdileri ve o yaprağın adres tarafından taahhüt edildiğini kanıtlayan bir kontrol bloğunu açığa çıkararak bir Taproot çıktısının kilidini açar.

Tanımlandığı belge: BIP-341.

Script yolu harcamaları, herkesin beklediği işbirliğine dayalı imza hiç gelmediğinde kullanılan, bir Taproot çıktısından çıkışın yedek yoludur. Kanıt, 33 baytlık bir kontrol bloğunda ve ağacın her seviyesi için 32 bayt daha fazlasıyla taşınır; BIP-341 bu ağacı 128 seviyeyle sınırlar. Bu yolu seçmek, kullandığınız dalı yayımlar, böylece gerçekte dayandığınız tek koşul artık özel olmaktan çıkar.

Nasıl çalışır

Bir script yolu harcamasını doğrulayan düğüm, tanık yığınını sondan başa doğru okur, çünkü işin çoğunu son öğe yapar.

Bu son öğe kontrol bloğudur ve uzunluğu her şeyden önce kontrol edilir. 0 ile 128 arasında bir tam sayı olan m için tam olarak 33 + 32m bayt olmalıdır ve başka her uzunluk doğrudan başarısız olur. BIP-341 üst sınırı 128 olarak belirler, çünkü en iyi şekilde paketlenmiş bir ağaç ancak kullanılma olasılığı 2^128 içinde 1'den az olan bir yaprak için daha derine iner.

İlk bayt birbiriyle ilgisiz iki şey taşır. 0xfe ile maskelediğinizde yaprak sürümünü elde edersiniz, tapscript kuralları için 0xc0; maskeyle ayırdığınız bit, çıktı anahtarının Y koordinatının paritesidir ve harcamanın toplu doğrulanabilmesi için bulunur. Sonraki 32 bayt iç genel anahtardır, yani işbirliğine dayalı bir harcamayı imzalayacak olan anahtar; sonrasındaki her şey Merkle yoludur, seviye başına 32 bayt.

Ardından düğüm taahhüdü yeniden oluşturur. Yaprak sürümünü açığa çıkan script ile birlikte bir yaprak hash'ine dönüştürür ve her yol öğesini sırayla içine katar. Yön hiçbir zaman iletilmez: her adımdaki iki 32 baytlık değer, hash hesaplanmadan önce sözlük sırasına göre sıralanır, böylece sıralama düzeni belirler ve hiçbir yön biti gönderilmez. Kök ve iç anahtar bir tweak üretir ve script'in çalışmasına izin verilmeden önce, tweak uygulanmış anahtarın adreste duran 32 baytla, parite biti dahil, eşit olması gerekir.

Bir bayt kendinden önceki her şeyi değiştirebilir. Tanık en az iki öğe içeriyorsa ve sonuncusu 0x50 ile başlıyorsa, doğrulama başlamadan önce o öğe ek (annex) olarak çıkarılır. BIP-341 bunun için bir anlam tanımlamaz ve bir tane eklemenin "PERMANENT FUND LOSS" ile sonuçlanabileceği uyarısını yapar.

Nerede görülür

Bir script yolu harcaması, bir blok gezgininde, ek dışında tanığı birden fazla öğe içeren bir Taproot girdisi olarak tanınır.

BIP-341'in kendi işlenmiş örneği, A'dan E'ye beş script'ten oluşan bir ağaçtır. D script'i ile harcamak D'yi yayımlar; ayrıca iç anahtarı ve üç hash'i, yani C, E ile A ve B'nin birleşik hash'ini içeren bir kontrol bloğu da yayımlanır. Bu kontrol bloğu beş koşullu bir sözleşme için 129 bayttır ve diğer dört script hiçbir zaman yayımlanmaz.

Kanıt ayrıca bir şeyi ele verir. BIP-341'in güvenlik bölümü, açığa çıkan yaprağın derinliğinin ağacın en küçük derinliğini sızdırdığını belirtir; bu da "suggests specific wallet software that created the output and helps clustering" (çıktıyı oluşturan belirli cüzdan yazılımına işaret eder ve kümelemeye yardımcı olur). BIP-341'in önerdiği savunma, yaprak olasılıklarının aksi halde en iyi kılacağı ağaçtan sapmaktır.

Aynı bölüm anahtar yeniden kullanımı konusunda açık sözlüdür. Anahtarlar yalnızca harcadığınız yaprakta değil, her yaprakta yeni olmalıdır, çünkü tekrarlanan bir dal sonraki bir kanıtta tekrarlanan bir hash olarak yeniden belirir ve anahtar paylaşan yapraklar açığa çıkmamış bir script'in kaba kuvvetle bulunmasını ucuzlatır.

Script yolu harcaması vs Tapscript

Script yolu harcaması yoldur; tapscript ise o yolun sonunda konuşulan dildir. BIP-341, yürütme başlayana kadarki her şeyi tanımlar: kontrol bloğunu, sıralanmış Merkle katlamasını, tweak kontrolünü, parite bitini. Sonrasında ne çalışacağına yaprak sürümü karar verir.

Şu anda yalnızca 0xc0 tapscript anlamına gelir. Başka herhangi bir sürüm taşıyan bir yaprak hata değildir, çünkü BIP-341 bilinmeyen yaprak sürümleri için yürütmenin başarılı olmasını şart koşar. İşte bu, sonraki bir yumuşak çatallanmanın aynı bc1p adres biçimi içinde farklı bir script dili tanımlamasına imkân veren kancadır ve script yolu harcamasını bu ikilinin kalıcı yarısı yapar.

Karıştırılmaması gerekenler

Sık sorulan sorular

Kullanmadığım harcama koşullarını herhangi biri görebilir mi?

Hayır. Bir script yolu harcaması bir yaprak script'i ve yolundaki kardeş hash'leri yayımlar; diğer her dal sonsuza kadar okunamaz bir hash olarak kalır. Kamuya açılan şey, en başta bir script yolunun var olduğu ve açığa çıkan yaprağın ağaçta ne kadar derinde bulunduğudur.

Kontrol bloğu neden bir parite biti taşır?

Toplu doğrulamayı mümkün kılmak için. İlk baytın en düşük biti, çıktı anahtarının Y koordinatının çift mi tek mi olduğunu kaydeder; bu, doğrulayanın adresteki 32 baytı ikisini de denemek yerine tek bir eğri noktasına geri kaldırmasını sağlar.

Sıradaki okuma

Kaynaklar

Son inceleme: 6 Eylül 2026.

İlgili terimler

Daha fazlası: Protokol ve güncellemeler

Bu sayfayı İngilizce okuyun