Emek İspatı

Vikipedi, özgür ansiklopedi
Gezinti kısmına atla Arama kısmına atla

Emek ispatı (PoW), denial-of-service saldırıları ve bir ağ üzerinde bulunan spam mesajlar ile servislerin kötüye kullanımını, istemciden bir miktar iş yapmasını (genellikle bilgisayarın belirli bir süre işlem yapması anlamına gelir.) isteyerek önleme amaçlı ekonomik bir ölçüdür. Bu kavram, Cynthia Dwork ve Moni Naor tarafından 1993 tarihli bir dergi makalesiyle ilk kez ortaya konmuştur.[1] "Emek İspatı" terimi ya da POW ilk kez Markus Jakobsson ve Ari Juels tarafından 1999 tarihli bir yayında literatüre kazandırılarak resmileştirilmiştir.[2] Emek ispatı sisteminin bir para birimine değer kazandırmak amacıyla kullanıldığı ilk örneklerden biri Solomon Adalarında kullanılan shell moneydir.

Bu sistemlerin önemli bir özelliği asimetridir: Yapılacak iş istemci tarafında nispeten zor (ama makul derecede); hizmet sağlayıcı için ise kolay denetlenebilir olmalıdır. Bu düşünce, CPU maliyet fonksiyonu, istemci bulmacası, hesaplamalı bulmaca veya CPU fiyatlandırma fonksiyonu olarak da bilinir. CAPTCHA ise bilgisayar yerine insanlara çözdürmeyi amaçlamasıyla bu fikirden ayrılır. Alan ispatı (PoSpace) önerisi ise CPU zamanı yerine belirli bir miktar bellek veya disk kullanımını ispatlayarak aynı prensibi esas alır. Bant genişliği ispatı yaklaşımları, kriptopara bağlamında tartışılmıştır. Sahiplik ispatı, belli bir verinin ispatlayanda tutulduğunun kanıtlanmasını amaçlar.

Arka plan[değiştir | kaynağı değiştir]

Hashcashte kullanılan popüler bir sistem, işin yapıldığının ispatlanması amacıyla e-posta gönderiminde iyi niyet belirtisi olarak özetin kısmen ters çevrilmesini kullanır. Örneğin, aşağıdaki üstbilgi calvin@comics.net adresine 19 Ocak 2038 tarihinde bir mesaj göndermek için gereken yaklaşık 252 özet hesaplamasını göstermektedir:

X-Hashcash: 1:52:380119:calvin@comics.net:::9B760005E92F0DAE

Doğrulama, damganın (X-Hashcash: üstbilgi adı, iki nokta ve '1' rakamına kadar olan boşluklar göz ardı edilerek) SHA-1 özetinin ikilik sistemde 52 adet 0 veya onaltılık sistemde 13 adet 0 ile başlayıp başlamadığının kontrol edilmesi ile tek işlemde yapılabilir:[1]

0000000000000756af69e2ffbdb930261873cd71

PoW sistemlerin spam mesaj problemi gibi bir hizmet engelleme sorununu gerçekten çözüp çözmediği tartışma konusudur;[3][4] sistem, spam gönderen için spam eposta gönderimini verimsiz hale getirmeli ama aynı zamanda kötü niyetli olmayan kullanıcıların mesajlarını göndermelerine engel olmamalıdır. Diğer bir deyişle, gerçek bir kullanıcı eposta gönderirken herhangi bir zorlukla karşılaşmamalı ama bir e-posta spamcısı tek seferde birden fazla eposta gönderebilmek için yeterli miktarda işlem gücü harcamak zorunda olmalıdır. Emek ispatı sistemleri, Hashcash benzeri bir sistem kullanan bitcoin gibi daha karmaşık kriptografik sistemlerde temel olarak kullanılmaktadır .

Türevleri[değiştir | kaynağı değiştir]

Emek ispatı protokollerde iki sınıf vardır.

  • Meydan okuma-karşılık verme protokolleri, istekte bulunan (istemci) ve sağlayıcı (sunucu) arasında doğrudan bir etkileşimli bağlantı olduğunu varsayar. Sağlayıcı bir soru seçer, belirli bir özelliğe sahip bir kümenin ögesi diyelim, istekte bulunan taraf kümeden gerekli cevabı gönderir ve bu cevap sağlayıcı tarafından kontrol edilir. Soru, sağlayıcı tarafından o anda seçildiğinden, zorluğu mevcut yüküne göre ayarlanabilir. Meydan okuma-karşılık verme protokolünün bilinen bir çözüme (sağlayıcı tarafından seçilen) sahip olması ya da sınırlı bir arama alanı içinde var olması halinde talep eden taraftaki iş sınırlı olabilir.
