PoW vs PoS

Bu yazı blokzincirlerde kullanılan Proof-of Work ve Proof-of Stake mekanizmalarını derinlemesine analiz etmektedir. Yazıda verilen bilgilerin birçoğu blokzincir literatürüne girmiş ve kabul edilmiş bilgiler olup, ara ara kişisel gözlem, araştırma ve yorumlara dayalı yerler tarafsız bir şekilde irdelenmektedir. Bütün PoW ve PoS sistem yapıları temelden alınacak ve detaylı bir şekilde incelenecektir. Bu kılavuz niteliğindeki yazı PoW ve PoS sistemlerin anlaşılmasında Türkçe veya yabancı kaynaklar içerisinde en kapsamlı örneklerden biridir.

Tobby Kitty

Yazının içeriği

  1. Blokzincir temeli ve bloklar nedir?
  2. PoW nedir? Neden PoW var?
  3. PoS nedir? Neden PoS var?
  4. İlk blokzincirlerde neden PoS yoktu ve PoS atak vektörleri nelerdir?
  5. Farklı uygulanan PoS sistemler.
  6. PoW vs PoS.
  7. Ethereum’un PoS yolculuğu.
  8. PoW ve PoS hakkında yanlış bilinenler.
  9. Son sözlerim ve yorumlarım.

1. Blokzincir temeli ve bloklar nedir?

DLT (Distributed Ledger Technology, Dağıtık Defter Teknolojisi) çeşitli verilerin (transferler, hesap ekstreleri vs.) merkeziyetsiz kişiler tarafından yazılıp, kayıt edilerek herkes tarafından erişilebilir, güncellenebilir, doğrulanabilir olmasına imkan sağlayan teknolojilerdir.

Kısaca DLT dediğimiz teknoloji sistem üzerindeki bütün kayıtları birçok kişiye dağıtmaya yarayan ve herkesin bu kayıtları saklayıp verilerin güvenliğini temin etmesi prensibine dayanan teknolojidir. Blokzincirler ise bu DLT denilen teknoloji ailesinin bir üyesidir.

Blokzincirler aslında birer bilgisayar programından ibarettir, herkes bu bilgisayar programını bilgisayarına indirip içerisindeki verilerin güvenliğini, değiştirilemezliğini ve doğruluğunu sistemdeki diğer kişilerle birlikte teyit ederler.

Her blokzincir merkeziyetsiz değildir, hatta bugün kriptoda birçok proje merkeziyetsizlik ten bir hayli uzaktır. “Blokzincirler merkeziyetsizdir.” cümlesi kesinlikle yanlıştır. Daha doğru ifade edecek olursak, “Blokzincirler merkezi olabilirler” çünkü bir blokzincire merkeziyetsiz demek için o blokzincire rahatlıkla katılım (yani yukarıda anlattığım blokzincir verilerinin herkes tarafından indirilmesinin kolay olması) gerekmektedir.

Diğer bir ifade ile, Blokzincirlerin merkeziyetsizliği, o blokzincirin kişilerin kolaylıkla blokzincir üzerindeki verileri indirmesi ve bunların güvenliğinin ve doğruluğunun teyit etmesi ile ölçülür. Eğer bir blokzincirde rahatlıkla bu işlemleri yapamıyorsanız (bahsettiğim duruma “node” kurma diyoruz.) o blokzincir merkezidir. Sadece bununla da kalmıyor, blokzincirler sürekli büyüdükleri için (yazıda detaylandıracağım) blokzincirlerin büyüme hızı da artarsa (örneğin blokları büyütmek) bu verileri başta indirmek kolay olsa da ileride zorlaşarak ve merkezi bir hal alıyor.

Blokzincirleri anladım, bunlar birer dağıtık defter teknolojisi ve herkesin bilgisayarına indirip merkeziyetsizlik sağladığı bir veri tabanından ibaret. Peki bu “blok” ve “zincir” nereden geliyor?

Blok ve zincir kelimeleri blokzincirlerin verileri nasıl işlediği ile alakalı bir durum. Blokzincirler yukarıda anlattığım verileri “blok” adı verilen minik veri paketleri içinde saklıyor. Yani blokzincir üzerinde yapılan her transfer, üretilen her NFT, yapılan en ufak işlem veri içermektedir ve bu veriler blok adı verilen bilgi paketçikleri içinde saklanmaktadır. Örneğin bu veri paketleri Bitcoin’de 10 dakikada blokzincire eklenmektedir. İşte “zincir” meselesi de buradan geliyor. Bu veri paketleri denilen “bloklar” birbiri ardına eklenerek, benzetecek olursak “ip gibi” diziliyor.

Belki neden bloklara ihtiyaç var veya neden her blok belli bir süre ile çıkıyor gibi bir soru sorulabilir. (Bu soruya bayılıyorum. :)) Cevabı aslında çok güzel. Dünya üzerinde Türkiye’de benim blokzincir üzerindeki yaptığım işlemleri Papua Yeni Gine’de node kuran adamın bilgisayarına indirmesi gerekiyor. Dolayısı ile bu minik bilgi paketlerinin Dünya’daki diğer bilgisayarlara (node’lara) dağılmasını bekliyoruz.

Örneğin 1 MB’lık bir Bitcoin bloğu Dünyada Bitcoin node’u kuran herkesin bilgisayarına gidiyor ve bu bilgi indiriliyor. Blok süresini 10 dakika değil de, 1 saniye yapsak ve 1 MB yerine 100 MB yapsaydık bu bilgisayarlar çok kısa bir süre içerisinde bu kadar büyük bilgilerini indiremeyecekti. Gördünüz mü, işte blokzincirler bu yüzden ölçeklenemiyor, belli bir zamanda sadece belli büyüklükte minik bilgi paketlerini gönderebiliyoruz. 🙂 Bloklar hızlı veya büyük çıkarsa bu node’lar blokzinciri yakalayamayacak, sadece bilgisayarı ve interneti çok hızlı olan bilgisayarlar bu verileri indirebilecek, böylelikle yukarıda dediğim gibi node kurmak zorlaşacak ve sadece belirli kişiler node kurabilecek ve merkeziyetsizlik bozulmuş olacak.

Neyse, devam edelim.. Blokların eklenme meselesinde çıkaracağımız ilk şey, BLOKZİNCİRLER SONSUZDUR. ÇÜNKÜ İŞLEM YAPILDIKÇA BLOK EKLENECEKTİR. Unutmayın, bloklar içerisinde veri saklayan minik paketçiklerdir. Blokzincirde işlem yapıldıkça bu paketler eklenmeye devam edecektir. Bitcoin, Ethereum vs. blokzincir teknolojisini kullanan her kripto para, işlem yapıldıkça sonsuza kadar blok çıkaracaktır ve bu bloklar blokzincire eklenmeye devam edecektir. Hani Bitcoin 21 Milyonda sınırlıydı diye sorabilirsiniz, sınırlı olan BLOK BAŞINA VERİLEN ÖDÜLDÜR. (Bu kısma geleceğiz.) Tekrar ediyorum, bloklar sonsuzdur.

