blokzinciri

Bitcoin, piyasaya öncülük eden kripto paralardan biridir. Bitcoin’in piyasa değeri tüm sektörün yüzde 50’sini aşıyor. Bitcoin’e duyulan ilgi, değerinin 2017 sonlarında en yüksek fiyatına ulaşmasına yol açtı. Ancak insanlar Bitcoin’in ayrıntılarını bilmiyor. Burada Bitcoin blokzincirindeki işlemleri inceleyeceğiz.

İşlemler Bitcoin blokzincirinin merkezi parçalarından biridir. Bitcoin bir para birimi olduğuna göre en azından defterlere ve işlem ayrıntılarına sahip olması gerekir. Bu işlemler sistem tarafından gruplanır ve bloklara yerleştirilir. İşlemler gerekli olduğu için bu tür kayda işlem tabanlı defter denir. Hesap tabanlı ve işlem tabanlı muhasebe arasındaki farkı bilmek gerekir.

Teoriden pratiğe geçmek isteyen kullanıcılar için, özellikle gerçek fonlarla ve ağ ücretleriyle uğraşırken İstanbul’da Bitcoin almaya karar vermeden önce Bitcoin işlemlerinin nasıl çalıştığını anlamak önemlidir.

İşlem tabanlı ve hesap tabanlı muhasebe arasındaki fark

Hesap tabanlı defter, kayıtların ana odağının hesaplar olduğu defterdir. Her işlem kişilerin hesaplarına atıfta bulunur ve işlemleri yapmak için yeterli miktarda coin olup olmadığını belirler. Blokzincirinin yüzlerce bloktan oluştuğunu biliyoruz. Gönderen hesabın doğru miktarda paraya sahip olduğunu belirlemeye çalışırsak tüm blokları analiz etmemiz ve doğru olup olmadığını hesaplamamız gerekir. Bu süreç çok zahmetlidir. İlk tabloya bakarsak tablonun sonunda Alice’in transfer etmek için doğru miktarda parası olup olmadığını belirlemek zordur. Hesaplayabileceğimiz kısa bir liste olsa da gerçek blokzincirinde bunu yapmak zordur. Hesaplamadan sonra bunun geçerli bir işlem olmadığını göreceğiz. Gerçek kullanımda, İstanbul’da Bitcoin aldığınızda veya sattığınızda her seferinde aynı işlem yapısı geçerlidir: girdiler seçilir, çıktılar oluşturulur ve ağ, onaydan önce transferi doğrular.

defter

İşlem tabanlı defter, kayıtların ana odağının işlemlerin kendisi olduğu defterdir. Her işlem, geçerliliğini kontrol etmek için başka bir işleme atıfta bulunur. Girdi satırındaki sayı başka bir işleme ve tam olarak o kişiye atıfta bulunur. Gerçekte bu dizin numaraları, o işlemlere giden hash işaretçileridir (hash pointer). Her işlemin kendi hash değeri vardır. Dolayısıyla yalnızca önceki işlemi bularak Alice’in hesabında belirli bir miktar parası olduğunu tespit edebiliriz. Coinlerinizin tamamını bir kerede harcamanız gerektiğinden, paranın başka bir kısmını genellikle diğer hesabınıza olmak üzere kendinize geri göndermeniz gerekir. İki ayrı hesaba transfer etmek istiyorsanız bunu işlemin çıktısına iki farklı kişi ekleyerek yapabilirsiniz. Öte yandan iki ayrı işlemden göndermek istiyorsanız bunları tek bir girdide birleştirebilirsiniz. Kullanıcıların İstanbul’da kripto parayı nakde çevirmesine imkan tanıyan platformların basit bakiye takibi yerine işlem tabanlı doğrulamaya dayanmasının nedeni tam olarak budur.

İşlemin derinliklerine inmek

İşlemin nasıl çalıştığını inceledik. Şimdi işlemin programlama tarafına inmenin zamanı geldi. Bitcoin’i soyut bir sistem olarak düşünen birçok kişi için bunun ilginç olacağından eminim. Burada işleme yakından bakmaya çalışacağız.

