Zephyrnet Logosu

Sert Çatallar, Yumuşak Çatallar, Varsayılanlar ve Zorlama

Tarih:

Blockchain alanındaki önemli tartışmalardan biri, tercih edilen protokol yükseltme mekanizmasının sert çatallar mı yoksa yumuşak çatallar mı olduğudur. İkisi arasındaki temel fark, yumuşak çatalların bir protokolün kurallarını değiştirmesidir. kesinlikle azaltmak geçerli olan işlemler kümesidir, dolayısıyla eski kuralları izleyen düğümler hala yeni zincire binecektir (madenciler/doğrulayıcıların çoğunluğunun çatalı uygulaması şartıyla), oysa sert çatallar daha önce geçersiz olan işlemlerin ve blokların geçerli olmasına izin verir, böylece istemciler Sert çatallı zincirde kalabilmek için müşterilerini yükseltmek zorundalar. Ayrıca iki alt tür hard fork vardır: kesinlikle genişliyor Geçerli olan işlem kümesini sıkı bir şekilde genişleten sert çatallar ve eski kurallar, yeni kurallara göre etkili bir şekilde yumuşak çataldır ve iki taraflı İki kural kümesinin her iki yönde de uyumsuz olduğu sert çatallar.

Çatal türlerini gösteren bir Venn diyagramı aşağıda verilmiştir:

İkisi için yaygın olarak belirtilen faydalar aşağıdaki gibidir.
  • Sert çatallar, geliştiricilerin, yeni kuralların eski kurallara "uyduğundan" emin olmak zorunda olmadıklarından, protokol yükseltme işleminde çok daha fazla esneklik sağlar.
  • Kullanıcıların zincirde kalmak için yükseltme yapmalarına gerek olmadığından yumuşak çatallar kullanıcılar için daha kullanışlıdır
  • Yumuşak çatalların zincirin bölünmesine yol açma olasılığı daha düşüktür
  • Yumuşak çatallar gerçekten yalnızca madencilerin/doğrulayıcıların onayını gerektirir (kullanıcılar hala eski kuralları kullanıyor olsa bile, zinciri oluşturan düğümler yeni kuralları kullanıyorsa, o zaman her halükarda yalnızca yeni kurallar kapsamında geçerli olan şeyler zincire girecektir); sert çatallar gerektirir opt-in kullanıcılardan izin

Bunun dışında hard forklara sıklıkla yapılan en büyük eleştirilerden biri de hard forkların “zorlayıcı” olduğu yönündedir. Burada ima edilen zorlama türü fiziksel güç değildir; daha doğrusu ağ etkisi yoluyla zorlama. Yani, ağ kuralları A'dan B'ye değiştirirse, kişisel olarak A'yı beğenseniz bile, diğer kullanıcıların çoğu B'yi beğenip B'ye geçerse, o zaman açık olabilmek için değişikliği kişisel olarak onaylamamanıza rağmen B'ye geçmek zorundasınız. herkesle aynı ağ.

Hard fork'un savunucuları genellikle bir ağı "düşmanca ele geçirmeye" ve kullanıcıları kendilerine uymaya "zorlamaya" çalıştıkları için alaya alınır. Ek olarak, zincirin bölünmesi riski genellikle sert çatalları "güvensiz" olarak faturalandırmak için kullanılır.


Benim şahsi görüşüm bu eleştirilerin yanlış olduğu, hatta çoğu durumda tamamen geriye dönük olduğudur. Bu bakış açısı Ethereum'a, Bitcoin'e veya başka herhangi bir blockchain'e özgü değildir; bu sistemlerin genel özelliklerinden doğar ve bunlardan herhangi birine uygulanabilir. Ayrıca, aşağıdaki argümanlar yalnızca en az bir seçmen grubunun (madenciler/doğrulayıcılar ve kullanıcılar) büyük bir kısmının bunları onaylamadığı tartışmalı değişiklikler için geçerlidir; Bir değişiklik çekişmeli değilse, çatalın formatı ne olursa olsun genellikle güvenli bir şekilde yapılabilir.