Özet, blokzincirler dağıtık veri tabanlarından ibaret sistemler olup, prensibi herkesin bilgisayarına indirip, bu veri tabanındaki verileri doğrulamasına ve saklamasına dayanmaktadır. Bloklar minik veri paketleridir, blokzincirlerde işlem yapıldıkça sonsuza kadar eklenmeye devam edeceklerdir. Her blok bir öncekine eklenip devam ettiği için zincir diyoruz. Bu kadar.

Şimdi yazının bütün seyrini değiştirecek ve ana konuya odaklanacağımız soru geliyor:

BU BLOKLARI KİM EKLİYOR?

O zaman sansasyonel bir cümle ile başlayalım: BLOKLARIN EKLENMESİ İÇİN MADENCİLİĞE DE STAKING YAPMAYA DA GEREK YOKTUR. Blokzincirlere herkes blok ekleyebilir. Bu sistemi anlamak için bizim öncelikle blokzincirdeki blokların anatomisini ve fizyolojisini bilmemiz gerekiyor.

Ethereum’da bir bloğun anatomisi aşağıdaki gibidir, ancak ben bunu anlaşılması kolay olsun diye sadeleştirdim.

Aşağıda çok fazla sadeleştirerek bir bloğun anatomisini çizmeye çalıştım. Kısacası blok gövdesi, blokzincir üzerindeki transferlerin bilgisini içerirken, blok başlığı bir nevi özetler ve belirli hash fonksiyonları içeriyor.

“TC kimlik numarası” yazdım, bunlar aslında bloğa ait Hash değerleridir, her blok için tektir. Her bloğun hash değeri farklıdır. Aynı TC kimlik numarası gibi. Bu bilgiyi unutmayın. İleride kullanacağız. 🙂

Blok gövdesindeki transferler, hepimizin blokzincir üzerinde yaptığı işlemlerdir. Bu işlemler MEMPOOL adı verilen bir yerde birikir. Blokzincirde yukarıda bahsettiğim bilgisayarına blokzinciri indiren kişiler yani node’lar bu Mempool adı verilen yerde bekleyen transferleri blokların içerisine doldurup blokzincire eklerler. Her blok da bir sonrakinin TC kimlik numarasını teyit ederek zincire eklenir ve node’lar bir sonraki bloğu eklemek için transferleri tekrardan bloklara eklemeye ve zincire takmaya devam ederler.

İşte blokzincir budur. Blok eklemek için madenciye, staking’e gerek var mıymış? HAYIR.

Şimdi konuya giriyoruz. 🙂 Yukarıda şöyle bir cümle kullandım, Papua Yeni Gine’deki adam da ben de node kuruyorum. Dünyadaki herkes ile gelen bloktaki bilgileri paylaşıp yola devam ediyoruz.

Peki, şöyle bir durumda ne olacak? 5 blok içeren bir blokzincirde 6. bloğu eklemek için ben ve Papua Yeni Gine’deki adam mempool’daki transferleri yeni eklenecek bloğun içerisine dolduruyor olsun. Birbirinden haberdar olmayan bu iki kişi 6. bloğu aynı anda blokzincire eklesin. (İkisi de dürüst kişiler doğru transferleri blok içerisine koydular, hiçbir üç kağıt yok diyelim.) 5. bloğa iki adet blok eklenecektir. Ve şöyle bir görüntü ortaya çıkacaktır:

İki blokta doğru, her iki blokta Blok 5’in TC kimlik numarasına uygun. (Yukarıdaki örneği hatırlayın) yukarıda blokzincirler ip gibi dizilir demedik mi? O zaman bu ne ayak? Hangisini kabul edeceğiz? Ya da olayı daha da karıştırayım. Benim bloğumu ilk görüp kabul eden Dünya’daki diğer adamlar ile Papua Yeni Gine’linin bloğunu ilk görüp kabul eden adamlar blok eklemeye devam etmesi durumunda şöyle bir senaryo ile karşılaşacağız:

Yukarıdaki gibi bir senaryo durumunda ne yapacağız? Hatta Blok 9 üçkağıt çevirerek belki de kafasına göre olmayan transfer bilgilerini gerçekmiş gibi blokzincire yazmış olabilir. (Kırmızı bloklar zincirdeki üç kağıtçı ve doğru bilgileri içermeyen blokları temsil ediyor.) Hatta mevzu çatallanan yerlerin birinde dahi çatallanmaya yol açabilir. Unutmayın merkeziyetsiz blokzincirler tamamen “Permissionless”tır isteyen her kişi kimseden izin almadan istediği şekilde blokzincire katılabilmektedir. Bu tip durumlarda ne yapacağız?

Kim doğru? Nasıl bir karar vereceğiz? Blokzincir masum veya art niyetli kişiler fark etmeksizin çatallanırsa (yukarıdaki örnekte 6. bloktaki çatallanma gibi) hangisini izleyeceğiz? Kırmızı bloklardan sonra doğru bloklar eklenirse bu kırmızı blokları sistem dışına nasıl çıkaracağız? Tamamen bağımsız çalışan ve merkeziyetsiz olan bu blokzincirde doğruluğu ve güveni nasıl sağlayacağız?

Satoshi Nakamoto sohbete katıldı:

2. PoW nedir? Neden PoW var?

Yukarıdaki yazı Satoshi Nakamoto tarafından yazılmış, tüm Dünya’ya nüfuz eden yepyeni ve devrim yaratan buluş olan Bitcoin’in white-paper’daki özet kısmıdır. Satoshi Nakamoto yukarıda bahsettiğimiz blokların doğruluğu ve blokzincirlerin “çatallanma” sorununu Adam Back’in “Hashcash” adı verilen projesinde kullanmış olduğu Proof-of-work adı verilen sistem ile kökünden çözmüştür. Peki nedir bu Proof-of-work, yukarıdaki sorunu nasıl çözdü birlikte inceleyelim.

Satoshi Nakamoto Bitcoin blokzincirinde blokzincirin doğruluğu için çok basit bir kural getirmiştir. Bu kural yukarıda altını çizdiğim “Longest Chain” kuralıdır. Bu kural şunu der: UZUN OLAN ZİNCİR DOĞRU ZİNCİRDİR. UZUN ZİNCİRİ TAKİP ET. Yani gelen bloklar en uzun olan zinciri tercih etmelidir. Böylelikle zincirin çatallanması engellenmiş olur.

Peki, kötü niyetli kişiler zincire çok hızlı kötü bloklar ekleyip daha uzun bir zincir yapsa ne olurdu? Örneğin;

Bu durumda yeni gelen blok 6’dan 9’a kadar olan kötü niyetli bloklara katılacaktır. Böylelikle blokzincirdeki güvenirlilik sarsılacaktır. Bundan dolayı Satoshi Nakamoto bir kural daha getirmiştir. Bu da üstte yazmaktadır. Satoshi blok basmak için CPU gücünü esas almıştır. İşte bu CPU gücü Proof-of-work’ün temelini oluşturmaktadır. Diğer bir deyişle, CPU gücü fazla olan kişinin blok üretme şansı diğerlerine göre daha fazladır. İşte CPU gücüne göre blok üreten bu kişilere madenci diyoruz. 2 adet madencinin eşit CPU gücüne sahip olduğu bir blokzincirde her ikisinin de blok üretme şansı %50 – 50%’dir. Madencilerden biri blok çıkarmak için maden cihazlarına ek olarak birkaç cihaz daha eklerse daha fazla blok çıkarabilme şansı kazanmış olur.

