PoW vs PoS 2
Bu yazı sevgili @tobbykitty tarafından kaleme alınmıştır. 3. PoS nedir? Neden PoS var?
Hemen biraz önce okuduğumuz bilgilerimizi tekrar edelim:
- Blokzincirlerde blok eklemek için madencilik veya staking yapmaya gerek yoktu. Blokzincire herkes blok ekleyebilir.
- 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 PoSMerak 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.