Çift Harcama Saldırıları: Blok Zinciri İşlemleri İçin Sadece "Gönderilen"e Bakmak Neden Yeterli Değil

Orta seviye
Double-Spend Attacks: Why You Can't Just Look at "Sent" for Blockchain Transactions
Birçok kullanıcı, bir blok zinciri işlemi "gönderildiğinde" fonların güvenle ulaştığını varsayar. Ancak gerçeklik o kadar basit değildir. Borsalar, satıcılar ve sıradan kullanıcılar için önemli olan, işlemin yalnızca yayınlanmış olup olmadığı değil, bir blok tarafından onaylanıp onaylanmadığı, onay sayısı yeterli mi ve temel zincirin yeniden düzenlenme riski taşıyıp taşımadığıdır. Bu kavramları anlamak, "çift harcama saldırılarını" önlemenin temelidir.
 
Bu makale, onay derinliği ve birikimli kanıt çalışmasının yeniden organizasyon riski için merkezi olduğu kanıt-çalışma ağlarına odaklanır. Diğer konsensüs sistemleri farklı nihaileşme mekanizmaları kullanır.

Çift Harcama Saldırısı Nedir?

Bir "çift harcama saldırısı", bir saldırganın aynı dijital varlığı iki kez harcamaya çalışmasıdır.
 
En sezgisel örneği kullanmak gerekirse: bir saldırganın sadece 1 BTC'si vardır, ancak aynı anda iki çelişkili işlem başlatır. Birisi, bir satıcıya veya platforma bir yatırma, satın alma veya hizmet için ödeme yapar; diğeri ise aynı 1 BTC'yi saldırganın kontrolündeki bir cüzdan adresine gönderir. Her iki işlem de aynı varlıklardan faydalandığından, zincir üzerinde sadece biri nihai olarak geçerli olabilir. Eğer satıcı veya platform, "henüz kararlı şekilde onaylanmamış" bir işlemi erken güvenirse, saldırgan daha sonra bir zincir yeniden organizasyonu veya daha uzun bir zincirin üstünlüğünden yararlanarak, daha önce görülen yatırma kaydını geçersiz hale getirebilir — bu sırada varlıklar zaten saldırgana verilmiştir.
 
Bu nedenle, çift harcama saldırısı "varlıkları kopyalama" hakkında değildir — aynı varlığın bir iş süreci içinde iki kez kullanılmasını sağlamak için yetersiz işlem onayı, rekabet eden blok üretimi veya zincir yeniden organizasyonundan yararlanır.

Çift harcama saldırıları neden olur?

Blok zinciri, işlemlerin geri alınamaz olduğunu vurgulasa da, bu "geri alınamazlık" genellikle bir işlem ilk gönderildiğinde hemen geçerli değildir. İşlem, paketlendikten, yayıldıktan ve onaylandıktan sonra yavaş yavaş geri alınamazlığa yaklaşır.
 
Bir zincir içi işlem genellikle birkaç durumdan geçer:
 
Durum Açıklama
Oluşturuldu Cüzdan işlemi oluşturuyor
Yayın İşlem, blok zinciri ağına yayınlanıyor
Bekliyor Madenci veya doğrulayıcıların paketlemesi ve onaylaması bekleniyor
Onaylandı İşlem bir bloğa girdi ve onaylar birikmeye başladı
Başarısız / Düşürüldü / Değiştirildi İşlem başarısız oldu, değiştirildi veya iptal edildi
Risk, Bekliyor aşamasında ve Onaylandı ancak çok az onay var aşamasında ortaya çıkar. Bu noktalarda işlem "varmış gibi görünür" ancak henüz yeterince kararlı değildir. Ağ çatallanırsa veya bir saldırgan önemli bir hash gücüne sahipse ve daha uzun bir zincir oluşturursa, orijinal işlemi içeren blok atılabilir — ve işlem kaydı "kaybolabilir."
 
Bu, "zincir yeniden yapılandırması" olarak bilinir. Zincir yeniden yapılandırması, bir kaydı sadece silmek anlamına gelmez; tam ağ, nihayetinde farklı bir zinciri tanımlar ve orijinal zincirdeki bazı bloklar geçersiz hale gelir. Eğer bir yatırma işlemi yalnızca atılan kolda mevcutsa, platformun daha önce gördüğü yatırma kaydı geçersiz hale gelebilir.

Onaylar Neden Kadar Önemli?

Onay sayısı, bir işlemi geri almanın ne kadar zor olduğunu belirler.
 
