Kripto Para Al
Piyasa
Spot
Vadeli
Finansal
Etkinlik
Dahası
reward-centerYeni Başlayanlar
Rapor AnaliziAyrıntılar
Endüstri Araştırmaları

Yıldırım Ağı'nda Yenileme Süresi Saldırısı

CoinEx logo
2023-12-25 tarihinde yayınlandı

Bitcoin Lightning Network, Bitcoin blok zincirinin ölçeklenebilirlik zorluklarını ele almayı amaçlayan bir katman-2 ölçeklendirme çözümüdür. Anlık ve düşük maliyetli Bitcoin işlemlerini mümkün kılarak, kullanıcılar için daha verimli ve erişilebilir hale getirir. Bitcoin üzerindeki zincir üstü işlemlere kıyasla, Lightning Network üzerindeki işlemler özeldir, zincir dışında gerçekleşir ve yalnızca genel sonuç kaydedilir.

Lightning Network'ün ana avantajlarından biri hızı ve uygun maliyetidir. Kullanıcıların Bitcoin ağı üzerinden basit ve uygun maliyetli bir şekilde küçük ödemeler göndermesini ve almasını sağlar. Kullanıcılar arasında bir ödeme kanalları ağı oluşturarak, Lightning Network her işlemi blok zincirine yayınlamadan işlemleri mümkün kılar. Bu, Bitcoin blok zincirindeki tıkanıklığı azaltır ve işlemlerin ölçeklenebilirliğini artırır.

Ancak, Lightning Network'ün hala geliştirilme aşamasında olduğunu ve belirli güvenlik ve merkezileşme riskleriyle karşı karşıya olduğunu belirtmek gerekir. Bu yılın Ekim ayında, Lightning Network'te "değiştirme döngüsü saldırısı" adı verilen yeni bir güvenlik açığı keşfedildi. Bu saldırı, İşlem Değiştirme Mekanizmasını içerir ve Lightning Network'teki kanal fonlarının kaybına yol açabilir. Bu saldırı yönteminin ortaya çıkması, Lightning Network'ün güvenliği konusunda endişelere yol açmış ve protokollerinin ve uygulamalarının daha fazla araştırılmasını ve iyileştirilmesini teşvik etmiştir.

Lightning Network Mekanizması

Bitcoin Lightning Network, ödeme kanallarının güvenliğini sağlamak için Çoklu İmza mekanizmasından yararlanır. Katılımcıların fonları kilitlemesi ve ödeme kanalları kurması gerekir. Katılımcılar, kanal içinde hızlı, düşük maliyetli ödemeler yapabilirler ve her seferinde işlemleri Bitcoin blok zincirine göndermek zorunda kalmazlar. Ödeme kanalı, Bitcoin blok zinciri dışındaki katılımcılar arasındaki bir ilişkidir ve bu, tüm Bitcoin ağının konsensüsünü içermeden yalnızca kanalın iki ucu arasında yayılan bir dizi işlem imzalanarak gerçekleştirilir.

Özel sürece gelince, bir ödeme kanalı açarken, katılımcıların kanaldaki her tarafın kendi açık anahtarını sağlamasını gerektiren bir çoklu imza betiği oluşturmaları gerekir. Aynı zamanda gereken imza sayısını da belirtirler, örneğin, birden fazla açık anahtar ve imza doğrulama mantığı içeren bir betik tanımlarlar. Çoklu imza adresi oluşturulurken, bu betik bir Bitcoin adresine dönüştürülecek ve ödeme kanalının altyapısını oluşturacaktır.

