Çift Harcama (Double Spending) Nedir?

Çift harcama, aynı dijital paranın iki farklı işlemde harcanmaya çalışılmasıdır. Bitcoin bu sorunu merkezi bir kurum olmadan, herkesin doğrulayabildiği ortak kayıt ve madencilikle eklenen blok onaylarıyla çözer.

Bu sayfada 6
  1. Bitcoin çift harcamayı nasıl önler?
  2. Çift harcama türleri
  3. Onay sayısı neden önemlidir?
  4. Kullanıcı açısından anlamı
  5. Sık sorulan sorular
  6. Kaynaklar

Çift harcama (double spending), aynı dijital paranın iki farklı işlemde harcanmaya çalışılmasıdır. Fiziksel parada bir banknotu verdiğinizde elinizden çıkar; dijital veri ise kopyalanabilir. Bu yüzden her dijital para sisteminin, aynı birimin daha önce harcanıp harcanmadığını güvenilir biçimde kontrol etmesi gerekir. Çift harcama sorunu, Bitcoin’den önceki dijital para denemelerinin aşamadığı temel engellerden biriydi.

Bitcoin çift harcamayı nasıl önler?

Bankalar bu kontrolü merkezi hesap kayıtlarıyla yapar. Bitcoin ise sorunu merkezi bir kurum olmadan çözmek için tasarlandı: tüm işlemler herkesin doğrulayabildiği ortak bir kayda, yani blokzincire yazılır. Satoshi Nakamoto’nun 2008’de yayımladığı teknik makale, bu çözümü “eşler arası elektronik nakit sistemi” olarak tarif eder.

Bitcoin’de her işlem, daha önce harcanmamış çıktıları (UTXO) kullanır. Aynı çıktıyı harcayan iki işlem ağa gönderilirse node’lar yalnızca birini kabul eder. Bloğa giren işlem geçerli sayılır, diğeri reddedilir. Üzerine yeni bloklar eklendikçe işlemi geri almak giderek zorlaşır.

Çift harcama türleri

  • Race (yarış) saldırısı: Saldırgan, satıcıya bir işlem gönderirken aynı coin’leri kendi adresine yönlendiren ikinci bir işlemi de ağa yayar. Satıcı onaysız işlemi kabul ederse ikinci işlem bloğa girdiğinde ödeme geçersiz kalabilir.
  • Finney saldırısı: Kendi bloğunu üreten bir madenci, coin’leri kendine gönderen işlemi içeren bloğu gizli tutar, aynı coin’lerle ödeme yapar ve ardından bloğu yayımlar. Yine onaysız işlemi kabul eden satıcı zarar görür.
  • %51 atağı: Hash gücünün çoğunluğunu kontrol eden saldırgan, onaylanmış işlemleri bile geri alabilir. Bu yöntem pahalıdır ve daha çok küçük ağlarda görülür.

Onay sayısı neden önemlidir?

Henüz bloğa girmemiş bir işlem mempool’da bekler ve değiştirilebilir. Örneğin Bitcoin’deki Replace-by-Fee (RBF) özelliği, onaylanmamış bir işlemin daha yüksek ücretli yeni bir işlemle değiştirilmesine izin verir. Bu nedenle satıcılar ve borsalar, işlemin üzerine belirli sayıda blok eklenmesini, yani onay beklemeyi tercih eder.

Bitcoin’in teknik makalesinde, saldırganın gizli bir zincirle dürüst zinciri yakalama olasılığının her yeni blokla hızla azaldığı hesaplanır. Bitcoin’de yaygın pratik, büyük tutarlar için altı onay, yani yaklaşık bir saat beklemektir. Küçük tutarlarda tek onay yeterli görülebilir.

Kullanıcı açısından anlamı

Bireysel kullanıcı için çift harcama riski çoğunlukla ödeme kabul ettiği durumlarda ortaya çıkar. Onaysız bir işlemi “ödeme alındı” kabul etmek risklidir; özellikle yüksek tutarlı satışlarda yeterli onay beklemek gerekir. Hash gücü düşük ağlarda ise daha fazla onay beklemek, saldırının maliyetini yükseltir.

Sık sorulan sorular

Bitcoin’de çift harcama yaşandı mı? Onaysız işlemlere yönelik küçük ölçekli girişimler görülebilir, ancak Bitcoin’de yeterli onay almış işlemlerin %51 atağıyla geri alındığı bir olay yaşanmadı.

Kaç onay güvenli kabul edilir? Kesin bir sayı yoktur; tutara ve ağa göre değişir. Bitcoin’de altı onay yaygın bir ölçüdür, küçük ağlarda borsalar çok daha fazla onay isteyebilir.

Ethereum’da çift harcama nasıl önlenir? Ethereum UTXO yerine hesap modeli kullanır. Her hesaptan gönderilen işlemler sıralı bir nonce numarası taşır ve aynı nonce’a sahip iki işlemden yalnızca biri zincire girebilir.

Kaynaklar

Bir sonraki okuma