Öncelikle zorlama konusunu tartışalım. Sert çatallar ve yumuşak çatallar, protokolü bazı kullanıcıların hoşlanmayabileceği şekillerde değiştirir; herhangi protokol değişikliği tam olarak %100'den az desteğe sahipse bunu yapacaktır. Ayrıca, en azından neredeyse kaçınılmazdır. biraz Muhaliflerin %50'si, her senaryoda, daha büyük gruba bağlı kalmanın ağ etkisine, protokol kurallarıyla ilgili kendi tercihlerinden daha fazla değer veriyor. Dolayısıyla her iki çatal türü de kelimenin ağ etkisi anlamında zorlayıcıdır.

Ancak sert çatallar ile yumuşak çatallar arasında temel bir fark vardır: Sert çatallar tercihe bağlıdır, yumuşak çatallar ise kullanıcılara hiçbir şekilde "seçme" olanağı tanımaz. Bir kullanıcının sert çatallanmış bir zincire katılabilmesi için, çatal kurallarını uygulayan yazılım paketini kişisel olarak yüklemesi gerekir ve bir kurala katılmayan kullanıcılar, ağ etkilerine değer verdiklerinden daha güçlü bir şekilde değişirler ve teorik olarak basitçe zincirde kalabilirler. eski zincir - ve pratikte böyle bir olay zaten oldu.

