Anasayfa Uncategorized Blokzincir – Lecture Booster – 3 – 1 – TR
Uncategorized

Blokzincir – Lecture Booster – 3 – 1 – TR

paylaş
paylaş

Blockchain Yapısı ve Bloklar

Giriş

Blockchain teknolojisi, adını yapısındaki temel özellikten alır: blokların birbirine zincir gibi bağlanması. Her blok, bir önceki bloğa kriptografik olarak bağlanır ve bu sayede değiştirilemez bir veri yapısı oluşur. Bu yapı, dağıtık bir sistemde güvenilir ve şeffaf bir kayıt tutma mekanizması sağlar. Geleneksel merkezi veritabanlarından farklı olarak, blockchain’de veriler birbirine kriptografik olarak bağlı bloklarda saklanır ve bu bloklar ağdaki tüm katılımcılar tarafından doğrulanır. Bu bölümde, blockchain’in temel yapı taşı olan blokların anatomisini, bloklar arası bağlantıları ve veri organizasyonunu detaylı olarak inceleyeceğiz.

Blok Anatomisi

Bir blockchain bloğu, tıpkı bir dosya sistemindeki dosya başlığı ve içeriği gibi, iki temel bileşenden oluşur: blok başlığı (header) ve blok gövdesi (body). Bu ayrım, verilerin hızlı doğrulanması ve verimli depolanması için özel olarak tasarlanmıştır.

Blok Başlığı (Header)

Blok başlığı, 80 byte uzunluğunda sabit bir yapıdır ve bloğun kimliğini ve özelliklerini tanımlayan kritik meta verileri içerir. Bitcoin örneğinde, başlık şu alanlardan oluşur:

Protokol versiyonu (4 byte), blockchain ağının yazılım versiyonunu belirtir. Örneğin, Bitcoin’de SegWit güncellemesi version 2’yi temsil eder. Bu alan, yazılım güncellemelerinin sorunsuz uygulanmasını ve geriye dönük uyumluluğun korunmasını sağlar. Bir node eski version bir blok gördüğünde, o bloğu eski kurallara göre işler.

Önceki bloğun hash değeri (32 byte), blockchain’in omurgasını oluşturur. Bu değer, SHA-256 algoritması kullanılarak hesaplanır ve bir önceki bloğun tüm içeriğinin kriptografik özetidir. Örneğin:

Previous Block Hash: 000000000000000000694fdd40d6ee53095af84587f11beee6f4c6d3453f3eff

Merkle root (32 byte), blok içindeki tüm işlemlerin binary hash ağacının kök değeridir. Bu değer, herhangi bir işlemin içeriğindeki en ufak bir değişiklikte bile tamamen farklılaşır. Örnek bir Merkle root:

Merkle Root: 4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b

Zaman damgası (4 byte), bloğun oluşturulma zamanını Unix epoch formatında saklar. Bu değer, blokların kronolojik sırasını garanti eder ve mining zorluğunun ayarlanmasında kullanılır. Örnek:

Timestamp: 1231006505 (2009-01-03 18:15:05 UTC)

Zorluk hedefi (4 byte), geçerli bir blok hash’inin sağlaması gereken koşulu belirtir. Bu değer, ağın toplam hash gücüne göre her 2016 blokta bir ayarlanır. Bitcoin’de hedef değer şöyle görünür:

Target: 00000000ffff0000000000000000000000000000000000000000000000000000

Nonce (4 byte), madencilerin proof of work sürecinde denedikleri sayaçtır. Geçerli bir hash bulunana kadar bu değer sürekli değiştirilir. Örnek:

Nonce: 2083236893

Blok Gövdesi (Body)

Blok gövdesi, blockchain’in asıl verisini taşıyan bölümdür ve değişken boyuta sahiptir. Bitcoin’de maksimum 1 MB (SegWit ile efektif olarak 4 MB’a kadar) olabilen gövde, şu yapıyı içerir:

İşlem sayacı (variable int), blokta bulunan toplam işlem sayısını belirtir. Bu sayı, blok boyutu limitlerinin kontrolünde kullanılır. Örnek:

Transaction Count: 2,741 transactions

Coinbase transaction, her bloğun ilk ve özel işlemidir. Bu işlem, madencinin blok ödülünü ve işlem ücretlerini almasını sağlar. Örnek bir coinbase transaction:

{
    "version": 1,
    "locktime": 0,
    "vin": [{
        "coinbase": "04ffff001d0104455468652054696d65732030332f4a616e2f32303039",
        "sequence": 4294967295
    }],
    "vout": [{
        "value": 50.00000000,
        "scriptPubKey": "04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f OP_CHECKSIG"
    }]
}

Normal işlemler listesi, kullanıcılar arasındaki para transferlerini içerir. Her işlem, kendi içinde karmaşık bir yapıya sahiptir ve girdiler (inputs) ve çıktılar (outputs) içerir.

Bloklar Arası Bağlantılar

Blockchain’in özünü oluşturan zincir yapısı, her bloğun bir önceki bloğa kriptografik olarak bağlanmasıyla oluşur. Bu bağlantı sistemi, Bitcoin’in çözdüğü en önemli problemlerden biri olan “çifte harcama” sorununa çözüm getirir.

Bağlantı mekanizması şöyle çalışır:

Block N {
    header: {
        version: 2,
        prev_block: hash(Block N-1),
        merkle_root: hash(all_transactions),
        timestamp: current_time,
        bits: current_target,
        nonce: found_value
    },
    body: {
        tx_count: number_of_transactions,
        transactions: [
            coinbase_tx,
            tx1,
            tx2,
            ...
        ]
    }
}

