Konsensüs algoritmaları, dağıtılmış bir ağ için güvenliğin koordine edilmesini sağlayan mekanizmalardır. Ağ içerisindeki yapılar birbirleri ile iletişime geçerek hem ağın güvenliğini sağlamakta hem de işlemler için fikir birliğine ulaşmaya çalışmaktadırlar. Ağ içerisindeki yapılardan her biri bir merkez gibi çalıştığı için ağ üzerindeki bütün veriye sahiptirler.
Bunun aksine merkezi bir ağ içerisinde, tek bir yapı bütün veriyi ve kontrolü elinde bulundurmaktadır. Ağ için tehlike arz eden durumlarda merkezi yapı hızla harekete geçip aksiyon almaktadır. Bu tarz yapılarda tek bir merkezi yapı olduğu için iletişim ve fikir birliği gibi bir problem yaşanmamaktadır.
Ancak merkeziyetsiz ya da dağıtık defter teknoloji kullanan yapılarda iletişim ve sıradaki eklenecek olan verinin doğruluğu için fikir birliğine, yani konsensüse ihtiyaç duyulmaktadır. Merkeziyetsiz yapılarda peş peşe eklenen veriler birleşerek blok zincir dediğimiz yapıları oluşturmaktadır. Peki blok zincirlerde fikir birliği nasıl sağlanmakta ve ağ yapısının bütünlüğü nasıl korunmaktadır?
Merkeziyetsiz blok zincir yapılarında fikir birliğinin nasıl korunduğunu anlamak için ilk önce blok zincir özelinde konsensüs kavramının ne olduğunu anlamak gerekiyor.
Konsensüs Nedir?
Bir diğer anlamı uzlaşı olan konsensüs, en basit ifade ile “tartışmalı bir konuda uzlaşılarak ulaşılan genel görüş birliği” olarak tanımlanabilir. Blok zincir mimarisinde ise konsensüs yapısı ve işleyişi bir zincirin güvenli bir şekilde varlığını sürdürmesi için hayati bir öneme sahiptir. Küçük gruplar içerisinde uygulanması kolay konsensüs mekanizmaları, ortak karar için fikir beyan eden katılımcı sayısının artması ile daha karmaşık ve sonuca varılması güç bir hal almaktadır. Örneğin herkesin aynı yemeği yiyeceği 10 kişilik bir grup içerisinde akşam yemeğinin ne olacağına karar vermek, 1000 kişilik bir grup içerisinde karar vermeye göre daha kolaydır. Tam da bu noktada 2008 yılında Satoshi Nakamoto isimli kişi ya da kişiler tarafından Bitcoin (BTC) whitepaperı yayımlandı.
Bu whitepaperda merkeziyetsiz ağlar içerisindeki katılımcıların nasıl birbirleriyle nasıl iletişim kurarak fikir birliğine ulaşacağı ve bu sistemin nasıl güvenli kalacağı açıklanıyordu. Blok zincirler özelinde konsensüs kavramı, blok zincire eklenecek sıradaki bloğun hangisi olacağına karar vermektir. Bitcoin bu problemi longest chain yani en uzun zincir ile çözmüştür. Yani karar birliğine varılarak eklenen bloklar ile oluşturulan en uzun zincir Bitcoin blok zinciri olarak adlandırılır.
Konsensüs Algoritmaları
Blok zincirler üzerinde konsensüs yani fikir birliği sağlandıktan sonra bu konsensüs kararının güvenliğinin de sağlanması gerekmektedir. İşte bu noktada hayatımıza konsensüs algoritmaları girmektedir. Kavramsal olarak konsensüs ile aralarında ince bir çizgi olan konsensüs algoritmaları, konsensüs sonucunun zincire eklenmesi ve güvenliğinin sağlanması için kullanılan bir mekanizmadır. Blok zincir dünyasında yaygın olarak kullanılan iki tür konsensüs algoritması vardır. Bunlar Türkçe karşılığı İş Kanıtı olan Proof of Work ile Hisse Kanıtı olan Proof of Stake’dir.
Proof of Work
Proof of Work (PoW) ya da İş Kanıtı, kripto para dünyasında ilk kez Bitcoin (BTC) ile kullanılmış konsensüs algoritması türüdür. Ancak Proof of Work kavramının doğuşu kripto paralardan çok daha eskiye dayanmaktadır. Proof of Work ilk kez 1990’lı yıllarda tanımlanmış ve adlandırılmıştır.
Günümüzde Proof of Work konsensüs algoritmasını kullanan birçok kripto para bulunmakatdır. Bunların başında Bitcoin (BTC) , Ethereum (ETH) ve Litecoin (LTC) gelmektedir. Blok zincirler üzerinde zincir güvenliğini sağlayan Proof of Work algoritması bir dizi matematiksel işlemlerin çözümü şeklinde tanımlanmaktadır. Özel donanım cihazlar ile ağ üzerinde yapılan bu işlem sonucunda full node (tam düğüm) çalıştıran bir madenci, ağa eklenecek olan veriler için belirli bir çözüm üreten hash fonksiyonunu elde eder. Bu hash fonksiyonu görünüşte rastgele bir harf ve sayı dizisidir. Ancak bu fonksiyon eşsiz bir yapıya sahiptir. Yani aynı hash fonksiyonunu yeniden çalıştırırsanız, her zaman aynı çıktıyı alırsınız. Ancak fonksiyon üzerinde bir ayrıntıyı bile değiştirseniz, hash'iniz tamamen farklı olacaktır.
Proof of Work algoritmasını kullanan blok zincirler dağıtık düğümler (node) tarafından güvence altına alınır ve doğrulanır. Bu düğümler, blok zincir üzerinde yapılan bir işlem emrinin blok zincire eklenmesi için daha önce bahsettiğimiz matematiksel işlemleri çözüp geçerli bir hash fonksiyonu üretmeye çalışırlar. İlgi işlemi doğru bir şekilde çözen düğüm, blok zinciri en son işlemler ile günceller. Yani blok zincire işlemlerin yer aldığı bloğu ekler. Bu işlem karşılığında ise bu düğüme daha önceden belirlenmiş bir miktar kripto para ve blok içerisindeki işlem ücretleri ödenir. Birbiriyle sürekli sıradaki bloğu bulup zincire eklemek için yarışan düğümler, madenciler olarak adlandırılır. Proof of Work konsensüs algoritması kullanan kripto paralarda madenciler ve madencilik faaliyetleri zincir güvenliğinin ve doğruluğunun temelini oluşturmaktadır.
Bir blok zincirin ağında madenci olabilmek için o ağın algoritması ile uyumlu cihazlara sahip olmanız gerekmektedir. Bu algoritmalara Proof of Work algoritmaları denilmektedir. Kripto para dünyasında en yaygın kullanılan Proof of Work algoritmaları Bitcoin’in kullandığı SHA-256, Ethereum’un kullandığı Equihash ve Litecoin’in kullandığı Scrypt’tir.
Proof of Stake
Proof of Stake yani hisse kanıtı kavramı ilk kez 2011 yılında Bitcointalk formunda Quantum Mechanic isimli bir kullanıcı tarafından önerilmiştir. Bu öneriye göre Proof of Work algoritmasında karmaşık işlemler çözmek yerine hali hazırda var olan coinlerin stake edilerek ağın sürdürülebilirliği ve sürekliliği korunabilir. Böylece Bitcoin’inin kullandığı Proof of Work algoritmasında kullanılan madencilik cihazlarının ve aşırı enerji tüketiminin önüne geçilmekte ve madencilik daha kolay hale gelmektedir.
Proof of Stake algoritması uygulama açısından Proof of Work ile benzer yanlara sahip olsa da farklı bir şekilde çalışmaktadır. Proof of Work algoritmasındaki madenciler, Proof of Stake algoritmasında yerini doğrulayıcılara yani validator’lara bırakmıştır. Oluşturulan her bloğun doğruluğun kontrolü ve ağa eklenmesi doğrulayıcılar tarafından yapılmaktadır. Ağ üzerinde doğrulayıcı olup ağa katılmak için belirli bir miktarda coin stake edilmesi gerekmektedir. Ayrıca doğrulayıcıların stake ettikleri coin miktarı ne kadar fazla ise zincir üzerinde söz hakları da o kadar fazladır. Zincir üzerinde stake edilen bu coinler ile ağın güvenliği sağlanmaktadır.
Proof of Work yapısında ağa yapılan saldırıların başarıya ulaşması için yüksek işlem gücü ve birçok madencilik cihazı gerekir. Proof of Stake yapısında da kötü niyetli doğrulayıcılar zincir yapısını bozacak işlemler yapabilmektedirler. Ancak Proof of Stake algoritmasında kötü niyetli bir doğrulayıcı, geçersiz bir işlemi doğrularsa stake ettiği coinlerin bir kısmını kaybetmektedir. Böyle zincir üzerinde stake edilen varlık ile onaylanan işlemler arasında bir dürüstlük bağı kurulmuş olur. Bu sebeple Proof of Stake algoritması ile zincir için süreklilik ve güvenlik sağlanmış olmaktadır.
Diğer Konsensüs Algoritmaları
Proof of Work ve Proof of Stake günümüzde en çok kullanılan konsensüs algoritmalarıdır. Ancak bunların dışında da kullanılan birçok algoritma mevcuttur. Bunlardan bazıları Proof of Authority, Proof of Burn, Hibrit PoW/PoS ve Delegated Proof of Stake algoritmalarıdır.
Sonuç
Konsensüs algoritmaları blok zincirler için sürdürülebilirliğin ve sürekliliğinin korunmasını sağlayan yapılardır. Bu algoritmalar ağın sürdürülebilirliği için blok zincire blok eklenmesini ve ağın sürekliliği için ise cihazlar veya hisse ispatları ile ağın güvenliği ve bütünlüğünü sağlamaktadır.