Bu, hem tam olarak genişleyen sert çatallar hem de ikili sert çatallar için geçerlidir. Ancak yumuşak çatal durumunda çatal başarılı olursa çatalsız zincir mevcut değildir. Bu nedenle, Yumuşak çatallar açıkça kurumsal olarak ayrılma yerine baskıyı tercih ederken, sert çatallar tam tersi bir önyargıya sahiptir. Kendi ahlaki görüşlerim beni zorlama yerine ayrılmayı tercih etmeye yönlendiriyor, ancak diğerleri farklı olabilir (en yaygın argüman, ağ etkilerinin gerçekten çok önemli olduğu ve bunun çok önemli olduğudur: "bir para hepsine hükmediyor“ancak bunun daha ılımlı versiyonları da mevcut).

Bu argümanlara rağmen yumuşak çatalların neden genellikle sert çatallara göre "daha az zorlayıcı" olarak faturalandırıldığını tahmin etmem gerekirse, bunun bir sert çatalın kullanıcıyı bir yazılım güncellemesi yüklemeye "zorladığı" gibi hissettirmesi nedeniyle olduğunu söyleyebilirim. Soft fork ile kullanıcıların hiçbir şey yapmasına gerek kalmaz. Bununla birlikte, bu sezgi yanlış yönlendirilmektedir: Önemli olan, bireysel kullanıcıların bir "indirme" düğmesine tıklamak gibi basit bürokratik adımı gerçekleştirmek zorunda olup olmadığı değil, daha ziyade kullanıcının indirip indirmediğidir. protokol kurallarında bir değişikliği kabul etmeye zorlandı kabul etmemeyi tercih ediyorlar. Ve bu ölçüme göre, yukarıda da belirtildiği gibi, her iki çatal türü de sonuçta zorlayıcıdır ve kullanıcı özgürlüğünü korumada bir şekilde daha iyi olduğu ortaya çıkan şey, sert çatallardır.

Şimdi son derece tartışmalı çatallara, özellikle de madenci/doğrulayıcı tercihleri ​​ile kullanıcı tercihlerinin çatıştığı çatallara bakalım. Burada üç durum söz konusudur: (i) iki taraflı sert çatallar, (ii) sıkı bir şekilde genişleyen sert çatallar ve (iii) sözde "kullanıcı tarafından etkinleştirilen yumuşak çatallar" (UASF). Dördüncü kategori, madencilerin yumuşak çatalı etkinleştirdiği yerdir kullanıcı onayı olmadan; buna daha sonra değineceğiz.

İlk olarak ikili hard forklar. En iyi durumda durum basittir. İki madeni para piyasada işlem görüyor ve tüccarlar ikisinin göreceli değerine karar veriyor. ETC/ETH vakasından, madencilerin, kendi ideolojik görüşleri ne olursa olsun, karlarını en üst düzeye çıkarmak için hashrate'lerini fiyat oranına dayalı olarak madeni paralara atama olasılıklarının çok yüksek olduğuna dair çok büyük kanıtlarımız var.

Bazı madenciler ideolojik tercihlerini bir tarafa veya diğerine doğru açıklasalar bile, fiyat oranı ile hash gücü oranı arasındaki herhangi bir uyumsuzluğu ortadan kaldırmaya ve ikisini aynı hizaya getirmeye istekli yeterli sayıda madencinin olması son derece muhtemeldir. Eğer bir madenci karteli tek bir zincir üzerinde madencilik yapmamaya çalışırsa, kaçmaya yönelik çok büyük teşvikler olur.

Burada iki uç durum var. Birincisi, verimsiz bir zorluk ayarlama algoritması nedeniyle, fiyat düştüğü için madeni paranın madenciliğinin değerinin düşmesi, ancak zorluğun bunu telafi edecek şekilde düşmemesi, madenciliği çok kârsız hale getirmesi ve belirli bir zamanda madencilik yapmaya istekli madencilerin bulunmaması olasılığıdır. Zorluk tekrar dengeye gelinceye kadar zinciri ileri itmeye devam etmek kayıptır. Ethereum'da durum böyle değildi ama olabilir Bitcoin ile durum böyle. Dolayısıyla azınlık zinciri hiçbir zaman ayağa kalkamayabilir ve bu nedenle ölecektir. Normatif sorunun şu olduğuna dikkat edin: bunun iyi bir şey olup olmadığı zorlamaya karşı ayrılma konusundaki görüşlerinize bağlıdır; Yukarıda yazdıklarımdan da tahmin edebileceğiniz gibi ben şahsen bu tür azınlık-zincir-düşman zorluk ayarlama algoritmalarının kötü olduğuna inanıyorum.

İkinci uç durum ise eşitsizlik çok büyükse büyük zincirin küçük zincire %51 oranında saldırabilmesidir. ETH/ETC'nin 10:1 oranında bölünmesi durumunda bile bu gerçekleşmedi; yani kesinlikle verilen bir şey değil. Ancak baskın zincirdeki madencilerin ayrılmaya izin vermek yerine zorlamayı tercih etmesi ve bu değerlere göre hareket etmesi her zaman bir olasılıktır.

Şimdi, kesinlikle genişleyen sert çatallara bakalım. Bir SEHF'de, çatalsız zincirin çatallı kurallara göre geçerli olduğu özelliği vardır ve bu nedenle çatalın fiyatı çatalsız zincirden daha düşükse, çatalsız zincirden daha az hash gücüne sahip olacaktır ve yani çatalsız zincir en uzun zincir olarak kabul edilecektir hem orijinal istemci hem de çatallanmış istemci kurallarına göre – ve böylece çatallı zincir “yok edilecek".

Bu nedenle, böyle bir çatallanmanın başarılı olmasına karşı güçlü bir doğal önyargının var olduğuna dair bir argüman var; çünkü çatallı zincirin yok olma ihtimali fiyata dahil edilecek, fiyatı daha düşük hale getirecek ve zincirin gerçekleşme ihtimalini daha da artıracak. yok edildi… Bu argüman bana güçlü görünüyor ve bu yüzden bunu yapmak için çok iyi bir neden. herhangi Kesinlikle genişlemek yerine çekişmeli hard fork iki taraflı.

Bitcoin Unlimited geliştiricileri bu sorunla başa çıkmayı öneriyor: Sert çatalın manuel olarak çift taraflı yapılması bu gerçekleştikten sonra, ancak ikililiği yerleşik hale getirmek daha iyi bir seçim olacaktır; örneğin, bitcoin durumunda, kullanılmayan bazı işlem kodlarını yasaklamak için bir kural eklenebilir ve ardından çatalsız zincirde bu işlem kodunu içeren bir işlem yapılabilir, böylece çatallı kurallar uyarınca çatalsız zincir bundan sonra sonsuza kadar geçersiz sayılır. Ethereum örneğinde, durum hesaplamasının nasıl çalıştığına ilişkin çeşitli ayrıntılar nedeniyle, neredeyse tüm hard fork'lar neredeyse otomatik olarak iki taraflıdır. Diğer zincirler mimarilerine bağlı olarak farklı özelliklere sahip olabilir.

Yukarıda bahsedilen son çatal türü, kullanıcı tarafından etkinleştirilen yumuşak çataldır. UASF'de kullanıcılar, madencilerden fikir birliği alma zahmetine girmeden yumuşak çatal kurallarını etkinleştirir; madencilerin ekonomik çıkarlar doğrultusunda hareket etmeleri bekleniyor. Eğer birçok kullanıcı UASF'yi kabul etmezse, o zaman bir madeni para bölünmesi yaşanacak ve bu, katı bir şekilde genişleyen hard fork ile aynı senaryoya yol açacaktır, ancak - ve bu, konseptin gerçekten zekice ve sapkın kısmıdır - Kesinlikle genişleyen bir sert çatalda çatallı zinciri güçlü bir şekilde olumsuzlayan aynı "yok olma riski" baskısı, bunun yerine UASF'de çatallı zinciri güçlü bir şekilde tercih ediyor. Bir UASF katılıma açık olsa bile, kendisini başarıya doğru yönlendirmek için ekonomik asimetriyi kullanır (önyargı mutlak olmasa da; eğer bir UASF kesinlikle popüler değilse o zaman başarılı olamayacak ve sadece bir zincir bölünmesine yol açacaktır).

Ancak UASF'ler tehlikeli bir oyundur. Örneğin, bir projenin geliştiricilerinin, daha önce tüm işlemleri kabul eden kullanılmamış bir işlem kodunu, yalnızca bazı harika yeni özelliklerin kurallarına uyan işlemleri kabul eden bir işlem koduna dönüştüren bir UASF yaması yapmak istediklerini varsayalım. politik veya teknik olarak tartışmalıdır ve madenciler bundan hoşlanmaz. Madencilerin karşı koymanın akıllıca ve sinsi bir yolu var: yumuşak çatal tarafından oluşturulan özelliği kullanan tüm işlemlerin her zaman başarısız olmasını sağlayan, madenci tarafından etkinleştirilen bir yumuşak çatalı tek taraflı olarak uygulayabilirler.

Artık üç kural setimiz var:

  1. Opcode X'in her zaman geçerli olduğu orijinal kurallar.
  2. İşlem kodu X'in yalnızca işlemin geri kalanının yeni kurallara uyması durumunda geçerli olduğu kurallar
  3. Opcode X'in her zaman geçersiz olduğu kurallar.

(2)'nin (1)'e göre yumuşak çatal olduğunu ve (3)'ün (2)'ye göre yumuşak çatal olduğunu unutmayın. Şimdi (3) lehine güçlü bir ekonomik baskı var ve bu nedenle yumuşak çatal amacına ulaşamıyor.

Sonuç şudur. Yumuşak çatallar tehlikeli bir oyundur ve eğer çekişmeli olurlarsa ve madenciler karşı koymaya başlarsa daha da tehlikeli hale gelirler. Sert çatalların kesinlikle genişletilmesi de tehlikeli bir oyundur. Madenci tarafından etkinleştirilen yumuşak çatallar zorlayıcıdır; Kullanıcı tarafından etkinleştirilen yumuşak çatallar daha az zorlayıcıdır, ancak ekonomik baskı nedeniyle hala oldukça zorlayıcıdır ve aynı zamanda kendi tehlikeleri de vardır. Gerçekten çekişmeli bir değişiklik yapmak istiyorsanız ve bunu yapmanın yüksek sosyal maliyetinin buna değeceğine karar verdiyseniz, temiz bir ikili hard fork yapın, uygun bir yeniden oynatma koruması eklemek için biraz zaman ayırın ve piyasanın bu işi halletmesine izin verin. .

Kaynak: https://vitalik.eth.limo/general/2017/03/14/forks_and_markets.html

spot_img

En Son İstihbarat

spot_img