Sözlük / İşlemler ve ücretler
Sıra numarası
Diğer adları: nSequence.
- Sıra numarası nedir?
- Sıra numarası, her işlem girdisinde bulunan ve işlemin daha yüksek ücretli bir sürümle değiştirilebileceğini bildiren, locktime özelliğini açan ve göreli bir zaman kilidi kodlayabilen dört baytlık bir alandır.
Tanımlandığı belge: BIP-68.
Birbiriyle ilgisiz üç işlev tek bir alanı paylaşır, çünkü Bitcoin bir alan daha eklemeyi göze alamazdı. Satoshi'nin bu alan için ilk planı, her yeni sürümün sayıyı yükselttiği kaba bir ödeme kanalıydı; bu plan 2010 civarında terk edildi, çünkü hiçbir kural madencileri daha yüksek sayıyı tercih etmeye zorlamıyordu. Geriye kalan, cüzdanınızın işlemlerinin nasıl davranacağına karar veren bir dizi sihirli değerdir.
Nasıl çalışır
Bir sıra numarasını okumak, onu eskiliğine göre sırayla üç ayrı kurala karşı kontrol etmek demektir.
Nihai değer. 0xffffffff, yani ondalık 4.294.967.295 değerindeki bir sıra numarası, bir girdiyi nihai olarak işaretler. Bir işlemdeki her girdi nihaiyse locktime alanı tamamen yok sayılır. Bu, ilk cüzdanlarda varsayılan değerdi ve bu alanı hiç düşünmemiş yazılımların oluşturduğu işlemlerde hâlâ gördüğünüz şeydir.
Değiştirme sinyali. BIP125, aralığın alt ucuna anlam yükledi: 0xfffffffd veya altına ayarlanmış her girdi, göndericinin işlemi daha yüksek ödeme yapan bir sürümle değiştirebileceğini bildirir. 0xfffffffe değeri tam ortayı bulur: locktime etkinleşir ama değişim sinyali verilmez. Bu ayrım gücünün çoğunu yitirdi, çünkü Bitcoin Core 28.0 sürümünden, yani Ekim 2024'ten beri sinyalden bağımsız olarak değiştirmeleri aktarıyor.
Göreli zaman kilidi. BIP68, 2 veya daha yüksek sürüm bildiren işlemler için alt bitleri yeniden yorumladı ve kural Temmuz 2016'da 419.328 numaralı blokta uygulanabilir hâle geldi. 31. bit kapalıyken alt 16 bit, girdinin harcadığı çıktı onaylandıktan sonra ne kadar zaman geçmesi gerektiğini belirtir. 22. bit birimi seçer: kapalıysa blok anlamına gelir, yani en fazla 65.535 blok veya yaklaşık 455 gün; açıksa 512 saniyelik dönemler anlamına gelir ve 388 güne yakın bir üst sınır verir. Saat sabit bir tarihten değil, üst işlemin onayından başlar; iki kişi arasındaki bir sözleşmenin ihtiyaç duyduğu şey tam olarak budur.
Nerede görülür
Sıra numarası, ham işlem dökümlerinde bir sütun ve cüzdan yazılımında bir onay kutusu olarak görünür; bu iki görünüm nadiren aynı sözcükleri kullanır.
Girdileri çözen bir blok gezgini her birinin yanına 4294967293 gibi değerler yazdırır. Bu değer 0xfffffffd'dir ve cüzdanın değiştirilebilir bir işlem oluşturduğunu söyler. Bitcoin Core yazılımının decoderawtransaction çağrısı aynı rakamı gösterir; Sparrow ve Electrum ise bu değeri bir sayı olarak değil, "replace by fee" anahtarı arkasında sunar.
Lightning en ağır gerçek kullanıcıdır. Bir kanalın iptal gecikmesi, yani karşı tarafın eski bir durumu yayımladığı için cezalandırılabileceği süre, taahhüt işleminin girdisinde bu alan üzerinden uygulanan göreli bir zaman kilididir. Aynı mekanizma, denizaltı takaslarını, kasa tasarımlarını ve geri ödeme yolunun ancak diğer tarafın harekete geçmek için adil bir fırsatı olmasından sonra açılması gereken her sözleşmeyi ayakta tutar.
Sıra numarası vs locktime
Sıra numaraları her girdi için ayrıdır; locktime tüm işlem için tektir. İkisini birbirinden ayırmanın en hızlı yolu budur ve neden farklı işler için kullanıldıklarını açıklar.
Locktime, blok yüksekliği veya duvar saati zamanı olarak ifade edilen ve tüm işlem için geçerli tek bir kesin son tarih belirler; harcanan çıktılar bir günlük de olsa beş yıllık da olsa uygulanır. Bir sıra numarasındaki göreli zaman kilidi ise zamanı, o girdinin harcadığı belirli çıktının onaylanmasından itibaren ölçer; böylece her girdi kendi bekleme süresini taşıyabilir ve aynı script ne zaman fonlandığından bağımsız olarak çalışır. İkisi ayrıca birbirine tuhaf biçimde bağımlıdır: locktime yalnızca en az bir sıra numarası nihai değerin altındaysa uygulanır, bu yüzden her şeyi 0xffffffff yapan bir cüzdan diğer alanı sessizce devre dışı bırakır.