Örneğin, Şekil 1'de gösterildiği gibi, Bob ve Alice öncelikle ortak bir fon olarak zincir üzerinde 2/2 çoklu imzalı bir Bitcoin adresi oluştururlar. Kanal içinde, fon tahsisinin mevcut durumunu kaydetmek için sınırsız sayıda zincir dışı taahhüt işlemi gerçekleştirebilirler. İki taraf, bu güncellemeleri tüm Bitcoin ağına yayınlamadan, kanalın durumunu güncellemek için yeni taahhüt işlemleri üzerinde müzakere edebilir ve imzalayabilir. Kanalı kapatmaya karar verdiklerinde, son zincir üzerindeki uzlaşma işlemi, fonları son müzakere edilen tahsisata göre dağıtacaktır. Bu uzlaşma işlemi, hem Bob hem de Alice'in ortak imzalarını gerektirir, böylece fonların son olarak anlaşılan şekilde tahsis edilmesini sağlar. Bu şekilde, Lightning Ağı Bitcoin işlemlerinin verimliliğini artırır, maliyetleri düşürür ve aynı zamanda merkeziyetsiz özelliklerini korur.

Şekil 1: Durum Kanalı Diyagramı

State Channel Diagram

Kaynak: https://cypherpunks-core.github.io/bitcoinbook/images/mbc2_1204.png

HTLC Mekanizması

