Proof-of-Work nedir?

Diğerlerinin yanı sıra Bitcoin, Litecoin veya Dogecoin’de kullanılan Proof-of-Work protokolü, bir blok zincirinde istenmeyen eylemleri önlemek için ortaya çıktı. Bu protokol, daha sonra ağ tarafından doğrulanacak olan kullanıcının çalışmasını gerektirir. Bu çalışma, bir bilgisayar tarafından gerçekleştirilen bir dizi karmaşık hesaplama işleminin performansından başka bir şey değildir.

Proof-of-Work Nedir?

Bir bilgisayar tarafından gerçekleştirilmesi gereken karmaşık matematiksel işlemlere dayalı bir konsensüs algoritmasıdır. Proof-of-Work önemli miktarda hesaplama gerektirir, ancak yapılabilir. Kötü niyetli saldırganların bir hizmet reddi saldırısı veya %51 saldırısı başlatmasını engellemeye hizmet eder.

PoW, işlemlerin onaylanması ve yeni blokların oluşturulması için kullanılan bir mekanizmadır. Bu fikir birliği içinde madenciler, işlemleri doğrulamak ve yeni bloklar oluşturmak için rekabet eder. Hesaplamalı çalışmaları karşılığında, bitcoin cinsinden bir ödül alırlar.

Proof-of-Work kullanmanın nedenlerinden biri, çift harcama saldırılarını önlemektir. Ayrıca, %51 saldırısı gerçekleştirmeyi, bu saldırılardan birini başlatmanın mümkün olmayacağı kadar maliyetli hale getirmeye çalışır. Bütün bunlar karmaşık bir matematik bulmacası ve çözümün basit kanıtı ile sağlanır.

Proof-of-Work’ün Kökeni

İnternetin popüler hale geldiği 1990’larda en büyük büyüyen sorunlardan biri spam idi. Son kullanıcı tarafından büyük miktarda spam gönderilmesinden bahsediyoruz. Binlerce e-posta göndermek çok basittir ve göndermek isteyenler için maliyeti minimumdur. Bunu yapmak için, Proof-of-Work adı verilen bir sistem geliştirildi.

1992’de IBM Araştırma Departmanı çalışanları Cynthia Dwork ve Moni Naor, istenmeyen postayla mücadele için Proof-of-Work algoritmasını tasarladı. Böyle bir mekanizma, gönderenin, postaya imza olarak eklenen küçük bir iş yapmasını gerektirir. Bu iş sadece birkaç saniye sürer, bu da spam’i yürütmeyi zaman ve kaynak açısından maliyetli hale getirmeye yeter.

Adam Back, 1997’de bu istenmeyen posta önleme çözümünü aldı ve HashCash adlı istenmeyen posta önleme projesine ekledi. Back’in çözümüyle ilgili ilginç olan şey, bugün Bitcoin teknolojisinin kullandığı kriptografinin hemen hemen aynısını kullanmasıdır. Bitcoin teknik incelemesinde Satoshi Nakamoto, Back tarafından geliştirilen çözümden bahsediyor.

Bu, İş Kanıtı konsensüs algoritmasının Bitcoin’deki uygulamasından çok daha eski olduğu anlamına gelir. Başlangıçta spam ile mücadele etmek için geliştirilmiş olmasına rağmen, kripto para birimleri için bir güvenlik sistemi haline geldi.

Proof-of-Work Özellikleri

Çift harcamayı önleme

Aynı fonu birden fazla kez harcama süreci. Bir kripto para biriminde çifte harcama olma olasılığı, bunun yararlı olmayacağı anlamına gelir. Bir kullanıcı, aynı miktarda jetonu herhangi bir ücret ödemeden tekrar tekrar kullanabilir. Bu, hiçbir satıcı kabul etmeyeceğinden, madeni paranın hiçbir değeri olmadığı anlamına gelir.

Tam olarak bunu önlemek için bir güvenlik unsuru gereklidir. Bunun için, bu işlemi engelleyen, hesaplamalı olarak karmaşık bir matematiksel bulmaca oluşturulmuştur. Doğrulanmış ve bir bloğa eklenen bir işlemi değiştirmeye yönelik herhangi bir girişim mümkün değildir. Bir işlemi manipüle etmek, acımasız bir hesaplama maliyeti olan bloğu manipüle etmek anlamına gelir.

Manipülasyonun hesaplama maliyeti, blok eskidikçe katlanarak artar. Zincirde 1000 blok varsa ve 700 bloktan bir işlemi değiştirmek istiyorsak, işlemi, bloğu ve sonraki 300 bloğu değiştirmemiz gerekecek. Ancak buna ek olarak, blok zincirine eklenen tüm yeni bloklar durmadığı için manipüle edilmelidir. Ardından, blok zincirinin bir kopyasının tüm sahipleri, dolandırıcı hızlı bir şekilde tespit edileceğinden, mümkün olmayan bir şey olan yeni zinciri kabul etmelidir.

Matematik bulmacası

