Yazar: Ayelet Mizrah ve İbrani Üniversitesi profesörü Aviv Zohar
Yeni bir makalede, ödeme kanalı ağında güvensiz çoklu atlama ödemeleri oluşturma sürecinde temel bir boşluktan bahsettik. İki saldırı yöntemi öneriyoruz: Birincisi, mümkün olduğunca çok sayıda yüksek likiditeli kanalı uzun süre kilitlemeyi, ikincisi ise hub'ları ağın geri kalanından izole etmeyi amaçlıyor. Bu yazımızda, Lightning Network'e yönelik bu saldırıların değerlendirilmesine yer verdik. Ağın özelliklerini ve farklı parametrelerini ayarlamak için Lightning Network'ün üç ana uygulamasını inceleyeceğiz ve Lightning geliştiricileri tarafından kabul edilen varsayılan parametrelerdeki en son değişikliklerin saldırının uygulanmasını nasıl kolaylaştırabileceğini göstereceğiz. Sonuçlarımız, Lightning Network'ün likiditesinin çoğunu kilitlemek için 0,5'ten daha az bitcoin kullanarak, bunun Lightning Network'ü bozabileceğini gösteriyor.
Ödeme kanalı ağı, blok zincirinin ölçeklenebilirlik problemini çözmek için ikinci seviye bir zincir dışı çözümdür. Bitcoin'in ağının ikinci katmanı olan Lightning Network, şu anda toplam kapasitesi yaklaşık 880 BTC (yaklaşık 9.000.000 ABD Doları) olan 11.000'den fazla düğüm ve 35.000 kanala sahip.
Araştırdığımız saldırının temel konsepti, Ağustos 2015'e kadar uzanan Lightning-dev listesindeki ilgili içerikte ve Mayıs 2017'de bahsedilen BOLT'taki bir git sayısında bahsediliyor. Bu saldırının sonuçları hiçbir zaman tam olarak değerlendirilmedi, ancak maliyeti çok düşük: Saldırganın ağdaki kanalların çoğunu süresiz olarak kilitlemek için yalnızca 0,5 bitcoin'den daha azına ihtiyacı var.
saldırı:
Kanalı felç etmek için saldırgan, kanalı açmak için bir dizi yolun kaynağını ve hedefini kullanır ve bu yol üzerinden birçok küçük ödeme talep eder, böylece aynı anda açılan HTLC sayısını tüketir (Lightning Network'ün her büyük uygulaması eşzamanlı HTLC'yi etkiler) Numaranın farklı sınırları vardır). Saldırgan, ödemenin hem kaynağı hem de hedefidir ve ödemenin son uygulama süresini ciddi şekilde geciktirebilir (birkaç güne kadar). Ardından, saldırgan saldırıyı yeniden başlatabilir ve aynı yolu ek bir süre boyunca kilitleyebilir.
Saldırgan, kanalı felç etmek için iki uzun mesafe rota oluşturdu
Yıldırım Protokolünün ana uygulamasını inceledik. Bunlar, ilgili parametreler için kullandıkları varsayılan değerlerdir (çoğu düğüm bu varsayılan değerleri kullanır - bu makaledeki ayrıntılara bakın). Günümüzde, ağdaki çoğu düğüm aslında LND düğümleridir (yaklaşık% 90).
Varsayılan parametreler
Aşağıdaki şema, yol boyunca tek bir ödemenin nasıl gerçekleştirileceğini göstermektedir (saldırgan, artık HTLC kalmayana kadar her yolda birden çok kez tekrar eder):
Rota oluşturma ve HTLC eliminasyon süreci
Lightning Network'ün tamamında bu operasyonu büyük ölçekte yürütmenin sonuçlarını değerlendirdik.
Tüm ağa saldırın:
Rotaları seçmek ve olabildiğince fazla likiditeyi felç etmek için açgözlü bir algoritma kullanırken, aşağıdaki sonuçları alırız. Aşağıdaki görüntü, felç etmeyi başardığımız Lightning Network'ün şu anda kilitli olan toplam kapasitesinin bir kısmını (bir seferde arka arkaya 3 gün boyunca) göstermektedir.
Ağ, farklı zaman dilimlerinde çok etkili bir şekilde kilitlenebilir:
Saldırının toplam maliyeti düşüktür. Maliyet iki ana faktörden oluşur: kanal açma maliyeti (iade edilemez) ve likit bir kanal sağlama maliyeti (para hala saldırganın elindedir).
Sonuçlarımız, bir saldırganın 3 gün boyunca Lightning Network'teki 650 BTC likiditesini felç etmek için 0,25 BTC'den daha azını kullanabileceğini gösteriyor.
Saldırı merkezi:
Tek bir düğüm ile ağ arasındaki bağlantı süresini uzatmak için saldırgan, kurban düğüme bağlanacak ve komşu kanalları felce uğratacaktır. Bu amaçla, kurbanın kanalı üzerinden ileri ve geri birden çok ödeme talebi gönderir (buna Lightning Network uygulamasında şaşırtıcı bir şekilde izin verilir).
Aşağıdakiler bazı önemli düğümlerdir, onlara saldırmanın maliyeti:
Tablodaki son giriş, Lightning Network'teki tüm likiditenin% 47,3'ünü elinde tutan LNBIG'ye ait 25 düğümün tamamına yönelik bir izolasyon saldırısıyla ilgilidir.
Daha küçük düğümlere saldırmak istiyorsanız, maliyet genellikle düzeyleriyle orantılıdır (ancak tam olarak aynı değildir):
Zincir dışı ödeme ağlarının üç temel özelliğini içerdiği için bu güvenlik açığının düzeltilmesinin nispeten zor olduğunu fark ettik:
1. Ödeme, taraflar arasında değiş tokuş edilen ve yalnızca bir anlaşmazlık meydana geldiğinde bloğa gönderilen koşullu ödeme sözleşmeleri (HTLC ile işlemler şeklinde) kullanılarak, güvensiz bir şekilde gerçekleştirilir. Zincir. Bu sözleşmelerin boyutu, bekleyen daha fazla koşullu ödemeyle birlikte büyür, bu nedenle toplam bekleyen ödeme sayısı, blok zincirine yerleştirilebilecek işlemlerin boyutu ile sınırlıdır.
2. Uzun son kullanma süresi. Kötü niyetli ortak bekleyen ödemenin parçası olan kanalı kapattığında düğümün fonlarını çekmesine izin vermek için, HTLC sona erme süresi, düğümün kapatmaya itiraz etmesi için yeterli süreye izin verecek şekilde ayarlanmıştır. Bitcoin'in Lightning Network'ünde, betik dilinin düşük ifade gücünden dolayı HTLC'nin sona erme süresi, 2016 bloklarına (genellikle iki hafta) ulaşana kadar yolun tüm uzunluğu boyunca birikecektir.
3. Ödeme gizliliği. Ödeme kanalı ağı, yoldaki ara düğümlerin ödeme kaynağını ve yerini belirlemesine izin vermeyen soğan yönlendirmesini kullanır, böylece saldırganlar cezasız bir şekilde harekete geçebilir.
Azaltma teknikleri
Aslında, varsayılan değerdeki en son değişiklik aslında saldırımızın uygulanmasını kolaylaştırıyor: LND, cltv_expiry_delta varsayılan değerini 144 bloktan 40 bloğa (12 Mart 2019) değiştirdi, bu da Locktime_max sınırına ulaşmadan yolda daha fazla düğüm bağlayın. Buna ek olarak, Lightning geliştiricileri, BOLT 1.1 spesifikasyonunu ayarlamak için 2018 Adelaide konferansında 2016'nın maksimum kilitlenme süresi (max_cltv) konusunda anlaştılar. Bu, bazı uygulamalarda kullanılan önceki değerde bir artıştır. Yine, bu daha uzun rotalara ve daha uzun sona erme gecikmelerine izin verir, bu da saldırıları daha yıkıcı ve yürütmeyi kolaylaştırır.
Hızlı HTLC analizi uygulayın. HTLC'nin sona erme süresi düğümü güvende tutabilir ve işlemi ağda yayınlamak için yeterli süre sağlasa da, başka bir zaman aşımı mekanizması eklemenizi öneririz. Spesifik olarak, HTLC sırrı bir komşu düğümden yeterince hızlı yayılmazsa, bu düğüme sahip kanal kapatılmalıdır. Bu mekanizma, birden fazla saldırıyı ücretsiz olarak tekrar etmelerini önlemek için anormal şekilde davranan eşlerin ağdan bağlantısını kesmenin bir yoludur.
Rotanın uzunluğunu azaltın. İzin verilen maksimum rota uzunluğunu (şu anda 20 atlama) azaltmanızı öneririz. Ağ diyagramı yüksek oranda bağlantılıdır ve atlama sayısı yine de yeterli olmalıdır: ağdaki düğümler arasındaki yol ortalama 3 sekmeden azdır ve ağ çapı yaklaşık 6'dır.
Güven seviyelerine ve döngüden kaçınmaya dayalı olarak maksimum eşzamanlı ödeme sayısını ayarlamak, saldırıları biraz hafifletebilecek diğer iki yöntemdir.
Ağ güvenliğini sağlamak için daha fazla çalışma yapılmalıdır. Saldırı, ödeme kanalındaki temel mekanizmaya dayandığından, daha fazla düşünmeye ihtiyaç vardır.
Daha fazla bilgi için tam metne bakın.