İçeriğe geçin
buybitcoinsmart

Sözlük / Lightning ve katman 2

İptal anahtarı

İptal anahtarı nedir?
İptal anahtarı, bir Lightning commitment işleminin gecikmeli çıktılarını ve HTLC çıktılarını kilitleyen körlenmiş genel anahtardır; o durumu geçersiz kılan sırrı açık ettiğiniz anda kanal ortağınız bu çıktıları harcayabilir.

Her Lightning commitment işlemi, taraflardan biri commitment başına bir sır açıklamadıkça kimsenin imzalayamayacağı bir iptal dalı taşır. BOLT 3 bu sırları 281.474.976.710.655 değerinden aşağı doğru numaralandırır ve alıcı her birini 49 yuvalı bir dizide tutabilir. Zaten iptal ettiğiniz bir durumu yayımlamak, eşinizin kanal bakiyesinin tamamını almasına izin verir, bu yüzden bir kurtarma ifadesi Lightning'i yedekleyemez.

Nasıl çalışır

Bir iptal anahtarı, bir kanalın iki tarafından hiçbirinin özel yarısını tek başına hesaplayamayacağı şekilde bilerek kurulur.

Düğümünüz eşiniz için yeni bir commitment hazırladığında kendi revocation_basepoint değerini ve eşinizin per_commitment_point değerini alır, ikisini de bu nokta başta olacak şekilde birleştirilen çiftin SHA256 değeriyle çarpar ve sonuçları toplar. BOLT 3 bu özelliği tek satırda belirtir: kurulum, ne basepoint sağlayan düğümün ne de noktayı sağlayan düğümün, diğer düğümün sırrı olmadan özel anahtarı bilebilmesini garanti eder. İkinci yarı gelene kadar özel anahtar hiçbir yerde var olmaz.

Bu geliş bir mesajdır. Eşiniz yeni commitment üzerindeki imzanızı kontrol ettikten sonra, az önce kullanımdan kaldırdığı durum için 32 baytlık bir per_commitment_secret ile bir sonraki durumunun noktasını taşıyan revoke_and_ack mesajıyla, mesaj türü 133, yanıt verir. O andan itibaren eski durum için revocationprivkey değerini hesaplayabilirsiniz ve eşiniz bunu geri alamaz.

Anahtar iki tür çıktıda görünür. Bir to_local çıktısı, tanık betiği OP_IF, revocationpubkey, OP_ELSE, to_self_delay, OP_CHECKSEQUENCEVERIFY, OP_DROP, local_delayedpubkey, OP_ENDIF, OP_CHECKSIG olan bir P2WSH çıktısıdır: sahibi to_self_delay blok boyunca beklemek zorundadır, iptal anahtarını elinde tutan kişi ise bir imza ve bir 1 değerinden oluşan tanık yığınıyla hemen harcar. Her HTLC çıktısı, aynı anahtarın RIPEMD160 ile SHA256 üzerinden 20 bayta indirgenmiş halini taşır ve BOLT 5, cezalandıran düğümün hile yapan tarafın HTLC-success ve HTLC-timeout işlemlerini de o anahtarla süpürmesini şart koşar.

Tasarımın zekice hale geldiği yer saklamadır. Bir kanal, her durum için bir tane olmak üzere 281.474.976.710.655 commitment başına sırrı tüketebilir; hepsi tek bir tahmin edilemez 256 bitlik tohumdan bitler çevrilerek ve hash alınarak üretilir, indeks ise yukarı değil aşağı doğru sayar. İndeksi sonunda sıfırlarla biten bir sırdan, o noktadan bir sonraki ikinin kuvveti sınırına kadar her sır türetildiği için, alıcı düğüm yalnızca 49 değer ve indeks çifti tutar, gerisini gerektiğinde yeniden kurar. BOLT 3 ayrıca alıcının her yeni gelen sırdan yola çıkarak önceki sırlarını bir kontrol olarak yeniden türetmesini ister, böylece tohumunu sessizce değiştiren bir eş, kapanış anında değil, hemen yakalanır.

Bitcoin satın alırken bu neden önemli

İptal anahtarları, bir Lightning bakiyesinin bir borsanın size gönderdiği zincir üstü bitcoinlere hiç benzememesinin nedenidir.