Proof of Work challenge response.svg
  • Çözüm-doğrulama protokolleri böyle bir bağlantıya sahip değildir: Sonuç olarak, talepte bulunan kişi tarafından çözüm aranmadan önce problem bu kişi tarafından ortaya konulmalı ve sağlayıcı hem problem seçimini hem de bulunan çözümü kontrol etmelidir. Bu tür şemaların çoğu Hashcash gibi sınırsız olasılıklı yineleme prosedürleridir.
Proof of Work solution verification.svg

Bilinen çözüm protokolleri, sınırsız olasılıklı protokollerden biraz daha düşük bir varyansa sahip olma eğilimindedir, çünkü dikdörtgen dağılımın varyansı, (aynı ortalamaya sahip) Poisson dağılımının varyansından daha düşüktür. Çeşitliliği azaltmak için genel bir teknik, çok sayıda örneğin ortalaması daha düşük varyansa sahip olacağından birden fazla bağımsız alt-soru(sub-challenge) kullanmaktır.Şablon:Explain

Ayrıca, zaman-kilit bulmacası gibi sabit maliyetli fonksiyonlar da vardır.

Dahası, bu programlar tarafından kullanılan temel fonksiyonlar aşağıdakilerden biri olabilir:

  • CPU bağımlı: İşlem, yüksek uç sunucudan düşük uçlu taşınabilir aygıtlara kadar işlemcinin hızında (zaman içinde büyük ölçüde değişen) çalışır.[5] 
  • Bellek bağımlı:  Hesaplama hızı ana bellek erişimiyle (gecikme veya bant genişliği) sınırlıdır. Bu yüzden, performansın donanımdaki gelişmelere daha az duyarlı olması beklenir.
  • Ağ bağımlı:  İstemcinin az sayıda hesaplama yapması gerekiyor, ancak son hizmet sağlayıcısını sorgulamadan önce uzak sunuculardan bazı belirteçler toplaması gerekiyorsa kullanılır. Bu anlamda, iş aslında talepte bulunan kişi tarafından gerçekleştirilmez, ancak gerekli belirteçlerin elde edilmesinin gecikmesi nedeniyle gecikmelere neden olur.

Son olarak, bazı PoW sistemleri bir gizi, genellikle bir gizli anahtarı, bilen katılımcılara düşük maliyetli PoW'lar üretebilmelerine izin veren kısayol hesaplamalar sunar. Bunun sebebi, eposta listesi sahiplerinin yüksek bir maliyete maruz kalmadan her alıcı için damga üretebilmesidir. Böyle bir özelliğin istenip istenmediği kullanım senaryosuna bağlıdır.

Emek İspatı Fonksiyonları Listesi[değiştir | kaynağı değiştir]

Bilinen emek ispatı fonksiyonlarının bir listesi aşağıda verilmiştir:

  • Tamsayı karekök mod büyük bir asal sayı[1]
  • Fiat–Shamir imzalarının zayıflatılması
  • Pollard tarafından kırılan Ong–Schnorr–Şamir imzası
  • Kısmi özet ters çevirme[6][7][2] Bu çalışma, emek ispatı (PoW) fikrini formalize eder ve "bread pudding protokolünün bağımlı fikrini", "yeniden kullanılabilir emek ispatı" (RPoW) sistemini ortaya koyar.[8] Hashcash gibi.
  • Özet dizileri[9]
  • Bulmacalar[10]
  • Diffie–Hellman tabanlı bulmaca[11]
  • Moderate[12]
  • Mbound[13]
  • Hokkaido[14]
  • Cuckoo Döngüsü[15]
  • Merkle ağacı tabanlı[16]
  • Rehberli tur bulmaca protokolü[17]

E-para olarak yeniden kullanılabilir emek ispatı[değiştir | kaynağı değiştir]

Bilgisayar bilimcisi Hal Finney emek ispatı üzerine inşa edilmiş, yeniden kullanılabilir emek ispatı ("RPoW") kullanan bir sistem ortaya çıkarmıştır.[18] Bazı pratik amaçlar için yeniden kullanılabilir emek ispatları yapma fikri, 1999 yılında zaten gündeme gelmişti. Finney'in RPoW amacı, nominal değeri madeninden fazla olan para olarak kullanmaktı. Altın bir paranın değerinin, üretimi için gereken ham altının değeriyle desteklendiği düşünüldüğünde, bir RPoW jetonunun değeri, bir PoW jetonunun '' basılması '' için gerekli olan gerçek dünya kaynaklarının değeri ile garanti edilir. Finney'in RPoW sürümünde, PoW jetonu Hashcashin bir parçasıdır.