Yukarıdaki görselde Bitcoin’in ilk zamanlarında blok kazmak için gereken ilk ASIC madenci cihazlarını görüyorsunuz. Daha çok blok kazmak için madenciler yarışa girmeye başlamış, ellerindeki madenci cihazlarını artırmaya başlamış ve neticede aşağıdaki gibi devasa madencilik şirketlerinin yönettiği maden cihazları kullanılmaya başlanmıştır.

Kısacası, MADENCİ denilen kişiler işte Satoshi’nin koyduğu CPU gücü daha fazla olan blok üretsin kuralını bilip bu kurala göre hareket eden Bitcoin blokzincirindeki YENİ BLOKLARI EKLEYEN KİŞİLERDİR. Eğer CPU gücüne göre blok ekleme kuralı olmasaydı, herkes rahatlıkla blok ekleyebilseydi, “uzun zinciri takip et” kuralı manipüle edilmiş olacaktı. Çünkü CPU gücü kısıtlı ve aynı zamanda maliyetli bir işlemdir. (Hem donanım, hem elektrik)

Hazır yeri gelmişken bunu da eklemek gerekir, madem CPU gücü fazla olan blok ekleyebiliyorsa, üç kağıtçı insanlar CPU gücünün büyük kısmını ele geçirince kötü blok ekleyemezler mi sorusu akla gelir.

Bu sorunun da cevabı, evettir. Hemen hemen herkesin konuştuğu %51 atak işte bu ataktır. %51 atak, sistemdeki CPU gücünün %51’inden fazlasının tek kötü niyetli adam elinde olması durumudur. Bu durumda %51 ve fazla CPU gücü olan adam kötü blokları sisteme ekleyebilecektir. Ölümcül bir atak değildir, ancak blokzincire duyulan güveni ciddi anlamda baltalamaktadır. %51 ataklardan da sıyrılabiliriz. Ancak zaten uzun olan bu yazıyı ciddi anlamda uzatacağı için bu kısmı atlıyorum. Twitter’da ufak bir %51 atak flood’u yazmıştım onu okuyabilirsiniz. 🙂

Diğer bir soru da şu olacaktır. Peki her iki chain’de eşit şekilde uzarsa ne olur? Aynı anda üst üste blok bulunduğu ve her bloğun da dürüst olduğu durumda ne olacaktır? Görselden gidelim:

Yukarıdaki zincirde bütün bloklar doğrudur. Şans eseri bu şekilde bir çatallanma gerçekleşmiş ve 10. blok 5’er adet bloktan oluşan bu çatallardan birini tercih edecektir. Hangisini tercih ederse etsin. Herhangi birisini tercih etmesi durumunda 6 bloktan sonra diğer taraftaki bloklar “Orphan” Blok olarak nitelendirilir ve blokzincir tarafından yok sayılır.

Alttaki çataldaki bloklar Orphan (Yetim) blok olmuştur. Artık blokzincir için muteber kabul edilmezler. Bu blokları bulan madencilere de ödül verilmez. Bitcoin için Orphan olma durumu 6 bloktur. Ve bu yüzden Bitcoin’de “Finality” 1 saattir diyoruz. Yani işlemlerin kesinlikle blokzincirde kayıtlı olup geri döndürme ihtimalinin çok düşük olması durumu 6 blok sonradır. (Her blok 10 dakika, dolayısı ile 1 saat)

(Diğer blokzincirlerde yapısal değişiklikler vardır, örneğin, Ethereum’da Uncle Block terimi vardır teker teker yazmak yazıyı çok fazla uzatacağından geçiyorum.)

PoW özetle gelen blokların CPU gücü baz alınarak oluşturulmasıdır. Bu yüzden “madenci” “madenci cihazları” gibi terimler türemiştir. PoW için bir konsensus mekanizması mıdır, Sybil koruması mıdır (üçkağıtçılara karşı sistemi koruyan mekanizma) sorusu yöneltilebilir. Açıkçası bunun hiçbir önemi yoktur. Her ikisidir, her ikisi de değildir denebilir. “Uzun zinciri takip et” bir konsensus mekanizmasıdır, çünkü sistemin karar almasını sağlar. “CPU gücü olan blok üretsin” kuralı ise Sybil korumasıdır çünkü herkesin üç kağıtçı blok üretmesinin önüne geçer. PoW konsensus mekanizmasıdır derseniz sizi ayıplayacak değiliz. 🙂 Ben PoW için fork-choice rule’dur diyorum. (Yani çatallardan hangisinin doğru olduğuna karar veren kural) Yazının ileri kısımlarında neden böyle dediğimi daha da açacağım.

Madenciliğin iki temel gideri var. CPU donanım gücü ve elektrik masrafı. İşte bu iki masrafı karşılayabilmek için dürüst olan madenciler yukarıda bahsettiğim TC kimlik numaralarını doğru eşleştirip blokzincire eklediği her bloktan blok ödülü alıyor ve blok gövdesi içindeki transferlerin ücretlerini de cebine atıyor.

Kısacası PoW’te madenciler, transferleri blokların içerisine ekliyor, bu blokları blokzincire takıyor ve bunun için CPU ve elektrik harcıyor ve bütün bu işlemler için Bitcoin ödülü alıyor.

PoW’u anladık. Diğer soru geliyor peki PoS nedir?

3. PoS nedir? Neden PoS var?

Hemen biraz önce okuduğumuz bilgilerimizi tekrar edelim:

  1. Blokzincirlerde blok eklemek için madencilik veya staking yapmaya gerek yoktu. Blokzincire herkes blok ekleyebilir.
  2. PoW’deki CPU gücü eklenen blokların sadece doğruluğu için oluşturulmuş bir mekanizmadır.

Proof-of-Stake denilen sistem ise aynen bu iki bilgiye dayanarak çıkmış bir mantaliteden oluşuyor. Blokzincire herkes blok ekleyebiliyorsa neden PoW’e ihtiyaç duyuyoruz? Çünkü herkesin blok eklediği bir ortamda blokzincirdeki güvenlik sekteye uğruyor bundan dolayı KISITLI VE DEĞERLİ OLAN CPU GÜCÜNÜ blok eklemek için Satoshi Nakamoto sisteme entegre etmiş durumda.

Peki blok eklemek için sadece o blokzincirdeki coinleri kullansaydık ne olurdu? (Olası tehlikelere ve atak vektörlerine daha sonra değineceğim. Şu an sadece PoS mantığını anlatıyorum.) Çünkü coinler de tıpkı PoW’deki CPU gücü gibi kısıtlı, aynı zamanda herkes istediği gibi kafasına göre coin üretemeyeceği için herkesin blok basması engellenmiş olacaktır.

İşte PoS denilen sistem budur. Yukarıdaki anlattığım bütün blok üretmek için gerekli node’lardaki CPU gücü yerine belli bir node’daki coin miktarına göre yapılması durumudur. PoW’de anlattığım her şey temelde PoS için de geçerlidir.

