%51'in iki adet yansıması var temelde;
Zincirin catallanması%51 network hashrate'e sahipken bile fork olusturabilmek icin, network difficultynın epey dusuk olması gerekir. Daha dogrusu %51'e sahip olan poolun, hash-power'ı mevcut network difficulty'e gore oyle bir oranda olmalı ki, pool, diger poollar yeni block bulamadan ard arda 2 blok bulabilmeli ve hatta bu o kadar hızlı olmalı ki network'de ki node'larda ilk blogun bilgisi daha yayılamadan %51'li pool ikinci blogu uretebilmeli.. Bu oldugu anda fork olusuyor, ki 1 hafta once catcoin ve dogecoin'de oldu.
Catcoin yukarıda anlattıgım sekıldeydı (block retargetı dusurecez derken, cok dusuk bir diff'e gecirdiler networku), dogecoin'de ise developerların 1.4 versiyonu cıkarırken TX kodlarıyla oynayıp, 1.3 ve 1.4 versiyonu arasında uyumsuzluk yaratması nedeniyle oldu.
Yani illa %51 hemen gorduk diye chain'de fork olusacak anlamına gelmiyor. Ama tabiki bu bir olasılık.
Double-spenddouble-spend teorik olarak mevcut olsada oldukca organizasyon gerektiriyor.
soyle anlatayım basitce.
Not: Asagıda ki senaryo tamamen hayal urunudur ve durumu izah etmek icin kurgulanmıstır %51 network power veya fazlası benım elımde dıyelım. (% olarak ne kadar fazla, o kadar kolay).
Simdi diyelim ki X bloktayız. Sizler %49'dasınız ve X+1'ı blogu arıyorsunuz.
Bende %51'eyim ve X+1 blogu arıyorum. Diyelim ki kotu niyetliyim. Bu durumda, hashpowerım network'un %51den fazla oldugu ıcın bi private chain olusturuyorum ve bunu henuz sızlere yaymıyorum.
Hatta soyle tablo yapalım;
* Rai = %51 hashpower
* Rest= %49 hashpower
Delta = 0
--------
Rai Mevcut blok: X
Rai Aranan blok: X+1
Rest Mevcut blok: X
Rest Aranan blok: X+1
Delta = 1
-------
Rai Mevcut blok: X+1
Rai Aranan blok: X+2
Rai Private Mevcut Blok: X+2 (henuz private, yanı aga yaymadı bilgiyi, hala aga X+1'deyim diyor)
Rai Private Aranan Blok: X+3(henuz private, yanı aga yaymadı bilgiyi, hala aga X+1'deyim diyor)
Rest Mevcut blok: X+1
Rest Aranan blok: X+2
Aksiyon: Gidip btcturk'e 10 BTC gonderiyorum
Delta = 4
-------
Rai Mevcut blok: X+4
Rai Aranan blok: X+5
Rai Private Mevcut Blok: X+5 (henuz private, yanı aga yaymadı bilgiyi, hala aga X+1'deyim diyor)
Rai Private Aranan Blok: X+6 (henuz private, yanı aga yaymadı bilgiyi, hala aga X+1'deyim diyor)
Rest Mevcut blok: X+4
Rest Aranan blok: X+5
Aksiyon: BTCTurk confirmasyonu yapıyor. TL'yi diyelim ki hemen bu aralıkta hesabıma gecir diyorum BTCTurk'e ve geciriyor.
Delta = 5 (Double Spend anı)
----------------------------
Rai Mevcut blok: X+5
Rai Aranan blok: X+6
Rai Private Mevcut Blok: X+6 (bu anda aga yayıyor bilgiyi)
Rai Private Aranan Blok: X+7 (bu anda aga yayıyor bilgiyi)
Rest Mevcut blok: X+5
Rest Aranan blok: X+6
Mevcut anda ağda ki herkes X+5 blokta ve X+6. blogu arıyor.
Ama ben aslında sahtekar bir pool olarak, elimde private bir chain vardı malum (X+6'ta olan ve X+7'yi arayan) ve bu chain'de btcturk'e gonderdıgım 10 BTC'lik transaction eklemiyorum. Bu anda bana baglı node cıkıslarıma bu yenı chain'in bilgilerini yayıyorum.
Node'lar arasında data dagılıyor ve goren node'lar diyor ki, hadi ya ben X+5'deyız ve X+6'yi ariyoruz sanıyordum ama bana bilgi gelmemis, biz zaten X+6'daymısız ve X+7'yi arıyormusuz diyor ve sahtekar agın X+6'lık chaini, dogru soyleyen nodeların X+5'lik chain'den bir blok uzun oldugu icin longest-chain-is-always-trusted kavramından, yani en uzun zincir her zaman haklıdır diye dusunurek, sahtekar chaini butun ag kabul ediyor.
Bu durumda noluyor, BTCTurk'e 10 BTC gonderip TL'ye cevirmistim ama sahtekar chaini kullanıp bu 10 BTC'lik gonderimi kayıtlardan silmis oluyorum - daha dogrusu benım sahtekar chain'mde btcturk'e bu gonderimin transactionu kayıtlarda yer almıyor.
Sonuc? Hem 10 BTC cebimde, hemde BTCTurkden cevirdigim TL'ler...