Matematik bulmacası hakkında konuştuğumuzda, gerçekten çok fazla hesaplama gerektiren bir matematik probleminden bahsediyoruz. Hesaplamayı çözmek için yalnızca bilgisayarların erişebildiği karmaşık işlemler gerçekleştirilir.

Bitcoin, bir hash fonksiyon sisteminden yararlanır. Bu sistem, bazı girdilerden matematiksel kurallara dayalı yarı rasgele bir çıktı alacağımızı belirler. Çıktı, kullanılan şifreleme sistemine dayalı bir uzunluğa sahiptir. Madencinin bildiği çıktıdır ve girdi parametrelerini kaba kuvvete (ve biraz da şansa) dayalı olarak bulması gerekir.

Tüm madenciler, matematik bulmacasını eşit şartlarda ilk çözen olmak için yarışırlar.

Zorluk

Problem, hesaplama açısından zor olmalı, ancak blok oluşturmayı yavaşlatacak kadar zor olmamalıdır. Çok zor olsaydı, işlemler birikecek ve bu da ağı saçma bir şekilde yavaşlatacaktı. Bloklar beklenen sürede üretilemezse, ağ tıkanır ve onu kullanmanın maliyeti (işlem ücretleri) fırlar.

Matematik bulmacası da aşırı basit olamaz, çünkü bu sorunlara yol açacaktır. Hizmet reddi saldırısı veya spam saldırıları başlatmak çok ucuz olabilir. Zorluğu dinamik olarak ayarlayan bir mekanizmanın entegrasyonu gereklidir. Bitcoin, diğer kripto para birimleri gibi, zaman zaman bunu yapan mekanizmalar eklerler. Bitcoin için matematik bulmacasının zorluğu her 2016 blokta bir ayarlanır.

Proof-of-Work nasıl çalışır?

İşlemlerin yapıldığı ve başlatıldığı anda duyurulan işlemler olduğunu anlamalıyız. Bu işlemler, blok zincirine ekleneceği varsayılan bir blok olan bir aday bloğa dahil edilmelidir. İşlemler ve aday bloklar, yalnızca blok blok zincirine eklendiğinde “iyi” olarak kabul edilir.

Zincire bir blok eklemek ucuz değildir, madencinin ağa sunulan kaynaklara dayanarak bir çalışma kanıtı geçmesi gerekir. Bir madencilik düğümünün kaynağı, problemin çözümünü bulana kadar blok verilerinin karmasını hesaplamak için gereken bilgi işlem gücüdür.

Bu işlem, geçerli bir karma oluşturmak için bloktaki tüm verilerin özetlenmesini gerektirir. Karmanın, blokta depolanan bilgiler için benzersiz ve tekrarlanamaz bir tanımlayıcı görevi gördüğünü unutmayın.

Girdileri almak için bir bloğun karmasını tersine çevirmek imkansızdır, pratik olarak imkansızdır. Çıktıdan girdi bulmak, muazzam miktarda bilgi işlem gücü (ve şans) gerektirir. Ancak girdiyi biliyorsak, hash’i onaylamak önemsiz hale gelir. Girdiyi hash fonksiyonundan geçirmek, çıktıyı almak ve doğru olduklarını doğrulamak için karşılaştırmak gerekir.

Hash’in rastgeleliği

İş kanıtı, hash değeri belirli koşulları karşılayan bir dizi verinin verilmesini gerektirir. Sorun, bu hash’in nasıl elde edileceğini bilmek. Verileri bir hash fonksiyonundan geçirmeli ve koşulların karşılanıp karşılanmadığını kontrol etmeliyiz. Elde edilen karma farklıysa, iki karma çakışana kadar verileri biraz değiştirmemiz gerekecek. Tek bir karakteri değiştirmenin çıktıyı değiştirmeyi gerektirdiğini hesaba katmalıyız.

Temel olarak bir blok oluşturmak, tahmin oyunları oynamaktır. Yapılan şey, eklemek istediğimiz işlemlere ait tüm bilgileri ve diğer önemli verileri alıp son olarak birleştirmektir. Veri kümesinin varyasyonları olmayacak, bu yüzden değişken olabilen bir eleman eklemeliyiz. Değişken bir değer veya parametre eklemezsek, her zaman aynı çıktı karmasını alırız. Değişken parametresi, yalnızca bir kez kullanılan ve her denemede değişen bir sayı olan nonce’dir. Bütün bunlar madenciliğin temelidir.

Basitçe söylemek gerekirse, madencilik, belirli bir nihai hash elde etmek için veri toplama ve bunları nonce ile birleştirme sürecidir. Ağın fikir birliği kurallarına uyan bir blok aldığımızda, yeni bloğu ekleyebiliriz. Ağ üyelerinin geri kalanının blok zinciri kopyası, onu eklemek için güncellenir.

Bir blok zincirinin hash oranı ne kadar yüksekse, geçerli hash’i bulmak o kadar zor olur. Bu mekanizma, blokların çok hızlı bulunmamasını sağlamak için eklenir. Bu nedenle, özel bilgisayar ekipmanı ile büyük miktarda karma bulmanın çok pahalı olduğu anlamına gelir. Hesaplama döngüleri ve elektrik israfıdır. Eğer geçerli hash bulursak, bir ödül alacağız.

