İçeriğe geçin
buybitcoinsmart

Sözlük / Protokol ve güncellemeler

Taproot Merkle dalı

Taproot Merkle dalı nedir?
Taproot Merkle dalı, bir script yolu harcamasının, harcanan adrese bir script'in taahhüt edildiğini kanıtlamak için yayımladığı kardeş hash'lerin listesidir.

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

Daldaki her hash, taptree'deki bir kardeştir ve sizin yaprağınızdan yukarı köke doğru sıralanır. BIP-341 dalı 128 hash, 4.096 bayt ile sınırlar ve sıralı ağacı sayesinde dal hiçbir sol veya sağ yön biti taşımaz. Dalınızın uzunluğu herkese açıktır, bu yüzden daha derin bir yaprak ağacınızın asgari derinliğini sızdırır ve çıktıyı hangi cüzdanın oluşturduğuna dair ipucu verir.

Nasıl çalışır

Bir Taproot Merkle dalı, kontrol bloğunun içinde yol alır; kontrol bloğu, varsa ek (annex) kaldırıldıktan sonra bir script yolu harcamasının tanık yığınındaki son öğedir.

Kontrol bloğunun sabit bir biçimi vardır. Sıfırıncı bayt, yaprak sürümünü ve çıktı anahtarının Y koordinatının paritesini taşır. 1'den 32'ye kadar olan baytlar iç genel anahtarı tutar. Bundan sonraki her şey daldır: art arda m tane 32 baytlık hash, dolayısıyla kontrol bloğu 33 + 32m bayt ölçer ve m, 0'dan 128'e kadar bir tam sayı olmalıdır. Başka her uzunluk, tek bir opcode çalışmadan harcamayı başarısız kılar.

Doğrulama en alttan başlar. Bir düğüm, açığa çıkan script'i TapLeaf etiketi altında hash'ler, ardından her dal hash'ini sırayla TapBranch etiketi altında ekler; her adımda iki 32 baytlık değeri sözlük sırasına göre karşılaştırır ve önce küçük olanı hash'ler. Ortaya çıkan şey taptree köküdür; bu kök, iç anahtarla birlikte TapTweak etiketi altında hash'lenir, iç noktaya eklenir ve harcanan çıktıdaki 32 baytla karşılaştırılır.

Bütün hile bu karşılaştırmadır. BIP-341 iki çocuğu hash'lemeden önce sıraladığı için, bir dal bir kardeşin hangi tarafta durduğunu asla söylemez: doğrulayıcı bunu kendisi çıkarır. Gerekçe, bunun nedenini açıkça söyler: tasarım, belirli script'lerin ağaçtaki konumuyla ilgilenmez, yalnızca gerçekten ağaca taahhüt edilmiş olmalarıyla ilgilenir.

128 sınırı, keyfî bir üst sınır değil bir güvenlik sınırıdır. En verimli biçimde paketlenmiş bir ağaçta derinlik, bir yaprağın olasılığının bire bölümünün iki tabanındaki logaritmasına yaklaşır; dolayısıyla 129 derinlik, kullanım olasılığı 2^128'de 1'den düşük olan bir script anlamına gelir ve BIP-341 bunun muhtemelen silinebileceğini söyler. Diğer uçta, tek yapraklı bir taptree'nin m değeri 0'dır, dalı boştur ve tapleaf hash'i zaten köktür.

Nerede görürsünüz

Taproot Merkle dalları, bir bc1p çıktısını anahtarla imzalamak yerine bir script açığa çıkararak harcayan her işlemde görünür.

BIP-341 beş yapraklı bir ağaç üzerinde bir örnek işler. A, B, C ve E TapLeaf hash'leridir ve AB, ilk ikisi üzerinde bir TapBranch hash'idir. D script'i kullanılarak harcama yapmak için kontrol bloğu C'yi, ardından E'yi, ardından AB'yi taşır: üç hash, 96 bayt dal, 129 baytlık bir kontrol bloğu. Bu ikisi birleşirken E, CD'den önce hash'lenir, çünkü E sözlük sırasında daha düşüktür.

Planlama yapılırken dikkate alınacak olan gizlilik maliyetidir. BIP-341'in güvenlik bölümü, bir script'in derinliğinin ağacın asgari derinliğini sızdırdığını söyler; bu, çıktıyı hangi cüzdan yazılımının oluşturduğunu ima eder ve zincir analizinin adresleri kümelemesine yardımcı olur, ve yaprak olasılıklarının vereceği ağaçtan sapmayı önerir. Yaprak yeniden kullanımı diğer tuzaktır: farklı bir çıktıyı harcamak aynı dal hash'lerini yeniden yayımlayabilir, böylece 32 baytlık bir kardeşi paylaşan iki harcama ilişkili görünür.

Taproot Merkle dalı vs Merkle bloğu

Bir Taproot Merkle dalı, bir script'in bir adrese ait olduğunu kanıtlar; bir Merkle bloğu, bir işlemin bir bloğa ait olduğunu kanıtlar. Taptree dalı konsensüs açısından kritiktir, harcamayı doğrulayan her tam düğüm tarafından yeniden hesaplanır ve konumdan bağımsızdır, çünkü sıralama sol veya sağ demeye gerek bırakmamıştır. Bir bloğun işlem ağacı üzerindeki bir kanıt bu hileyi ödünç alamaz, çünkü bir bloğun Merkle kökü altındaki işlemlerin sırası sabittir ve anlamlıdır; bu yüzden hash'lerin yanı sıra izlediği yolu da taşımak zorundadır.

Karıştırılmaması gerekenler

Sık sorulan sorular

Bir Taproot Merkle dalı, her kardeşin solda mı sağda mı olduğunu söyler mi?

Hayır. BIP-341 iki çocuğu hash'lemeden önce sözlük sırasına göre sıralar, böylece bir doğrulayıcı sırayı kendisi çıkarabilir. Dal, hiçbir yön bilgisi taşımayan, 32 baytlık hash'lerden oluşan yalın bir dizidir.

Bir Taproot Merkle dalı ne kadar uzun olabilir?

En fazla 128 hash, yani 4.096 bayt kardeş verisi. Boş da olabilir: tam olarak tek script yaprağı olan bir Taproot çıktısının sıfır hash'lik bir dalı vardır, çünkü tapleaf hash'i zaten köktür.

Yalnızca Bitcoin satın alıp elimde tutuyorsam bunu önemsemem gerekir mi?

Yalnızca cüzdanınız bir kurtarma dalı veya bir yeter sayı yedeği gibi birden fazla harcama koşulu olan bir Taproot adresi oluşturuyorsa. Bir bc1p adresinden yapılan olağan tek anahtarlı bir harcama bir imza yayımlar ve hiçbir dal yayımlamaz.

Sıradaki okuma

İlgili terimler

Daha fazlası: Protokol ve güncellemeler

Bu sayfayı İngilizce okuyun