Yukarıda anlattığım PoW sisteminde toplam CPU gücü 100 olsun diyelim, 50 – 50 paylaşan iki madenci eşit olasılıkta blok üretme imkanına sahiptir. PoS’te de aynıdır. İkişer 50 adet coini olan stakerların da blok üretme olasılığı eşittir. PoW’da öne geçmek isteyen ekstradan CPU gücü almalıdır, PoS’de ise daha çok coin alıp staking yapmalıdır. (Farklılıklara değineceğim burada sadece genel olarak PoS’in mantığını anlatıyorum.)

Yukarıda anlattığım gibi PoS ile PoW’un ciddi farkları yoktur. Tek fark blok doğruluğunun teyit edilmesi için her ikisinin de sınırlı ve kolay bir şekilde elde edilemeyen bir şekilde yapılmak istenmesi ile yola çıkılan birinin kısıtlı CPU gücüne diğerinin ise kısıtlı coin miktarına göre yapılmasıdır. Terminolojik olarak da aralarında çok fark yoktur.

  • PoW’deki Madenci –> PoS’deki Validator’dür. (Her ikisi de node kurar.)
  • PoW’deki blok çıkarma işine Mining denir –> PoS’deki blok çıkarma işine Minting denir.
  • NAKAMOTO’NUN UZUN ZİNCİRİ TAKİP ET KURALI HER İKİSİNDE DE GEÇERLİ OLABİLİR. (PoW sistemler direkt bu kuraldır, PoS’de bu kural da uygulanabilir, başka kural da belirlenebilir. İlerideki başlıklarda anlatacağım.)

PoS’i anladık, gelen blokların doğruluğu için CPU gücü değil de coinleri kullanan bir sistemdir. Farklarına, artısına eksisine, yanlış bilinenlerine vs. vs. diğer başlıklarda değineceğim. Bu başlıkta sadece PoS’u tanıttım.

4. İlk blokzincirlerde neden PoS yoktu ve PoS atak vektörleri nelerdir?

Bitcoin 2008 yılında temelleri Satoshi Nakamoto tarafından atılan, merkeziyetsiz ve kullanıma hazır en optimal kripto paradır.

Satoshi Nakamoto’nun ilk maillerinden biri olan yukarıdaki örnekte 1 Kasım 2008’de Bitcoin’i birçok kişiye tanıtmaya çalıştığını görüyoruz. Bu mailde bile Proof-of-work ile Double-spending’i çözdüğünü söylüyor. (Double-spending’i anlatacağım.) Peki ilk PoS kripto para ne zaman çıkmıştır?

Peercoin PoS ile çalış(abilen)an ilk kripto para örneğidir. Bitcoin’den tam 4 yıl sonra, Peercoin 2012 yılında çıksa da çıktıktan sonra PoS sistemlerdeki bir çok hata baş göstermiştir ve bundan nasibini almıştır. 1 PPC fiyatı 2013 yılında 8 Dolara kadar ulaşmış, hatta kriptonun market büyüklüğünde en büyük 4. coini olmuştur. Ancak PoS sistemlere tanımlanan tonlarca hatadan sonra Peercoin tarih sayfasından silinmiştir. (Blokzincirler ölmez ancak Peercoin sıralamada en son 1200. sıradaydı.)

2009 – 2017 arası açıkçası PoW sistemlerin yılıydı. Çünkü PoS sistemlere olan atak vektörleri henüz tam olarak çözülmemişti. PoS sistemlere güven son derece düşüktü. PoW/PoS hibrid sistemler denenmiş ancak çözüm tam olarak yapılamamıştı. (Bütün hepsini açıklayacağım.)

Tobby Kitty olarak aklıma gelen PoS sistemlerdeki en kritik ve can sıkıcı atak vektörlerini yazacağım ve birkaçını öğrendiğimiz bilgiler ışığında açıklamaya çalışacağım:

  • Nothing-at-stake atak
  • Sabotaj atak
  • Grinding atak
  • Coin age accumulation atak
  • Long range atak
  • Short range atak
  • Bribe atak
  • Precomputing atak

Bu ataklardan meşhur olanlarıdır. Aralarındaki en meşhur atak Nothing-at-stake atağıdır. Bu atağı anlatmak bilgilerimizi de pekiştirecektir.

Nothing-at-stake atak

Bilgilerimizi hatırlayalım.. PoW’de blok eklemek için CPU gücü ve elektrik gerekiyor. PoS’de ise sadece coinin olması yeterliydi. Şimdi aşağıya hemen bir blokzincir çizelim:

Bu blokzincir PoS ile çalışsın ve 6. blok aynı anda iki farklı validator tarafından üretilmiş olsun. (Artık miner yok.) Şimdi ne dedik? PoS sistemlerde blok üretmek için tek gerekli şey coin. Elektrik veya CPU gücüne gerek yok. Yani bir Validator rahatlıkla çatallanan iki chainde de blok eklemesi yapabilir.

PoW’de dedik ki, bir chain’e karar verildiğinde diğer bloklar Orphan oluyor. Ödül de alamıyor. PoW’deki madenciler boşuna elektrik kaybı yaşıyorlar ve hiçbir şey elde edemiyorlar. Ancak yukarıdaki durumda Validatorler her iki chaini de devam ettirebiliyorlar. Herhangi bir chain’in tercih edilmesi durumunda dahi diğer chain Orphan olsa bile validatorlere hiçbir zararı dokunmayacak. PoW’da elektrik kaybedecekler, PoS’ta hiçbir şey olmayacak.

Peki olsun kardeşim, iki chaine de blok eklesinler ne olacak?

Blok 6 ve 7’den sonra 8 ve 9. bloklar üç kağıtçı blok olsun ve validatorler bunu üstteki çatala eklesinler. Hemen üstteki chain’e ekstradan 10. bloğu da ekledikten sonra yeni katılan blok üstteki en uzun chain’i tercih edecek. (Kural buydu hatırlayın.) Böylelikle 8 ve 9. bloklar kötü niyetli olmasına rağmen blokzincirde doğru kabul edilecek. İşte bu bir “Nothing-at-stake” ataktır. PoW’da bu hareketi yapamazlar. Çünkü her blok için elektrik ve CPU gücü gerekiyor. PoS’de validatorler simultane olarak her iki chain’e de istedikleri gibi blok ekliyorlar. PoW’da CPU gücü sadece tek zincire verilebilir. İki chain’e verilmesi durumunda içinden sadece birisi onay alacağından diğer chain’e verilen CPU gücü ve elektrik tamamen boşuna olacaktır.

Grinding atak

Grinding atak blok basmanın hiçbir CPU gücü ve elektrik gerektirmemesi dolayısı ile zincirin tek tarafında biriken üç kağıtçıların kendi borusunu öttürmesidir. PoW sistemde bu sadece %51 atakta mümkün olmaktadır. (Unutmayın PoW’da CPU gücü yüksek olan kısım doğru olacaktı.) Ancak PoS bir chainde üçkağıtçılar kendi zincirlerini uzatarak sistemi kandırmaktadır.

Sabotaj Atak

Sabotaj Atak bildiğiniz validatorlerin kapanması demek. Sistemdeki validatorlerin %51 veya fazlasının offline olması durumunda blokların üretimi durur. PoW’de böyle bir durumda Difficulty ayarlaması (blokların üretimi için gerekli asgari CPU gücü diyelim buna) sonrası üretim devam eder. PoS sistemde böyle bir şey mümkün değildir.

