Geleneksel para birimlerinde, hükümetler ihtiyaç duyduklarında fazladan para basabilirler. Ama Bitcoin fiziki olarak hiçbir zaman basılmamıştır ve sadece keşfedilir durumdadır. Dünyanın dört bir tarafındaki bilgisayarlar birbirleriyle yarış halinde Bitcoin bulmak için çalışırlar.
Kazım İşleminin Yapılması
İnsanlar sürekli birbirlerine ağ üzerinden Bitcoin gönderiyor ancak eğer biri bu işlemlerin kaydını tutmazsa hiç kimse kimin ne ödediğini takip edemez. Bitcoin ağı bu durumla, belli bir zaman diliminde yapılmış olan tüm işlemleri blok adı verilen bir listede toplayarak başa çıkar. Bu işlemleri onaylamak ve ana deftere geçirmek madencilerin işidir.
Hash Haline Getirmek
Yukarıda bahsettiğimiz bu ana defter, bloklardan oluşan ve blockchain olarak bilinen uzun bir listedir. Herhangi bir zamanda herhangi bir hesaptan diğerine ağ üzerinden yapılmış her türlü işlemi bulmak için kullanılabilir. Yeni bir işlem bloğu oluşturulduğu zaman blockchaine eklenir ve Bitcoin ağında yapılmış tüm işlemlerin gittikçe uzayan bir listesini oluşturur. Katılımcı olan herkese bloğun düzenli olarak güncellenen bir kopyası verilir böylece katılımcılar ne olup bittiğini bilirler.
Ana defterin güvenilir olması gerekir ve tüm bunlar dijital olarak gerçekleşmektedir.
“Blockchainin sağlam kaldığından ve onunla oynanmadığından nasıl emin olabiliriz?”
Burada madenciler devreye girmektedir.
Bir işlemler bloğu yaratıldığında madenciler onu bir işlemden geçirirler. Bloğun içindeki bilgiyi çıkarıp ona matematiksel bir formül uygulayarak onu farklı bir şey haline getirirler. Bu ‘farklı bir şey’ çok daha kısadır. Hash olarak bilinen görünürde rastgele harf ve sayı dizileridir. Hash o zamanlığına blockchainin en aşağısında blok ile beraber depolanır.
Hashler ilginç şeyler barındırırlar. Bitcoin bloğunda olduğu gibi, veri yığınından bir hash oluşturmak kolaydır ama o verinin ne olduğunu sadece hashe bakarak anlamak neredeyse imkansızdır. Büyük miktarda veriden hash oluşturmak kolay olsa da her hash eşsizdir. Eğer Bitcoin bloğunda bir tane karakteri değiştirirseniz, bloğun hashi tamamen değişir.
Madenciler hash oluşturmak için yalnızca bloğun içindeki işlemleri kullanmazlar. Verinin bazı farklı kısımları da kullanılır. Bu veri parçalarından biri blockchainde depolanmış en son bloğun hashidir.
Her bloğun hashi sıralamada kendinden bir önce gelen bloğun hashi kullanılarak üretildiği için, bir nevi mühür haline gelir. Bu mühür o bloğun -ve ardından gelen her bloğun- meşru olduğunu belirtir. Çünkü onunla oynamışsanız; herkes bilir.
Blockchaine depolanmış bir bloğu değiştirerek sahte bir işlem gerçekleştirmeye çalışırsanız, o bloğun hashi değişir. Eğer biri hashleme fonksiyonu kullanarak değiştirdiğiniz bloğun doğruluğunu kontrol edecek olursa, bloğun içindeki hashin blockchainde stoklanmış olan bloğun hashinden farklı olduğunu anlarlar. Bu durumda bloğun sahte olduğu anında anlaşılır.
Her bloğun hashi sırada kendinden bir sonraki bloğun hashini oluşturmaya yaradığı için, bir bloğun ayarlarıyla oynamak onun altındaki bloğun hashini de bozar. Bu örgü blockchainin en altına kadar devam eder ve önüne gelen ne varsa bozar.
Koinler için yarışmak
Madenciler bir bloğu yukarıda anlattığımız gibi ‘kapatırlar’. Hepsi, özellikle blok kazmak için hazırlanmış yazılımlar kullanarak birbirleriyle bunu yapmak için yarışırlar. Ne zaman yeni bir hash oluştursalar 25 Bitcoin kazanırlar, blockchain güncellenir ve ağ üzerindeki herkesin bundan haberi olur. Madencilik yapmanın ve işlemlerin devam etmesini sağlamanın teşviği budur.
Sorun şu ki; bir veri yığınından hash üretmek epey kolay. Bilgisayarlar bu konuda oldukça iyiler. Bitcoin ağı bu işi biraz daha zorlaştırmak zorunda aksi takdirde insanlar her saniye yüzlerce işlem bloğunu hashlerler ve tüm Bitcoinler dakikalar içinde kazılır. Bitcoin protokolü POW (proof-of-work) diye bir sistem getirerek bu işi kasıtlı olarak daha zor hale getirmektedir.
Bitcoin protokolü öyle herhangi bir hashi kabul etmez. Bir bloğun hashinin belli şekillerde olmasını ister. Başlangıcında belli sayıda sıfır bulundurması gerekir. Bir hashin nasıl görüneceğini onu tamamen üretmeden bilmenin hiç bir yolu yok ve hashin içindeki veri karışımına yeni bir veri parçası eklediğiniz anda, hash bambaşka görünür.
Madencilerin bir bloğun içindeki işlem verisine burunlarını sokmamaları gerekir ama farklı bir hash yaratmak için kullandıkları veriyi değiştirmeleri gerekir. Bunu nonce denilen tamamen farklı ve rastgele bir veri parçası kullanarak yaparlar. Bu, hash yaratmak için işlem verisiyle birlikte kullanılır. Eğer oluşturulan hash formata uymuyorsa nonce değiştirilir ve tüm veriler tekrar hashlenir. İşe yarayan bir nonce bulmak için pek çok kez deneme yapmak gerekebilir ve ağ üzerindeki tüm madenciler aynı anda bunu yapmaya çalışırlar. Madenciler Bitcoinlerini bu şekilde kazanırlar.