İşlemin girdi ve çıktısı olduğunu, bunun betik (script) için de geçerli olduğunu biliyoruz. Ayrıca işlem hakkında bize bazı bilgiler veren bir üst veri (metadata) bölümü vardır. Üst veride analiz edilecek bazı önemli anahtar kelimeler vardır. İlk olarak “hash” işlemin hash değeridir. Gelecekte bu işleme hash işaretçisi olarak kullanılabilecek hash değeridir. İkinci olarak “vin_sz” işlemdeki girdi sayısıdır. Burada iki girdi var. Sonra “vout_sz” işlemdeki çıktı sayısıdır. Burada bir çıktı var. “size” işlemin boyutudur.

Üst veriden sonra girdiler bölümü gelir. İki girdimiz var ve iki benzer kod parçamız olacak. İlk olarak “hash” önceki işlemin hash değeridir ve “n” işlemdeki dizini gösterir. Çıktının dizini sıfırdır ve sıfır, öncekinden ilk çıktıdır. Sonunda “scriptSig” vardır; bu, önceki işlemden o fonları talep edebildiğimizi gösteren imzamızdır.

üst veri

Son bölüm kodun çıktı kısmıdır. Çıktı iki bölümden oluşur: değer ve betik. “value” göndermek istediğiniz coinlerdir. “scriptPubKey” yalnızca açık anahtarı değil başka şeyleri de içerir. Adından anlaşılacağı gibi bir betiktir. Bu, Bitcoin betik dilidir. Bu dil basit, kompakt ve özellikle kriptografi için yapılmıştır. Yığın (stack) tabanlı bir dildir. Bu programlama dilinde döngü fonksiyonu yoktur. Bu, her komutun doğrusal bir şekilde bir kez yürütüldüğü anlamına gelir. Çıktıdaki betikleri inceleyelim.

<sig> <pubKey> OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG

Bu betikte <sig> ve <pubKey>, ödemeyi alacak alıcı tarafından belirlenir. OP_DUP, yığının tepesindeki son yığılan değeri (bu durumda <pubkey>) alıp çoğaltan işlemdir. OP_HASH160, son yığılan değerin (<pubkey>) hash değerini bulur. Sonra algoritma, gönderen tarafından sağlanan açık anahtar olan <pubKeyHash> değerini ekler. Sonra OP_EQUALVERIFY, alıcı ve gönderen tarafından sağlanan açık anahtarın hash’inin aynı olduğunu doğrulayan işlemdir. Doğruysa son iki yığın kaybolur. Son olarak açık anahtarın doğru olduğunu zaten bulduk ve OP_CHECKSIG, imzayı yeniden doğrulayan ve imzanın tüm işlem için doğru olduğunu onaylayan komuttur. Bitcoin betik dilinin gücü, hiçbir kütüphaneyi çağırmamasıdır. Her şey Bitcoin betik dilindedir. Bir hata oluşursa tüm süreç durur ve işlem blokzincirine eklenmez.

Bitcoin işlemlerini görselleştirmek

Bitcoin işlemlerini durağan veriler olarak değil, bir akış olarak ele aldığımızda anlamak çok daha kolay hale gelir.

Bir kullanıcı işlem başlattığında cüzdan yazılımı daha önce alınmış coinleri (harcanmamış çıktılar olarak bilinir) seçer ve bunları girdi olarak kullanır. İşlem daha sonra özel anahtarla imzalanır ve Bitcoin ağına yayınlanır. Bu aşamada, mempool adı verilen onaylanmamış işlemler havuzuna girer.

Buradan itibaren madenciler işlemleri değerlendirir ve hangilerinin sonraki bloğa dahil edileceğini seçer. Bu seçim öncelikle işlem ücretlerine dayanır. Bir işlem bir bloğa dahil edilip blokzincirine eklendiğinde ilk onayını alır. Her ek blokla işlem daha güvenli ve geri döndürülemez hale gelir.

Bitcoin işlemlerinde ücretlerin rolü

Bitcoin’de son yıllardaki en önemli gelişmelerden biri bir ücret piyasasının (fee market) ortaya çıkmasıdır.

Bitcoin işlemleri eşit biçimde işlenmez. Bunun yerine madenciler boyutlarına göre daha yüksek ücret sunan işlemlere öncelik verir. Bu ücretler sabit bir tutar olarak değil, genellikle bayt başına satoshi (sat/vB) cinsinden ölçülür.

Pratik olarak bu şu anlama gelir:

  • Çok girdili bir işlemin boyutu daha büyük olur

  • Daha büyük işlemlerin hızlı işlenmesi için daha yüksek toplam ücret gerekir

