Ana içeriğe geç
Change page

Bloklar

Sayfanın son güncellenmesi: 23 Şubat 2026

Bloklar, zincirde yer alan bir önceki blok hakkındaki hash değerlerini barındıran işlem gruplarıdır. Bu, blokları birbirine (bir zincir hâlinde) bağlar çünkü hash değerleri blok verilerinden kriptografik olarak türetilir. Bu, geçmişteki herhangi bir bloktaki tek bir değişikliğin sonraki tüm hash değerlerini değiştirerek tüm blokları geçersiz kılacağı ve bu durum blok zincirini yürüten herkes tarafından fark edileceği için dolandırıcılığı önler.

Ön Koşullar

Bloklar, yeni başlayanlar için uygun bir konudur. Ancak bu sayfayı daha iyi anlamanıza yardımcı olması için öncelikle Hesaplar, İşlemler ve Ethereum'a giriş yazılarımızı okumanızı öneririz.

Bloklar neden gerekli?

Ethereum ağındaki tüm katılımcıların senkronize durumlarını sürdürmesini ve işlemlerin kesin geçmişi üzerinde anlaşmasını sağlamak için işlemleri bloklar hâlinde topluyoruz. Bu, düzinelerce (veya yüzlerce) işlemin aynı anda yapıldığı, üzerinde anlaşmaya varıldığı ve senkronize edildiği anlamına gelir.

Bir bloktaki işlemin durum değişikliklerine neden olduğunu gösteren bir diyagram Diyagram Resimli Ethereum EVMopens in a new tab kaynağından uyarlanmıştır

Kod girişleri arasında belirli bir süre tanıyarak ağ katılımcıları için yeterli zamanı veriyoruz: işlem talepleri saniye başına düzinelerce oluşsa da bloklar Ethereum üzerinde on iki saniyede bir yaratılmaktadır ve oluşmaktadır.

Bloklar nasıl çalışır?

İşlem geçmişini korumak için, bloklar titizlikle sıralanır (oluşturulan her yeni blok, önceki bloğa bir referans içerir) ve bloklar içindeki işlemler de titizlikle sıralanır. Herhangi bir zamanda olabilecek nadir durumlar dışında ağdaki tüm katılımcılar, blokların tam sayısı ve geçmişi konusunda mutabıktır ve mevcut aktif işlem taleplerini bir sonraki blokta gruplandırmak için çalışmaktadır.

Bir blok, ağ üzerinden rastgele seçilmiş doğruluyacılar tarafından bir araya getirildiğinde ağın geri kalanına yayılır, bütün düğümler bu bloku kendi blok zincirlerinin sonuna ekler ve yeni bloku yaratmak için yeni bir doğrulayıcı seçilir. Bu blok birleştirme süreci ve taahtütname/mutabakat süreci şu anda Ethereum'un "hisse ispatı" protokolü tarafından özelleştiriliyor.

Hisse ispatı protokolü

Hisse ispatının anlamı aşağıdaki gibidir:

  • Doğrulayıcı düğümler, kötü davranışlara karşı bir teminat olarak yatırım sözleşmesine 32 ETH hisselemek zorundadır. Bu, ağın korunmasına yardımcı olur çünkü gerçek anlamda dürüst olmayan aktivite hisselerin kısmen veya tamamen yok olmasına yol açabilir.
  • Her bir yuvada (12 saniyelik boşluklara ayrılmış) bir doğrulayıcı, blok önerici olarak seçilir. Doğrulayıcılar işlemleri paketler, yürütür ve yeni "duruma" karar verirler. Bu bilgileri bir bloka atar ve öbür doğrulayıcılara iletirler.
  • Yeni blokun haberini alan diğer doğrulayıcılar küresel durum değişim önerisine uydukarını güvence altına almak için işlemleri tekrar yürütürler. Blokun geçerli olduğunu varsayarsak kendi veritabanlarına ekler.
  • Eğer bir doğrulayıcı çelişen iki blok hakkında bir haber alırsa en çok ETH hisselemiş olanı çatal seçim algoritmasını kullanarak seçer.