Bu örnekler uzatılabilir, Bribe atak gibi koordine olan üç kağıtçıların coinlerini tek bir yerde toplayıp istediğini kısa süre içerisinde yapıp tekrar dağılması gibi, long-range atak gibi uzun bir süre blok üretimi yapıp bunları blokzincire tekrardan göndermek gibi çeşitli ataklar da mevcuttur. Meraklısı yazdığım atakları inceleyebilir, daha farklı atak tiplerini de bulabilir. Ancak şurası kesindir, PoS sistemlerde birçok atak vektörü tanımlanmış ve bunların çözümü uzun bir süre yapılamamıştır. Bundan dolayı da PoW sistemler uzun süre hakimiyetini korumuştur. PoS sistemlerin problemlerle boğuşmuştur.

5. Farklı uygulanan PoS sistemler

Yukarıda anlattığım PoS atak vektörleri “uzun zincir doğru zincirdir” kuralını benimseyen sistemler için geçerlidir. PoS sistemlerin Nakamoto’nun bu kuralını çalıştıramayacağı düşünülüyordu. Bu yüzden farklı kuralları olan blokzincirler üzerinde yoğunlaşılmaya başlandı.

2008 –> Bitcoin (PoW)
2012 –> Peercoin (PoS ancak tonlarca sorun)
2014 –> Tendermint (İlk SORUNSUZ PoS)

Bitcoin’den tam 6 yıl sonra “Tendermint” Consensus’u bütün ezberleri bozmuştur ve resmen kriptoda ve PoS Dünyasında çok ama çok önemli bir kapı açmıştır. Tendermint: Mining gerektirmeyen Konsensus whitepaper’ı PoS için devrim niteliğindedir.

Bu yazı konsensus mekanizmalarının incelendiği bir yazı değildir. Ancak minik bir özet geçmekte fayda var. PoW, Satoshi Nakamoto’nun “Uzun chain’i izle” kuralı ile entegre edilmiş bir sistemdir. Üstte yazdığımı hatırlayın, PoW konsensüsü deseniz de çok önemi yok ancak buradaki temel mantık “Chain-based” sistemdir. Yani sistemdeki her miner veya bu kurala göre oluşturulmuş PoS sistemlerdeki validatorler BLOKZİNCİRİ İZLER. Burada takip edilen ve doğruluğun sorulduğu yer direkt blokzincirin kendisidir. (Hatırlayın uzun olan çatal doğru diyorduk.)

Tendermint Chain-based sistemi kaldırmış, 1980’lerin Paxos Consensus’unu 99’daki BFT sistemle yoğurmuş bir konsensus mekanizmasıdır. Kafanızı karıştırmayacağım ancak Tendermint’in çalışma prensibini üç adımda özetlemek isterim.

  • Validatorler bir araya gelir. Transferleri aralarında (Gossiple) konuşurlar. Karara varırlar. Blok içerisine koyarlar.
  • Mevcut bloğu validatorlerin daha önce eklediği bloğun üzerine eklerler.
  • Blokzincir üzerindeki diğer düğümler bu blokların bilgisini indirirler, validatorler blokzincire BAKMADAN diğer transferleri bloklara doldurmaya başlarlar.

Dolayısı ile Tendermint’te yukarıda çizdiğim blokzincir örneklerindeki gibi çatallanmalar oluşmaz. Ancak bunun da eksik tarafları vardır.

  • Tendermint, sadece 1000-2000 civarı validatore izin verebiliyor.
  • Nakamoto sistemlerde %51’lik sınır Tendermintte %33
  • Tendermint durursa, hard-fork gerekir. (Solana Tendermint değil ancak BFT bir sistemdir, Solananın durması durumunda forklandığını hatırlayın.)

Tendermint gibi; şu an halihazırdaki PoS sistemler Nakamoto’nun Chain-based yaklaşımından farklı konsensuslar kullanmaktadır. Lachesis (Fantom), TowerBFT (Solana), Snowman (Avalanche C-chain), pPoS Byzantine (Algorand) gibi chainlerin hepsi “chain-based” sistem değildir. BFT sistemlerdir. Tabii ki aralarında farklılıkları vardır ancak burada açıklanacak mevzular değildir.)

Bu başlık için PoS’in bir konsensus olmadığını, farklı konsensuslar ile PoS sistemler yapılabildiğini öğrenmeniz dahi yeterlidir. Her PoS aynı değildir, ilerideki başlıklarda açıklayacağım.

6. PoW vs PoS

Sonunda yazının da ismini aldığı başlığa geldik. Buraya kadar kesintisiz okuyup gelenleri tebrik ediyorum 🙂

Şimdi şu zamana kadar neleri öğrendik minik bir özet geçelim:

  • Blok üretmek için PoW’a gerek yok.
  • PoW sadece gelen blokların doğruluğunu onaylamak için CPU gücü kullanan ve “uzun zincir doğrudur” kuralını benimseyen bir sistem. Konsensus mekanizması da diyebilirsiniz, yanlış diyecek değiliz çünkü sonuçta bir seçim yapılıyor.
  • Her PoS aynı değil. Eğer bir PoW vs PoS yapacaksak hangi konsensus mekanizması ile kullanılacak PoS sisteminden bahsediyoruz bunu bilmek gerekir.
  • PoS özellikle chain-based sistemlerde ciddi anlamda sorunlu bir şekilde çıkmıştır, uzun bir süre PoW sistemleri saf dışı bırakamamıştır. Tendermint ile PoS sistemler sorunsuzlaşmıştır. Ancak bu da birçok sorunu beraberinde getirmiştir. (Örneğin az validator)

Şimdi kavga başlasın: PoW vs PoS

Merak edilen soruları madde madde cevaplayacağım

  • PoW çok fazla enerji ve donanım harcıyor mu?
  • PoS’ta zenginler daha mı zengin oluyor?
  • PoS, PoW’dan daha mı güvenli?
  • PoS, PoW’dan daha mı ölçeklenebilir?

PoW çok fazla enerji ve donanım harcıyor mu?

Evet. Harcıyor. Artık şu Bitcoin diğer bankacılık sistemlerine göre çok daha az enerji harcıyor gibi yalanlara sığınmaktan vazgeçin. Bitcoin son derece verimsiz.

Tek bir Bitcoin transferi an itibari ile 391 gram Elektronik atık bırakıyor. Bu da 2.39 iPhone 12 telefonun ağırlığına eşit. TEK BİR BITCOIN TRANSFERİ.

Bitcoin’in harcadığı bir yıllık elektrik, bütün Hollanda’nın bir yıllık elektrik masrafına denk. Bitcoin manyak elektrik harcıyor. Kesinlikle azımsanmayacak kadar. “Bitcoin’in harcadığı enerji diğer harcanılanların yanında hiçbir şey” gibi ifadeler okuyorum. Bu çok yanlış bir yaklaşım. Başka sistemlerin deli dehşet elektrik harcaması Bitcoin’in aşırı derece elektrik harcadığı gerçeğini değiştirmiyor. Bu tip “whataboutism” argümanlar yere çöp atan adamın, “ben bir tane çöp attım herkes kamyonla çöp döküyor!” demesine benziyor. Ayrıca Bitcoin çevreyi mahveden Altın madenciliğinden 20 kat daha fazla karbon ayak izi bırakıyor. Kabul edin: BITCOIN ÇEVREYİ MAHVEDİYOR!