Yüksek talep dönemlerinde kullanıcılar daha yüksek ücret teklif ederek fiilen birbiriyle rekabet eder. Sonuç olarak düşük ücretli işlemler mempool’da uzun süre bekleyebilir ya da hiç işlenmeyebilir.

Bu dinamik sistem, kullanım arttığında bile ağın verimli kalmasını sağlar.

Mempool’u anlamak

Mempool, henüz onaylanmamış işlemler için bir bekleme alanı olarak düşünülebilir.

Bitcoin ağındaki her düğüm, geçerli ancak onaylanmamış tüm işlemleri içeren kendi mempool sürümünü tutar. Ağ tıkanık olmadığında işlemler nispeten hızlı onaylanabilir. Ancak yoğun dönemlerde mempool önemli ölçüde büyüyebilir.

Bu gibi durumlarda:

  • Yüksek ücretli işlemler önce işlenir

  • Düşük ücretli işlemler gecikme yaşayabilir

  • Bazı işlemler çok uzun süre onaylanmadan kalırsa sonunda düşürülebilir

Bu mekanizma, herhangi bir merkezi otoriteye dayanmadan doğal bir önceliklendirme sistemi oluşturur.

UTXO mantığına daha yakından bakış

Bitcoin, bakiyeleri geleneksel anlamda saklamaz. Bunun yerine Harcanmamış İşlem Çıktısı (UTXO) modelini kullanır.

Her işlem önceki çıktıları tüketir ve yenilerini oluşturur. Girdilerin toplam değeri gönderilen tutarı aşarsa kalan bakiye, genellikle para üstü (change) olarak anılan yeni bir çıktı olarak göndericiye iade edilir. İstanbul’da USDT ya da Bitcoin bozdurduğunuzda cüzdanınız bu girdi-çıktı mekanizmalarını arka planda otomatik olarak yönetir; doğru tutarın aktarılmasını ve kalan bakiyenin size iade edilmesini sağlar.

Bu tasarımın birkaç avantajı vardır:

  • Şeffaflığı ve izlenebilirliği artırır

  • Çifte harcamayı son derece zorlaştırarak güvenliği artırır

  • Her çıktı yalnızca bir kez harcanabildiği için doğrulamayı basitleştirir

Ancak karmaşıklık da getirir. Örneğin çok sayıda küçük çıktıyı yönetmek işlem boyutunu artırabilir ve gelecekte daha yüksek ücretlere yol açabilir.

Bitcoin işlemleri için güvenlik değerlendirmeleri

Bitcoin’in altında yatan teknoloji son derece güvenli olsa da kullanıcı kaynaklı hatalar en büyük risklerden biri olmaya devam ediyor.

Güvenli işlem için kullanıcıların birkaç temel ilkeyi izlemesi gerekir:

  • Fon göndermeden önce alıcının adresini her zaman doğrulayın

  • Adresleri elle kopyalamaktan kaçının; mümkünse QR kod kullanın

  • Özel anahtarları ve kurtarma ifadelerini güvenli ve çevrimdışı saklayın

  • Daha büyük tutarları saklamak için donanım cüzdanı kullanın

  • Kimlik avı web sitelerine ve sahte cüzdan uygulamalarına karşı dikkatli olun

Özellikle yeni bir adresle işlem yaparken büyük tutarlar aktarmadan önce küçük bir test işlemi göndermek de iyi uygulama olarak kabul edilir.

Son düşünceler

Bitcoin işlemleri ilk bakışta karmaşık görünebilir, ancak özünde mantıklı ve şeffaf bir yapıyı izler. Her işlem, geçmiş sahipliği gelecekteki sahipliğe merkezi bir otoriteye gerek duymadan bağlayan bir kriptografik kanıt zinciridir.

Girdilerin, çıktıların, ücretlerin ve doğrulama mekanizmalarının birlikte nasıl çalıştığını anlayarak kullanıcılar, değerin Bitcoin ağı üzerinde nasıl güvenle aktarıldığını daha net görebilir.

Bu daha derin anlayış, yalnızca Bitcoin kullanma güvenini artırmakla kalmaz, aynı zamanda altta yatan tasarımın zarafetini de ortaya koyar.

Sorumluluk reddi: İçerikte sunulan tüm bilgiler yalnızca bilgilendirme amaçlıdır ve yatırım, finansal veya alım satım tavsiyesi olarak algılanmamalıdır. Vereceğiniz her yatırım kararı; finansal bilgi, deneyim ve piyasa araştırmasına dayanan kişisel bir tercih olmalıdır.