Bitcoin; değer önerileri, fiyat hareketleri, oluşturduğu yeni finansal sistem gibi konularla daha çok gündemde kalsa da tüm bu detayların oluşması için, Bitcoin’in arka planında 15 yıldır aralıksız çalışan bir sistem yer almaktadır. Bitcoin blokzincirinin, yıllardır 7/24 hiç durmadan çalışmasını sağlayan sisteminin, Bitcoin yazılımının tüm detaylarını ve merak edilen soruların cevaplarını BtcTurk Teknoloji Departmanı yanıtladı. Bitcoin yazılımı hakkında bilinmesi gereken önemli detayları bu yazıda bulabilirsiniz.
ANA BAŞLIKLAR
1. Bitcoin yazılımı nedir? Ne işe yarar?
Bitcoin Core da dahil Bitcoin yazılımları; Bitcoin protokollerinin, politikalarının ve kurallarının eksiksiz bir şekilde uygulanmasını sağlamak için geliştirilmiş yazılımlardır. Bir Bitcoin yazılımının, bir bilgisayar üzerinde çalıştırılan her tekil örneği Bitcoin düğümü (node) olarak adlandırılır.
Bitcoin blokzinciri, aynı Bitcoin protokollerini ve kurallarını uygulayan, kendi aralarında tamamen aynı dili konuşan birçok Bitcoin düğümünün birbiri arasında doğrudan iletişimleri ve mesajlaşmaları ile meydana gelir.
Bitcoin blokzincirinde tüm işlemler, Bitcoin yazılımları tarafından başlatılır ve gerçekleştirilir. Yine tüm işlemler Bitcoin yazılımları tarafından onaylanır ve diğer düğümlere dağıtılır.
2. Bitcoin yazılımı hangi dilde yazılmıştır?
Bitcoin’in ilk yazılımı, günümüzde de en çok kullanılan yazılım olan Bitcoin Core’dur. Bitcoin Core, Bitcoin ekosisteminde yer alan kullanıcılar ve yazılımcılar tarafından açık kaynak kodlu geliştirilen referans yazılımdır. Bitcoin Core C++ dili ile geliştirilmiştir.
3. Bitcoin Core dışında Bitcoin blokzincirinin çalışmasını sağlayan yazılım var mıdır?
Bitcoin Core’a alternatif olarak, aynı Bitcoin protokol ve politikalarını uygulayan başka Bitcoin yazılımları da geliştirilmiştir. Alternatif yazılımlar arasında en popüler olanı BTCD yazılımıdır. BTCD yazılımı, GO dili kullanılarak geliştirilmiştir.
Farklı firma ve organizasyonların, yine açık kaynak kodlu olarak sürdürdüğü, farklı dillerde yazılmış başka uygulamalar da bulunmaktadır.
https://github.com/bitpay/bitcore
https://github.com/piotrnar/gocoin
https://bcoin.io/
https://github.com/bitcoinknots/bitcoin
4. Bitcoin Core yazılımı, akış olarak nasıl bir algoritmaya sahiptir?
Bitcoin yazılımı birçok akışa sahiptir.
- İlk senkronizasyon
- Blok üretimi
- Transaction üretimi
- Mempool
- Transaction relay
- Cüzdan yönetimi
- Mining
- Blok
- Tx Api
5. Genesis Block’un (Başlangıç Bloku) ve sonraki blokların oluşmasını sağlayan parametrelerde fark var mıdır?
Başlangıç Bloku ile bir sonraki birkaç blok arasındaki tek fark, Başlangıç Bloku’nun bir önceki bloğu olmamasıdır. Bu fark dışında; blok üretme zorluğu, blok ödülü, işlem sayısı (1 Tx) gibi detaylar sonraki bloklarla aynıdır. Blok Ödülü Yarılanması sürecinin ardından ise blok ödülleri yarıya düşmektedir.
Başlangıç Bloku’ndan sonra gelen 2. blok, 6 gün sonra oluşturulmuştur. Bu sadece Başlangıç Bloku ve ondan sonra gelen blok için geçerli bir durum olmuştur. Sonraki bloklar, ortalama 10 dakikada bir oluşturulmuştur.
Başlangıç Bloku’ndan kazanlıan blok ödülü harcanamaz olarak ayarlanmıştır. Üretilen ilk Bitcoinlerin hareket ettirilememesinden bağımsız olarak, bu Tx output, teknik olarak harcanamaz. Bitcoin blokzincirindeki ilk işlem, blokzinciri veritabanına kasıtlı ya da kasıtsız olarak kaydedilmemiştir.
Bloklar arasındaki en temel farklardan biri, blok üretim zorluğudur. Bitcoin protokolü, ortalama 10 dakikada bir yeni bir blok üretimi yapacak şekilde kodlanmıştır. Bitcoin blokzincirinde, 210,000 blokta bir, Bitcoin blok üretme zorluğu artar. Yani 10 dakikada bir gerçekleştirilen Bitcoin blok üretiminin zorluğu, her zaman aynı seviyede değildir.
Bitcoin blokzinciri, bağımsız geliştiricilerin katkıları ile geliştirilmeye devam etmektedir. Tamamen merkeziyetsiz olarak yönetilen ağ, herkesin katılımına ve geliştirme önerilerine açıktır. Üstelik ağın gelişimine katkı sağlayan gönüllü geliştiriciler, Brink ve benzeri kar amacı gütmeyen organizasyonlar tarafından desteklenmektedir. Yazılım geliştiricileri, Bitcoin ağının ölçeklenebilirliğini ve verimliliğini artırmak için geliştirme önerileri sunmaya devam etmektedir.
Bitcoin yazılımcılığı alanında kariyer hedefleyen kişilerin merak ettiği soruları BtcTurk Teknoloji Departmanı yanıtladı. Bitcoin yazılımcılığı hakkında tüm detayları Yazılım Geliştiricilerin Bitcoin Kariyeri içeriğinden inceleyebilirsiniz.