İçeriğe geçin
buybitcoinsmart

Sözlük / Lightning ve katman 2

İşbirlikli kapanış

İşbirlikli kapanış nedir?
İşbirlikli kapanış, bir Lightning kanalını anlaşmayla sona erdirir: iki taraf da her bir tarafa son bakiyesini ödeyen tek bir işlemi imzalar; gecikme olmaz ve ceza riski doğmaz.

İşbirlikli kapanış, iki konu üzerinde kısa bir pazarlıktır: her tarafın ödemenin nereye yapılmasını istediği ve madenci ücretini kimin ödediği. Modern yol üç mesaj türü kullanır: önce türü 38 olan shutdown, ardından option_simple_close kuralları altında türü 40 olan closing_complete ve türü 41 olan closing_sig. Bakiyeniz, kapanış işlemi onaylandığı anda bekleme süresi olmadan sıradan harcanabilir bir çıktı olarak gelir.

Nasıl çalışır

İşbirlikli kapanış iki aşamada yürür ve ilk aşama durma sözüdür.

Taraflardan biri, ödemesinin gönderilmesini istediği scriptpubkey'i belirterek türü 38 olan shutdown mesajını göndererek başlatır. Gönderen bundan sonra yeni bir HTLC ekleyemez ve bekleyen hiçbir şey kalmadığında karşı taraf kendi shutdown mesajıyla yanıt vermek zorundadır. BOLT 2 bu scripti ağın ileteceği biçimlerle sınırlar: OP_0 arkasında 20 veya 32 baytlık bir veri itişi ya da option_shutdown_anysegwit üzerinde anlaşıldığında OP_1 ile OP_16 arasından biri ve ardından 2 ile 40 bayt arasında bir veri itişi.

İkinci aşama, iki taahhüt işleminde de HTLC kalmadığında başlar. option_simple_close, yani BOLT 9 içindeki 60 ve 61 numaralı özellik bitleri altında, her taraf kapanış işleminin kendi sürümünü oluşturur, ücretin tamamını kendi bakiyesinden düşer ve türü 40 olan closing_complete mesajını gönderir. Karşı taraf kendisine verileni imzalar ve türü 41 olan closing_sig mesajını döndürür. Ücreti öneren taraf ödediği için, ücret düzeyi tartışmasının gidecek yeri kalmaz; BOLT 2 bunu tasarımın amacı olarak belirtir. Daha yüksek bir ücretle closing_complete mesajını yeniden göndermek, kapanışın ücretinin artırılma yoludur ve BOLT 3 bu işleme 0xFFFFFFFD giriş sıra numarasını verir; şartname bunu önceki denemenin RBF'si olarak adlandırır.

Eski yol, yani türü 39 olan closing_signed hâlâ şartnamede durur. Orada fonu sağlayan taraf bir ücret ile birlikte min_fee_satoshis ve max_fee_satoshis alanlarından oluşan bir fee_range belirtir ve fonu sağlamayan taraf bu aralıkta bir sayı seçer; aynı değeri seçerse iki mesajda, aksi halde üç mesajda sonuçlanır. Aralık yoksa her yanıt son iki teklifin kesinlikle arasında kalmak zorundadır, böylece taraflar satoshi satoshi birbirine yaklaşır.

Nerede görülür

İşbirlikli kapanış, cüzdanınızda kapat düğmesine bastığınızda ve karşı taraf yanıt verdiğinde cüzdanınızın yaptığı şeydir: tek bir işlem, arkasında bekleyen bakiye yok.

BOLT 2 kendi adım adım örneğini içerir. A ve B shutdown scriptlerini paylaşır, bekleyen HTLC'ler tamamlanır ve ardından A 1.000 satoshi ücret ödemeyi teklif ederken B bağımsız olarak 750 teklif eder. Her biri diğerinin sürümünü imzalar. A daha sonra ödeme scriptini değiştirir ve 1.100 satoshi ile yeniden gönderir; B ise kendi denemesini 850 satoshiye yükseltir.

Kuralların sıkıntı yarattığı yer küçük kanallardır. Parası az olan taraf kendi çıktısını düşürebilir ve tutar toz (dust) olacaksa düşürmek zorundadır. Ücretler her iki çıktıyı da toz yapacaksa, kapatmayı yapan taraf adres yerine bir OP_RETURN scripti gönderebilir ve o çıktının değeri sıfıra ayarlanır, böylece o tarafın fonları ücretlere gider ve işlem yine de iletilir. Şartname, segwit olmayan bir scripte ödenen 546 satoshiden düşük bir çıktının bir madenciye hiç ulaşmayabileceği ve böyle bir kanalın bunun yerine zorla kapatılması gerektiği konusunda uyarır.

İşbirlikli kapanış vs zorla kapanış

İşbirlikli kapanış da zorla kapanış da bir kanalı zincir üstü bir işlemle sona erdirir; fark, kimin beklediğidir.

İşbirlikli kapanışta her iki çıktı da sıradan ödemedir, bu yüzden her taraf ilk onayda harcayabilir ve hiçbir ceza dalı devreye girmez. Zorla kapanış ise bunun yerine bir taahhüt işlemi yayımlar; kendi bakiyenizi kanal açılırken kararlaştırılan bir blok gecikmesinin arkasında bırakır ve yoldaki her ödemeye kendi takip işlemini verir. Phoenix incelememiz bu bekleme süresini yaklaşık 720 blok, yani yaklaşık beş gün olarak verir; zorla kapatılan fonlar ancak bundan sonra geri alınabilir.

İşbirlikli kapanış, diğer düğümün açık olmasını ve bir shutdown mesajına yanıt vermeye istekli olmasını gerektirir. Zorla kapanışın var olma nedeni budur ve ulaşamadığınız bir karşı taraf, kapanış ücretini kontrol edemediğiniz bir karşı taraftır.

Karıştırılmaması gerekenler

Sık sorulan sorular

İşbirlikli kapanışta madencilik ücretini kim öder?

İşlemi öneren öder. option_simple_close altında her taraf kendi closing_complete mesajını gönderir ve ücreti kendi bakiyesinden düşer; BOLT 2 bu tasarımın ücret anlaşmazlığını bir başarısızlık biçimi olmaktan çıkardığını bu yüzden söyler. Eski closing_signed yolunda ise fonu sağlayan taraf öder ve diğer tarafın içinden seçeceği bir ücret aralığı belirtir.

Karşı taraf çevrimdışıysa kanalı işbirlikli olarak kapatabilir miyim?

Hayır. İşbirlikli kapanış, diğer düğümün shutdown mesajınıza yanıt vermesini ve bir imza döndürmesini gerektirir; bu yüzden ulaşılamayan bir karşı taraf size bunun yerine zorla kapanış bırakır. Bir kanala para koymadan önce planlanması gereken fark budur.

İşbirlikli kapanıştan sonra parayı harcamadan önce ne kadar beklemem gerekir?

Kapanış işlemi onaylandığı anda. Her iki çıktı da tarafların seçtiği ödeme scriptlerine yapılan sıradan ödemelerdir ve ikisinde de zaman kilidi (timelock) yoktur. Kendi tarafınızı bir blok gecikmesinin arkasında bırakan şey zorla kapanıştır.

Sıradaki okuma

İlgili terimler

Daha fazlası: Lightning ve katman 2

Bu sayfayı İngilizce okuyun