İçeriğe geçin
buybitcoinsmart

Sözlük / Lightning ve katman 2

Özellik biti

Özellik biti nedir?
Özellik biti, diğer Lightning düğümlerine düğümünüzün belirli bir protokol uzantısını desteklediğini bildirir; tek numaralar bunu isteğe bağlı, çift numaralar ise zorunlu olarak işaretler.

Lightning, eşlerin karşılaştırabileceği bir sürüm numarası taşımaz; bu yüzden iki düğüm bağlandıkları anda bir bit alanı takas ederek birlikte neler yapabileceklerini belirler. BOLT 9, bit 0 ile bit 67 arasında uzanan 25 adlandırılmış çifti atar ve kimse tek bir çiftin iki bitini birlikte ayarlayamaz. Cüzdanınız başka bir cüzdanın ödediği bir faturayı reddediyorsa, eksik bir özellik biti kontrol edilecek şeylerden biridir.

Nasıl çalışır

Özellik bitleri bir bit alanının en düşük anlamlı bitinden başlanarak sayılır; başlangıç bit 0, değeri 0x1'dir ve çift olarak sayılır.

Çiftler halinde dağıtılırlar ve işin bütün püf noktası bu eşlemedir: tek bit düğümün özelliği desteklediğini, çift bit ise gerektirdiğini anlatır. Böylece bir yetenek isteğe bağlı olarak yayına girebilir, sessizce yayılabilir ve sonra zorunlu hâle yükseltilebilir; BOLT 9 güncel olmayan düğümlerin bunu reddedeceğini söyler, yani uyumsuzluk ödeme ortasında değil, iki düğüm karşılaştığında ortaya çıkar. Gereklilikler gerisini açıkça söyler: kaynak düğüm bir çiftin iki bitini birlikte ayarlamamalıdır ve buna rağmen iki biti de ayarlanmış gören alıcı düğüm, özelliği zorunlu sayar.

Bazı özellikler başkalarına dayanır ve gönderen bütün zinciri taşır. Temel çok parçalı ödemeler bit 16 ve 17 üzerindedir ve payment_secret özelliğine bağlıdır; zeroconf kanallar 50 ve 51 üzerindedir ve option_scid_alias özelliğine bağlıdır; 66 ve 67 üzerindeki option_onion_messages_only_channels ise sıradan onion mesajlarına bağlıdır. Kaynak düğüm her geçişli bağımlılığı ayarlamak zorundadır; böylece tek bir özellik kapısının arkasındaki kod, destekleyici bitleri yeniden doğrulamak yerine var sayabilir.

25 çiftin beşi artık yalnızca ASSUMED olarak okunur: 0/1, 8/9, 12/13, 14/15 ve 44/45. Her biri o kadar yaygınlaştı ki her düğümde var olduğu varsayılır ve anlamı yalnızca şartnamenin önceki revizyonlarında yaşar. Tablo numaraları da atlar; 2/3, 20/21, 30/31, 32/33, 52 ile 59 arasında veya 64/65 için hiçbir şey atanmamıştır, yani boşluklar olağandır.

Nerede görülür

Özellik bitleri birkaç ayrı yerde dolaşır ve BOLT 9 tablosunun Context sütunu her çiftin bunlardan hangisine ait olduğunu adlandırır; 25 satırın altısında bu alan boştur.

I, iki eşin bağlanırken karşılıklı gönderdiği init mesajını; N, dedikodu grafiğine yayınlanan bir node_announcement mesajını; C, bir channel_announcement mesajını; 9, bir BOLT 11 faturasını; B, kör bir yolun allowed_features alanını; T ise bir kanal açılırken üzerinde anlaşılan channel_type alanını işaretler. Birçok bit yalnızca tek bir bağlamda görünür: option_payment_metadata, bit 48 ve 49, yalnızca faturada bulunur; 22 ve 23 üzerindeki option_anchors ise init mesajında, dedikoduda ve kanal türü olarak görünür ama faturada hiç görünmez.

İki bağlam çeliştiğinde fatura kazanır: BOLT 9'un gerekçesi, hem node_announcement hem de BOLT 11 içinde taşınan bayraklar için faturadaki değerlerin duyurulan değerlerin yerine geçtiğini belirtir. Bu yüzden bir cüzdan yetenekleri, hedefin saatler önce dedikodu ağına duyurduğundan değil, yapıştırdığınız faturadan okur.

ACINQ tarafından Eclair uygulaması üzerine geliştirilen Phoenix, telefonunuzda gerçek bir düğüm çalıştırır; yani çok parçalı bir ödemeyi ya da kör bir rotayı kabul edip etmediğine, bir tanıtım sayfası değil, eşiyle takas ettiği bit alanı karar verir. Muun, zincir üstü ve Lightning bakiyesini tek bakiyede gösterir ve Lightning ödemeleri yine faturadaki bitlere dayanır.

Özellik biti vs sürüm biti

Bir özellik biti iki Lightning eşi arasında yeteneği müzakere eder; bir sürüm biti ise bir Bitcoin blok başlığında yumuşak çatallanmayı (soft fork) bildirir. BIP-9 madencilere başlığın sürüm alanının 0 ile 28 arasındaki bitlerini verir ve mainnet üzerinde 2.016 blokluk bir pencerenin 1.916 değerinde bir dağıtımı kilitler; ardından gelen her blok için etkin olur. Bir özellik biti kimseyi bağlamaz: iki eş arasında bir iddiadır, bir bağlantıda doğru, sonrakinde yanlıştır; eşik yoktur, zaman aşımı yoktur ve ağ çapında etkinleşme yoktur. Lightning bir çift düğümün birbirleri için ne yapacağını müzakere eder; Bitcoin ise herkesin neyi kabul etmesi gerektiğine karar verir.

Karıştırılmaması gerekenler

Sık sorulan sorular

Lightning özellik bitleri neden çiftler halinde atanır?

Bir özellik isteğe bağlı başlayıp sonradan zorunlu hâle getirilebilsin diye. Bir çiftin tek biti düğümün özelliği desteklediğini, çift biti ise gerektirdiğini söyler ve BOLT 9, zorunlu bir çift bitin güncel olmayan düğümlerce reddedileceğini belirtir; böylece uyumsuzluk ödeme ortasında değil, iki düğüm bağlandığında ortaya çıkar.

Ödememin ihtiyaç duyduğu bir özellik bitini karşı taraf desteklemiyorsa ne olur?

Ödeme başarısız olur ve paranız olduğu yerde kalır. Özellik müzakeresi herhangi bir şey taahhüt edilmeden önce yapılır; bu yüzden desteklenmeyen bir yetenek takılı kalmış bir bakiye olarak değil, reddedilmiş bir bağlantı ya da cüzdanınızın denemeyeceği bir rota olarak kendini gösterir.

ASSUMED olarak işaretlenmiş bir özellik bitini ayarlamam gerekiyor mu?

Hayır. BOLT 9, bit 0/1, 8/9, 12/13, 14/15 ve 44/45 üzerindeki beş çifti ASSUMED olarak işaretler, çünkü bu özellikler o kadar yaygınlaştı ki her düğümde var oldukları kabul edilir ve bayraklar güvenle yok sayılabilir.

Sıradaki okuma

İlgili terimler

Daha fazlası: Lightning ve katman 2

Bu sayfayı İngilizce okuyun