Bir işlem ilk olarak bir bloğa girdiğinde, genellikle yalnızca 1 onay sahibidir. Her yeni blok oluşturulduğunda, onay sayısı artar — 2 onay, 3 onay, 6 onay, hatta 12 onay. Onay sayısı ne kadar yüksekse, işlemi tersine çevirmek için o kadar çok bloğun geri alınması gerekir ve saldırı maliyeti o kadar yüksektir.
 
Bu nedenle borsalar genellikle 0 ila 1 onay arasında kullanıcıları hemen kredite almaz. Bu aşamada, özellikle daha zayıf hash gücüne sahip blok zincirlerinde veya %51 saldırıları ve zincir yeniden organizasyonları geçmişi olan blok zincirlerinde daha yüksek onay eşiği gereklidir.

📌 Dikkat Çeken Vaka: ETC 2019 51% Hash Gücü Saldırısı ve Çift Harcama Olayı

Çift harcama saldırıları teorik bir tehdit değildir. Ocak 2019'da Ethereum Classic (ETC), çift harcama işlemlerini içeren büyük bir %51 saldırısına maruz kaldı.
 
Tipik Saldırı Süreci:
 
Adım Eylem
1 Saldırgan, önce ETC ağı üzerinde önemli bir hash gücü hakimiyeti kazandı ve daha uzun bir zinciri özel olarak maden çıkarmayı sağladı
2 Saldırgan, ETC'yi bir borsaya yatırdı
3 Borsa, yatırma işleminin gerekli onay sayısına ulaşmasını tespit ettikten sonra saldırganın hesabına kredi ekledi.
4 Saldırgan, ETC'yi borsada hızla sattı, bunu USDT, BTC veya diğer varlıklara dönüştürdü ve fonları çekti.
5 Bu arada, saldırgan, yatırma işlemini içermeyen daha uzun bir zincir özel olarak maden çıkarmaya devam etti.
6 Bu daha uzun zincir ağda yayınlandığında, ağ yeni ana zinciri kabul etti ve borsanın gördüğü yatırma zinciri geri alındı.
Bu saldırı deseninin sonucu: Borsanın kayıtlarında "onaylanan" yatırma kayboldu, ancak saldırgan zaten dönüştürülen varlıkları çekmiş ve çift harcama tamamlanmıştı.
 
Bu durum, temel bir gerçekliği gösterir: Bir işlem zaten blok zinciri üzerinde olsa bile, temel ağ güvenliği yetersizse veya saldırganın blokları yeniden düzenleyebilme yeteneği varsa, işlem hâlâ geri alınabilir. Bir blok zinciri işleminin "sona erme" özelliği tamamen anlık değildir — onaylar arttıkça giderek güçlenir.

🛡️ İşlemler sırasında Çift Harcama Saldırılarından Nasıl Kaçınılır

Çift harcama saldırılarını önlemek, "diğer tarafın ekran görüntüsüne" veya "işlem hash'inin varlığına" dayanmak değildir — bunun yerine doğru onay ve risk kontrol mekanizmaları kurmak gibidir.

Öncelikle, "Broadcast" ifadesini "Alındı" olarak işlemeyin

Bir kullanıcı cüzdanlarında "gönderildi" durumunu görse veya diğer taraf bir işlem hash'i sağlasa, bu para güvenli demek değildir. Yayınlanma, işlemin ağ yayılma aşamasına girdiğini gösterir — blok tarafından onaylandığı anlamına gelmez. Yatırımları hesaba alma, coinleri serbest bırakma, mal gönderme veya hizmet sağlama gibi işlemler, "Bekliyor" durumuna dayanarak yapılamaz.

İkinci olarak, zincir içi onay durumunu doğrulamanız gerekir.

Bir işlemin güvenilir olup olmadığını değerlendirmek için en azından şunları kontrol edin:
  • İşlem bir bloğa dahil edildi mi
  • Mevcut onay sayısı nedir
  • İşlem, anormal yer değiştirme, çakışan işlemler veya düşürülme riski taşır mı
Yüksek riskli senaryolar için sadece "işlem var mı" değil, "onayın kararlı mı" bakın.

Üçüncü olarak, zincirin risk seviyesine göre uygun onay sayıları belirleyin

Farklı blok zincirlerinin farklı güvenlik seviyeleri vardır. Ana akım, yüksek hash gücüne sahip zincirler, küçük kapitalizasyonlu ve düşük hash gücüne sahip zincirlerden 51% saldırı veya zincir yeniden organizasyonu maliyeti açısından büyük ölçüde farklıdır. Daha yüksek riskli zincirler için platformlar yatırma onay eşiğini yükseltmelidir; büyük tutarlı işlemler için daha yüksek onay gereksinimleri de belirlenmelidir — tek bir çözüme uygun olmayan bir yaklaşım.

