antonidas

  • 195
  • 11
  • 2
  • 0
  • dün

bitcoin

sonraki bir kaç entry boyunca teknik konularda eyyorlayacağım kriptonane.

öncelikle block nedir ne değildir diyerek başlayalım.

block dediğimiz şey belli başlı bilgilerin bi araya geldigi (kullanıcılar arası transferler, sonraki block için meta bilgiler gibi) veri topluluğudur.

bitcoin network'de ki 1. block'u genesis block olarak adlandırırız, basitçe satoshi amcanın gazete küpüründen aldığı metnin hash'ini içeren ilk block'tur. ilgili saçma salak metin ise şudur;

---
"the times 03/jan/2009 chancellor on brink of second bailout for banks"
---

ilgili foto: https://cdn.pbrd.co/images/akgg1qus3.jpg

konumuza devam edersek block'lar aynı zamanda kendinden sonra gelen/gelecek block hakkında veriler içerir.

bu verinin meali şudur;

---
beni (block x) oyle bir nonce (random) değerle bir araya getirip hash'le ki, sonuç içerisinde y adet 0 içeren bir değer olsun.
---

işte tam bu noktada mining pool ve miner yazılımları/donanımları devreye girer ve basitçe olası nonce değerleri cpu/gpu yahut asic vasıtasıyla deneyerek, hedefe uygun bir sonuç bulmaya çalışır. uygun bir nonce bulduğu zaman (ki zordur hemen heveslenmeyin), bunu bitcoin network'e yayarak block reward'a talip olur.

block içerisindeki diğer verilere devam edecek olursak sırada tx'ler (transaction) vardır. çok basite indirgersek, tx'ler kullanıcıların birbirleri arasında yaptıkları aktarım işlemleridir.

yine her block'ta bulunan tekil olan özel bir tx türü ise "coinbase tx" olarak adlandırılır ve temelde o bloğu bulan pool/miner'a ödenecek btc reward'ı içeren (mevcutta 12.5 btc) özel bir transaction'dır.

tx olayını sonlandırmadan önce kısaca bitcoin script'e (https://en.bitcoin.it/wiki/script) bakmakta fayda vardir. teknik olarak ağdaki bütün tx'ler aslında bitcoin script dediğimiz basit bir dil ile programlanmış gayet primitif iş parçacıklarıdır ve bunlar cüzdan yazılımları tarafından çalıştırılır.

herhangi bir bitcoin'e adresine ödeme gönderdiğimizde çoğunlukla arka planda pay-to-public-key-hash (yani public-key'e ödeme) işlemi gerçekleşmiş olur ve aşağı yukarı bu işlemin betiği şu şekildedir;

---
scriptpubkey: op_dup op_hash160 <pubkeyhash> op_equalverify op_checksig
---

basitçe cüzdan yazılımımız aktarım yapmak istediğimiz adresin public key'ini <pubkeyhash> kısmına ekleyip, kullanıcının private key'i ile bunu imzalayıp, bağlı olduğu node'lara göndererek bu tx'in ağda yayılmasını ve sonraki ilk block ya da devamında kabul edilip onaylanmasını talep eder.

tx'lerin yayılması mevzusu başka bir yazımızın konusu olacağından şimdilik es geçebiliriz sevgili suserler.

ethereum smart contracts daha ilginç ve komplike olsa da, bitcoin script'de kendi başına oldukça incelemeye değerdir. örnek vermek gerekirse mevcutta bitcoin script ile puzzle tx'ler kodlamamız mümkündür. örnek olarak şu tx'e göz atılabilinir.

---
scriptpubkey: op_hash256 6fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000 op_equal
---

kendisi basitçe hash'lendiğinde sonucu "6fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000" olacak bir input isteyen 1 btc reward'lı puzzle tx olmakla birlikte çözülmüştür ve çözüm genesis block yani network'de ki 1. bloğun kendisidir.

mevcutta bitcoin network'de bu ve bunun gibi çözülmüş yahut çözülmeyi halen bekleyen birçok puzzle tx vardır ki bazılarının reward'ı 20-30 btc'ye kadar çıkabilmektedir..

nasıl çözeceğimizi birdahaki yazımıza bırakıyorum diyerek hype'ı arttırsam bile inanmayınız sevgili suser, en fazla diğer sıkıcı teknik detaylarla devam ederiz :)

devamını okuyayım »