Fonları taşımak

Fonları taşımak için, gerçekten bizim olduklarını gösteren kanıt gereklidir ve bu nedenle onları taşıma yetkimiz vardır. Bunun için asimetrik bir anahtar mekanizması kullanılır. Asimetrik anahtar, bir dizi rastgele kelimeden oluşan özel bir anahtarın üretilmesine dayanır ve buradan açık anahtar elde edilir. Özel anahtardan ortak anahtar oluşturmak çok kolaydır, ancak tersi işlem son derece zordur.

Bir işlem bir imza gerektirir. Ağ, ortak anahtarla imzayı doğrular ve her ikisinin de eşleşip eşleşmediğini kontrol eder. Bir sonraki adım, para olup olmadığını ve taşınıp taşınamayacağını kontrol etmektir. Girdilerin toplamının çıktılardan büyük olup olmadığı veya aynı olan, sahip olduğunuzdan fazlasını harcamadığınız da doğrulanır.

Geçersiz işlemler ve bunları içeren bloklar ağdan otomatik olarak reddedilecektir. Sahte bir işlem yapmak, işlemi onaylayan madenciye ödenen komisyonu kaybetmek anlamına gelir. Sahte bir işlemle blok oluşturmak, harcanan kaynaklar için ödüllendirilmeyecek steril bir hesaplama masrafıdır.

Proof-of-Work tam olarak yaptığı şey, dürüst olmanın çok ucuz olduğu, ancak hile yapmanın para, kaynak ve zaman açısından pahalı olması durumunu yaratmaktır. Mekanizma kötü niyetli saldırganları cezalandırıyor ve iyi oyuncuları ödüllendiriyor.

Proof-of-Work avantajları

  • Yüksek güvenlik: Ağdaki madenci sayısı ne kadar fazlaysa, ağın güvenliği de o kadar yüksek olur. Bu, bu tür bir konsensüs mekanizmasını büyük dağıtılmış ağlar için çok ilginç hale getirir.
  • Basit uygulama: Uygulanması çok basit bir fikir birliği olması ile karakterize edilir. Yalnızca bu mekanizmadan yararlanan madencilik yazılımı gerektirmesi, bunu kolaylaştırır. Ek olarak, denetimleri basitleştirerek ağ güvenliğini korumayı çok kolaylaştırır.
  • Donanıma uyarlanabilir: Belirli bilgisayar ekipmanı türlerine karşı direnç sağlayan eklentiler oluşturmak veya uygulamak için bir mekanizma olabilir. Ayrıca teknolojik gelişmelere uyarlanabilir, bu da onu kolaylaştırır veya zorlaştırır. Ayrıca, yeni üyelerin ve yeni teknolojilerin dahil edilmesine uyum sağlayarak ağın gücüne uyum sağlamanın zorluğuna da izin verir. Ek olarak, madenciliğin merkezileşmesini en aza indirmeyi amaçlayan bir mekanizmadır.
  • Kötü niyetli saldırılara karşı dayanıklı: Bu mekanizma, istenmeyen postaları önlemek ve ayrıca hizmet reddi saldırılarını önlemek için 1992 yılında geliştirilmiştir. Sayısız vesileyle etkisi kanıtlanmıştır.
  • Kaynak tüketimi: Sırasıyla enerji tüketimi gerektiren hesaplamalı çalışma gerektirir. Bu faktör, hile girişimini maliyetli hale getirir ve kötü niyetli saldırganların bir saldırı başlatmasını engeller. Ayrıca, iyi oyuncular dürüst oldukları için ödüllendirilir.

Proof-of-Work dezavantajları

  • %51 saldırısı: Çoğu madencinin ağı manipüle etmek için işbirliği yaptığı bir saldırıdır. Saldırganların çoğu ağ olayını kontrol etmek için yeterli güce sahip olduğunu varsayar. Ağın geri kalanının bloklarını reddederek, blok üretimini tekelleştirmeye, ödüller almaya izin verir. Ayrıca, işlemleri tersine çevirme veya harcamaları ikiye katlama yeteneklerine de sahiptirler. Bu tür bir saldırı için madencilerin n/2+1’i gereklidir, burada ‘n’ ağdaki toplam madenci sayısını temsil eder.
  • Enerji tüketimi: Manipülasyonu zorlaştıran hesaplama kapasitesi gibi büyük bir güç olan şey, enerji hakkında konuştuğumuzda bir sorun haline gelir. Bir madenci iyi soğutma gerektirir ve yüksek elektrik tüketimine sahiptir. Bunu, genellikle çiftliklerin sahip olduğu madenci sayısı olan yüzlerce veya binlerce ile çarparsak, muazzam bir tüketimden bahsediyoruz. Sorun şu ki, enerjinin çoğu kirletici kaynaklardan geliyor ve katılımın kanıtı yoluyla madenciliğin saldırıya uğradığı ana yönlerden biri haline geliyor.