Bitcoin ve Blockchain Mekanizması (Blok Zinciri)
Bitcoin ve Blockchain Mekanizması (Blok Zinciri) dijital şifreli para birimlerinin en temel yapısını oluşturmaktadır. Bu yüzden bu kavramın öğrenilmesi bitcoin çalışma mekanizmasını anlamak için önemlidir.
Bitcoin ve Blockchain Mekanizması (Blok Zinciri) Nedir ?
Bitcoin ve Blockchain Mekanizması (Blok Zinciri), bitcoin işlemlerinin tutulduğu şeffaf(halka açık) hesap defteri olarak düşünülebilir. Bitcoin işlemleri merkezileştirilmiş bir otoriteye ihtiyaç duymaz. Yani bir banka veya 3. Parti kuruluşların aracılığı olmadan işlemler gerçekleştirilmektedir. Bunun için bitcoin yazılımı kurulu bilgisayarlardan faydalanmaktadır. Yazılım kurulu tüm bilgisayarlar bir network yardımıyla birbiriyle bağlıdır. Bunlar iletişim halindedir ve senkronizedir. Yani tüm hesap kayıtları ve işlemler tek bir merkezi sistem yerine tüm kullanıcılarda(node’larda, düğümlerde) dağıtık olarak tutulmaktadır.
BlockChain çalışma prensibini örneklendirmek gerekirse;
- Ahmet kişisi Ayşe kişisine para göndermek istediğinde bu işlemi ağda ki bütün kullanıcılara söyler ve bu bir yayındır.
- Ağdaki tüm kullanıcılar işlemi alır ve kendi sistemlerine(hesap defterlerine- veri tabanlarına) kaydeder.
- Daha sonra bu kullanıcılar(node’lar) kendi key’leri ile bu para gönderme işlemini onaylar ve kendi keyleri işlemin dijital imzasına kaydeder.
- Böylece diğer kullanıcılara (nodelara) yayın yapılır.
- Bu bloklar bir önceki bloglar ile bağlantılıdır. Bu bağlantı ise her önceki düğümün onayladığı ve eklediği şifreler ile mümkündür.
- Bir diğer deyişle bir düğüm, bir işlemi onaylayıp zincire eklerken kendi düğümüne ait şifreleri de bu blok sonuna ekler. Bir sonraki onaylayacak düğümde bir önceki düğümün şifresiyle beraber gelen şifre üzerinden işlem yapmak zorundadır.
Burada eğer bir node, block yapısını değiştirmeye kalkarsa ondan sonra oluşturulan tüm blokların geçerliliği kaybolmuş olacaktır. Bu da tüm block zinciri yapısının bozulması anlamına gelmektedir. Bu yapının tekrar kurulabilmesinin tek yolu tüm zincirin tekrar oluşturulmasıdır.
Block Yapısı
4 bytes -> Block Size -> Byte cinsinden blok yapısının boyutu
80 bytes -> Block Header ->Blok yapısına ait genel bilgiler
1-9 bytes (VarInt) -> Transaction Counter -> Bu blok içinde kaç işlemin barındırıldığı
Variable -> Transactions ->Transactaction’ların detayları
Block Başlığı
Blok başlığı 3 adet temel bilgiyi içermektedir. İlki bir önceki bloğun oluşturduğu hashlenmiş şifresidir. İkinci metadata seti, zorluk, zaman damgası ve proof of work katsayısı ile ilgilidir. Üçüncüsü ise merkle ağacı yapısına ait bilgilerdir. Detaylar aşağıdaki gibidir.
4 bytes ->Version ->Versiyon
32 bytes -> Previous Block Hash -> Zincirde ki bir önceki node’un hashlenmiş şifresi
32 bytes -> Merkle Root -> Merkle ağacının hashlenmiş yapısı
4 bytes -> Timestamp -> Oluşturulma zamanı unix timestamp cinsinden
4 bytes -> Difficulty Target -> Proof of work algoritmasının zorluk derecesi
4 bytes -> Nonce -> P-o-w için kullanılan sayaç
Bir bloğun parmak izi olarak, blok başlığında yer alan kriptografik şifredir. Sha -256 algroitamsı kullanılarak oluşturulmuştur.
Genesis Bloğu
2009 yılında oluşturulan ilk blok yapısının adıdır. Şimdiye kadar oluşturulmuş blok zincirlerinde ki tüm blokların üretildiği bloktur. Bu da eğer güncel blok üzerinden geriye doğru gidilirse en sonunda (en temelde) bu blok’a ulaşılacaktır.
Genesis blokunun hashleniş imzası aşağıdaki gibidir.
000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
Eğer bu bloğa ait detayları incelemek istiyorsak,
{
"hash" : "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f",
"confirmations" : 308321,
"size" : 285,
"height" : 0,
"version" : 1,
"merkleroot" : "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b",
"tx" : [
"4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b"
],
"time" : 1231006505,
"nonce" : 2083236893,
"bits" : "1d00ffff",
"difficulty" : 1.00000000,
"nextblockhash" : "00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048"
}
Bu işlem bloğu içinde bir mesaj da bulunmaktadır. Mesajın içeriği, “The Times 03/Jan/2009 Chancellor on brink of second bailout for banks.” şeklindedir. Bu mesaj ile o günün The Times gazetesinde çıkan bir haberin başlığına yer verilmiştir(Seçilen başlığın manidar olması gözden kaçmamalıdır).
Blokların Zincire Eklenmesi – Block Chain Oluşturulması
Dijital para birimi yazılımı tüm düğümleri(node) block chainler(zincirler) halinde local bilgisayarda bir kopya halinde bulunmaktadır. Yeni bir blok oluşturulduğunda veya bulunduğunda bu local kopyaya eklenir ve local kopya güncellenir. Yeni bir blok network tarafından geldiği zaman öncelikle bu gelen yeni blokun geçerlilik durumu hash’lere bakılarak kontrol edilir. Geçerli bir blok olduğu karar verilirse bu blok lokalede ki block zincirine eklenir. Bir bağlantı kurmak için, bir düğüm gelen blok başlığını inceler ve “önceki blok imzasını” nı arar.
Örneğin, bir düğümün blok zincirinin yerel kopyasında 277.314 blok olduğunu varsayalım. Bu düğümün bildiği son blok 277314 numaralı
00000000000000027e7ba6fe7bad39faf3b5a83daed765f05f7d1b71a1632249
Network’ten gelen yeni blok ise aşağıdaki bilgilerde olsun;
{
"size" : 43560,
"version" : 2,
"previousblockhash" :
"00000000000000027e7ba6fe7bad39faf3b5a83daed765f05f7d1b71a1632249",
"merkleroot" :
"5e049f4030e0ab2debb92378f53c0a6e09548aea083f3ab25e1d94ea1155e29d",
"time" : 1388185038,
"difficulty" : 1180923195.25802612,
"nonce" : 4215469401,
"tx" : [
"257e7497fb8bc68421eb2c7b699dbab234831600e7352f0d9e6522c7cf3f6c77",<
#[... many more transactions omitted ...]
"05cfd38f6ae6aa83674cc99e4d75a1458c165b7ab84725eda41d018a09176634"
]
}/code>
Yeni gelen blokta bir düğüm öncelikle “previousblockhash” alanını kontrol etmektedir. Bu alan bu bloktan önceki blok için oluşturulan dijital imzadır. Düğümün son blok dijital imzasıyla aynı olduğunu doğruladığı zaman block zincirinin son kısmına eklenir ve lokal’deki blok zinciri sayısı artık 277315 olmuştur.
Son Yorumlar