Soruyorum sadece ve sadece GELEN BLOĞUN DOĞRULUĞUNUN İSPATLANMASI İÇİN HATTA VE HATTA TEK BİR TRANSFERİN DOĞRULANMASI İÇİN 200 BİN SAAT YOUTUBE VİDEOSU İZLEMEYE DENK ELEKTRİK HARCANMASI hangi mantık ile izah edilebilir?

2009’da Hal Finney bu sorunu görmüştü. Ancak maalesef o zaman ideal bir PoS sistem yoktu. PoW bu enerji sürdürülebilirliği konusunda PoS’a göre rezalet durumda.

Bitmedi, diğer bir sorun.. Donanım. Bence bu elektrikten daha büyük bir sorun. Bugün üretilen ekran kartlarının yaklaşık 5’te 1’i Ethereum madenciliği için kullanılmakta. Bitcoin için ASIC cihaz olsun, Ethereum için GPU mining cihazları olsun.. Dünya’da ciddi bir çip arz krizi yaşanıyor. Kripto madenciliği kısıtlı olan çip üretimine talebi daha da artırarak ciddi anlamda fiyat pahalılığı yaşatıyor.

Yukarıdaki görsel, Ethereum 2020 DeFi çılgınlığı sonrası artan ETH fiyatı ile birlikte korele giden GPU fiyatlarını gösteriyor. Grafikte aynı zamanda CPU fiyatları mevcut. Görüldüğü gibi CPU fiyatı değişmiyor ancak GPU fiyatları uçuyor. Çünkü Ethereum madenciliği GPU ile yapılıyor.

Almakla bitmiyor, ekran kartları da ASIC cihazlar da belirli bir kullanım ömrüne sahipler. Belli bir süre sonra bu cihazları tekrardan yenilemek gerekiyor. Sadece ve sadece gelen blokların doğruluğunu onaylamak için BÖYLE BİR SİSTEME GEREK YOK.

PoS’ta zenginler daha mı zengin oluyor?

Hayır. Aksine yapılan çalışmalar PoW’un zengini daha zengin yaptığını gösteriyor. PoS sistemlerde konsensus mekanizmasına göre değişmekle birlikte herkes istediği miktarda coin ile staking yapabilir. Bunun için delegator veya validator olabilir. Yine konsensus farklılığı olmakla birlikle PoS sistemlerde (En azından Ethereum PoS Casper için) her validator’ün blok bulma ihtimali eşittir.

Hiçbir şekilde node kurmadan dahi PoS sistemlerde coinleriniz ile sisteme dahil olabilirsiniz. Evinizden birkaç tık ile PoS sistemlere entegre olabilirsiniz ancak aynısını PoW sistemlere söylemek yanlış olur. PoW için cihaz çalıştırmalısınız. Cihaz çalıştırmayıp başka kişilerin PoW cihazlarını kiralayabilirsiniz ancak bu durumda istediğiniz zaman sistemden çıkamazsınız. PoS sistemlerde coinler sizindir, istediğiniz zaman çıkabilirsiniz.

PoW sistemler hali hazırda havuzlaşmıştır. Madencilik şirketleri açılmıştır. PoW sistemlerde Coin fiyatının düşmesi durumunda madencilik kârlılığı küçük madenciler için ciddi anlamda düşmektedir. Ancak büyük madencilik şirketleri ayakta kalabiliyor. Bu da solo madencilik yapımını ciddi anlamda zorluyor ve kendi cihazlarınız ile maden havuzlarına katılmak zorunda kalıyorsunuz. Bu konu teknolojik değil biraz daha felsefik olduğu için ek okuma yapmanızı öneririm. Çünkü ben teknolojisindeyim 🙂

PoS, PoW’dan daha mı güvenli?

Evet. PoW sistemlerde madencilerin üç kağıt yapmamasının caydırıcılığı madencilerin boşuna elektrik harcamasıdır. PoW sistemde yaptığınız ataklar size sadece elektrik ve zaman kaybına yol açacaktır. Ancak PoS sistemlerde yapılan yanlışlar coinlerinizin elinizden alınması ile sonuçlanacaktır. (Slashing – ilerideki başlıklarda inceleyeceğiz.) Minik bir örnek verelim..

Bitcoin’de tahmin edilen HashRate değeri anlık 230M TH/s’tır. HashRate’den bahsetmedik, kolay anlaşılması için tek cümle ile söyleyecek olursak, yukarıda bahsettiğimiz CPU gücünün birimidir. Ne kadar HashRate o kadar CPU gücü demektir.

Ortalama olarak Bitcoin’de 1 TH/s Hash üretim maliyeti yaklaşık 60 ABD Dolarıdır. Kaynak

Buradan hareketle;
230.000.000 TH/s x 60 Dolar = 13.800.000.000 USD çıkacaktır. Yani Bitcoin ağının toplam güvenlik ve CPU gücü yaklaşık 14 milyar Dolardır.

Ethereum PoS için an itibari ile 12.441.090 ETH kilitlenmiştir. 1 ETH fiyatının an itibari ile 2700 Dolar olduğunu düşünürsek;

12.441.090 x 2700 = 33.590.943.000 USD çıkacaktır.

Bunlara ek olarak PoS sistemlerde fiyat direkt olarak sistemin karlılığını etkilemekte, aynı zamanda PoS sistemler coin fiyatına daha olumlu etki yapmaktadır. Çünkü PoW’da madenciler elektrik giderleri için coin satmak zorunda iken PoS sistemlerde mevcut gider çok daha az olmaktadır. Örneğin aşağıdaki grafikler Ethereum’un PoS’tan sonra ETH fiyatının direkt Ethereum güvenliği ile alakalı olduğunu göstermektedir.

PoS, PoW’dan daha mı ölçeklenebilir?

Hayır, ama evet. PoS veya PoW GELEN BLOĞUN DOĞRULUĞUNUN TEYİDİNİ SAĞLAR. Blokların hızı veya büyüklüğü PoS veya PoW ile alakalı değil. Dolayısı ile bir sistemin PoW veya PoS ile çalışması onun ölçeklenebilirliği ile alakalı değil. Ancak, Sharding gibi blokzincirlerin ölçeklenmesi için uygulanan teknikler PoS sistemlerde çok daha kolay uygulanabilmektedir. PoW sistemlerde Sharding olmaz diye bir şey yoktur, ancak zaten hali hazırda çok zor bir teknik olan Sharding PoS sistemlere daha kolay uygulanabilmektedir. Ethereum PoS’a geçtikten sonra Dank-Sharding tekniğini ekleyerek ölçeklenmek istemektedir. Mevcut PoW sistemde Dank-Sharding mümkün değildir.

7. Ethereum’un PoS yolculuğu

Tanıştırayım, Slasher.. Ethereum’un ilk PoS denemesi. Yıl: 2014 🙂

