Daha Fazlası
Yeni başlayanlar için kılavuz
Bitcoin ve blok zincirin ortaya çıkışı, dijital para dünyasındaki iki köklü probleme dayanır: Çifte Harcama Problemi ve Bizans Generalleri Problemi.
Günlük hayatta kullanılan fiziksel para ile karşılaştırıldığında, elektronik para geliştirmenin en büyük zorluğu “güven problemini” nasıl aşılacağıdır. En eski dönemlerde deniz kabukları ve değerli metallerin genel değişim aracı olarak kullanılabilmesinin nedeni belirli bir kıtlığa sahip olmalarıdır; daha sonraki fiziksel banknotlar ise güven problemini devletin itibarı sayesinde çözmüştür.
Bu fiziksel paralar değer sahibiydi ve değer transferini anında gerçekleştirebiliyordu. Dijital çağda, her türlü içerik temelde 0 ve 1’lerden oluşur ve dijital para aynı anda iki kopya hâline getirilip iki farklı alıcıya gönderilebilir; bu durum “çifte harcama problemi” olarak adlandırılır. İnternetin kendisi değer temsil etme yeteneğine sahip olmadığından, insanlar kredi kartları ve diğer elektronik para türlerini kullanabilmek için banka gibi merkezi sunuculara sahip merkezi hesap sistemlerini kullanmak zorundaydı.
Ancak gerçekten güvenilir bir üçüncü tarafın olup olmadığı tartışmalıdır. Merkezi sunuculara yapılan saldırılar gibi tekil hata noktası riskleri vardır ve hatta devletler aşırı para basarak “Senyoraj” geliri elde edebilir. Bitcoin’in sunduğu çözüm, üçüncü taraf aracıları ortadan kaldırmak ve herkesin defterin merkezinde yer aldığı bir dağıtık defter inşa etmektir.
Defteri tutmaktan sorumlu tek bir “şefin” olduğu ve tüm köy halkının harcamalarının bu kişiye kaydedildiği bir köy düşünün; bu kişi defter sisteminin merkezidir. Köy şefi güvenilirse sistem iyi çalışır; ancak sistemin merkezindeki bu kişi hırsızsa, bunu başkalarının fark etmesi zor olabilir.
Şimdi de her üyenin aynı defterin bir kopyasına sahip olduğu “merkeziyetsiz” bir köy düşünün. Bir üye defterde değişiklik yapmak istediğinde, diğer üyelere “yayın” yoluyla haber verir; böylece diğerleri kaydı doğrular ve kendi defterlerine kopyalar. Tüm üyeler doğrulayıp defterlerini güncellemeden işlem tamamlanmış sayılmaz. Bitcoin ağı temelde bu şekilde çalışır.
Bitcoin, varlık işlemlerini kaydetmek için dağıtık defter olarak bilinen yeni bir dijital sistem icat etmiştir. Verilerin merkezi sunucularda saklandığı merkezi kayıt sistemlerinin aksine, blok zincir merkeziyetsiz bir veritabanıdır ve ağdaki her düğüm bu veritabanının saklayıcısı ve bakımcısıdır.düğüm
Bitcoin, blok zincirin ilk büyük ölçekli uygulamasıdır ve blok zincir Bitcoin’in temel altyapısını oluşturur. Bitcoin sistemi üç katmana ayrılabilir: veri katmanı, protokol katmanı ve uygulama katmanı. Önce her Bitcoin katılımcısının sahip olduğu “defter” (veri katmanı) ile başlayalım.
Blok zincir, ağdaki tüm düğümler tarafından tutulan ve her düğümün tüm blok zincir verisini sakladığı dağıtık bir defterdir. Bir düğümün sakladığı blok “zinciri”, birbirine bağlı sıralı bloklardan oluşur ve blokların kendisi kriptografik hash algoritmalarıyla korunmuş, değiştirilemez veri yapılarıdır.
Hash fonksiyonu (SHA-256 ve RipeMD160), Bitcoin’de kullanılan kritik bir kriptografik algoritmadır; rastgelelik ve çakışmaya dayanıklılık özellikleriyle, değişken uzunluktaki girdileri sabit uzunlukta çıktılara dönüştürür. Girdideki küçük bir değişiklik, çıktının tamamen farklı olmasına yol açar. Bir hash fonksiyonunun çıktısı girdiden kolayca elde edilebilir; ancak çıktıya bakarak girdiyi tahmin etmek kaba kuvvet denemeleri gerektirir ve bu da ciddi miktarda zaman ve işlem gücü ister. Hash fonksiyonlarının tekrarlı kullanımı, Bitcoin’in veri yapısını sadeleştirir ve tanımlar.
Bir Bitcoin bloğu iki bölümden oluşur: blok gövdesi ve blok başlığı. Blok gövdesi, o bloğa ait tüm işlem bilgilerini içerir; bu bilgiler birden fazla kez hash’lenerek Merkle ağacı adı verilen yapıyı oluşturur ve bu yapı blok gövdesini meydana getirir. Her bloktaki ilk işlem mesajı coinbase işlemi olarak adlandırılır; bu işlem yeni bitcoinlerin üretildiği ve madenciye ödül olarak verildiği işlemdir, diğer tüm işlemler ise kullanıcılar arasındaki transferlerdir.
Bu işlemler, tüm işlem verilerinin özeti niteliğinde olan Merkle Hash adlı değere ulaşana kadar birden fazla hash işleminden geçer. Merkle Hash; Nunce, zaman damgaları, ebeveyn blok hash’leri ve diğer verilerle birlikte blok başlığını oluşturur ve blok başlığının hash değeri hesaplandığında bu bloğun Block Hash’i elde edilir. Her bloğun başlığı, bir önceki bloğun hash değerini içerdiğinden tüm bloklar bir zincir hâlinde birbirine bağlanır. Bloklar birbirine kilitlenmiştir ve blok verilerinde yapılacak herhangi bir değişiklik, blok hash’inin değişmesine yol açarak zinciri bozar.
Her düğümün tuttuğu “defter” (veri katmanı) tanıtıldıktan sonra, ağ güvenliğinden sorumlu olan Bitcoin mutabakat katmanına geçelim. Dağıtık mutabakata geçmeden önce “Bizans Generalleri” problemini anlamak kritik öneme sahiptir.
Bizans Generalleri problemi, Bizans İmparatorluğu’nun geniş toprakları nedeniyle bilgilerin ulaklar aracılığıyla iletildiği Orta Çağ dönemine dayanır. Eğer bir hain, üst komutanlardan gelen operasyonel bilgileri kasıtlı olarak yanlış aktarırsa, bu durum tutarsız operasyon planlarına yol açar ve “Bizans Generalleri Problemi” ortaya çıkar.
Bitcoin ağı, her biri bağımsız, otonom ve eşit konumda olan çok sayıda merkeziyetsiz düğümden oluşur. Ağdaki her düğüm, blok zincir verilerinin kendine ait bir kopyasına sahiptir ve hepsi işlemleri ilk paketleyen node olup bitcoin ödülünü kazanmak ister. Peki, hangi düğüm defter yazma hakkını kazanacak ve tüm ağı blok zincir verilerini değiştirme konusunda mutabakata ikna edebilecektir?
Bitcoin’in cevabı, yaygın olarak “madencilik” olarak bilinen İş Kanıtları (PoW) mutabakat mekanizmasıdır; bu, node’lar tarafından gerçekleştirilen dijital bir hesaplama sürecidir ve “cevabı” ilk bulan düğüm defter yazma hakkını kazanır. Bu süreçte düğüm, blok başlığındaki Nunce değerini sürekli değiştirerek blok hash’ini hesaplar ve ilk birkaç biti sıfır olan bir blok hash’i elde etmeye çalışır.
Bu noktada Nunce değeri, problemin cevabıdır. Cevap bulunduğunda düğüm bunu diğer ağ düğümlerine yayınlar; diğer düğümler cevabı doğruladıktan sonra bu bloğu yeni ebeveyn blok olarak kabul eder ve bir sonraki madencilik turuna devam eder. Ancak verilerin düğümler arasında iletilmesi zaman aldığından, topluluk genelinde mutabakat sağlanmadan önce iki veya daha fazla düğümün aynı anda çözümü bulması tamamen mümkündür. Ancak iki düğümün farklı coinbase işlemleri paketlediği için bu durum iki farklı geçerli blok oluşmasına neden olur. Farklı sinyal sıralamaları nedeniyle madenci node’lar her iki çatallı zincir üzerinde de çalışır. Bu noktada Bitcoin ağı “en uzun zincir kuralı”nı uygular ve en fazla bloğa sahip olan çatallı zinciri tek geçerli blok zincir olarak kabul eder. Bu çatallanma rekabeti genellikle 6 bloktan daha kısa sürede sonuçlanır ve terk edilen diğer zincirdeki tüm işlemler geçersiz sayılır.
Bitcoin düğümleri, madencilik ve en uzun zincir kuralı sayesinde dağıtık defteri senkronize ederek mutabakata ulaşır. Bu mutabakata dayalı dağıtık defter, Bitcoin gibi eşler arası dijital paraları mümkün kılar.
Geleneksel elektronik para sistemleri, her kullanıcı için merkezi bir sunucuda hesapların oluşturulduğu ve tüm bakiye verilerinin saklandığı merkezi bir hesap sistemi kullanır. Her işlemden sonra hesap bakiyesi kronolojik sıraya göre artırılır veya azaltılır. Bitcoin ise harcanmamış işlem çıktılarının temsil edildiği UTXO modelini kullanır.
Bitcoin işlemlerinin güvenliği için asimetrik kriptografi kullanılır. Her Bitcoin kullanıcısı, bir hesap ve parola benzeri şekilde bir açık anahtar ve özel anahtar çiftine sahip olmalıdır. Kullanıcı işlem verilerini özel anahtarıyla imzalar ve işlem verisini, imzayı ve açık anahtarı birlikte yayınlar. Ancak her işlemde kullanıcı bakiyeyi doğrudan transfer etmez; bunun yerine önceki işlemlerin “harcanmamış tutarlarını”, yani UTXO’ları kullanır.
Bitcoin sisteminde hesap veya hesap bakiyesi kavramı yoktur; yalnızca geçmiş kayıtlardaki tüm işlemlerin UTXO’ları vardır. Bitcoin cüzdanları, geçmiş tüm işlemleri tarayarak belirli bir adresin (yani açık anahtarın) toplam UTXO’sunu hesaplar ve bakiyeyi belirler. Ayrıca bir işlem başlatıldığında, Bitcoin cüzdanları UTXO’ları otomatik olarak eşleştirerek transferi tamamlar.