Açık kaynaklı yazılım geliştirmeye aşinaysanız, çatal diye bir şey duymuş olabilirsiniz. Ancak bu kavramın kripto alanında daha özel bir anlamı vardır:
Kriptoda çatallama, bir blok zinciri için mutabakat protokolünde yapılan bir değişikliktir. Düğümlerin, kaynak zincirden ayrı bir zincirdeki blokları onaylamaya başladığı bir değişikliktir.
Diyelim ki bir geliştirici GitHub gibi halka açık bir platformda bir kod parçası listeliyor. Buna açık kaynak denir.
Bu, kullanıcıların kendi kullanımları için kaynak kodun bir kopyasını oluşturabilecekleri anlamına gelir. Bunu, yazılımı kendileri derlemek niyetiyle yapabilirler. Bunu, bir yazılım parçasının orijinal yazarları tarafından eklenmemiş veya orijinal yazarlar tarafından reddedilmiş olabilecek işlevleri eklemek için yapabilirler.
Bu kaynak kodunu alıp bağımsız olarak inşa etmeye Forking denir. Bu, açık kaynağın canlılığının anahtarıdır.
Kripto yazılımının nüansı fikir birliğinde yatmaktadır. İşleyen bir blok zinciri protokolünün ana özelliğidir. Ağ üzerinde çalışan her düğüm, diğer tüm düğümlerle aynı yazılımı kullanmalı ya da ceza ve dışlanma riskiyle karşı karşıya kalmalıdır.
Diyelim ki mevcut bir kripto yazılımını çatallamak istediniz. Bu mutabakat ihtiyacı nedeniyle, tüm blok zincirini çatallamanız gerekir. Tabii mevcut düğümlerin çoğunun yazılımlarını sizinkiyle değiştirmesini sağlayamazsanız, ki bu her zaman kolay değildir!
Çatallar birçok nedenden dolayı meydana gelir:
Kripto alanında mutabakat kurallarının değiştirildiği iki tür çatallanma vardır. Her ikisi de eski düğümlerin katılımını içeren ya da dışlayan farklı sonuçlara bağlı kalmalıdır.
Bir hard fork, ağdaki belirli değişikliklere uyum sağlamak için konsensüs kuralları gevşetildiğinde meydana gelir. Bu değişiklikler blok onaylama davranışının işlevselliğini artırır. Bu değişiklikler, eski yazılımı çalıştıran düğümler için geriye dönük olarak uyumlu değildir ve kaynak blok zincirinde yeni bir dal başlatacaktır.
Bir ağın varlıklarının daha geniş işlevselliği bir değişim yaşadığında, varlığın ekonomik özellikleri de değişir. Bu değişiklikler şunları içerebilir:
Liste uzayıp gidiyor ama kesin olan bir şey var: yeni blok zincirinde işlem yapmak için yeni bir varlığa ihtiyaç var.
Örneğin: Diyelim ki eski yazılımı çalıştıran bir düğüm 1 MB’lık bir blok beklerken 2 MB’lık bir blok aldı. Bu 2 MB’lık blok, eski ağın kurallarının izin verdiğinden daha büyük olduğu için geçersiz olacaktır. 2 MB’lık bloğun ayrı bir ağ üzerinden gönderilmesi gerekecektir.
Yumuşak çatallanma, mutabakat kuralları ağdaki belirli bir değişikliğe uyum sağlamak için sıkılaştırıldığında meydana gelir. Bu değişiklik, blok onaylama veya mutabakat davranışının belirli bir işlevselliğini üretir. Bu çatallama türü, eski yazılımları çalıştıran düğümler için geriye dönük olarak uyumludur ve düğümlerin güncellenmiş katılım yönteminden vazgeçmesine olanak tanır.
Daha önceki örneğimizi kullanırsak: Diyelim ki bir düğüm 1 MB’lık bir blok bekliyor ancak 0,8 MB’lık bir blok alıyor. Bu durumda, bu küçük blok tam bir bloktan daha az olarak görülecek ancak yine de kabul edilecektir.
Şimdi tüm bu çatalların uygulamadaki bazı örneklerine bakalım. En popüler iki kripto ağına bakacağız, çünkü bugün bulundukları yere gelmek için bazı büyüme sancılarından geçtiler.
2010’ların ortalarından sonlarına doğru, Bitcoin(BTC / USDT) ölçeklenebilirlik sorunlarıyla karşı karşıya kaldı ve Bitcoin kullanıcılarının iki grubu arasında ileriye dönük yolu tartışıldı.
Bitcoin yazılımında Segregated Witness (SegWit) işlevselliğinin uygulanması için bir teklif yapıldı. SegWit, Bitcoin’in işlem mimarisinde bir değişiklik olarak önerilmiştir. Bu değişiklik, imza verilerini işlemlere ekli bir veri ağacı olarak saklayacak ve işlem kimliğinde sayılmayacaktır. SegWit bir tercih seçeneği olarak önerilmiştir. Bu bir yumuşak çatal örneği olabilir.
Aslında Bitcoin adresinizdeki farklılıkları görebilirsiniz: Bir numara ile başlayan bir adres eski işlem yapısını kullanırken, ‘bc1’ veya üç numara ile başlayan adresler sırasıyla yerel SegWit ve iç içe SegWit kullanır.
Böylece Bitcoin kullanıcıları, 1 MB’lık bloklara daha fazla işlemin sığmasını sağlamak için bir işlemde ihtiyaç duyulan verinin azaltılması ya da blok boyutunun 8 MB’a çıkarılması arasında kaldı. SegWit’in daha büyük bloklar için reddedilmesi, ağın sert bir şekilde çatallanmasını gerektirecektir. Ağustos 2017’de Bitcoin sert bir şekilde çatallandı ve Bitcoin Cash oluşturuldu.
2016 yılının Haziran ayında bilgisayar korsanları, Ethereum ağındaki projelere yatırım sağlamak amacıyla oluşturulan büyük bir hazine olan ‘The DAO’ya girdiler. Bilgisayar korsanları yaklaşık 55 milyon ABD Doları çalmıştır.
Hack olayından önce DAO’nun hazinesinde yaklaşık 250 milyon USD bulunuyordu. Şöyle çalışıyordu:
Her üye, hazineye yatırılan her 1 ETH için 100 DAO jetonu alacaktır. Bu tokenlar, belirli bir yatırım teklifinin potansiyel olarak karlı olup olmadığını oylamak için kullanıldı. Teklif kabul edilirse, hazine önerilen ETH yatırımını otomatik olarak projeyi temsil eden bir akıllı sözleşmeye aktaracaktı.
Fikir bir hedge fonuna benziyordu. Proje yatırımdan daha fazla gelir elde ederse, kar DAO hazinesine geri yatırılacak ve DAO tokeninin değerini artıracaktır.
Ancak akıllı sözleşmede, saldırganın hazine boşaltılana kadar sonsuz para çekme işlemi yapmasına olanak tanıyan bir güvenlik açığı vardı.
Elbette bu hikayenin pek çok detayı var, ancak biz ana olaylara bağlı kalalım. Saldırgan hackerlar mümkün olduğunca çok para çekmek için mücadele ederken, topluluğun beyaz şapkalı hackerları hazinenin fonlarını kurtarmak için umutsuzca aynı istismarı kullanmaya çalıştı.
Sonunda her iki grup da tüketebilecekleri her şeyi tüketti ama olan oldu. Saldırıyı tamamen hafifletmek için blok zincirinin sert çatallanması önerildi. Blok zinciri saldırı öncesinden yeniden başlatılacak ve hiçbir şey olmamış gibi devam edecektir. Bu, bildiğimiz Ethereum’un(ETH / USDT) mevcut canon blok zinciridir.
Ancak bazı kullanıcılar bunun kötü bir emsal olduğunu ve hack’in gerçekleştiği blok zincirinde kalacağını düşündü; şu anda Ethereum Classic olarak biliniyor.
Çatallama genellikle bir protokolü geliştirmek için yapılır. Değişikliklerin iyi ya da kötü olması, değişiklikleri yapan topluluğa bağlıdır.
Çatallanmış ağlar farklı teknik ve ekonomik özelliklere sahip oldukları için temelde farklı varlıklardır. Bu faktörler bir varlığın değerinin artıp artmayacağını etkileyecektir.
Çatallanacak en iyi kripto yoktur ve açık kaynaklı herhangi bir proje çatallanabilir.
Kullanıcılar yazılım yükseltmelerinde Proof-of-Stake modeline bağlı kalırlarsa Ethereum 2.0 bir hard fork olarak kabul edilmez. ETH’nin Proof-of-Work versiyonu yeni bir blok zinciri ile sonuçlanacaktır.
Bitcoin hard forkları genellikle ölçeklenebilirlik sorunlarını çözmek için uygular. Sorun genellikle saniye başına işlem ve blok boyutudur.
Vasil, Cardano’nun(ADA/ USDT) sert bir çatallanmasıdır.
Hard fork, yeni bir blok zinciri gerektiren geriye dönük uyumlu değilken, soft fork eski blok zinciri ile geriye dönük uyumludur. Daha ayrıntılı bir açıklama için yukarıdaki makaleye bakınız.