Bir web sitesi hizmet karşılığında bir PoW jetonunu talep edebilir. Kullanıcılardan gelen bir PoW jetonunun kullanılması, hizmetin; İnternet'e yönelik bant genişliği, hesaplama, disk alanı, elektrik ve yönetim yükü gibi temel kaynaklarının kullanımını sınırlandırarak, hizmetin anlamsız veya aşırı kullanımını engeller.

Finney'in RPoW sistemi, bir PoW sisteminden jetonları üretmek için gerekli olan işi tekrar etmeden rassal değiş-tokuşlara izin vermesiyle ayrılıyordu. Bir kişi bir web sitesinde bir "PoW" jetonu harcadıktan sonra, web sitesinin operatörü yeni harcanmamış bir RPoW jetonu için "harcanan" PoW jetonunu değiştirebilirdi, bu da RPoW jetonlarını kabul etmek üzere benzer şekilde donatılmış bir üçüncü parti web sitesinde harcanabilirdi. Bu, bir PoW jetonu '' basmak '' için gerekli olan kaynakları koruyacaktı. RPoW jetonunun sahtecilik karşıtı özelliği,  uzaktan onaylama ile garanti edilmişti. Aynı değerde yeni bir adet için kullanılan bir PoW veya RPoW jetonunu değiştiren RPoW sunucusu, ilgili tarafın hangi yazılımın RPoW sunucusunda çalıştığını doğrulamasına izin vermek için uzaktan onaylama kullanır. Finney'in RPoW yazılımı için kaynak kodu (BSD benzeri bir lisans altında) yayınlandığından, yeterince bilgili bir programcı, kodu inceleyerek, yazılımın (ve buna bağlı olarak, RPoW sunucusunun) eşit değerde harcanan bir jeton karşılığı haricinde hiçbir zaman yeni bir jeton vermediğini doğrulayabilir.

2009 yılına kadar, Finney sistemi gerçeklenen tek RPoW sistemiyken asla ekonomik olarak önemli bir kullanım görmedi.

RPoW, güvenilen platform modülü (TPM) donanımında saklanan gizli anahtarlar ve TPM gizli anahtarlarına sahip üreticiler tarafından korunmaktadır. Bir TPM üreticisinin anahtarını çalmak ya da TPM yongasının kendisini inceleyerek anahtarı elde etmek, bu garantiyi bozar.

Bitcoin tipi emek ispatı[değiştir | kaynağı değiştir]

2009 yılında, Bitcoin ağı çevrimiçi oldu. Bitcoin, Finney'in RPoW'u gibi Hashcash PoW'a dayanan bir emek ispatı kriptoparasıdır. Ancak, Bitcoin'de çift harcama koruması, RPoW tarafından kullanılan donanım güvenilir hesaplama fonksiyonu yerine, para transferlerini izlemek için merkezi olmayan bir P2P protokolü ile sağlanır. Bitcoin, daha iyi güvenilirliğe sahiptir çünkü hesaplama ile korunmaktadır. Bitcoinler, bireysel madenciler tarafından Hashcash emek ispatı fonksiyonu kullanılarak "çıkarılır" ve P2P bitcoin ağındaki merkezi olmayan düğümler tarafından doğrulanır.

Blok süresini hedeflenen sürenin civarında tutabilmek için zorluk periyodik olarak ayarlanır. .

Kullanışlı emek ispatı[değiştir | kaynağı değiştir]