Bu yapının güvenliği, SHA-256 hash fonksiyonunun özelliklerine dayanır. Örneğin, bir saldırgan Block N-1’deki bir işlemi değiştirmek isterse:

  1. Block N-1’in içeriği değişir
  2. Block N-1’in hash’i değişir
  3. Block N’in prev_block değeri artık geçersiz olur
  4. Block N ve sonrasındaki tüm blokların yeniden hesaplanması gerekir

Bu değişiklik zincirini gerçekleştirmek için gereken hesaplama gücü, dürüst ağın toplam hash gücünden fazla olmalıdır (51% saldırısı). Bitcoin’in mevcut hash gücü düşünüldüğünde (yaklaşık 400 EH/s), bu pratik olarak imkansızdır.

Merkle Ağacı Yapısı

Merkle ağacı, Ralph Merkle tarafından 1979’da geliştirilen ve blockchain’de veri bütünlüğünü verimli bir şekilde sağlayan bir veri yapısıdır. İşlem verilerinin organizasyonunda kullanılan bu yapı, “hash tree” olarak da bilinir.

Merkle ağacının oluşturulma süreci:

  1. Her işlem SHA-256 ile hash’lenir
  2. Hash’ler ikişerli gruplar halinde birleştirilir
  3. Birleştirilen hash’ler tekrar hash’lenir
  4. Bu işlem tek bir hash (root) kalana kadar devam eder

Örnek bir Merkle ağacı yapısı:

                  ROOT_HASH (merkle_root)
                /                    \
        HASH_AB                    HASH_CD
       /        \                /          \
   HASH_A     HASH_B        HASH_C        HASH_D
      |          |             |             |
   Transaction Transaction Transaction Transaction
       A          B            C             D

Bir işlemin doğrulanması için gereken Merkle yolu örneği:

{
    "transaction": "TX_C",
    "merkle_path": [
        "HASH_D",
        "HASH_AB"
    ],
    "merkle_root": "ROOT_HASH"
}

Bu yapı sayesinde, 1 GB’lık bir blokta herhangi bir işlemin doğrulanması için sadece yaklaşık 120 byte’lık veri (Merkle yolu) gerekir.

Blok Boyutu ve Ölçeklenebilirlik

Blok boyutu, blockchain sistemlerinin performansını ve ölçeklenebilirliğini doğrudan etkileyen kritik bir parametredir. Bu parametre üç temel faktör arasında denge kurar:

  1. İşlem kapasitesi (throughput)
  2. Node işletme maliyeti
  3. Ağın merkeziyetsizlik seviyesi

Bitcoin’in 1 MB blok boyutu limiti, Satoshi Nakamoto tarafından spam saldırılarını önlemek için konulmuştur. Bu limit:

  • Saniyede yaklaşık 7 işlem
  • 10 dakikalık blok süresi
  • Ortalama 2,000-3,000 işlem/blok
    anlamına gelir.

Ethereum’un gas limit sistemi ise daha esnek bir yapı sunar:

Block Size = Gas Limit × Average Gas per Transaction

Örnek bir Ethereum bloğu:

Gas Limit: 15,000,000
Average Transaction: 21,000 gas
Maximum Transactions per Block ≈ 714

Bölüm Özeti

Blockchain’in temel yapı taşı olan bloklar, karmaşık ama iyi düşünülmüş bir yapıya sahiptir. Header ve body bileşenleriyle birlikte güvenli ve değiştirilemez bir veri yapısı oluşturur. Bloklar arası kriptografik bağlantılar ve Merkle ağacı yapısı, sistemin bütünlüğünü ve güvenilirliğini sağlar. Bu yapı, blockchain’in temel özelliklerini – güvenlik, değiştirilemezlik ve doğrulanabilirlik – mümkün kılar.

Düşündürücü Sorular

  1. Bir blok içeriği değiştirilmek istenirse, saldırganın başarılı olması için neler yapması gerekir? Bu neden pratik olarak imkansızdır?
  2. Merkle ağacı yapısı olmadan da blockchain çalışabilir mi? Bu durumda ne gibi dezavantajlar ortaya çıkardı?
  3. Blok boyutu limitlerinin artırılması, blockchain trilemmasını (ölçeklenebilirlik, güvenlik, merkeziyetsizlik) nasıl etkiler?
paylaş

Leave a comment

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Related Articles
Uncategorized

Öğretim Teknolojileri – Lecture Booster – 12 – 3

Eğitimde Sürdürülebilir İnovasyon Eğitimde sürdürülebilir inovasyon, teknolojik gelişmelerin ve pedagojik yaklaşımların sistematik...

Uncategorized

Öğretim Teknolojileri – Lecture Booster – 12 – 2

Eğitimde Yeni Nesil Teknolojilerin Entegrasyonu Eğitim süreçlerine yeni nesil teknolojilerin entegrasyonu, pedagojik...

Uncategorized

Öğretim Teknolojileri – Lecture Booster – 12 – 1

Eğitim Teknolojilerinde Gelecek Trendleri Eğitim teknolojileri alanı, teknolojik gelişmeler ve değişen öğrenme...

Uncategorized

Öğretim Teknolojileri – Lecture Booster – 11 – 3

Öğrenme Analitiğinde Etik ve Gizlilik Öğrenme analitiğinde etik ve gizlilik konuları, veri...