Blok zinciri nedir, geçmişi değiştirmeyi ne zorlaştırır
Blok, işlemlerin bir araya toplandığı ve bir öncekinin özetini taşıyan bir paket. Zinciri kuran şey bu özet: bir bloğu değiştirmek sonraki bütün blokları geçersiz kılıyor. Yapının ne yaptığını ve neyi garanti etmediğini yazıyoruz.
Kısaca
Blok zincirinin tanımı tek cümlede duruyor. Ethereum'un dokümanı şöyle diyor:
"Blocks are batches of transactions with a hash of the previous block in the chain."
İki parça var: işlemler bir araya toplanıyor, ve her paket bir öncekinin özetini taşıyor.
Neden tek tek değil de paket paket
İşlemler teker teker işlenseydi, ağdaki her katılımcının aynı sırayı görmesi çok daha zor olurdu. Doküman sebebi açıkça yazıyor:
"To ensure that all participants on the Ethereum network maintain a synchronized state and agree on the precise history of transactions, we batch transactions into blocks."
Yani paketleme bir verimlilik hilesi değil, anlaşma aracı. Onlarca ya da yüzlerce işlem aynı anda kabul ediliyor ve herkes aynı anda aynı noktaya geliyor.
Zinciri kuran şey özet
Blokları birbirine bağlayan şey bir liste ya da numara değil:
"This links blocks together (in a chain) because hashes are cryptographically derived from the block data."
Özet, bloğun verisinden türetiliyor. Veri değişirse özet de değişiyor. Bir sonraki blok o özeti içinde taşıdığı için, tek bir değişiklik zincirin geri kalanını da bozuyor:
"one change in any block in history would invalidate all the following blocks as all subsequent hashes would change and everyone running the blockchain would notice"
Burada dikkat edilecek nokta şu: yapı değişikliği imkânsız kılmıyor, görünür kılıyor. Güvence gizlilikten değil, herkesin aynı defteri tutmasından geliyor.
Sıra da yapının parçası
Doküman sıralamayı da tanımlıyor: bloklar kesin bir sırada duruyor ve her yeni blok kendinden öncekine bir referans taşıyor; blok içindeki işlemler de kesin sıralı.
Sıranın kesin olması önemli, çünkü "önce hangisi oldu" sorusunun tek bir cevabı olmasını sağlıyor.
Riskler
En büyük belirsizlik Ağlar arasındaki mutabakat ve blok üretim farkları bu yazıda incelenmedi; anlatım Ethereum dokümanına dayanıyor.
- Değişmezlik mutlak değil, maliyetlidir. Geçmişi değiştirmek imkânsız değil; ağı çalıştıranların çoğunluğunu ikna etmeyi gerektirir ve bu yüzden pahalıdır.
- Zincirde olmak doğru olmak değildir. Blok zinciri bir işlemin gerçekleştiğini kaydeder; o işlemin arkasındaki iddianın doğru olduğunu değil.
- Onaylanmak ile kesinleşmek farklıdır. Bir işlem bloğa girmiş olabilir ama geri alınamaz sayılması ağın kurallarına bağlıdır (hisse ispatı).
- Bu yazı Ethereum dokümanına dayanır. Başka ağların blok üretimi ve mutabakatı farklıdır.
Neyin incelenmediği yukarıdaki veri durumu listesinde.
Kaynaklar
Bu makale aşağıdaki kaynaklara dayanıyor. Her birinin kalıcı kopyası olup olmadığı yanında yazıyor.
- #1
Blok tanımının, paketleme gerekçesinin ve zincirin özet üzerinden kurulmasının birincil kaynağı: ethereum.org dokümanı.
ethereum.org· kalıcı kopya yok· ekran görüntüsü yok
Kanıt zinciri: 1 kaynak
Tweet silinir, site kapanır. Aşağıda her kaynağın kalıcı kopyasının olup olmadığı yazıyor.
Kaynaklar (1)
- #1
Blok tanımının, paketleme gerekçesinin ve zincirin özet üzerinden kurulmasının birincil kaynağı: ethereum.org dokümanı.
“one change in any block in history would invalidate all the following blocks as all subsequent hashes would change and everyone running the blockchain would notice”
ethereum.org/developers/docs/blocks/- kalıcı kopya yok: kaynak kaybolursa bu iddia dayanaksız kalır
- ekran görüntüsü alınmadı
Düzeltme geçmişi
Makale silinmez, düzeltilir. Yapılan her değişiklik burada görünür.
- Sürüm 1 ·
Bölüm