Ozet
Tamamen eşten-eşe calışan bir elektronik para sistemi herhangi bir finansal kurumdan gecmeden bir taraftan diğerine online odeme gonderilmesini mumkun kılar. Dijital imzalar cozumun bir parcasıdır, ancak mukerrer harcamaları onlemek icin hala guvenilir bir ucuncu tarafa ihtiyac duyuluyorsa temel faydalarını kaybederler. Mukerrer harcama problemine eşler arası ağ kullanarak bir cozum oneriyoruz. Ağ, işlemleri surekli uzayan ozet fonksiyonu tabanlı bir iş-kanıtı zincirine ekleyerek zaman damgasıyla işaretler ve iş-kanıtını tekrar uretmeden değiştirilemez bir kayıt oluşturur. En uzun zincir sadece karşılaşılan olayların sırasını kanıtlamakla kalmaz aynı zamanda en buyuk CPU gucune sahip havuzdan geldiğini de kanıtlar. CPU gucunun coğunluğu ağa saldırmak icin işbirliği yapmayan duğumlerin kontrolunde olduğu surece en uzun zinciri uretecekler ve saldırganları alt edeceklerdir. Ağın kendisi cok az bir altyapıya ihtiyac duyar. Mesajların yayınlanmasında “elden geldiği kadar” kuralı gecerlidir. Duğumler istediklerinde ağdan ayrılabilirler ve dışarıda gecirdikleri surede yapılan işlemlerin kanıtı olan en uzun iş-kanıtı zincirini kabul ederek tekrar katılabilirler.
Giriş
İnternet uzerinden alışveriş bugun neredeyse tamamen, guvenilir bir ucuncu taraf olarak elektronik odemeleri işleyen finansal kurumlara bağımlı hale geldi. Bu sistem coğu işlem icin oldukca iyi calışıyor olsa da hala guvene dayalı bir model olmanın zayıflığını barındırıyor. Finansal kurumlar ihtilaflarda ara buluculuktan kacamadıklarından tamamen geri donuşu olmayan işlemler gercekte mumkun değil. Arabuluculuk hizmetinin gideri işlem giderlerini yukseltir ve mumkun olan en kucuk işlem miktarını sınırladığı icin kucuk odeme işlemlerini engeller, bunun yanında geri dondurulemeyen hizmetler icin geri dondurulemeyen odeme alma imkanının olmaması daha da masraflıdır. İşlemi geri dondurme ihtimali ile birlikte guvenme ihtiyacı da artar. Satıcılar muşterilerine şupheyle bakmalı ve başka bir durumda ihtiyac duyulabilecek bilgiden fazlasını vermeleri icin zorlamalıdır. Belli bir oranda dolandırıcılık kacınılmaz kabul edilir. Bu maliyetler ve odeme belirsizlikleri yuz yuze alışverişte fiziksel para kullanımıyla giderilebilir ancak guven duyulan bir ucuncu taraf olmadan bir iletişim kanalı uzerinden odeme yapılabilecek bir mekanizma bulunmamaktadır.İhtiyacımız olan guven yerine kriptografik kanıta dayalı, iki tarafın ucuncu bir guvenilir kişiye gerek duymadan doğrudan birbirleriyle işlem yapabileceği bir elektronik odeme sistemidir. Geri dondurulmesi imkansıza yakın işlemler satıcıları dolandırıcılıktan koruyacaktır. Alıcıları koruyacak rutin emanetci mekanizmaları kolaylıkla uygulanabilir. Bu makalede eşten-eşe dağıtık bir zaman damgası sunucusunun işlemlerin tarihsel sırasını hesaba dayalı olarak kanıtlamasını kullanarak mukerrer harcama problemine bir cozum oneriyoruz. Sistem durust duğumler topluca saldırgan duğumlerden daha fazla CPU gucunu ellerinde bulundurduğu surece guvenlidir.
İşlemler
Elektronik parayı bir dijital imza zinciri olarak tanımlıyoruz. Paranın el değiştirmesi sırasında her sahip parayı bir sonrakine gonderirken kendi dijital imzasıyla bir onceki işlemin ozetini (hash) ve bir sonraki sahibin acık anahtarını imzalar ve bu imzayı paranın sonuna ekler. Odeme alan sahiplik zincirini doğrulamak icin imzaları doğrulayabilir.
Elbette buradaki problem odeme alanın zincirdeki onceki sahiplerden birinin parayı mukerrer olarak kullanmadığını doğrulayamamasıdır. Yaygın bir cozum, merkezi bir otoritenin (banka, merkez) her işlemin mukerrer harcama olup olmadığını kontrol etmesidir. Her işlemden sonra para merkeze geri doner ve yerine yeni bir para piyasaya surulur. Sadece merkez tarafından doğrudan piyasaya surulen paraların mukerrer olarak harcanmadığından emin olabiliriz. Bu cozumdeki sorun para sisteminin tum kaderinin her işlemin uzerinden gectiği banka gibi bir merkezi kuruluşun elinde olmasıdır. Odeme alan kişinin, paranın onceki sahiplerinin onceden işlem imzalamadıklarını doğrulayabileceği bir yonteme ihtiyacımız var. Bizim durumumuzda sadece en eski işlem onemlidir, daha sonraki harcama girişimlerini dikkate almıyoruz. Bir işlemin gercekleşmediğini kanıtlamanın tek yolu tum işlemlerden haberdar olmaktır. Merkeze dayalı modelde merkez tum işlemleri bildiği icin hangisinin once geldiğine karar verebilir. Guvenilen bir taraf olmadan bunu başarabilmek icin işlemler acıkca ilan edilmelidir [1] ve katılımcıların işlemlerin gercekleşme sırası konusunda hemfikir olacağı bir sisteme ihtiyacımız vardır. Odeme alanın her işlem sırasında harcamanın ilk kez yapıldığı taraf olduğunun diğer duğumlerin coğu tarafından onaylandığı bir kanıta ihtiyacı vardır.
Zaman Damgası Sunucusu
Onerdiğimiz cozum bir zaman damgası sunucusuyla başlıyor. Bir zaman damgası sunucusu damgalanmayı bekleyen bir işlem bloğunun ozetini alarak bu ozeti gazete, Usenet [2-5] gibi mecralarda yayınlar. Zaman damgası mesaj yayınladığı anda verinin ozete girdiğinin yani var olduğunun kanıtıdır. Her zaman damgası ozetinin icinde bir onceki zaman damgasını barındırarak bir zincir oluşturur ve her eklenti oncekileri guclendirir.
Hesaplamalar
Durust zincirden daha hızlı şekilde alternatif bir zincir oluşturmaya calışan saldırganın senaryosunu ele alalım. Eğer bunu başarabilse bile bu olay sistemi yoktan para var etmek, ya da hic sahip olmadığı bir parayı elde etmek gibi keyfi değişikliklere karşı savunmasız hale getirmez. Duğumler gecersiz bir işlemi odeme olarak kabul etmeyeceklerdir. Durust duğumler de bu işlemleri barındıran blokları asla kabul etmeyeceklerdir. Bir saldırgan sadece kendi işlemlerinden birini değiştirerek yakın zamanda harcadığı parayı geri almayı deneyebilir.
Durust zincir ile saldırgan arasındaki yarışı Binom Rastgele Yuruyuş şeklinde tariflemek mumkundur. Başarılı olma durumu durust zincirin bir blok uzamasıdır ve +1 puan one gecirir. Başarısızlık durumu da saldırganın zincirini bir blok uzatmasıdır ve aradaki farkı -1 puan kadar azaltır.
Saldırganın belirli bir gecikme farkını kapatabilme olasılığını Kumarbazın İflası problemine benzetebiliriz. Sınırsız krediye sahip bir kumarbazın bir borc ile oyuna başladığını ve başa baş noktasına gelebilmek icin sonsuz sayıda deneme yapabileceğini varsayalım. Kumarbazın beraberliğe ulaşma olasılığını ya da saldırganın durust zinciri yakalama olasılığını şoyle hesaplayabiliriz [8] :
p = durust bir duğumun sıradaki bloğu bulma olasılığı
q = saldırganın sıradaki bloğu bulma olasılığı
qz = saldırganın z blok geriden gelerek beraberliği yakalama olasılığı
p > q varsayımıyla, saldırganın yakalamak zorunda kaldığı blok sayısı arttıkca olasılık ussel olarak azalır. Kendi dezavantajına işleyen olasılıklar karşısında eğer en başlarda şanslı bir dizi hamle yapamazsa daha da geride kaldıkca kazanma ihtimali yok denecek kadar azalır.
Şimdi de yeni bir işlemdeki alacaklının, gonderenin işlemi değiştiremeyeceğinden emin olana dek ne kadar beklemesi gerektiğini ele alalım. Gonderenin alıcıyı para odediğine bir sureliğine inandırmak isteyen ve bir sure sonra işlemi paranın kendisine geri donmesi icin değiştirmeyi planlayan bir saldırgan olduğunu varsayıyoruz. Bu olay olduğunda alıcı haberdar olacaktır. Ama saldırgan bunun icin cok gec olmasını umit eder.
Alıcı yeni bir cift anahtar ureterek acık anahtarı imzalamadan hemen once gonderene iletir. Bu şekilde gondericinin onceden bir blok zinciri hazırlaması ve uzerinde calışarak one gectiği şanslı anında işlemi gercekleştirmesi engellenir. İşlem gonderildiğinde kotu niyetli gonderici gizlice işlemin farklı bir versiyonunu iceren paralel bir zincir uretmek icin calışmaya koyulur.
Alıcı işlemin bir bloğa eklenmesini ve ardından bloğa z blok daha bağlanmasını bekler. Saldırganın tam olarak ne kadar ilerleme kaydedebildiğini bilmiyordur ama durust blokların ortalama beklenen zamanda uretildiklerini varsayarsak saldırganın potansiyel ilerleme miktarı beklenen değere gore Poisson dağılımı olur:
C koduna donuşturursek …
#include
double SaldirganinBasariOlasiligi(double q, int z)
return sum;
}
Birkac denemenin sonunda gozlemliyoruz ki olasılık z ye bağlı olarak katlanarak azalıyor:
q=0.1
z=0 P=1.0000000
z=1 P=0.2045873
z=2 P=0.0509779
z=3 P=0.0131722
z=4 P=0.0034552
z=5 P=0.0009137
z=6 P=0.0002428
z=7 P=0.0000647
z=8 P=0.0000173
z=9 P=0.0000046
z=10 P=0.0000012
q=0.3
z=0 P=1.0000000
z=5 P=0.1773523
z=10 P=0.0416605
z=15 P=0.0101008
z=20 P=0.0024804
z=25 P=0.0006132
z=30 P=0.0001522
z=35 P=0.0000379
z=40 P=0.0000095
z=45 P=0.0000024
z=50 P=0.0000006
P yi %0.1 den kucuk değerler icin cozduğumuzde…
P < 0.001
q=0.10 z=5
q=0.15 z=8
q=0.20 z=11
q=0.25 z=15
q=0.30 z=24
q=0.35 z=41
q=0.40 z=89
q=0.45 z=340
Sonuc
Guvene dayalı olmayan bir elektronik transfer sistemi onerdik. Dijital imzalardan oluşan sıradan bir para sistemi modeliyle başladık. Bu sistem sahipliği duzgun bir şekilde kontrol edebiliyordu ancak cifte harcama problemini engellemediğinden eksikti. Bunu cozmek icin iş kanıtını işlem tarihcesini kaydetmek icin kullanan eşten-eşe bir ağ onerdik. Bu tarihceyi bir saldırganın değiştirmesi işlem gucunun coğunluğu durust duğumlerde olduğu surece neredeyse imkansızdır. Ağ kendi yapılandırılmamış basitliği icinde sağlamdır. Duğumler aynı anda cok az eş gudum ile calışır. Kimlik doğrulamasına gerek yoktur cunku mesajlar belirli bir yere doğru yonlendirmezler ve sadece diğer duğumlerin ellerinden geldiğince dağıtılır. Duğumler dilediklerinde ağdan ayrılabilirler ve tekrar katılabilirler. İş kanıtı zincirini kendileri ağda yokken olan bitenin kanıtı olarak kabul ederler. İşlem gucleri oranında oy kullanırlar, gecerli bloklar uzerinde calışarak ve uzamalarını sağlayarak kabul ettiklerini, uzerinde calışmayarak da reddettiklerini ifade etmiş olurlar. İhtiyac duyulan tum kurallar ve teşvikler bu uzlaşma mekanizması ile empoze edilebilir.
Satoshi Nakamoto’nun Bitcoin Makalesinin Turkcesi
Altcoinler0 Mesaj
●2 Görüntüleme
- ReadBull.net
- Teknoloji Forumları
- Kripto Para Forumları
- Altcoinler
- Satoshi Nakamoto’nun Bitcoin Makalesinin Turkcesi
-
11-09-2022, 02:59:33