Bu sitede incelenen 41 cüzdandan sizi Lightning'e sokanlar durum sorununu gözle görülür biçimde farklı ele alır ve bu ayrım puanlarını açıklar. Phoenix, BIP84 yolu üzerinde standart bir BIP39 kurtarma ifadesinin arkasında, telefonda gerçek anlamda kendi kendine yeten bir düğüm çalıştırır ve incelememiz, kurtarma ifadesinin kanal değil zincir üstü yedek olduğunu açıkça belirtir: ACINQ ortadan kalkarsa kanalı zorla kapatırsınız, yaklaşık 720 blok, yani yaklaşık beş gün beklersiniz ve zincir üstünde Electrum ile kurtarırsınız. Muun kelime listesini tamamen reddeder ve size her iki multisig anahtarını ve çıktı tanımlayıcılarını içeren bir Emergency Kit dosyası verir; yayımlanmış gerekçesi şudur: bir mnemonic anahtarları yedekler, oysa bitcoinleri cüzdanın da bilgilendirilmesi gereken betiklerde yaşar. Wallet of Satoshi cüzdanının varsayılan saklamalı modu, sizi işin içinden çıkararak sorunu ortadan kaldırır: şirket her sırrı tutar, bu yüzden burada dikkat durumu ve 2,7 puanı taşır ve bu yüzden 23 Kasım 2023 tarihinde ABD'li müşterilere hizmet vermeyi bırakabilmiş ve 2026'ya girerken hizmeti Avrupa Birliği genelinde geri çekebilmiş, AB'deki sahiplere bunun yerine kendi kendine saklama modunu bırakmıştır. BlueWallet zincir üstünde kendi kendine saklama sunar ve bu yüzden 4,2 puanı almıştır, oysa oradaki bir Lightning bakiyesi, zincir üstü kurtarma ifadenizin kapsamadığı bir LNDHub hesabında durur.

Protokol size bir güvenlik ağı sunar ve bunu tam olarak bilmekte fayda var. Eski bir durumla yeniden bağlanırsanız channel_reestablish bunu ortaya çıkarır: eşinizin mesajı beklediğinizden yüksek bir iptal numarası belirtir ve gönderdiğiniz son commitment başına sırrı geri taşır, bu da iddianın dürüst olduğunu kanıtlar. BOLT 2 o zaman kendi commitment işleminizi yayımlamamanız ve bunun yerine eşinizden kanalı başarısız saymasını isteyen bir hata göndermeniz gerektiğini söyler. Bu, dürüst yazılımın uyduğu bir kuraldır, konsensüs garantisi değildir ve sizi yalnızca eski durumu kendiniz yayımlamaktan kaçındığınız sürece korur. BOLT 5 ilgili ödevi açıkça ortaya koyar: bir düğüm, commitment başına sırrını zaten açığa çıkardığı bir commitment işlemini yayımlamamalıdır.

Pratikte risk, alıcı cüzdanınızın içinde yaşar, başka hiçbir yerde değil. Bu sitede izlenen 63 borsadan herhangi birinde satın almak ve Lightning ile para çekmek sizi buna maruz bırakmaz, çünkü borsanın kanalları borsanın sorunudur. Maruziyetiniz, bitcoinler düğümü sizin çalıştırmanız gereken bir yere indiği anda başlar.

BOLT 3 test vektörü, anahtar anahtar

BOLT 3 ek bölümünde işlenmiş bir türetme sunar ve bunu okumak, bir iptal anahtarının iki yarısının da kritik olduğunu görmenin en hızlı yoludur.

036d6caac248af96f6afa7f904f550253a0f3ef3f5aa2fe6838a95b216691468e2 değerinde bir revocation_basepoint ve 025f7117a78150fe2ef97db7cfc83bd57b2e2c0d0dd25eaf467a4a1c2a45ce1486 değerinde bir per_commitment_point ile başlayın. Basepoint önce yazılarak hash alındığında efbf7ba5a074276701798376950a64a90f698997cce0dff4d24a6d2785d20963, nokta önce yazılarak hash alındığında cbcdd70fcfad15ea8e9e5c5a12365cf00912504f08ce01593689dd426bca9ff0 elde edilir. Her noktayı kendisiyle başlayan hash ile çarpın, iki sonucu toplayın ve revocationpubkey ortaya çıkar: 02916e326636d19c33f13e8c0c3a03dd157f332f3e99c317c141dd865eb01f8ff0.

