Kripto madenciliğin ne olduğundan ve nasıl çalıştığından bahsedelim. Piyasadaki binlerce kripto para bir yana, bugün yalnızca Bitcoin için en az 1 milyon benzersiz "madenci" bulunuyor. Peki tüm bu kripto madencilik süreci tam olarak nedir ve madenciler hangi rolü üstlenir?
Kripto madencilik neden var?
Günümüz bankaları gibi modern merkezi sistemlerde bir bireyin ne kadar paraya sahip olduğunu doğrulamaya yarayan ve böylece müşterinin sahip olduğundan fazlasını harcamasını engelleyen tek bir büyük defter bulunur. Peki kripto para gibi merkezi olmayan, eşler arası bir sistemde kurnaz bir kişinin parasını birden fazla kez harcamasını engelleyen nedir?
Kripto madencilik burada devreye giriyor. Kripto para dünyasında madenciler merkezi olmayan bankacı rolünü oynar ve sistemin çift harcama yapılmadan çalışmasını sağlar. Çalışmalarının karşılığında ise bir miktar kripto para ödülü alırlar.
Bitcoin madencileri başlangıçta yaklaşık her 10 dakikada bir 50 BTC ödülü için rekabet ediyordu. Bugün bu ödül 3 defa "yarılandı" ve 50 BTC'den 6,25 BTC'ye indi. Bir sonraki yarılanma 2024'te gerçekleşecek ve 21 milyon Bitcoin'in tamamı çıkarılıncaya kadar (2030-2040 civarında olması bekleniyor) yarılanma 4 yılda bir devam edecek.
Yarılanmanın (halving) nedeni enflasyonu kontrol altında tutmaktır. Tüm Bitcoin'ler kazıldıktan sonra ağ, işlem ücretleriyle çalışacak yani kripto madenciler çok daha az olan işlem ücreti ödülü almaya başlayacak.
Çift harcama, kriptografik güven kanıtı, yarılanmalar, sınırlı arz, değişmez bir defter ve dağıtık bir blok zinciri. Peki tüm bu karmaşıklık neden? Tüm bunlar Satoshi'nin mali gücü merkezileşmiş birimlerden halka aktarırken uygun kontrol ve bakiyelerle elektronik bir nakit sistemi oluşturmayı amaçladığı orijinal makalesine dayanıyor. Bu vizyonun gerçekleşip gerçekleşmediği hala tartışmaya açık ancak işin ekonomisi bir yana, böylesine devasa bir sistemin 9 sayfalık basit bir teknik incelemeden çıkması etkileyicidir.
Madenciler ne yapıyor?
Kripto para birimi devrimini mümkün kılan madencilerin gerçekte ne yaptığına teknik açıdan göz atalım.
Bitcoin'in whitepaper makalesinde GPU kelimesinden hiç bahsedilmez. Hatta temel madencilik donanımı sadece CPU'ya odaklanılır. Ancak şimdilerde GPU'lar bile modası geçmiş durumda çünkü artan madencilik rekabeti nedeniyle ödül kazanabilmek için FPGA veya ASIC'lere ihtiyaç duyuluyor. Farklı mimariye sahip bu cihazlar arasındaki en büyük fark zor bir matematik problemini çözmek için gösterdikleri yüksek düzeyde paralelliktir.
Bir kripto madencinin işi iki yönlüdür. (1) Veri bloklarını doğrulamak ve blok zincirine işlem eklemek. Bu işlemler her seferinde yalnızca bir madenci tarafından yapılır. Bir madencinin bir bloğu düzenleme şerefine sahip olması için (2) sayısal problemi çözen doğru 64 basamaklı onaltılık sayıyı ("hash") bulan ilk kişi olması gerekir.
Kripto hesaplamada amaç doğru sayıyı bulmak ("nonce" denilir) ve kriptografik fonksiyona (Bitcoin için SHA-256) eklemektir. Sayı eklendiğinde tanımlı değerden daha düşük bir sayı üretilir. İşin garip tarafı doğru nonce'ı tanımlamak pratikte tahmin işidir çünkü sonuçta bu bir gizli kriptografik fonksiyondur.
Kripto madencilerin bu devasa işlem birimleri ve bol miktarda elektrikle yaptığı şey birçok nonce'ı paralel biçimde tahmin etmek oluyor. Nonce sadece amaç için bir araçtır: Madencinin gerçekte peşinde olduğu şey doğru nonce'ı bularak doğru hash değerini hesaplamaktır.
Adımlar
Yukarıda bu hesaplamanın bir örneği yer var. Tüm problemi çözmek yaklaşık 17 dakika sürdü ve bunun hızı günde 0,67 hash'tir. Bugün modern bir GPU'nun hash değeri saniyede 80 milyondur.
Aklınızdan bir sayı (ör. 10) tuttuğunuzu ve üç arkadaşınızdan bunu tahmin etmesini istediğinizi düşünün. Bir arkadaşınız 11'i tahmin ederse kaybeder çünkü 10'dan büyüktür ve diğer arkadaşlarınız 6 ve 9'u tahmin edebilir. 9 daha yakın olsa da her iki kişi de eşit ödül alır. Şimdi 10'u değil 64 haneli bir heksadesimal sayıyı düşündüğünüzü ve bunu milyonlarca madenciye sorduğunuzu düşünün. Tahmin etmesi kolay olmayacaktır.
Bir heksadesimal sayı şunun gibidir: 0000000000000000032fcc603cf0130d95e21c1839803e7f967ac56e4df598ee.
Bilindiği gibi biz desimal yani ondalık sistemi kullanıyoruz. 0'dan 9'a her hanenin 10 farklı sayı olma ihtimali vardır. Heksadesimal ise 16 tabanlı demektir (hex Yunance 6 ve deca 10). a, b, c, d, e ve f ise sırasıyla 10, 11, 12, 13, 14 ve 15'e karşılık geliyor.
Madencilerin tahmin etmesi gereken bu sayıya hedef hash deniliyor. Madenciler olabildiğince fazla sayıda nonce tahmini yaparak bu 64 bitlik heksadesimal sayıyı oluşturmaya çalışır (nonce, "bir kez kullanılan sayı" demektir). Bitcoin madenciliğinde nonce'ın boyutu 32 bittir ve 256 bit olan hash'ten küçüktür. Bulduğu nonce, hedef hash'e eşit veya küçük olan ilk madenci bloğu tamamlar ve ödülü alır.
Hedef hash'e ulaşmak 16 yüzlü bir zarı 64 kez sallamaya benzer.
Hedef hash'i tahmin ederken en az 8 sıfırlı ve en çok 63 sıfırlı tüm sayılar denenir. Bitcoin protokolüne göre hiçbir hedef şu sayıdan büyük olamaz: 00000000ffff0000000000000000000000000000000000000000000000000000.
Aşağıda Bitcoin blok zincirinden alınmış bir bloğun bilgileri yer alıyor. Bloğa dair birçok bilgi var ancak Hash'e bakarsanız madencilerin peşinde olduğu o hedef numarayı görürsünüz. Dikkati çeken bir şey hash'teki önde gelen sıfırların sayısıdır: Tesadüfi değildir ve madencilik algoritmasının zorluğunu belirlemeye yardımcı olan şey budur. Birazdan değineceğiz.
![Kripto madenciliği nedir ve nasıl çalışır? 2 bitcoin blogu](https://evrenatlasi.com/wp-content/uploads/2021/05/bitcoin-blogu.jpg)
Blok 678411'i oluşturmak için kullanılan nonce 2,217,356,589'du (veya onaltılık olarak 0x842a2d2d). Nonce diğer birçok değerle (önceki blok hash'i, Merkle kökü, zaman damgası vb.) öyle bir biçimde kullanılır ki bu varlıkların hash'leri birlikte şu belirli hedeften daha küçük bir değeri verir: 00000000000000000006c9fad44b7f37429b239d99d50396df13f8c4f4fa9194.
Bu kriptografi (şifreleme) işlevinin hesaplama karmaşıklığını anlamak için keyfi bir mesajın SHA-256'sını hesaplayan şu hesap makinesine göz atın.
Bir metin girin ve bunun birçok işlemin özeti olduğunu (Cenk'in Aybüke'ye 100 lira göndermesi gibi), çeşitli metadate (önceki blokların hash'i, Merkle kökü, zaman damgası vb.) ve nonce bilgileri içerdiğini düşünün. Buradaki zorluk, doğru nonce'ı tespit etmektir yani mesaja dahil edildiğinde başında 19 sıfır bulunan çıktıyı üretecek olan değer.
Bu hesap makinesini kurcalarsanız, işlemin "rastgele" olduğunu ve 19 sıfır bir yana çok sayıda önde gelen sıfırlı sayı bulmanın çok fazla tahmin gerektirdiğini fark edersiniz. İşte bir bloğun kazılmasına dair zorluk bu değerin başındaki sıfır miktarı değiştirilerek artırılıyor ve "blok başına 10 dakika" hedefi korunuyor. Her gün artan madenci sayısına karşı önemli bir önlemdir.
Yukarıda ayrıca blok 678411'deki madencilik ödülünün 6,25 BTC + yaklaşık 1,11 BTC tutarında ek bir ödül olduğunu da göreceksiniz. Bu yazının yazıldığı sırada 6,25 bitcoin standart ödüldür ve tüm BTC çıkarılıncaya kadar birkaç kez daha yarıya düşecek. Tüm BTC çıkarıldıktan sonra ağ yalnızca işlem ücretleriyle çalışacak ve blokta yapılan işlemlerin küçük bir kısmı madencilere verilecek.
Neden kriptografik algoritma kullanılıyor?
Tüm kripto para dünyasının merkezinde kriptografik algoritmalar yer alıyor çünkü kriptografik algoritmaları madencilerin çözdüğü "matematik problemi" için ideal kılan bazı özellikler var:
- Geriye doğru hesaplama için pratik olmaması (hedef değerden başlayarak nonce'ı elde etmek)
- İleri yönde hesaplama için çok fazla tahmin gerektirmesi
- Tahmin probleminin zorluğunun, ağa daha fazla madenci katıldıkça artacak şekilde ayarlanabilmesi. Bu sistem ağın saldırılara karşı güvenli olmasına yardımcı olur.
- Blok zinciri değişmezdir; önceki herhangi bir işlemi ileriye dönük zincirlemeye çalışmak, sonraki tüm işlemleri matematiksel olarak bozar.
SHA-256, kripto para birimleri için kullanılan tek madencilik algoritması değil. Bitcoin'in sıradan madenciler için zor olmasının nedeni SHA-256'nın hesaplanması için özel olarak geliştirilmiş ASIC'lerin kullanılması oldu. Örneğin Ethereum, ASIC'e dirençli olması için tasarlanan Dagger-Hashimoto algoritmasını kullanıyor.