İçeriğe geçin
buybitcoinsmart

Sözlük / Protokol ve güncellemeler

Covenant

Covenant nedir?
Covenant, Bitcoin'in yalnızca kim tarafından hareket ettirilebileceğini değil, bundan sonra nereye gidebileceğini de sınırlayan bir harcama kuralıdır ve bugün Bitcoin Script içindeki hiçbir opcode böyle bir kuralı uygulayamaz.

Zincirdeki her script tek bir soruya yanıt verir: bu harcama yetkili mi? Bir covenant, scriptin harcamayı yapan işlem hakkında ikinci bir soru sormasına izin verirdi ve buna olanak tanıyacak öneriler (BIP-119, BIP-118, BIP-345, BIP-347) yıllardır etkinleştirilmeden bekliyor. Bugün elinizde tuttuğunuz hiçbir şey etkilenmiyor, ancak insanların sürekli sorduğu kasa ve miras ürünleri bunu bekliyor.

Nasıl çalışır

Durum: Bitcoin ana ağında etkin bir covenant opcode yok. Aşağıdaki tasarımların her biri bir öneridir ve hiçbirinin etkinleştirme parametreleri Bitcoin Core içine alınmamıştır.

Eksik olan yeteneğin kesin bir adı var: iç gözlem (introspection). Bir düğüm bir script çalıştırdığında script imzaları, hash'leri, zaman kilitlerini ve yığını görebilir, ancak parayı harcayan işlemin çıktılarını okuyamaz. Bu tek kör nokta, Bitcoin'in “bu üç kişiden ikisi anlaşmalı” ifadesini kurabilmesinin ve “bu para yalnızca şu adrese gidebilir” ifadesini kuramamasının nedenidir.

Öneriler bu boşluğu iki farklı yolla kapatıyor ve aralarındaki fark tartışmanın özünü oluşturuyor.

Şablon yaklaşımı, harcamayı yapan işlemin tamamının hash'ine önceden bağlanır. OP_CHECKTEMPLATEVERIFY bu şekilde çalışır: çıktı 32 baytlık bir hash tutar ve işlem aynı değere hash'lenmedikçe harcama başarısız olur. Dardır, doğrulanması ucuzdur ve taahhüt başka bir taahhüdü tanımlayamadığı için kısıtlama kendini süresiz olarak tekrarlayamaz.

İç gözlem yaklaşımı scripte parçaları verir ve aritmetik yapmasına izin verir. OP_CAT opcode'unu bir imza kontrolüyle birleştirmek ya da OP_CHECKSIGFROMSTACK opcode'unu eklemek, bir scriptin işlemin imza hash'ini yığındaki parçalardan yeniden kurup doğrulamasına olanak tanır; bu noktada script çıktılar hakkında istediği her şeyi şart koşabilir. Bu geneldir ve özyinelemelidir: bir covenant, bir sonraki çıktının aynı covenant'ı taşımasını şart koşabilir.

Her şeyi yavaşlatan itiraz özyinelemedir. Kendini sürdüren bir kurala kilitlenen coinler ilke olarak sonsuza dek kısıtlı kalabilir; bu da misliyet (fungibility) ve kuralı zorunlu kılabilecek ihraççılar hakkında sorular doğurur. Karşı argüman, bir grup insanın izin verilen tek harcamayı önceden imzalayıp anahtarı yok ederek zaten bir covenant taklidi yapabildiğidir; yani bu yetenek pratikte var ve konsensüs tarafından uygulanması, esas olarak anahtarın gerçekten yok edildiğine güvenme ihtiyacını ortadan kaldırır.

Nerede görülür

Covenant'lar, Bitcoin'in script motorunu kopyalayan zincirlerde zaten kullanıma açılmıştır ve bunların ne yaptığını görmenin en ucuz yolu budur.

Elements tabanlı yan zincir olan Liquid, harcamayı yapan işlemin çıktılarını doğrudan okuyan iç gözlem opcode'ları içeren bir tapscript çalıştırır ve federasyonu bunları kendi peg mekanizması için kullanır. Herkes ayrıca önerilen Bitcoin opcode'larını ana ağda isteyip istemeyeceğine karar vermeden önce özel signet'lerde test edebilir.

Ana ağda bunun yerine geçen şey, anahtarı silinmiş önceden imzalanmış bir işlemdir. Bir kasa sağlayıcısı yatırma anahtarını üretir, her zaman izin vereceği tek çekim işlemini imzalar ve ardından başka bir harcama oluşturulamaması için anahtarı yok eder. Bu, ağ tarafından değil, bir sözle uygulanan bir covenant'tır ve gerçek bir covenant opcode'un gereksiz kılacağı şey tam da bu sözdür. Bir hizmet size kasa satıyorsa bunu bilmekte fayda var: ikisinden hangisi olduğunu sorun.

Covenant vs emanet sözleşmesi

Bir covenant varış noktasını kısıtlar; bir emanet sözleşmesi imzalayanları kısıtlar. Aynı kaygının farklı yarılarını çözerler ve bunlardan yalnızca biri mevcuttur.

Bir emanet sözleşmesi, üçüncü bir tarafın da yer aldığı olağan bir çoklu imza (multisig) düzenidir, genellikle üçte iki, ve bugün Bitcoin'de çalışır: bir alım satım platformu bir anahtar tutar, alıcı ve satıcı onun olmadığı durumda anlaşabilir ya da bir anlaşmazlığı çözmek için onu devreye sokabilir. Emanetin yapamadığı şey sonucu kısıtlamaktır. Bir harcama çoğunluğu oluştuğu anda paralar her yere gidebilir, hakemin kendisine bile. Bir covenant varış noktasını önceden sabitler ve hakemin takdir yetkisini tasarımdan tamamen çıkarırdı.

Karıştırılmaması gerekenler

Sık sorulan sorular

Bitcoin'de bugün bir covenant kullanabilir miyim?

Hayır. Ana ağda etkin bir covenant opcode yok. Bugün kasa davranışı vadeden ürünler önceden imzalanmış işlemlere ve silinmiş bir anahtara dayanır; bu, ağın uyguladığı bir kural değil, bir sözdür.

Covenant'lar neden tartışmalı?

Çünkü genel sürümler özyinelemelidir; yani bir para, gelecekteki her harcamaya yeniden bağlanan bir kısıtlama taşıyabilir. Eleştirenler kalıcı olarak kısıtlı kalan coinlerden kaygı duyar; destekleyenler ise önceden imzalanmış işlemlerin bu etkiyi zaten taklit ettiğini belirtir.

Sıradaki okuma

İlgili terimler

Daha fazlası: Protokol ve güncellemeler

Bu sayfayı İngilizce okuyun