Sözlük / Lightning ve katman 2
Kanal duyurusu
- Kanal duyurusu nedir?
- Kanal duyurusu, Lightning ağına genel bir kanalın var olduğunu bildiren ve fonlama çıktısının sahipliğini dört imzayla kanıtlayan imzalı gossip mesajıdır.
Her genel Lightning kanalı yönlendirme grafiğine bunlardan biriyle katılır ve kanal başına yalnızca bir geçerli duyuru bulunabilir. Duyuru, fonlama işlemi altı onay alana kadar gönderilemez ve eşler, çıktı harcandıktan 72 blok sonra kanalı unutur. Duyuru yapmak gizlilikten ödün verir, çünkü mesaj kanalınızı fonlayan zincir üstü çıktıyı yayımlar ve onu düğüm anahtarınıza bağlar.
Nasıl çalışır
Bir kanal duyurusunu sahtelemek pahalıdır ve tasarımın bütün amacı budur.
Gossip göndermek ücretsizdir, bu yüzden bir düğüm aksi halde ağı hayali kanallarla doldurabilirdi. BOLT 7 bunu, her iddiayı blok zincirine karşı yanıtlanabilir kılarak engeller. Türü 256 olan mesaj, belirli bir çıktıya işaret eden bir short_channel_id belirtir: üç bayt blok yüksekliği, üç bayt işlem dizini, iki bayt çıktı dizini. Mesajı alan düğüm bu çıktıyı arar ve çıktı, adı geçen iki Bitcoin anahtarına ödeme yapan harcanmamış bir P2WSH değilse duyuruyu atar.
Dört imza başta gelir. İkisi düğüm kimlik anahtarlarından, ikisi de zincir üstü çıktıyı kontrol eden fonlama anahtarlarından gelir: bitcoin_key_1 ve bitcoin_key_2. Dördü de, bayt konumu 256 ile mesajın sonu arasından hesaplanan aynı çift SHA256 karma değerini imzalar. Düğüm anahtarlarını Bitcoin anahtarlarıyla eşleştirmek, kanalı duyuran iki düğümün onu fonlayan iki taraf olduğunu, başkasının çıktısına işaret eden yabancılar olmadığını kanıtlar. node_id_1 ayrıca iki sıkıştırılmış anahtarın sözlük sırasına göre küçük olanı olmalıdır ve mesajı alan düğüm bu sırayı yanlış yapan her duyuruyu yok saymalıdır.
Duyuru isteğe bağlıdır ve kanal açılırken announce_channel bitiyle belirlenir. Etkinse, fonlama işlemi yeterince derinleştiğinde eşler announcement_signatures (tür 259) alışverişinde bulunur ve ardından iki taraftan biri sonucu yayımlayabilir. Bir splice yeni işlem için taze bir duyuru üretir, bu yüzden düğümler bir fonlama çıktısı harcandıktan sonra kanalı unutmadan önce 72 blok bekler: harcama bir kapanış değil, boyut değişikliği olabilir.
Nerede görürsünüz
Bir Lightning gezgini ağ grafiğini çizerken kanal duyurularını okur.
Her kanalın yanında yazılan tanımlayıcı doğrudan mesajdan gelir. 539268x845x1 olarak yazılan bir short_channel_id, 539268 numaralı blokta 845 dizinindeki işlemin 1 numaralı çıktısı anlamına gelir, böylece herkes o çıktıyı zincirde kontrol edebilir. Duyuru bir listeye benzeyen hiçbir şey taşımaz: ne ücret, ne kapasite, ne de işletmeci adı. En az bir taraf ücretleri ve sona erme deltasıyla bir channel_update gönderene kadar kanal kullanılamaz ve düğüm adı ayrı olarak bir node_announcement içinde gelir.
Bu ayrım, kanalların hâlâ var oldukları halde gezginlerden neden kaybolduğunu açıklar. Her iki yöndeki en yeni channel_update iki haftadan daha eskiyse (1209600 saniye), bir düğüm kanalı kendi görünümünden budayabilir. Bir duyuru asla kendiliğinden yenilenmez, bu yüzden bir kanal haritada yalnızca bir işletmeci koşullarını yeniden imzalamayı sürdürdüğü sürece kalır.
Cüzdan tarafında kanal duyurularına çoğunlukla yokluklarıyla tanık olursunuz. Bir kanalın duyurulması yalnızca yabancıların ödemelerini onun üzerinden yönlendirmesini istiyorsanız gerekir ve bir telefon cüzdanı bir sıçrama noktası olmak için değil, harcamak ve almak için vardır. Bu yüzden Phoenix ve Muun incelemelerimizdeki pratik sorular, genel grafikteki bir konum değil, yayımlanan ücret tablosu ve yedekleme dosyasıdır.
Kanal duyurusu vs kanal kapasitesi
Bir kanal duyurusu bir kanalın var olduğunu kanıtlar, kanal kapasitesi ise içindeki satoshi sayısıdır ve mesaj hiçbir miktar belirtmez. Alanları dört imza, bir özellik vektörü, bir zincir karma değeri, kısa kanal kimliği ve dört genel anahtardır. Bir kapasite rakamı aktaran herkes, duyuruyu zincir verileriyle birleştirmiş ve tanımlayıcının işaret ettiği çıktının değerini okumuştur. Bu yüzden duyurulmamış bir kanalın kapasitesi vardır ama genel bir rakamı yoktur: ağa hangi çıktının okunacağını söyleyen hiçbir şey yoktur.