Bu genel anahtarla ilgili hiçbir şey özel anahtarı sızdırmaz. Özel anahtar ancak eş, eşleşen per_commitment_secret değerini açıkladığında ortaya çıkar: 1f1e1d1c1b1a191817161514131211100f0e0d0c0b0a09080706050403020100; o anda aynı iki hash bu sırla ve basepoint sırrıyla birleşerek revocationprivkey değerini verir: d09ffff62ddb2297ab000cc85bcb4283fdeb6aa052affbc9dddcf33b61078110. Bir kanal güncellemesi, bir açıklama ve az önce sadece süs olan bir genel anahtar, çıktının tamamı üzerinde bir talebe dönüşür.

İptal anahtarı vs kurtarma ifadesi

Bir iptal anahtarı da bir kurtarma ifadesi de paranızın bağlı olduğu sırlardır ve yalnızca biri kâğıda yazılabilir.

Bir kurtarma ifadesi statiktir. On iki veya yirmi dört kelime, cüzdanın sonsuza dek türeteceği her anahtarı sabitler, ek kopyalar sizi daha güvende yapar ve eski bir kopya yeni bir kopya kadar iyidir. İptal sırları bu üç özelliğin tamamını tersine çevirir. Her kanal güncellemesinde, revoke_and_ack içinde, karşı taraftan birer tane gelirler; önemli olan kopyalar eşinizin açıklamalarıdır ve bunları kendi kurtarma ifadeniz yeniden üretemez; ve kanal durumunun eski bir kopyası yedek değil bir yüktür, çünkü ona göre hareket etmek hile yapmaktan ayırt edilemez. 49 yuvalı saklama şeması tam da bu sırların yazıya geçirilemeyecek kadar sık değişmesi yüzünden vardır.

Pratik sonucu, her Lightning cüzdanının tekrarladığı uyarıdır. Bir Lightning cüzdanını yalnızca kelimelerden geri yükleyip harcamaya başlarsanız, zaten iptal ettiğiniz bir durumu yeniden yayımlamış olursunuz; bu, BOLT 5'in kesinlikle yasakladığı tek şey ve kanal ortağınızın iptal anahtarının beklediği tek şeydir.

Karıştırılmaması gerekenler

Sık sorulan sorular

Kurtarma ifadem Lightning kanallarımı yedekler mi?

Hayır, bir kurtarma ifadesi anahtarları ve adresleri geri yükler, ancak kanal ortağınızın size gönderdiği commitment başına sırları geri yüklemez; BOLT 3, alıcı düğümün bunları geldikleri anda saklamasını öngörür, bu yüzden yalnızca kelimelerden geri yüklenen bir cüzdan her kanal için güncel olmayan bir görünüm taşır. Muun bu karışıklığı, kelime listesi yerine hem anahtarları hem de çıktı tanımlayıcılarını içeren bir Emergency Kit dosyasını yedekleyerek aşar.

Yanlışlıkla eski bir Lightning kanal durumunu yayınlarsam ne olur?

Kanal ortağınız kanalın tüm bakiyesini alabilir, çünkü o durum kullanımdan kaldırıldığında ona verdiğiniz commitment başına sır, her çıktının iptal dalını tek seferde imzalamasına olanak tanır ve beklenecek bir bekleme süresi yoktur.

Hiçbir yanlış yapmadıysam kanal ortağım iptal anahtarını bana karşı kullanabilir mi?

Hayır, çünkü mevcut durumunuz için iptal özel anahtarı henüz mevcut değildir. Her commitment için açıklamadığınız bir sır gerektirir ve BOLT 3 anahtarı her iki tarafın katkıda bulunduğu malzemeden oluşturur, böylece hiçbiri onu tek başına türetemez.

Sıradaki okuma

İlgili terimler

Daha fazlası: Lightning ve katman 2

Bu sayfayı İngilizce okuyun