Blockchain de neymiş?-3
Uzunca bir aradan sonra blockchain temel kavramlarını anlattığım yazı dizisinin 3.süyle karşınızdayım. Eğer takip ediyorsanız bildiğiniz üzere, ilk yazıda blockchainin üzerindeki işlemlerin dağıtık defter sistemi ile nasıl yapıldığını kolaylaştırıcı bir anlatımla aktarmaya çalışmıştım. İkinci yazıda ise blockchain ve en çok bilinen kullanım durumu olan bitcoin’in avantaj ve dezavantajlarından bahsetmiştim. Bu yazıda anlatmak istediğim konular ise blockchain teknolojisini oluşturan bir diğer kavramlar: kayıt defterlerinin tüm ağ üzerinde tutarlı olması (consensus) ve işlemlerin geçerliliğinin doğrulanması (validation via cryptography). Nispeten daha teknik olan bu konularda yine elimden geldiğince basite indirgeyip anlatmaya çalışacağım. Keyifli okumalar :)
Önceki yazılarda çokça bahsettiğimiz gibi, bu teknoloji sayesinde dağıtık bir şekilde tutulan verilerin tüm ağ üzerinde aynı olmasından dolayısıyla güvenli ve değiştirilemez olduğundan bahsetmiştim. Peki bunu nasıl kontrol ediyor bu algoritma?
Bu konuda detaya girmeden önce birazcık geçmişe dönelim ve Bitcoin’in yaratıcısı Satoshi Nakamoto’nun kurduğu düzeneğe bir göz atalım. Nakamoto sistemi ilk tasarladığında zaman geçtikçe kullanıcı sayısının artacağını ve Bitcoin’in değerinin yükseleceğini öngörmüştü. Bundan dolayı da enflasyona karşı bir önlem olarak, ortalama 10 dakikada bir blok (içinde işlem verilerinin saklanacağı bloklar) üretilmesi kuralını belirlemişti. Fakat bu blokların üretilmesi için sistemde bulunan minerların gün geçtikçe zorluğu artan bir matematiksel problemi çözmesi gerekiyor. Miner denen kişileri teşvik (incentive) etmek içinse blok yaratılmasına yardımcı oldukları için belli bir sayıda Bitcoin veriliyor.
3 Ocak 2009’da sistem faaliyete geçip ilk blok (genesis bloğu) yaratıldıktan sonra her bir blok başına 50 Bitcoin teşvik veriliyordu. Satoshi’nin sistemine göre her 210.000 blok üretilince –yaklaşık 4 yıllık bir süre- bu teşvik de yarılanacak (halving). İlk yarılanma Kasım 2012’de gerçekleşti ve her 10 dakikada bir blok üretimi başına teşvik 25 bitcoine düştü. Temmuz 2016’da ise bu teşvik yine yarılanarak şu anda da olduğu gibi 12,5 bitcoine indi. Sistem bu şekilde toplam üretilen Bitcoin 21 milyon olana kadar devam edecek ve ondan sonra yeni bitcoin üretimi olmayacaktır. Bu tarih kabaca hesaplandığında, son bitcoin 2140 yılında üretilecek :)
İlerlemeden küçük bir dipnot vereyim: bir önceki yazıda bahsettiğim, Bitcoin sisteminin ölçeklenebilir olmaması yukarıdaki durumdan kaynaklanıyor. Blok yaratmak için çözülmesi gereken matematik problemi gittikçe zorlaşıyor ve çözüm için gittikçe daha çok enerji harcanırken, çözdükten sonra verilen teşvik veya ödül daha da düşüyor. Yani gün geçtikçe beklenen çıktı değeri azalıyor bu da sistemin çözülmesi gereken bir problemi.
Şimdilik “miner”, “matematiksel problem” kavramlarının havada kaldığını tahmin edebiliyorum, ama bu terimlerden önce bilinmesi gereken mutabakat (consensus) sürecini anlatacağım.
Mutabakat (Consensus):
Mutabakat, basitçe bloğun yaratılıp içinde yer alan işlem verilerinin doğrulanarak güvenli bir şekilde zinciri eklenmesi sürecidir. Bu süreçte bloğu yaratan ve işlemlerin doğrulama işini yapan kişilere teşvik verilir. Yani bitcoin minerları 2 şekilde para kazanıyor: işlemleri doğrulama, blok yaratma.
İşlemleri Doğrulama (validation)
Blockchain üzerinde hesabı olan herkesin bir herkese açık (public) bir de özel (private) anahtar çifti vardır. Gerçekleşen her işlem, satıcı kişinin özel anahtarıyla şifrelenir ve herhangi biri bu satıcının herkese açık anahtarı sayesinde (kriptografi) bu işlemi doğrulayabilir. Bu doğrulamayı yapan kişiler, satıcılardan bir işlem ücreti alır (merak etmeyin bankalara kıyasla çok daha düşük bir ücret :) )
Temelde her işlem –yukarıdakilerin de özeti olacak şekilde- aşağıdaki gibi bir süreçten oluşur:
Yukarıdaki süreç sadece bitcoin gibi dijital para birimleri için değil aynı zamanda dijital olarak temsil edilebilecek her varlık için uygulanabilir.
Bir tık daha detaya inecek olursak, bu hash fonksiyonunu açarak başta bahsettiğim “matematiksel problem” ve “miner” kavramlarını açıklayayım. Aşağıdaki gibi bir fonksiyon düşünün:
Algoritmada yer alan bu fonksiyon sayesinde çıktı değeri olan hash değerine bakarak, girdi veriye ulaşmak imkânsız. Aynı zamanda veride yapılacak en ufak bir değişiklik hash değerinin değişmesine sebep olur (bu duruma bir sonraki yazıda verilerin değişmezliği konusunda tekrar değineceğim.)
Miner dediğimiz kişiler, X değerini deneme yanılma methoduyla deneyerek doğru hash değerine ulaşan ve böylece bloğu yaratıp teşvik kazanan kişilerdir. Sistem tarafından 10 dakikada bir üretilen bloğun X değerinin en çabuk bulan kişi bu ödülü kazanır. Tahmin edersiniz ki rekabet çok yüksek ve bu yüzden bir önceki yazıda bahsettiğim gibi çok ciddi elektrik tüketimine sebep oluyor bu yöntem. Yöntemin ismi Proof of Work (PoW). Gerçekten en çok çalışan, en çok enerji tüketen miner ın bu teşviği alma şansı çok daha yüksek.
Bu mutabakat algoritmasına alternatif olarak ortaya çıkan diğer algoritma ise Proof of Stake (PoS). Doğrulama işlemini yapacak kişiler (validator — önceki metotta miner olan kişilerin muadilleri), network tarafından seçilir. Bu seçim, kullanıcının network üzerinde sahip olduğu varlık miktarıyla doğru orantılıdır. Yani PoW daki gibi rekabet söz konusu değildir. Yine daha somutlaştırmak amacıyla, algoritmanın akışı aşağıdaki gibidir:
Bu iki algoritma arasındaki farkı özetleyecek olursak;
Proof of Work, minerlar arasında rekabet var. Matematiksel problemi ilk çözen kazanır. Ekolojik çevreye olumsuz etkisi var. Hem blok çıkaran, hem işlem doğrulayana ödül teşviği var.
Proof of Stake, validator arasında rekabet yok, network tarafından seçiliyorlar. Bu seçim toplam varlık ile doğru orantılı. Enerji tüketimi daha düşük. Blok çıkarana ödül yok, sadece işlemleri doğrulayana ödül var.
Mutabakat sürecini anlattığım bu yazıda işler biraz daha teknikleşti ama umarım anlaşılır bir biçimde aktarabilmişimdir. Teşvik edici geri bildirimleriniz sayesinde yazmak çok keyifli oluyor. Sonraki yazımın konusu, sistemdeki verilerin değişmezliği nasıl sağlanıyor olacak. Nispeten kısa bir yazı olmasını planlıyorum :) Şimdiden desteğiniz, olumlu/olumsuz geri bildirimleriniz için teşekkür ederim.
Sevgiler,
Özcan Gündeş
Hi! I am a robot. I just upvoted you! I found similar content that readers might be interested in:
http://coin5s.com/content/blockchain-de-neymi%C5%9F-3
Congratulations @hapbilgi.ozcan! You received a personal award!
Click here to view your Board of Honor
Do not miss the last post from @steemitboard:
Congratulations @hapbilgi.ozcan! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!