Ethereum çıktığı ilk günden beri Proof-of-Stake’e geçmek istemiştir. PoS’e geçiş Ethereum’un tarihindeki en büyük hedeftir. Yıl 2022 hala daha PoW ile çalışan Ethereum bu sene içerisinde PoS’e geçiş planlamaktadır ve bu büyük güncellemenin adı “The Merge”dir.

Peki neden bu kadar uzun sürdü? 8 yıldır neden Ethereum bir türlü PoS’a geçememiştir? Aslında yazının başında bu konuyu birçok kez söyledim. Bunun iki büyük, bir tane de minik bir sebebi vardır.

  1. 2014 yılında PoS sistemlerin hala daha oturmamış olması ve Ethereum’un Tendermint benzeri saf BFT sistemlerine karşı çıkması.
  2. Ethereum’a uygun Konsensus mekanizması bulunamaması
  3. PoW sistemlerin blokzincirlerin başlangıcında coinleri PoS sistemlere göre daha iyi dağıtması.

2014 yılında PoS sistemlerin hala daha oturmamış olması ve Ethereum’un Tendermint benzeri saf BFT sistemlerine karşı çıkması

2012’de Peercoin ile başlayan PoS yolculuğu 2014’e kadar büyük bir kabus ile bitmişti. Çünkü PoS sistemlere bir çok atak vektörü tanımlanmıştı. Dolayısı ile PoS sistemler bir türlü potansiyellerini gösteremediler. 2014 yılında “Tendermint” ilk sorunsuz PoS sistemi sunduğunda Ethereum kripto sahnesine çıkmaya hazırlanıyordu. Fikir PoW ile Ethereum’u duyurmak ve birkaç ay içerisinde PoS’a geçmekti. Geçiş için ilk öneri yukarıda Vitalik’in yazdığı prototip PoS sistemi olan “Slasher” idi. Ancak Slasher çok primitifti ve hiçbir sorunu çözemiyordu. PoS geciktikçe Tendermint’in Ethereum’a uygulanma fikri ortaya çıktı: Ethermint.

Vitalik’in Slasher düşüncesi birçok noktada PoS’un sorunlarını çözmeye çalışsa da başarılı olamadı. Ethereum 2015 yılında 2014 buluşu olan Tendermint’i uygulamak istedi. Ancak Tendermint Ethereum topluluğu tarafından sıcak bakılmadı.

Yukarıda da anlattığım gibi Tendermint sadece 1000-2000 validator’e izin veren bir konsensus mekanizmasıdır. Bu yazıda konsensusları incelemek istemiyorum, ancak bu tarz bir sistem Ethereum topluluğunda karşılık bulmadı. Ethereum topluluğu herkesin validator olabileceği son derece merkeziyetsiz bir konsensus mekanizması istiyordu. Dolayısı ile Tendermint ve bunun Ethereum’a entegrasyonu olan Ethermint rafa kaldırıldı. Ethereum yeni konsensus ailesi üzerinde çalışmalara başlattı: Casper.

Ethereum’a uygun Konsensus mekanizması bulunamaması

Casper konsensus ailesi temelde Casper CBC ve Casper FFG olarak ikiye ayrılıyordu. Vlad Zamfir Casper CBC üzerinde, Vitalik Buterin ve Virgil Griffith Casper FFG üzerinde çalışmaya başladılar. (Yıl 2015)

Casper Konsensus ailesi için çok güzel işler çıkmaya başlamış, hatta 2017 yılında CBC’nin uygulanabilirliği ciddi ciddi düşünülmeye başlamıştı. Ancak 2016’da o kara haber geldi: DAO HACK.

2016 Haziran’da Ethereum’un forklanmasına sebep olan DAO Hack yaşandı. Bu ciddi anlamda bütün Ethereum’un kaderini etkileyen Ethereum Classic gibi bir forkun çıkmasına sebep olan ciddi bir olaydı. Ethereum bundan sonra bir de Shanghai DDOS Attack saldırıları ile uğraştı.

Magazini geçelim, Ethereum yukarıda PoS için anlattığım birçok atak vektörünü çözdü ancak yukarıdakilere benzer bir çatallanma durumunda yeni gelecek bloğun hangi çatala girmesi gerektiğini çözmek için PoW’ten yararlanmak istedi.

Yanlış duymadınız, çatallanma sorununu çözmek için Ethereum PoS mekanizması PoW’ten yararlanmak istedi ve PoW/PoS Hibrid bir sistemi 2017 yılında ciddi anlamda benimsedi. Hatta PoW/PoS Hibrid bir sistemin Testnetlerine bile başlamıştı.

PoW / PoS Hibrid bir konsensus çatallanmayı aşağıdaki gibi çözmektedir:

PoS blokları üretirken, blokların olası çatallanma durumunda hangi çatala katılacağını minik bir PoW (minik bir CPU gücü) belirliyordu. PoW/PoS sistemi benimsenmişti. Ancak PoS bir sisteme PoW eklemenin yine yukarıda anlattığım gibi Sharding için zorlukları vardı ve Ethereum’un enerji verimliliğini artırmak için %100 PoS bir sistem gerekiyordu. Bu yüzden PoW/PoS olan bu sistemden de vazgeçildi.

2018 yılında Vitalik %100 PoS bir sisteme geçilmesi için ilk fikri ortaya atmış ve Casper FFG’nin PoW ile çatal kararı vermesi yerine Casper FFG’nin LMD-GHOST adı verilen (Latest Message Driven – Greediest Heaviest Observed SubTree fork choice rule) sistem ile çatal seçmesine imkan tanıyan sistem ile birleştirildi ve şu an da son halini alan “Casper FFG + LMD GHOST” adı verilen Hibrid konsensus algoritmasına geçme kararı alındı. 2020 yılında bu paper yayınlanmış oldu ve Ethereum PoS’e uygun konsensus’unu sonunda seçmiş oldu.

LMD GHOST’un nasıl çatal seçtiğini de minik göstermezsem olmaz. 🙂 Aşağıda 10 adet “Attestor”un olduğu bir zincir düşünürsek, en çok onayı olan blok doğru bloktur mantığı ile hareket edilir ve çok karışık bir çatallanmadan bile bloklar gerçek yolu bulur. Buradaki attestorlar blokzincir üzerindeki validatorlerden başkası değildir. Ancak bu validatorler sadece blok üretmezler mevcut blokların doğruluğunu test ederler ve en çok onaylanan blok en doğru bloktur. Yeni gelenler de bu bloklara takılırlar.

Casper FFG + LMD GHOST’un çalışma prensibi çok karışıktır. Bu yazı da bir konsensus yazısı olmadığı için sadece yukarıdaki bilgi ile bırakalım. Ancak dikkat ettiniz mi?

Casper FFG + LMD GHOST diğer PoS chainlerin kullandığı konsensus mekanizmaları ile alakası olmayan, son derece karışık ve benzersiz bir konsensustur. Diğer konsensuslar zinciri takip etmiyordu, hatırlayın. Casper FFG + LMD GHOST aynı zamanda zinciri takip eden Hibrid bir konsensustur. Bu konsensus’a benzer bir diğer konsensus Polkadot’un kullandığı BABE + GRANDPA konsensustur.