Hisse ispatı hakkında daha fazlası

Bir blokta neler yer alır?

Bir blok içinde barındırılan çok fazla bilgi vardır. En yüksek düzeyde, bir blok aşağıdaki alanları barındırır:

AlanAçıklama
yuvablokun ait olduğu yuva
proposer_indexbloku öneren doğrulayıcının kimliği
parent_rootönceki blokun karması
state_rootdurum nesnesinin kök karması
şablonaşağıda tanımlandığı gibi birkaç alan içeren bir nesne

Blok body'si kendi içinde çeşitli alanlar içerir:

AlanAçıklama
randao_revealbir sonraki blok önericisini seçmek için kullanılan değer
eth1_datadepozito sözleşmesi hakkında bilgi
graffitiblokları etiketlemek için kullanılan keyfi veriler
proposer_slashingskesilecek doğrulayıcıların listesi
attester_slashingskesilecek tasdik edenlerin listesi
tasdiklerönceki yuvalar için yapılan tasdiklerin listesi
depozitolardepozito sözleşmesine yeni depozito listesi
voluntary_exitsağdan çıkan doğrulayıcıların listesi
sync_aggregatehafif istemcilere hizmet etmek için kullanılan doğrulayıcıların alt kümesi
execution_payloadyürütüm istemcisinden geçirilen işlemler

attestations alanı, bloktaki tüm tasdiklerin bir listesini içerir. Tasdiklerin, birkaç veri parçası içeren kendi veri türleri vardır. Her tasdik şunları içerir:

AlanAçıklama
aggregation_bitsbu tasdiğe hangi doğrulayıcıların katıldığının bir listesi
verilerbirden çok alt alana sahip bir barındırıcı
i̇mzabir doğrulayıcı kümesinin data bölümü üzerindeki toplu imzası

attestation içindeki data alanı aşağıdakileri içerir:

AlanAçıklama
yuvatasdiğe bağlı yuva alanı
dizintasdik eden doğrulayıcılar için endeksler
beacon_block_rootzincirin başı olarak görülen İşaretçi bloğunun kök karması
kaynakgerekçeli son denetim noktası
targetson dönem sınır bloku

execution_payload içindeki işlemlerin yürütülmesi genel durumu günceller. Tüm istemciler, yeni durumun yeni bloktaki state_root alanıyla eşleştiğinden emin olmak için execution_payload içindeki işlemleri yeniden yürütür. Bu, müşteriler tarafından yeni bir blokun kendi blok zincirlere eklenmesi için geçerli ve güvenli olduğunun söylenmesidir. execution_payload'ın kendisi birkaç alana sahip bir nesnedir. Ayrıca, yürütme verileri hakkında önemli özet bilgiler içeren bir execution_payload_header da vardır. Bu veri yapıları şu şekilde organize edilmiştir:

execution_payload_header aşağıdaki alanları içerir:

AlanAçıklama
parent_hashüst blokun karması
fee_recipientişlem ücretlerinin ödeneceği hesap adresi
state_rootbloka değişimleri uyguladıktan sonraki küresel durum için kök karması
receipts_rootişlem makbuzları karması
logs_bloomolay günlüklerini içeren veri yapısı
prev_randaorastgele doğrulayıcı seçiminde kullanılan değer
block_numbermevcut blokun numarası
gas_limitbu blokta izin verilen maksimum gaz
gas_usedbu blokta kullanılan net gaz miktarı
timestampblok süresi
extra_datai̇steğe bağlı ham bayt olarak eklenen veri
base_fee_per_gasana ücret değeri
block_hashUygulama blokunun özeti
transactions_rootyükteki işlemlerin kök karması
withdrawal_rootyükteki para çekme işlemlerinin kök karması

