Sözlük / İşlemler ve ücretler
Coinbase blok yüksekliği
- Coinbase blok yüksekliği nedir?
- Coinbase blok yüksekliği, bloğun kendi yüksekliğinin coinbase alanının ilk baytları olarak yazılmış halidir; BIP34 bunu Mart 2013'ten beri her blok için zorunlu kılmıştır.
Tanımlandığı belge: BIP-34.
Bu, Bitcoin'in gerçek bir hataya yönelik en ucuz çözümüdür. Kuraldan önce, aynı coinbase işlemine sahip iki blok aynı işlem kimliklerini üretiyordu ve bu, 2010 yılında 91.842 ve 91.880 numaralı bloklarda yaşandı. Yüksekliği veriye yazmak her coinbase işlemini benzersiz kılar ve herkesin bir bloğun konumunu bloğun kendisinden okumasını sağlar.
Nasıl çalışır
Yükseklik bir script push'u olarak saklandığından, bir ayrıştırıcı önce tek bir uzunluk baytını, ardından bu uzunluk kadar sayı baytını okur.
Sayı, little endian düzeninde ve asgari kodlamayla, Bitcoin script'inin herhangi bir tam sayıyı kodladığı biçimde yazılır. Günümüzdeki yüksekliklerde üç bayt tutar, dolayısıyla push 03 olarak okunur ve ardından yükseklik gelir. Bu nedenle halving bloğu olan 840.000 numaralı blok, coinbase alanını 03 40 d1 0c ile açar: üç baytlık bir push ve ardından en az anlamlı baytı önde olacak şekilde 840.000. Üç bayt, 8.388.607 değerine kadar tüm yükseklikleri kapsar; on dakikalık bloklarla bu bir yüzyıldan daha uzak bir tarihe denk gelir ve o gün geldiğinde kodlama kendiliğinden dört bayta genişler.
BIP34, blok sürüm numarasına bağlı, madenciler tarafından etkinleştirilen bir yumuşak çatallanma (soft fork) olarak devreye alındı. Sürüm 2 bildiren bloklar, 1.000 blokluk kayan bir pencerede sayıldı: son 1.000 bloğun 750 tanesinde, yüksekliği eksik bir sürüm 2 bloğu geçersiz hale geldi ve 950 tanesinde eski sürüm 1 biçimi doğrudan reddedildi. Kabul edilen son sürüm 1 bloğu, 24 Mart 2013 tarih damgalı 227.835 numaralı bloktu ve Bitcoin Core hâlâ etkinleşme yüksekliğini 227.931 olarak sabit kodlar.
Kural ayrıca pahalı bir kontrolü bedava bir kontrolle değiştirdi. BIP30, yeni bir işlemin mevcut ve harcanmamış bir işlemin kimliğini yeniden kullanmasını zaten yasaklıyordu, ancak bunu uygulamak her bloktaki her işlem için bir veritabanı sorgusu gerektiriyordu. Her coinbase yapısı gereği farklı olduğunda yinelenen kimlikler oluşamaz, böylece düğümler geçişten sonra çıkarılan her şey için bu sorguyu atlar. Doğrulamayı yavaşlatmak yerine hızlandıran bir konsensüs kuralı, dikkate değer olacak kadar nadirdir.
Nerede görülür
Her blok gezgini çözümlenmiş coinbase alanını yazdırır ve içindeki ilk şey yüksekliktir.
Asıl sorun madencilikte ortaya çıkar. Bir havuz, kendi coinbase işlemini düğümünün sağladığı şablondan oluşturur ve yanlış yükseklik ekleyen bir havuz, genellikle yeni gelen bir blokla yarışırken, her düğümün bad-cb-height hatasıyla attığı bir blok üretir. Elektrik harcanmıştır, iş kanıtı geçerlidir ve ödül yoktur.
Aynı zamanda tüm zinciri elinde tutmadan bir blok hakkında bir şey kanıtlayan herkes için de önemlidir. Bir blok başlığı kendi yüksekliğini belirtmez; bunu genesis bloğuna kadar geri sayarak öğrenirsiniz. Tam bir blok ise bunu belirtir, hem de merkle kökünün ve dolayısıyla iş kanıtının kapsadığı bir yerde, böylece bir coinbase ve bir merkle dalıyla desteklenen bir yükseklik iddiası tek başına ayakta durur. Yan zincirler, zaman damgası hizmetleri ve hafif istemci protokolleri bu özelliğe dayanır.
Coinbase blok yüksekliği vs blok yüksekliği
Blok yüksekliği, zincirdeki bir konumdur; herkesin, Satoshi'nin 3 Ocak 2009 tarihinde çıkardığı bloğa kadar geri sayarak ulaşabileceği bir sayıdır. Coinbase blok yüksekliği ise aynı sayının, konsensüs gerektirdiği için bloğun kendi verisinin içine yazılmış halidir. Biri bir bloğun nerede durduğuna dair bir gözlemdir, diğeri bir madencinin yanlış yapıp bir blok kaybedebileceği bir alandır.