Birçok PoW sistemi, istemcilerin bir özet fonksiyonunu tersine çevirmek gibi işe yaramaz işleri yapmasını gerektirir. Bu, birçok kaynağın (özellikle istemcinin bilgisayarlarına güç veren elektrik) sadece para birimine güven sağlamak için kullanıldığı anlamına gelir. Bu kaynak harcamaları ile daha verimli olmak için, bazı alternatif paralar, gerçekleştirilen işin gerçekten yararlı olduğu bir PoW sistemi kullanır. Örneğin, Primecoin , istemcilerin belirli türlerde bilinmeyen asal sayıları bulmasını gerektirir, bunun da kullanılabileceği yan uygulamalar olabilir (bkz. Primecoin#Proof-of-work system).

Ayrıca bakınız[değiştir | kaynağı değiştir]

  • Bitcoin
  • Kriptopara
  • Bitmessage
  • Hisse ispatı

Notlar[değiştir | kaynağı değiştir]

1. Çoğu Unix sistemde tek bir komutla doğrulanabilir: echo -n 1:52:380119:calvin@comics.net:::9B760005E92F0DAE | openssl sha1

Kaynakça[değiştir | kaynağı değiştir]

  1. ^ a b Dwork, Cynthia; Naor, Moni (1993). "Pricing via Processing, Or, Combatting Junk Mail, Advances in Cryptology". CRYPTO’92: Lecture Notes in Computer Science No. 740. Springer, s. 139–147.  Kaynak hatası: Geçersiz <ref> etiketi: "DwoNao1992" adı farklı içerikte birden fazla tanımlanmış. (Bkz: Kaynak gösterme) Kaynak hatası: Geçersiz <ref> etiketi: "DwoNao1992" adı farklı içerikte birden fazla tanımlanmış. (Bkz: Kaynak gösterme)
  2. ^ a b Jakobsson, Markus; Juels, Ari (1999). "Proofs of Work and Bread Pudding Protocols". Communications and Multimedia Security. Kluwer Academic Publishers, s. 258–272. 
  3. ^ Laurie, Ben; Clayton, Richard (May 2004). "Proof-of-work proves not to work". WEIS 04. 
  4. ^ Liu, Debin; Camp, L. Jean (June 2006). "Proof of Work can work - Fifth Workshop on the Economics of Information Security". 20 Ağustos 2017 tarihinde kaynağından arşivlendi. 
  5. ^ How powerful was the Apollo 11 computer?[ölü/kırık bağlantı], a specific comparison that shows how different classes of devices have different processing power.
  6. ^ Back, Adam. "HashCash". 29 Eylül 2017 tarihinde kaynağından arşivlendi.  Popular proof-of-work system. First announce in March 1997.
  7. ^ Gabber, Eran; Jakobsson, Markus; Matias, Yossi; Mayer, Alain J. (1998). "Curbing junk e-mail via secure classification". Financial Cryptography, s. 198–213. 
  8. ^ Wang, Xiao-Feng; Reiter, Michael (May 2003). "Defending against denial-of-service attacks with puzzle auctions" (PDF). IEEE Symposium on Security and Privacy '03. 
  9. ^ Franklin, Matthew K.; Malkhi, Dahlia (1997). "Auditable metering with lightweight security". Financial Cryptography '97.  Updated version May 4, 1998.
  10. ^ Juels, Ari; Brainard, John (1999). "Client puzzles: A cryptographic defense against connection depletion attacks". NDSS 99. 
  11. ^ Waters, Brent; Juels, Ari; Halderman, John A.; Felten, Edward W. (2004). "New client puzzle outsourcing techniques for DoS resistance". 11th ACM Conference on Computer and Communications Security. 
  12. ^ Abadi, Martín; Burrows, Mike; Manasse, Mark; Wobber, Ted (2005). "Moderately hard, memory-bound functions". ACM Trans. Inter. Tech. 5 (2), s. 299–327. 
  13. ^ Dwork, Cynthia; Goldberg, Andrew; Naor, Moni (2003). "On memory-bound functions for fighting spam". Advances in Cryptology: CRYPTO 2003. Springer. Cilt 2729, s. 426–444. 
  14. ^ Coelho, Fabien. "Exponential memory-bound functions for proof of work protocols". Cryptology ePrint Archive, Report. 
  15. ^ Tromp, John (2015). "Cuckoo Cycle; a memory bound graph-theoretic proof-of-work" (PDF). Financial Cryptography and Data Security: BITCOIN 2015. Springer. ss. 49–62. 5 Temmuz 2017 tarihinde kaynağından (PDF) arşivlendi. 
  16. ^ Coelho, Fabien. "An (almost) constant-effort solution-verification proof-of-work protocol based on Merkle trees". Cryptology ePrint Archive, Report. 26 Ağustos 2016 tarihinde kaynağından arşivlendi. 
  17. ^ Abliz, Mehmud; Znati, Taieb (December 2009). "A Guided Tour Puzzle for Denial of Service Prevention". Proceedings of the Annual Computer Security Applications Conference (ACSAC) 2009. Honolulu, HI, s. 279–288. 
  18. ^ "Reusable Proofs of Work". December 22, 2007 tarihinde kaynağından arşivlendi. 

Dış bağlantılar[değiştir | kaynağı değiştir]

  • Finney's system at the Wayback Machine (22 Aralık 2007 tarihinde alınmıştır.)
  • bit gold Bit gold. Emek ispatı fonksiyonları ve bu fonksiyonların kullanımıyla ortaya çıkan makine mimarisi sorununa dayanan eksiksiz bir para sistemini (üretim, depolama, deneme ve aktarma dahil) açıklar.