execution_payload'ın kendisi aşağıdakileri içerir (bunun, işlemlerin kök karması yerine gerçek işlem listesini ve para çekme bilgilerini içermesi dışında başlıkla aynı olduğuna dikkat edin):

AlanAçıklama
parent_hashüst blokun karması
fee_recipientişlem ücretlerinin ödeneceği hesap adresi
state_rootbloka değişimleri uyguladıktan sonraki küresel durum için kök karması
receipts_rootişlem makbuzları karması
logs_bloomolay günlüklerini içeren veri yapısı
prev_randaorastgele doğrulayıcı seçiminde kullanılan değer
block_numbermevcut blokun numarası
gas_limitbu blokta izin verilen maksimum gaz
gas_usedbu blokta kullanılan net gaz miktarı
timestampblok süresi
extra_datai̇steğe bağlı ham bayt olarak eklenen veri
base_fee_per_gasana ücret değeri
block_hashUygulama blokunun özeti
i̇şlemleryürütülecek işlemlerin listesi
para çekmelerpara çekme nesnelerinin listesi

withdrawals listesi aşağıdaki gibi withdrawal nesnelerinden oluşur:

AlanAçıklama
adrespara çekilen hesap adresi
miktarpara çekme miktarı
dizinpara çekme endeksi değeri
validatorIndexdoğrulayıcı endeks değeri

Blok süresi

Blok süresi, blokların ayrılması sırasındaki süreye karşılık gelir. Ethereum'da zaman, "yuva" adı verilen 12 saniyelik birimlere bölünmüştür. Her bir yuvada blok önermek için tek bir doğrulayıcı seçilmiştir. Tüm doğrulayıcıların çevrimiçi ve tam anlamıyla işlevsel olduğunu varsayarsak her bir yuvada bir blok oluşacaktır, bu da blok zamanının 12 saniye olduğu anlamına gelir. Ancak bazen doğrulayıcılar, blok önerisine çağrıldıklarında çevrimdışı olabilir, bu da kimi zaman yuvaların boş olacağı anlamına gelir.

Bu uygulama; blok sürelerinin tahmin edilebilir olduğu ve protokolün hedef madencilik zorluğu tarafından ayarlanan iş ispatı temelli sistemlerden ayrılır. Ethereum'un ortalama blok süresiopens in a new tab, yeni 12 saniyelik blok süresinin tutarlılığına dayanarak iş ispatından hisse ispatına geçişin açıkça anlaşılabileceği mükemmel bir örnektir.

Blok boyutu

Son olarak önemli bir not: Blokların kendileri de boyut olarak sınırlandırılmıştır. Her blokun hedef boyutu 30 milyon gazdır ama blok boyutu ağ isteklerine göre 60 milyon gaz olan blok limitine kadar (blok boyutu hedefinin 2 katı) artabilir veya azalabilir. Bloğun gaz limiti, önceki bloğun gaz limitine kıyasla 1/1024 oranında yukarı ya da aşağı yönde ayarlanabilir. Sonuç olarak, doğrulayıcılar bloğun gaz limitini mutabakat yoluyla değiştirebilir. Bloktaki işlemlerden kesilen toplam gaz miktarı, blokun gaz limitinden daha az olmalıdır. Bu, blok boyutunun keyfi olarak belirlenememesini sağladığı için önemlidir. Bloklar keyfi boyutlarda olabilseydi, daha az performans gösteren tam düğümler, alan ve hız gereksinimleri nedeniyle yavaş yavaş ağa ayak uyduramazlardı. Blok ne kadar büyük olursa onu bir sonraki yuvada zamanında işlemek için gereken işlemci gücü de o denli büyük olacaktır. Bu blok boyutlarına üst sınırlar koyarak direnen bir merkezileştirici kuvvet.

Daha fazla kaynak

Size yardımcı olan bir topluluk kaynağı mı biliyorsunuz? Bu sayfayı düzenleyin ve onu ekleyin!

Bu makale yararlı oldu mu?