Cointelegraph Research, Bitcoin covenants (bağlayıcı sözleşmeler) serisinin beşinci bölümünü yayımlayarak MATT (Merkleize All The Things) adlı yeni bir çerçeveyi ve OP_CHECKCONTRACTVERIFY (OP_CCV) opcode'unu detaylandırdı. Öneri, standart Bitcoin script'lerinin her işlemi izole olarak değerlendirmesi nedeniyle eksik olan, Bitcoin'e birden fazla işlem boyunca değişken sözleşme durumu taşıma yeteneği kazandırmayı hedefliyor.

BTC / USD
Kaynak: CoinGecko. Fiyatlar gösterge niteliğindedir.

MATT durumu Taproot anahtarlarına nasıl gömer

MATT, Taproot'un mevcut ayarlama (tweak) mekanizmasına dayanır; burada bir Taproot çıktısının açık anahtarı Q, Q = P + t·G olarak türetilir. Burada P iç anahtar, t ise taahhüt edilecek verilerin etiketli hash'idir. MATT, yalnızca bir script ağacının Merkle köküne taahhüt etmek yerine, sözleşme durumunu da ayarlama değerine gömmeyi önerir. Durum hash'lenir ve ayarlama değerine dahil edilir; böylece bir sonraki çıktı, harcama anında yeniden hesaplanan yeni bir durumu ileriye taşıyabilir.

OP_CHECKCONTRACTVERIFY durum geçişlerini zorlar

MATT'nin temel ilkesi OP_CHECKCONTRACTVERIFY'dir. Raporun belirttiğine göre OP_CCV, bir script'in bir Taproot girdi veya çıktı anahtarının belirli bir durum verisiyle ayarlandığını doğrulamasına olanak tanır. Opcode'un yığın formatı <data> <index> <pk> <taptree> <mode> OP_CHECKCONTRACTVERIFY şeklindedir ve üç çalışma modu içerir: varsayılan (tam girdi değeri atanan çıktıya geçer), düş (yalnızca çıktı tutarı taşınır, kalan diğer çıktılar için bırakılır) ve yok say (tutar kısıtlamaları olmadan doğrulama). Bu modlar değeri korurken ayrı ücret girdilerine izin verir; OP_CTV veya SIGHASH_ANYPREVOUT gibi önceki covenant tasarımlarında görülen fon yakma sorunlarını önler.

OP_CAT ile ifade gücünü genişletme

OP_CHECKCONTRACTVERIFY, OP_CAT ile birleştirildiğinde, çerçeve zincir içi Merkle kanıtları oluşturabilir ve doğrulayabilir. Bir Taproot çıktısıyla iki Merkle ağacı ilişkilendirilir: standart script ağacı ve ara hesaplama adımlarını saklayan ayrı bir durum ağacı. OP_CAT bayt dizilerini birleştirerek script'in mevcut durum için bir Merkle kanıtı yeniden oluşturmasına, bir geçişten sonra yeni kökü hesaplamasına ve ardından OP_CCV'yi kullanarak bir sonraki çıktının bu yeni köke taahhüt etmesini sağlamasına olanak tanır. Bu tasarım, çoğu hesaplamanın zincir dışı gerçekleştiği ve yalnızca itiraz edilen adımların doğrulama için zincir içi paylaşıldığı, iyimser rollup'lara benzer hile kanıtı sistemlerini destekler.

Sıradaki adımlar neler

MATT için bir sonraki adımlar, OP_CHECKCONTRACTVERIFY uygulamalarının Bitcoin Core