Sözlük / İşlemler ve ücretler
Locktime
Diğer adları: nLockTime.
- Locktime nedir?
- Locktime, bir işlemin son dört baytıdır ve ağın işlemi hangi en erken blok yüksekliğinde veya saat zamanında bir bloğa kabul edeceğini belirler.
Locktime'ı protokole yazılmış ileri tarihli bir çek gibi düşünün. Tek alan, iki anlam ve bunları bir eşik belirliyor: 500.000.000 değerinin altındaki her değer blok sayar, bu değere eşit veya üstündeki her değer ise 1970'ten itibaren geçen saniyeleri sayar. Göndereceğiniz işlemlerin çoğunda bir locktime bulunur ve bu alan, sizi madencilerin ince bir hilesinden korumak dışında hiçbir şey yapmaz.
Nasıl çalışır
Locktime, serileştirilmiş işlemin tam en sonunda yer alır ve harcamayla ilgili başka bir şey değerlendirilmeden önce kontrol edilir.
Tek bir alanın iki işi yapmasını sağlayan şey, eşik kuralıdır. 900.000 değerinde bir locktime, işlemin 900.000 yüksekliğinin altındaki bir blokta yer alamayacağı anlamına gelir. 1.800.000.000 değerinde bir locktime bir Unix zaman damgasıdır ve işlemin, önceki on bir bloğun medyan zamanı o anı geçmeden yer alamayacağı anlamına gelir. Ayrım çizgisi olan 500.000.000, 5 Kasım 1985 tarihine karşılık gelir; bu tarih Bitcoin'in var olmasından güvenle öncedir ve akla yatkın her blok yüksekliğinin güvenle üstündedir. Alan dört bayttır, bu yüzden ifade edilebilecek en geç zaman 7 Şubat 2106 tarihidir.
Bir de koşul var. Locktime yalnızca en az bir girdinin sıra numarası 0xffffffff değerinin altındaysa uygulanır. Her girdiyi 0xffffffff olarak ayarlarsanız alan tamamen yok sayılır; cüzdanlar bu alana bir kullanım bulmadan önceki yıllar boyunca işlemler böyle çalışıyordu.
Bu kullanım, ücret avcılığına (fee sniping) karşı korumadır. Ücretler yüksekken bir blok yarışını kaybeden madencinin, ileri doğru blok inşa etmek yerine önceki bloğu yeniden çıkarmayı deneyip ücretlerini çalma teşviki vardır. Cüzdanlar her işlemin locktime değerini zincirin mevcut uç noktasına ayarlarsa bu işlemler önceki hiçbir blokta geçerli olmaz ve bu da ganimetin çoğunu ve teşviki ortadan kaldırır. Bitcoin Core bunu sıradan harcamalarda yapar ve yaklaşık on seferde bir, farklı cüzdan yazılımlarından gelen işlemler birbirinden ayırt edilmesin diye önceki 100 blok arasından tekdüze biçimde bir yükseklik seçer.
Nerede görürsünüz
Bir blok gezgininde herhangi bir son işlemi açın; locktime alanında genellikle işlemin çıkarıldığı yüksekliğe yakın bir sayı bulunur.
Bu, ücret avcılığına karşı koruma davranışıdır ve bunu görmek, ödemeyi oluşturan yazılıma dair hafif bir parmak izidir. Alanı sıfırda bırakan cüzdanlar da bir şey duyurmuş olur. Zincir analizi şirketleri bu alanı tam da çok az kullanıcı bunu düşündüğü için okur.
Kasıtlı kullanımlar daha dardır. Gelecekteki bir locktime, şimdi imzalanıp teslim edilebilen ama daha sonraya kadar yayımlanamayan bir işlem oluşturur; basit miras düzenlerinin ve iade yollarının temeli budur. Lightning zorla kapatma işlemleri ve denizaltı takasları, kaybolan bir karşı tarafın paranızı sonsuza dek rehin bırakamaması için zaman kilitleri (timelock) kullanır. Bunları oluşturan herkes bariz zayıflığı göz önünde bulundurmalıdır: kilitli bir işlem, yalnızca arkasındaki bitcoinler kadar değerlidir ve gönderen bu girdileri önce başka bir şekilde harcarsa ileri tarihli işlem değersiz hale gelir.
Locktime vs OP_CHECKLOCKTIMEVERIFY
Locktime bir işlemi kısıtlar; OP_CHECKLOCKTIMEVERIFY bir çıktıyı (coin) kısıtlar. Fark önemlidir, çünkü ikisinden yalnızca biri imzalayan kişi dışında birini bağlar.
Bir locktime'ı işlemi oluşturan kişi seçer, dolayısıyla kimseyi korumaz: bir gönderenin onu içermeyen başka bir işlem oluşturması yeterlidir. BIP65 belgesinde tanımlanan ve ağda 14 Aralık 2015 tarihinde 388.381 numaralı bloktan beri etkin olan OP_CHECKLOCKTIMEVERIFY, koşulu çıktının kendi betiğine koyar. O çıktının gelecekteki her harcaması, belirtilen ana eşit veya ondan sonraki bir locktime taşımak zorundadır ve hiçbir imza bunu atlayamaz. Bir zaman kilidini niyetten kurala dönüştüren şey budur ve kasa, emanet (escrow) ve miras tasarımlarının alan yerine bu işlem koduyla yazılmasının nedeni de budur.