Dördüncü, Anormal Yatırma Davranışlarına Risk Kontrolü İzleme Uygulayın

Aşağıdaki davranışlar ek inceleme tetiklemelidir:
 
Sıradışı Davranış Risk Açıklaması
Kısa bir sürede hızlı satış ve çekimlerle takip edilen birden fazla büyük yatırma Tipik çift harcama saldırısı yolu
Tarihsel olarak düşük güvenlikli coinlerle sık sık yatırma Düşük hash gücü zincirlerinde saldırı maliyetleri düşüktür
Minimum onay sayısına ulaşıldığında hemen varlıkların çekimini isteme Yetersiz onay açıklarından yararlanabilir
Blok zinciri tarayıcılarda anormal gecikmeler, çatışma belirtileri veya istikrarsız duruma sahip işlemler Mümkün olan sürekli zincir yeniden organizasyonu
Bu davranışlar genellikle çift harcama saldırılarının operasyonel kalıplarıyla yakından eşleşir.

Beşinci, Ödeme ekran görüntülerine veya tek sayfalık duruma güvenmeyin.

Ekran görüntüleri en kolay sahteleştirilebilen ve en kolay yanıltıcı unsurlardır. Satıcı ödemeleri, over-the-counter işlemler veya yatırma incelemeleri için her zaman sohbet kayıtları, ödeme ekran görüntüleri veya sözlü ifadelerden ziyade blok zinciri tarayıcıları ve sistem risk kontrol doğrulamasına dayanın.

Altıncı olarak, "Tersine Dönülemezlik"nin "Anında" Olmadığını Anlayın

Bir blok zinciri işlemi yeterli onaylara ulaştığında, genellikle geri almak gerçekten çok zordur. Ancak onaylar yetersizse, işlemler çatallanma, yoğunluk, değiştirme veya zincir yeniden organizasyonu nedeniyle hâlâ değişim gösterebilir. Güvenlik eğitimi sırasında en yaygın yanlış anlama, "blok zinciri işlemleri geri alınamaz" ifadesini "bir kere gönderildiğinde kesinlikle güvenli" olarak yorumlamaktır. Bu tam olarak çift harcama saldırılarının başarıya ulaşmasına izin veren bilişsel boşluktur.

💎 Sıradan Kullanıcılar ve Platformlar İçin Güvenlik İpuçları

Sıradan kullanıcılar için en önemli şey, onaylanmadan önce mal, dijital varlıklar veya hizmetleri teslim etmemektir. Özellikle over-the-counter işlemlerinde, eşten eşe transferlerde ve garipsizlerle yapılan ödemelerde, onayları kontrol etmeden yalnızca ekran görüntülerine bakmak aşırı yüksek risk taşır.
 
Satıcılar ve platformlar için gerçekten etkili koruma, "el deneyimi" değil, standartlaştırılmış mekanizmalardır:
  • Net onay eşiği
  • Zincire göre farklılaştırılmış risk seviyeleri
  • Anormal çekim yollarının belirlenmesi
  • Yüksek riskli varlık yatırmaları için sürenin uzatılması
  • Yeniden organizasyon veya %51 saldırıları geçmişi olan coinler için artırılmış dikkat

Sonuç

Çift harcama saldırısının çekirdeği, "bir hackerın bir coin'i kopyalaması" değil, bir iş süreci içinde "zaten ödenmiş" izlenimi yaratmak için kararsızca onaylanan işlemlerden yararlanmaktır. ETC 2019 olayı, temel zincirde yeniden organizasyon olasılığı varsa, yetersizce onaylanan işlemlerin nihai olarak alındığı kabul edilmemesi gerektiğini zaten göstermiştir.
 
Güvenli işlemlerin temel prensibi şu cümleye indirgenir:
 
Onayları, ekran görüntülerine değil; nihai durumu, yüzey durumuna değil izleyin.
Onay sayısı ne kadar yüksekse, başarılı bir çift harcama saldırısı için pencere o kadar küçüktür.

Disclaimer: The information on this page may come from third parties and does not necessarily reflect KuCoin’s views. It is provided for general reference only and should not be interpreted as financial or investment advice.

Virtual asset investments may involve risk. Please carefully assess the product risks and your own risk tolerance. For more information, please refer to our Terms of Use and Risk Disclosure.