İçeriğe geçin
buybitcoinsmart

Sözlük / Protokol ve güncellemeler

Tapscript

Tapscript nedir?
Tapscript, Taproot script path harcamalarında çalışan Bitcoin Script sürümüdür; Schnorr imzaları kullanır, opcode üst sınırı yoktur ve eski sayaçların yerini bir imza bütçesi alır.

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

Bunu BIP-342 tanımlar ve yaprak sürümü baytı 0xc0, bir taptree'nin bir dalını sonradan icat edilmiş bir şey olarak değil tapscript olarak işaretler. Başka her yerde kullanılan script diline karşı, 201 itme dışı işlem sınırını ve 10.000 baytlık script boyutu üst sınırını kaldırır ve OP_CHECKMULTISIG'i devre dışı bırakır. Bir Taproot coinini bir script açığa çıkararak harcarsanız, o script bu dilde yazılmıştır.

Nasıl çalışır

Bir tapscript harcaması ağa witness yığınında üç şey verir: script'in istediği argümanlar, script'in kendisi ve script'in adrese ait olduğunu kanıtlayan bir kontrol bloğu.

Önce imza kontrolü değişti. OP_CHECKSIG ve OP_CHECKSIGVERIFY artık 32 baytlık x-only bir genel anahtar ve 64 baytlık bir Schnorr imzası bekler, varsayılan olmayan bir sighash türü eklendiğinde 65 bayt. OP_CHECKMULTISIG ve OP_CHECKMULTISIGVERIFY doğrudan başarısız olur ve yerlerini OP_CHECKSIGADD alır.

İkinci olarak kaynak muhasebesi değişti ve gerçek sonuçları olan kısım budur. Eski sayaçlar, script başına 201 işlem ve küresel bir sigop sayımı, artık yok. Bunun yerine her girdi, 50 ağırlık birimi artı kendi witness boyutuyla başlayan bir doğrulama bütçesi alır ve her başarılı imza kontrolü bundan 50 düşer. Doğrulama işini baytla satın alırsınız; bu, sabit bir sayımdan daha temiz bir kuraldır ve bir script'in, ödemeye razı olduğunuz kadar çok anahtar tutabileceği anlamına gelir.

Gelecekteki yükseltmeler için iki kapı açık bırakıldı. 80, 98, 126 ile 129, 131 ile 134, 137, 138, 141, 142, 149 ile 153 ve 187 ile 254 opcode'ları OP_SUCCESS oldu: bunlardan herhangi biri script'in herhangi bir yerinde, hiç çalışmayan bir dalda bile görünürse script hemen başarılı olur. 32 bayt dışında herhangi bir uzunluktaki genel anahtarlar bilinmeyen anahtar türü olarak işlenir ve geçer. Her iki kural da sonraki bir soft fork'un hard fork olmadan gerçek bir davranış atamasına izin verir. Değişmeden kalan, tek bir yığın öğesi için 520 baytlık üst sınır ve 1.000 öğelik yığın sınırıdır.

Nerede karşınıza çıkar

Tapscript, bir Taproot çıktısı zor yoldan, birleştirilmiş anahtarla imzalamak yerine bir dalı açığa çıkararak harcandığında ortaya çıkar.

En ağır gerçek kullanıcı veri depolamadır. Bir ordinals yazıtı bir tapscript zarfıdır; bir içerik parçasının OP_FALSE OP_IF ile OP_ENDIF arasında seferde 520 bayt itildiği bir yapıdır ve tam da tapscript 10.000 baytlık script sınırını kaldırdığı ve arkasına witness indirimini koyduğu için bu biçimde vardır. Bu uygulama hakkında ne düşünürseniz düşünün, çoğu insanın farkında olmadan bir tapscript harcaması görmesinin nedeni budur.

Bir birikimciye daha yakın kullanımlar daha sessizdir. Zaman kilitli kurtarma dalları, emanet (escrow) yedekleri ve Lightning Network'ün daha yeni kanal script'leri hep tapscript yaprakları olarak yaşar ve Bitcoin Core bunları bir tr() tanımlayıcısı içinde Miniscript aracılığıyla oluşturup imzalayabilir.

Tapscript vs Bitcoin Script

Bitcoin Script ailedir; tapscript onun bir üyesidir. Ağda aynı anda üç script sürümü canlıdır: eski dil, SegWit sürüm 0 dili ve tapscript; bir düğüm bunlar arasında harcanan çıktıya göre seçim yapar, script'in kendisindeki hiçbir şeye göre değil.

Bu, bir eğitimden script kopyaladığınızda önemlidir. OP_CHECKMULTISIG ile yazılmış, üç anahtardan ikisini isteyen bir yapı P2WSH çıktısında geçerlidir ve bir taptree yaprağında geçersizdir. 4.000 bayt iten bir script, P2WSH witness script'inde konsensüs sınırını aşar ve tapscript'te sorunsuzdur. Sayfada aynı opcode'lar, altta farklı kural kitabı.

Karıştırılmaması gerekenler

Sık sorulan sorular

bc1p ile başlayan bir adresten gönderdiğimde cüzdanımın kullandığı şey tapscript mi?

Genellikle değil. Taproot harcamalarının çoğu anahtar yolunu izler; bu yol tek bir imza ister ve hiç script gerektirmez. Tapscript yalnızca cüzdan, kurtarma veya emanet (escrow) koşulu gibi taptree'nin bir dalını açığa çıkardığında çalışır.

Tapscript 10.000 baytlık script sınırını neden kaldırdı?

Çünkü blok ağırlığı sınırı, kimsenin yayımlayabileceği script miktarını zaten sınırlıyor ve eski üst sınır yalnızca karmaşık sözleşmeleri garip biçimlere zorluyordu. Yan etkisi, büyük veri yazıtlarını uygulanabilir kılmak oldu.

Sıradaki okuma

İlgili terimler

Daha fazlası: Protokol ve güncellemeler

Bu sayfayı İngilizce okuyun