Bitcoin Lightning Ağı ayrıca, yönlendirilebilir, çok atlamalı bir ödeme kanalı sistemi uygulamak için Hashlı Zaman Kilitli Sözleşmeler (HTLC'ler) tabanlı ödeme kanallarını benimser. Uygulamada, HTLC'ler hash koşulunu ve zaman kilidi koşulunu karşılamak için bir betik dilinde tanımlanmış karmaşık bir işlem betiği gerektirir. Bu betik, ödeme kanalını açarken başlatma için kullanılacak ve ödeme sırasında tetiklenecektir. Bu şekilde, Bitcoin Lightning Ağı, zincirler arası ödemeler için verimlilik ve güvenlik sağlar.

HTLC (Hashed Timelock Contract), blok zincirinde çapraz zincir işlemlerinin uygulanması için önemli bileşenlerden biri olan Kriptografik Zamanlı Kilit Sözleşmesidir. HTLC'nin iki yaygın uygulaması vardır: çapraz zincir atomik takaslar ve Yıldırım Ağı'ndaki ödeme kanalları. HTLC bir transferi kilitleyebilir ve belirli bir süre içinde özel bilgilerin sağlanması gibi kilit açma koşulları belirleyebilir. Bu, fonların yalnızca koşullar karşılandığında alıcı tarafından çekilebilmesini sağlar.

Teknik olarak, bir HTLC, benzersiz bir çıktı komut dosyasına sahip bir Taahhüt İşleminde ek bir çıktıdır. Bu, fonları kilitlemek için kullanılan OP_HASH160, OP_EQUALVERIFY vb. gibi işlemler içeren bir Komut Dosyası betiğidir, böylece yalnızca önceden belirlenmiş R değerini sağlayarak kilit açılabilir. Bu betiğin iki olası yolu vardır. İlk yol (OP IF'de tanımlanmıştır) Bob'un R'yi sağlayabilmesi durumunda fonları Bob'a gönderir. İkinci yol, ödeme işleminde nLockTime kullanarak bir zaman kilidi uygulamak ve kilit süresi dolduktan sonra Alice'e geri ödeme yapılmasına izin vermektir.

OP_IF

OP_HASH160 <Hash160 (R)> OP_EQUALVERIFY

2 <Alice2> <Bob2> OP_CHECKMULTISIG

OP_ELSE

2 <Alice1> <Bob1> OP_CHECKMULTISIG

OP_ENDIF

Yönlendirme Örneği

Yıldırım Ağı'nda, Alice, Eric'e 1 bitcoin ödemek istiyor, ancak Alice ve Eric arasında doğrudan bir ödeme kanalı yok. Bu yüzden Alice, ödemeyi ödeme kanalı ağındaki ara düğümler (Bob, Carol, Diana) üzerinden yönlendirerek güvenli bir ödeme yolu oluşturur ve dolaylı olarak Eric'e 1 bitcoin ödeyebilir. Ödeme yönlendirmesi HTLC'leri kullanır - yalnızca belirli bir zaman aralığında doğru "sırrı" sağlayarak fonların kilidi açılabilir, bu da ödeme güvenliğini sağlar.

Bu örnekte, 1. Adımda Eric bir Sır R (çözüm) oluşturur ve hash değeri H'yi (bulmaca) hesaplar, ardından hash değeri H'yi Alice'e verir.

Adım 2-5: Alice, Bob, Carol, Diana ve Eric her biri çiftler halinde HTLC'ler oluşturur ve belirli bir süre içinde R'yi (çözümü) sağlayarak yukarı akış tarafından kilitli fonları almayı gerektirir.

Adım 6-9: Eric, 1 BTC almak için Diana'ya R'yi (çözümü) sağlar. Diana daha sonra R ile Carol'dan BTC'yi alır ve R bu şekilde geriye doğru iletilir, ta ki Alice'in 1.003 BTC'si (0.003 BTC'si aracı düğümler için hizmet ücretidir) geri alınana kadar.

Bu örnekte, eğer Adım 6'da Eric sabit süre içinde R'yi (çözümü) sağlamazsa, süre dolduktan sonra, Adım 2-5'te kilitlenen fonlar doğrudan kilidi açılacak ve geri dönecektir.

Şekil 2: Yönlendirme Örneği

Routing Example

Kaynak: https://cypherpunks-core.github.io/bitcoinbook/images/mbc2_1210.png

Değiştirme döngüsü saldırısı

Bitcoin'in işlem değiştirme mekanizması, bir işlem değiştirilebilir olarak işaretlendiğinde, bir blokta onaylanmadan önce ağda daha yüksek ücretli başka bir işlemle değiştirilebilmesini ifade eder. Eğer bir işlem daha yüksek mutlak ücret ve daha yüksek ücret oranı öderse, doğrudan çakışan bekleyen onaylanmamış işlemlerin yerini alabilir. Değiştirme işlemini aldıktan sonra, düğümler orijinal düşük ücret oranlı işlemi mempool'dan kaldıracak ve sadece değiştirme işlemini tutacaktır. İşlem değiştirme mekanizması, işlem onaylanmadan önce işlem ücretlerinin veya diğer parametrelerin ayarlanmasına olanak tanır. Ancak bu mekanizma, işlem hizmet reddi saldırılarını uygulamak için de kullanılabilir, örneğin kritik bir işlemi tekrar tekrar değiştirerek onaylanmasının başarısız olmasına neden olabilir. Bu nedenle, işlem değiştirme mekanizması işlemlerin ayarlanması için kolaylık sağlarken, aynı zamanda kötüye kullanım riskleri de barındırır.

Bitcoin Core geliştiricisi Antoine Riard'ın e-postasına göre, değiştirme döngüsü saldırısı esas olarak Bitcoin Lightning Ağı'ndaki ödeme kanallarını içermektedir. Saldırgan, dürüst düğümün HTLC-zaman aşımı işlemini değiştirmek için daha yüksek bir mutlak ücret ve ücret oranına sahip bir HTLC-ön görüntü işlemi yayınlar. Değiştirme sırasında, saldırgan değiştirme işleminin ağ tarafından başarıyla kabul edilmesini sağlamak için ek girişler veya çıkışlar ekleyebilir. Bu saldırı yöntemi, ödeme kanallarındaki fonların çift harcanmasına neden olabilir, yani dürüst düğüm HTLC-zaman aşımı işlemini yayınladıktan sonra, saldırgan değiştirme yoluyla fonları başarıyla geri alabilir. Bunu açıklamak için basit bir örnek verebiliriz. Önceki örneğe benzer şekilde, yolun yalnızca Alice, Bob ve Eric'ten oluştuğunu ve Alice ile Eric'in Bob'un BTC'sini çalmak için işbirliği yaptığını varsayalım.

Adım 1: Alice, Bob aracılığıyla Eric'e 1 BTC ödemeyi amaçlamaktadır. Alice\Bob ve Bob\Eric her biri bir HTLC oluşturur. Eric, 1020. bloktan önce (mevcut yüksekliğin 1000 olduğunu varsayalım) Bob'a R (çözüm) sağlamalıdır, aksi takdirde Bob kilitli 1 BTC'yi geri alabilir; benzer şekilde, Bob 1080. bloktan önce Alice'e yanıt vermelidir, aksi takdirde Alice 1 BTC'sini geri alabilir.

Adım 2: Eric, 1020. bloktan önce Bob'a R (çözüm) sağlamadı. Bob, HTLC-zaman aşımı içeren bir işlem yayınlayacaktır. Bu işlemdeki fonlar Bob'a iade edilecektir.

Adım 3: Eric, Bob'un HTLC-zaman aşımı işlemini izler ve bunu daha yüksek bir ücret oranına sahip bir HTLC-ön görüntü işlemiyle değiştirir. Ardından Eric, önceki HTLC-ön görüntüyü mempool'dan çıkarmak için başka bir işlem başlatır.

Adım 4: Bob'un düğümü, 1080. bloğa kadar HTLC-zaman aşımı işlemini yeniden yayınlayacaktır. Eric her seferinde değiştirme başlatabilir. 1080. bloğa kadar, diğer kanal tarafı Alice'in işlemi onaylanır ve Alice kilitli BTC'yi geri alır.

Adım 5: Eric'in HTLC-ön görüntüsü onaylanır, böylece Bob tarafından kilitlenen 1 BTC Eric'e aktarılır.

Böylece, Bob'un 1 BTC'si Eric'e aktarılırken, Alice'ten alması gereken BTC'yi de alamadı.

Özet

Kasım 2023 itibariyle, Lightning Network'ün 16.000'den fazla Lightning düğümü ve 5.000 BTC'si bulunmaktadır. Her ne kadar gerçek değiştirme döngüsü saldırı vakaları doğrulanmamış olsa da, bu durum Lightning Network için sürekli güvenlik araştırması ve iyileştirmelerinin gerekliliğini vurgulamaktadır. Antoine Riard ayrıca, değiştirme döngüsü saldırılarından kaçınmak veya bunları azaltmak için yerel mempool ve iletilen işlemleri izleme, madenciler ve Lightning düğümleri arasında üst katman ağları oluşturma ve saldırgan maliyetlerini artırmak için HTLC zaman aşımı işlemlerini aktif olarak yeniden oynatma gibi çeşitli önlemler önerdi. Ancak aynı zamanda, protokol düzeyindeki güvenlik açıklarına yönelik çözümlerin koordinasyonu da dahil olmak üzere Lightning Network'e katılımını ve uygulama çalışmalarını durdurduğunu duyurdu.

Lightning Network büyüdükçe, değiştirme döngüsü saldırılarının potansiyel tehdidi gelişim yolunda bir engel haline gelebilir ve topluluğu güvenlik araştırma ve iyileştirmelerine daha fazla odaklanmaya zorlayabilir. Bununla birlikte, güvenlik sorunlarını ciddiye alarak ve iyileştirerek, gelecekte Lightning Network'ün potansiyel riskleri kademeli olarak çözdüğüne, daha sağlıklı ve güvenilir bir ekosisteme ulaştığına tanık olabiliriz.

CoinEx Hakkında

2017 yılında kurulan CoinEx, alım satımı kolaylaştırmayı amaçlayan global bir kripto para borsasıdır. Platform, 200'den fazla ülke ve bölgede 5 milyondan fazla kullanıcıya spot ve marjin ticareti, vadeli işlemler, swaplar, piyasa yapıcı hesap (AMM) ve finansal yönetim hizmetleri dahil olmak üzere çeşitli hizmetler sunmaktadır. Kuruluşundan bu yana CoinEx, "kullanıcı odaklı" hizmet ilkesine kararlılıkla bağlı kalmıştır. Adil, saygılı ve güvenli bir kripto alım satım ortamı yaratma samimi niyetiyle CoinEx, kullanımı kolay ürün ve hizmetler sunarak kullanıcıların kripto para dünyasına zahmetsizce erişmelerini sağlar.

Kaynaklar

https://cypherpunks-core.github.io/bitcoinbook/

https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-October/022032.html

https://lightning.network/lightning-network-paper.pdf

https://github.com/ariard/mempool-research/blob/2023-10-replacement-paper/replacement-cycling.pdf