Bundan dolayı Ethereum’un PoS süreci gecikmiştir. Peki böyle karışık bir konsensus’a gerek var mıydı? Cevap: Kesinlikle evet.

Tendermint konsensus’u ile çalışan Cosmos 175 validator’e sahip iken Ethereum an itibari ile 369.590 validator ile çalışmaktadır. Daha da güzeli Tendermint, Avalanche, Lachesis gibi saf pBFT tipi konsensusların aksine Casper FFG + LMD GHOST %33 ataklara dirençlidir ve %33 atakta zincir durmaz.

Son olarak Hibrid bir sistem olduğu için yukarıdaki PoS vektörlerine Ethereum’un bulduğu çareleri sormak isteyebilirsiniz. Slashing mekanizması bunlardan biridir. Nothing-at-stake probleminde her iki chain’e blok üreten validator slashlanır. Offline kalıp Sabotaj atak yapan validator offline süresinin 2-3 gün olması durumunda slashlanır. Bribe ataklar validatorlerin giriş / çıkış süresinin belli zaman dilimlerinde olması ile çözülmüştür. Meraklısı iyice araştırabilir.

Neticede 2014’ten beri olan bütün çalışmalar artık tamamlanmış 2022 itibari ile Ethereum PoS’e geçmeye hazırlanmaktadır. 8 yıllık bütün bu serüven “The Merge” adı adı verilen güncelleme ile neticelenecektir.

PoW sistemlerin blokzincirlerin başlangıcında coinleri PoS sistemlere göre daha iyi dağıtması

Son olarak minik bir neden olsa da, PoW’ün PoS’e üstünlüklerinden birisi de coin dağılımını daha güzel yapmasıdır. Çünkü PoW’de madenciler elektrik masrafları için coinlerini satma eğilimine giriyorlar ve bu da coinlerin kişiler arasında daha homojen dağılmasına sebep oluyor. PoS ile başlayan bir blokzincirde coin dağılımı hele hele o chain VC’lere çok pay verilmiş ise VC’lerin pasta payı daha çok artıyor.

8. PoW ve PoS hakkında yanlış bilinenler

Bu konuda o kadar yanlış bilinen şeyler var ki.. Ben en çok söyleneni yazmam gerekiyor diye düşündüm: PoW’de HashRate’in büyük kısmını elinde bulunduran, PoS’de coinlerin büyük bir kısmını elinde bulunduran kesim blokzinciri yönetir.

HAYIR YÖNETEMEZ.

HAYIR YÖNETEMEZ.
HAYIR YÖNETEMEZ.

Yönetemez. YÖNETEMEZ. Artık şu 3 Bitcoin havuzu toplam Hash’in %51’inden fazlası, bu nasıl merkeziyetsizlik vs. gibi şeyler söylemeyin. Lütfen.

PoW ve PoS yukarıda uzun uzun anlattığım gibi gelen bloğun doğruluğunu ve blokzincirin güvenliğini temin eden sistemlerdir. O kadar. Madencilerin %51’inin tek elde bulunması Bitcoin için ölümcül değildir.

Direkt Bitcoin Core’un validation.cpp’sinden 2148. satırı atıyorum: Kaynak

// Any transaction validation failure in ConnectBlock is a block consensus failure

Yani ne demeye çalışıyorum.. PoW’de %51 kötü niyetli olsa dahi iki şey yapabilir.

  1. Transferleri durdurabilir, buna sensör atak denir.
  2. Double-spending yapabilir.

İlk atak aşağıdaki gibi olur. Transferlerinizi yapamazsınız. %51 zincire girişi engeller.

İkinci atak Double-spending attacktır. Double-spending attack şu demektir, 100 Dolar paranızı bir kişiye göndermek istediğinizde madenci sizdeki 100 Doları cüzdanınızdan alıp karşı tarafın cüzdanına 100 dolar eklemesi gerekir.

%51 attack durumunda madenci 100 Dolarınızı aynı kişiye gönderip, aynı zamanda sizde de 100 Doları tutabilir.

Double-Spending attack budur ve tehlikelidir. Ancak bu durumda zincir tahrip edilse de, sistemdeki diğer %49’luk kesim dürüst chain’i devam ettirecektir. Ettiremezse bile %51’lik üç kağıtçı kesim sistemdeki dürüst node’lara bu üçkağıdı yutturamayacaktır. Dürüst kişiler dürüst zinciri devam ettirip, double-spending yapılan chaini yok sayacaklardır. Böylelikle %51’lik kısım boşuna elektrik yakacaktır.

PoS’de değişen bir durum yoktur. Yukarıdaki PoS atak vektörlerini hatırlayın, Double-spending de PoS’te bir atak vektörüdür. Ancak bu atak yine Slashing denilen cezalandırma sistemi ile çözülmüştür. Eğer bir sistemde PoS validatorlerinden birisi veya %51’i double-spending yapmaya çalışırsa, Slash yerler. Ellerindeki coinlerden olurlar. PoW’de boşuna elektrik harcarken, PoS’te ellerindeki coinler cezalandırılarak bu kişilerden alınır.

9. Son sözlerim ve yorumlarım

Ethereum’un da PoS’a geçmesi ile birlikte, ilk 15 coinde PoW ile çalışan iki coin kalıyor: Bitcoin ve Dogecoin.

Zcash’in de PoW ile çalışan bir chain olduğunu ve PoS’e geçmeye çalıştığını biliyoruz. Dolayısı ile artık PoW ile çalışan coinler teker teker PoS’e geçiyorlar veya MarketCap’leri düşüyor. PoS hemen hemen çoğu konuda PoW’ten üstün.

Bitcoin’in de tıpkı Ethereum gibi PoS’e geçme ihtimali vardır. Ancak bunun için güçlü bir topluluk desteği gerekiyor. Madenci mafyasını bertaraf etmek gerekiyor ki Ethereum da zaman zaman madenciler ile tartışma yaşamış bir chaindir. Bitcoin PoS’e geçebilir, geçse de zaman alır diye düşünsem de tek bir gerçek var: PoS’in üstünlüğü tartışmasızdır.

Öte yandan PoS çok daha ucuz bir maliyetle çok daha iyi güvenlik sağlıyor. Yukarıda anlattım. Özellikle Ethereum özelinde, hem ETH emisyonunun PoS ile birlikte ciddi anlamda düşmesi, hem de madencilerin masrafları için ETH satış baskının düşmesi gibi durumların özellikle ETH fiyatı için çok olumlu yansıyacağını düşünüyorum.

Yazıya son verirken, PoW veya PoS’in sadece blok üretme, bunları doğrulama ve blokzincire ekleme dışında bir sistem olmadığını hatırlatmak isterim. PoW veya PoS bir konsensustur diyene aslında pek itirazım yok, ancak yukarıda anlattığım gibi PoS bir sisteme farklı konsensuslar eklenebilmekte olup, her PoS sistem aynı değildir.

Yazıya eklenecek birçok şey var. İleride bu kılavuza zaman zaman eklemeler yapmak istiyorum. dPoS, PoA gibi farklı sistemleri konuşmak, farklı PoS yorumlamalarını eklemek isterim.

Tobby Kitty

Blogum

%d bloggers like this: