İçeriğe geçin
buybitcoinsmart

Sözlük / Protokol ve güncellemeler

OP_CHECKSEQUENCEVERIFY

Diğer adları: CSV, BIP112.

OP_CHECKSEQUENCEVERIFY nedir?
OP_CHECKSEQUENCEVERIFY, bir coini kendi onayından itibaren ölçülen bir süre boyunca kilitler ve girdisi yeterince beklememiş herhangi bir harcamayı başarısız kılar.

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

Opcode yığından bir sayı okur ve bunu harcanan girdinin sequence alanıyla karşılaştırır; yani saat, takvim tarihinde değil, coin bir bloğa girdiğinde başlar. Bunu BIP-112 tanımladı ve ağ, 4 Temmuz 2016 tarihinde 419.328 numaralı bloktan itibaren uygulamaya başladı. Açtığınız her Lightning kanalı buna bağlıdır.

Nasıl çalışır

178 numaralı opcode eskiden OP_NOP3 idi ve hiçbir şey yapmıyordu; kuralın ağa zincir bölünmesi olarak değil de yumuşak çatallanma (soft fork) olarak ulaşması bu sayededir.

Kontrol üç girdiye karşı yapılır: yığındaki sayı, harcanan girdinin sequence alanı ve işlemin sürümü. Sürüm 2 veya üzeri gerekir, çünkü BIP-68'in göreli zaman kilidi kuralları yalnızca bu sürümden itibaren geçerlidir. İki değerden birinin en üst biti ayarlıysa zaman kilidi devre dışı kalır ve opcode vazgeçer. Aksi halde ikisinin birimi aynı olmalı ve yığındaki değer sequence alanını aşmamalıdır.

Birimler iki türlüdür ve tek bir karşılaştırmada karıştırılamaz. Belirli bir bayrak temizlenirse sayı blokları sayar; o bayrak ayarlanırsa sayı 512 saniyelik aralıkları sayar. Her iki durumda da on altı bit kullanılabilir, dolayısıyla üst sınır 65.535 blok, yani yaklaşık 455 gün ya da aynı sayıda 512 saniyelik aralık, ki bu da 389 günün biraz altına denk gelir. Daha uzun bir süre için mutlak bir zaman kilidi gerekir.

Başarısızlık bir gecikme değil, bir reddetmedir. Bekleme süresi dolmadan önce harcama, kuyrukta bekleyen bir bekleyen işlem değil, hiçbir düğümün iletmeyeceği ve hiçbir madencinin eklemeyeceği geçersiz bir işlemdir. Coin yeterince eskiyene kadar hiçbir şeyin yeniden denenmesi gerekmez; o noktada aynı işlem geçerli hale gelir.

Nerede görülür

Hacim bakımından en büyük kullanıcı Lightning'dir ve opcode, her kanalda kendi tarafınızı koruyan script içindedir.

Bir kanal tek taraflı olarak kapandığında, kapatan tarafın bakiyesi, bir gecikme geçmeden süpürülemeyen bir çıktıya gider; bu, BOLT 3 belirtimindeki to_self_delay değeridir ve genellikle birkaç yüz bloktur. Gecikme, kapanış eski bir durumu kullandıysa diğer eşin bir iptal yayımlayıp fonları alabileceği bir pencere olması için vardır. Paranız her iki durumda da güvendedir, ama zorla kapanışta bir gün veya daha fazla beklemenizin, işbirlikli kapanışın ise hemen ödeme yapmasının nedeni budur.

Aynı yapı, geri ödeme yolunun ancak karşı taraf adil bir talep şansı bulduktan sonra açılması gereken denizaltı takaslarında ve atomik takaslarda, ayrıca uzun bir sessizlikten sonra yedek anahtarın kullanılabilir hale geldiği kurtarma cüzdanlarında görülür.

Bir tuzak uyarıyı hak ediyor. Göreli zaman kilidi, harcanan belirli coinin onayından itibaren ölçülür, yani o coin her hareket ettiğinde sayaç yeniden başlar. Tozu birleştirmek, para üstünü süpürmek veya cüzdanın çıktılarınızı yeniden düzenlemesine izin vermek, kurduğunuz her kurtarma dalındaki geri sayımı sıfırlar; yedek anahtarın gelecek ay çalışmasını bekleyen bir mirasçı, sayacı yeniden sıfırda bulabilir.

OP_CHECKSEQUENCEVERIFY vs OP_CHECKLOCKTIMEVERIFY

CSV coinin ne kadar süredir var olduğunu sorar; CLTV ise saatin kaç olduğunu. İki opcode numaralandırmada yan yana durur, 178 ve 177, ve birbirinden çok farklı işler için seçilir.

Son tarih gerçek bir tarihse mutlak biçimi kullanın: 2030 yılında açılan bir trust, bilinen bir yükseklikte sona eren bir geri ödeme. Bekleme, sözleşme ne zaman başlarsa o zaman başlamalıysa göreli biçimi kullanın; bir kez yazılıp birçok kez yeniden kullanılan her script'in ihtiyacı budur. Lightning, kanal gecikmeleri için mutlak zaman kilitlerini kullanamazdı, çünkü bugün açılan bir kanal ile gelecek yıl açılan bir kanal farklı script'ler gerektirirdi. İkili ayrıca birkaç ay arayla geldi: CLTV 14 Aralık 2015 tarihinde 388.381 numaralı blokta, CSV ise onu izleyen Temmuz ayında; ikincisi büyük ölçüde birincisinin ödeme kanalları kurmaya yetmediği için var oldu.

Karıştırılmaması gerekenler

Sık sorulan sorular

Kripto varlıklarımı taşımak göreli bir zaman kilidini sıfırlar mı?

Evet. Geri sayım, harcanan tam olarak o coinin onayından itibaren ölçülür, dolayısıyla birleştirmek veya yeniden göndermek sayacı sıfırlar. OP_CHECKSEQUENCEVERIFY üzerine kurulmuş kurtarma dalları, fonlandıktan sonra olduğu gibi bırakılmalıdır.

Göreli bir zaman kilidi ne kadar sürebilir?

En fazla 65.535 blok, yaklaşık 455 gün veya 65.535 tane 512 saniyelik aralık, yani 389 günün biraz altı. Daha uzun bekleme süreleri OP_CHECKLOCKTIMEVERIFY ile mutlak bir zaman kilidi gerektirir.

Sıradaki okuma

İlgili terimler

Daha fazlası: Protokol ve güncellemeler

Bu sayfayı İngilizce okuyun