Cosmos, her biri Tendermint konsensüs gibi BFT (Byzantine Fault Tolerant) konsensüs algoritmaları tarafından desteklenen, merkezi olmayan bir bağımsız paralel blok zinciri ağı olarak bilinmektedir. Diğer bir deyişle Cosmos, birbirleriyle ölçeklenebilen ve birlikte çalışabilen bir blok zincir ekosistemidir. Cosmos’tan önce blok zincirler silo (çevresindeki etkenlere uyumsuz ve duyarsız) halinde, birbirleriyle iletişim kuramadan işlemler görülmekteydi. Bir blok zincirinin oluşturulması ve bu blokların hızlı işlem yapabilmeleri için güçlü ve yoğun bir çaba gerekmekteydi. Bu aşamada Cosmos, blok zinciri ile ilgili bu sorunları yeni bir teknik vizyonla çözmektedir. Cosmos’un getirdiği bu vizyonu anlamak için blok zinciri teknolojisinin temeline inmek gerekmektedir.
Cosmos Kurucusu Kim?
Cosmos ekosisteminin ağ geçidi olan Tendermint’in geliştiricileri Jae Kwon, Zarko Milosevic ve Ethan Buchman’dır. Kwon hala baş mimar olarak gözükse de, 2020 yılında CEO’luk görevinden ayrılmıştır. Tendermint’in CEO’luk görevini Peng Zhong devralarak, yönetim kurulundaki isimlerden köklü değişiklikler yapmıştır. Amaçları ise geliştiricilere sunulan deneyimi geliştirmek Cosmos kullanmak için hevesli bir topluluk meydana getirmek ve konu hakkında eğitim kaynakları oluşturmak şeklinde açıklanmıştır.
Blockchain Nedir?
Blok zincirinin ne olduğunu anlayabilmek için blok zinciri doğrulayıcıları olduğunu bilmek gerekmektedir. Bu doğrulayıcılar iyi niyetli veya kötü niyetli olabilmektedir. Doğrulayıcılardan bazıları (üçte birinden az) kötü niyetli olsa bile, doğru kalan bir dizi doğrulayıcı tarafından kayda alınan dijital bir defter olarak tanımlanabilmektedir. Her bir taraf defterin bir kopyasını kendi bilgisayarında saklayarak, işlem bloklarını aldıklarında bunu protokol tarafından tanımlanan kurallara göre güncellemektedir. Blok zinciri teknolojisinin amacı, defterin doğru şekilde kopyalandığından emin olmaktır, bir başka deyişle her dürüst taraf defterin aynı sürümünü anlık görebildiğinden doğru kopyalama önem kazanmaktadır. Blok zinciri teknolojisinin ana katkısı, tarafların merkezi bir otoriteye bağlı hareket etme zorunluluğu yaşamadan dijital bir defteri paylaşma önceliğine sahip olmalarıdır. Blok zinciri teknolojisinin ilk ve en ünlü uygulaması, merkezi olmayan bir para birimi olan Bitcoin’dir. Blok zinciri ağında daha teknik bir açıdan bakılırsa, Blok zinciri sağlayıcılarının üçte birinden fazla olmadığı sürece fikir birliği güvenliğini koruyan, tüm node (düğüm)’larda çoğaltılan tanımlayıcı durum makinesi olarak bilinmektedir.
- Durum makinesi, yapılan işlemleri tutan ve girdi aldığında onu değiştiren bir programdır. Uygulamaya (örneğin bir kripto para birimi için token bakiyeleri) ve durumu değiştiren işlemlere bağlı olarak farklı şeyleri temsil edebilen bir yazılım bulunmaktadır. (örneğin, bir hesaptan bakiyeleri çıkarıp diğerine eklemek gibi).
- Tanımlayıcı kavramı, aynı oluşum durumundan aynı işlemler tekrarlandığında, her zaman aynı sonuç durumunun meydana geleceği anlamına gelmektedir.
- Konsensüs (fikir birliği) güvenliği, durum makinesinin çoğaltıldığı her dürüst node’un anlık olarak aynı durumu görmesi gerektiği gerçeğini ifade etmektedir. Node’lar işlem bloklarını aldığında, her işlemin geçerli olduğunu ve bloğun kendisinin, onaylayıcılar olarak adlandırılan bakımcıların üçte ikisinden fazlası tarafından doğrulanan işlemleri alırlar. Onaylayıcıların üçte birinden fazlası Byzantine (iç içe geçmiş yapı), bir başka deyişle kötü niyetli olmadığı sürece güvenlik garanti edilmektedir.
Mimari açıdan bakıldığında, blok zincirler üç kavramsal katmana ayrılabilir, bunlar:
- Uygulama: Bir dizi işlemin, yani işlemlerin işlenmesinden sorumlu olan durumu güncellemekten sorumlu olan kısım olarak tanımlanabilmektedir.
- Ağ Oluşturma: İşlemlerin ve fikir birliği ile ilgili mesajların yayılmasından sorumlu olan kısım olarak tanımlanabilmektedir.
- Konsensüs: Node’ların, sistemin mevcut durumu üzerinde anlaşmasını sağlamaktadır.
Durum makinesi, uygulama katmanıyla aynıdır. Uygulamanın durumunu ve durum geçiş işlevlerini tanımlamaktadır. Diğer katmanlar ise, durum makinesini ağa bağlanan tüm node’larda çoğaltmaktan sorumlu olmaktadırlar.
Cosmos, Kapsamlı Blok Zinciri Ekosistemine Nasıl Uyum Sağlamaktadır?
Bitcoin’in Hikayesi (Blok Zinciri 1.0)
Cosmos’un blok zinciri ekosistemine nasıl uyum sağladığını anlamak için blok zinciri kavramının tarihsel olarak anlamak gerekmektedir. İlk blok zinciri, 2008’de oluşturulan ve iş ispatı (Proof of Work) olarak bilinen yeni bir fikir birliği mekanizması kullanan eşler arası (peer to peer) bir dijital para birimi olan Bitcoin olarak bilinmektedir. Blok zincirindeki ilk merkeziyetsiz uygulama Bitcoin’dir. Kısa süre sonra bireyler merkeziyetsiz uygulamaların potansiyelini fark ederek, bu uygulamalar dünyasında yenilerini inşa etme arzusu ile üretim yapmaya başlamışlardır. Bitcoin blok zinciri çağının ilk dönemlerinde, merkezi olmayan uygulamalar geliştirmek için iki seçenek mevcut olmuştur, bunlar: Bitcoin kod tabanında çatallanma ya da bu kod tabanı üzerinde yeni bir sistem oluşturmak olarak bilinmektedir. Ancak, Bitcoin kod tabanı çok monolitik (üç katmanın tümü; ağ oluşturma, fikir birliği ve uygulama,) bir yapıya sahip olmuştur. Buna ek olarak, Bitcoin’in programlama dili sınırlı olma ve kullanıcı dostu olmama sebebiyle daha iyi araçlara ihtiyaç duyulmuştur.
Ethereum’un Hikayesi (Blok Zinciri 2.0)
2014 yılında Ethereum, merkezi olmayan uygulamalar oluşturmak için yeni bir proje ile ekosisteme giriş yapmıştır. Ethereum, uygulama katmanını Ethereum Sanal Makinesi (Ethereum Virtual Machine) adı verilen sanal bir makineye dönüştürerek bunu başarmıştır. Bu sanal makine, herhangi bir geliştiricinin Ethereum blok zincirine dağıtabileceği akıllı sözleşmeler adı verilen programları izinsiz bir şekilde işleyebilmesi ile oluşturulmuştur. Bu yeni yaklaşım, binlerce geliştiricinin merkeziyetsiz uygulamalar (Decentralized Applications) oluşturmaya başlamasına olanak sağlamıştır. Ancak, bu yaklaşımın sınırlamaları kısa sürede ortaya çıkmıştır ve günümüzde hala devam etmektedir.
Ethereum Kısıtlamaları
Ölçeklenebilirlik
İlk kısıtlama ölçeklendirme olarak bilinmektedir. Ethereum üzerine kurulu merkezi olmayan uygulamalar, saniyede 15 işlemlik paylaşılan bir oranda engellenmektedir. Bunun nedeni, Ethereum’un güncelde iş kanıtı (Proof of Work) kullanması ve Ethereum merkezi olmayan uygulamalarının tek bir blok zincirinin sınırlı kaynakları için rekabet etmesidir.
Kullanılabilirlik
İkinci kısıtlama, geliştiricilere verilen küçük ölçekli esneklik olarak bilinmektedir. EVM (Ethereum Virtual Machine), tüm kullanım işlemlerini mevcut tutması gereken bir sanal alan olduğundan, ortalama kullanım işlemi için optimizasyon yapmaktadır. Bu durum, geliştiricilerin uygulamalarının tasarımı ve verimliliğinden ödün vermeleri gerektiği anlamına gelmektedir (örneğin, UTXO modelinin tercih edilebileceği bir ödeme platformunda hesap modelinin kullanılmasını gerektirir). Diğer faktörlerin yanı sıra, birkaç programlama diliyle sınırlıdırlar ve otomatik kod meydana getirme işlemi uygulanamamaktadır.
Bağımsızlık
Üçüncü kısıtlama ise, bütün uygulamalar aynı temel ortamı paylaştığı için her uygulamanın bağımsızlık açısından kısıtlı olmasıdır. Bu kısıtlama iki yönetim katmanı oluşturmaktadır: uygulama katmanı ve en temeldeki katman olarak tanımlanmaktadır. Uygulama katmanı, en temeldeki katman ile sınırlı olmaktadır. Uygulamada bir hata meydana gelirse, Ethereum platformunun yönetiminin onayı olmadan bu konuda hiçbir şey yapılamamaktadır. Uygulama EVM (Ethereum Virtual Machine)’de yeni bir özellik gerektiriyorsa, bu özelliğin kabul edilmesi için yine Ethereum platformunun yönetiminin onayı alınması gerekmektedir.
Bu kısıtlamalar yalnızca Ethereum’a özgü değildir, tüm kullanım durumlarına uyacak tek bir platform oluşturmaya çalışan bütün blok zincirlerinde bu tip kısıtlamalar ile karşılaşılmaktadır. Cosmos’un farkı tam olarak bu noktada yaşanmaktadır.
Cosmos’un Vizyonu (Blok Zinciri 3.0)
Cosmos’un vizyonu, geliştiricilerin birbirleriyle işlem yapmalarına izin vererek blok zincirleri oluşturmalarını ve blok zincirleri arasındaki engelleri aşmalarını kolaylaştırmaktır. Bu noktada ana amaç, birbirleriyle merkezi olmayan bir şekilde iletişim kurabilen bir blok zincirleri interneti oluşturmaktır. Cosmos sayesinde blok zincirleri özerkliğini koruyabilir, işlemleri hızlı bir şekilde işleyebilir ve ekosistemdeki diğer blok zincirleriyle iletişim kurabilmektedir. Bu vizyon, insanların hızlı bir şekilde özel, güvenli, ölçeklenebilir ve birlikte çalışabilir blok zinciri uygulamaları oluşturmasına izin vermek için tasarlanmış Tendermint, Cosmos SDK ve IBC gibi bir dizi açık kaynaklı araçlarla elde edilmektedir. Cosmos ağının teknik mimarisinin yanı sıra ekosistemdeki en önemli araçlardan bazılarına daha yakından bakılırsa Cosmos, başlangıçta Tendermint ekibi tarafından oluşturulmuş açık kaynaklı bir topluluk projesidir. Ayrıca her kullanıcı, geliştirici ekosistemini daha üst seviyeye çıkarmak için bu platformda ek araçlar oluşturabilme yetkisine sahiptir.
Tendermint BFT ve ABCI Nedir?
Yakın zamana kadar bir blok zinciri oluşturmak, üç katmanın (Ağ Oluşturma, Konsensüs ve Uygulama) sıfırdan inşa edilmesini gerektirmekteydi. Ethereum, her kullanıcının akıllı sözleşmeler biçiminde, özel mantığı dağıtabileceği bir sanal makine blok zinciri sağlayarak merkezi olmayan uygulamaların geliştirilmesini basitleştirmiştir. Ancak, blok zincirlerinin geliştirilmesi için bir basitlik sağlamamıştır. Bitcoin’e çok benzeyen Go-Ethereum, çatalllanması ve özelleştirilmesi zor olan monolitik bir teknoloji yığını olmaya devam etmektedir. Jae Kwon tarafından 2014 yılında yaratılan Tendermint bu noktada devreye girmiştir. Tendermint BFT (Byzantine Fault Tolerance), bir blok zincirinin ağ ve fikir birliği katmanlarını genel bir motorda paketleyen ve geliştiricilerin karmaşık temel protokolün aksine uygulama geliştirmeye odaklanmasını sağlayan bir çözümdür. Sonuç olarak, Tendermint yüzlerce saatlik geliştirme süresinden tasarruf sağlamaktadır. Tendermint’in, Tendermint BFT (Byzantine Fault Tolerance) motorunda kullanılan Karmaşık Hata Toleranslı (BFT) fikir birliği algoritmasının adını da belirlemiştir.
Tendermint BFT (Byzantine Fault Tolerance) motoru, Uygulama Blok Zinciri Arayüzü (Application Blockchain Interface) adı verilen bir soket protokolü ile uygulamaya bağlanmaktadır. Bu protokol herhangi bir programlama diline uygulanabilir ve böylelikle geliştiricilerin ihtiyaçlarına uygun bir dil seçmesini mümkün kılınmaktadır. Fakat bu özellikler bu bilgilerle sınırlı kalmamaktadır. Tendermint BFT (Byzantine Fault Tolerance)’yi sen yeni teknoloji blok zinciri motoru yapan özellikler aşağıdaki gibi açıklanmaktadır.
Tendermint BFT (Byzantine Fault Tolerance) Özellikleri
- Genel veya Özel Blok Zinciri: Tendermint BFT, yalnızca bir blok zinciri için ağ oluşturma ve fikir birliğini ele alır; başka bir deyişle, node’ların işlemleri yaymasına yardımcı olduğu ve doğrulayıcıların blok zincirine eklenecek bir dizi işlem üzerinde anlaşmaya vardığı anlamına gelmektedir. Doğrulayıcı kümesinin nasıl oluşturulduğunu tanımlamak uygulama katmanının rolüdür. Bu nedenle geliştiriciler, Tendermint BFT motorunun üzerinde hem genel hem de özel blok zincirler oluşturabilmektedir. Uygulama, doğrulayıcıların kaç tokene sahip olduklarına göre seçildiğini tanımlarsa blok zinciri, Proof of Stake (Hisse Kanıtı) olarak nitelendirilmektedir. Ancak uygulama, yalnızca sınırlı önceden yetkilendirilmiş bir dizi varlığın doğrulayıcı olabileceğini tanımlarsa, blok zinciri izinli veya izinsiz olarak karakterize edilebilmektedir. Geliştiriciler, blok zincirinin doğrulayıcı kümesinin nasıl değiştiğini tanımlayan kuralları özelleştirme özgürlüğüne sahiptirler.
- Yüksek Performans: Tendermint BFT, bir saniyelik bir blok süresine sahip olabilmektedir ve saniyede binlerce işlemi gerçekleştirebilmektedir.
- Anında Kesinlik: Tendermint konsensüs algoritmasının bir özelliği anında kesinliktir. Bu, doğrulayıcıların üçte birinden fazlası dürüst olduğu sürece çatallanmanın asla oluşturulmadığı anlamına gelmektedir. Kullanıcılar, bir blok oluşturulur oluşturulmaz işlemlerinin sonlandırıldığından emin olabilmektedirler (Bitcoin ve Ethereum gibi Proof of Work blok zincirlerinde durum böyle değildir).
- Güvenlik: Tendermint konsensüsü hatalara karşı tolerans tanımamakla birlikte aynı zamanda hatalara karşı sorumludur. Blok zincirinde çatallanma meydana gelmesi halinde, yükümlülüğü belirlemenin bir yolu olmaktadır.
Cosmos SDK ve Diğer Uygulama Katmanı Çerçeveleri
Tendermint BFT, bir blok zincirinin geliştirme süresini azaltma olanağı sağlar, ancak sıfırdan güvenli bir ABCI (Application Blockchain Interface) uygulaması oluşturmak zordur. Cosmos SDK’nın var olmasının nedeni bu zorluğa dayanmaktadır. Cosmos SDK, Tendermint BFT üzerinde güvenli blok zinciri uygulamaları oluşturma sürecini basitleştiren genelleştirilmiş bir çerçevedir. İki ana prensibe dayanmaktadır, bunlar:
Modülerlik: Cosmos SDK’nın amacı, geliştiricilerin uygulamalarının her bir işlevselliğini sıfırdan kodlamak zorunda kalmadan uygulamaya özel blok zincirlerini kolayca döndürmelerine olanak tanıyan bir modül ekosistemi oluşturmaktır. Her kullanıcı Cosmos SDK için bir modül oluşturabilir ve blok zincirinde hazır yerleşik modüller kullanmak, bunları uygulamaya aktarmak kadar basittir. Buna örnek olarak Tendermint ekibi, Cosmos Hub için gerekli olan bir dizi temel modül oluşturmaktadır. Bu modüller, kendi uygulamalarını oluştururken herhangi bir geliştirici tarafından kullanılabilmektedir. Ayrıca geliştiriciler, uygulamalarını özelleştirmek için yeni modüller oluşturabilirler. Cosmos ağı geliştikçe, SDK modüllerinin ekosistemi genişleyecek ve karmaşık blok zinciri uygulamaları geliştirmeyi giderek daha kolay hale getirecektir.
Yeteneklere Dayalı Güvenlik: Yetenekler, modüller arasındaki güvenlik sınırlarını kısıtlayarak geliştiricilerin modüllerin birleştirilebilirliği hakkında daha iyi akıl yürütmelerine ve kötü niyetli veya beklenmeyen etkileşimlerin kapsamını sınırlandırmasına olanak tanır.
Cosmos SDK ayrıca komut satırı arabirimleri (Command Line Interface), REST sunucuları ve yaygın olarak kullanılan diğer çeşitli yardımcı program kitaplıkları oluşturmak için bir dizi yararlı geliştirici aracıyla birlikte sunulmaktadır. Ayrıca Cosmos SDK, tüm Cosmos araçları gibi modüler olacak şekilde tasarlanmıştır. Bugün, geliştiricilerin Tendermint BFT’nin üzerine inşa etmelerine izin vermektedir. Ancak, ABCI’yi uygulayan diğer herhangi bir konsensüs motorlarıyla birlikte de kullanılabilmektedir. Zamanla farklı mimari modellerle oluşturulmuş ve birden çok konsensüs motoruyla uyumlu birden çok SDK’nın ortaya çıkması beklenmektedir. Bunların hepsinin birlikte sağlandığı alan Cosmos Ağı’dır.
Ethermint
Cosmos SDK ile ilgili en önemli olan özelliklerden biri, modülerliğinin, geliştiricilerin Golang’da bulunan hemen hemen tüm mevcut blok zinciri kod tabanlarını Cosmos SDK üzerine taşımasına izin vermesidir. Buna örnek olarak Ethermint, Ethereum sanal makinesini SDK modülüne taşıyan bir proje olarak bilinmektedir. Ethermint, tam olarak Ethereum gibi çalışmaktadır ancak aynı zamanda Tendermint BFT’nin tüm özelliklerinden de yararlanmaktadır. Mevcut tüm Ethereum araçları (Truffle, Metamask, vb.) Ethermint ile uyumludur ve akıllı sözleşmeleri ek iş yapmadan aktarmayı sağlamaktadır.
Bu soru günümüzde çoğu merkeziyetsiz aplikasyonun, Ethereum gibi sanal makine blok zincirleri üzerinde geliştirildiği göz önüne alındığında önem kazanmaktadır. İlk olarak, bu olgunun nedeninin şu ana kadar blok zincirlerinin geliştirilmesinin akıllı sözleşmelerden çok daha zor olduğu belirtilmelidir. Cosmos SDK sayesinde ise durum değişmiş ve olumlu yönde güncellenmiştir. Proje geliştiriciler çeşitli avantajlara sahip olan, uygulamaya özel blok zincirlerini kolayca geliştirebilmektedirler. Diğerlerinin yanı sıra daha fazla esneklik, güvenlik, performans ve bağımsızlık sağlamaktadırlar. Kendi blok zincirini oluşturmak istemeyen bir kişi, akıllı sözleşmelerini Ethermint’e dağıtarak Cosmos ile uyumlu hale getirebilmektedir.
Blok Zincirlerini Birbirine Bağlama – IBC
Geliştiricilerin hızlı bir şekilde özelleştirilmiş blok zincirleri oluşturmanın bir yolu olduğuna göre, blok zincirlerini nasıl birbirine bağlanacağı açıklanabilmektedir. Blok zincirleri arasındaki bağlantı, Blok Zincirler Arası İletişim protokolü (IBC) adı verilen bir protokol aracılığıyla sağlanmaktadır. IBC, heterojen zincirlerin birbirine değer (yani tokenler) veya veri aktarmasına izin vermek için Tendermint konsensüsünün (herhangi bir “hızlı kesinlik” blok zinciri motoruyla çalışabilmesine rağmen) anında kesinlik özelliğinden yararlanmaktadır.
Heterojen Zincirler Nelerdir?
Heterojen zincirler ikiye ayrılmaktadır, bunlar:
Farklı katmanlar: Heterojen zincirlerin farklı katmanları vardır, diğer bir deyişle ağ oluşturma, fikir birliği ve uygulama bölümlerini nasıl uyguladıkları konusunda farklılık gösterebilmektedirler. IBC ile uyumlu olmak için, bir blok zincirinin yalnızca birkaç gereksinimi takip etmesi gerekmektedir; bunlardan en önemlisi, fikir birliği katmanının hızlı kesinliğe sahip olması gerekliliğidir. Proof of Work zincirleri (Bitcoin ve Ethereum gibi) olasılıklı kesinliğe sahip oldukları için bu kategoriye girmemektedir.
Bağımsızlık: Her blok zinciri, işi blok zincirine taahhüt edilecek bir sonraki blok üzerinde anlaşmaya varmak olan bir dizi doğrulayıcı tarafından korunmaktadır. Proof of Work (İş Kanıtı) blok zincirlerinde bu doğrulayıcılara miner denmektedir. Bağımsız bir blok zinciri, kendi doğrulayıcı kümesine sahip bir blok zinciridir. Çoğu durumda, durumu değiştirmekten doğrulayıcılar sorumlu olduğundan, blok zincirlerin bağımsız olması önem taşımaktadır. Ethereum’da, uygulamaların tümü ortak bir doğrulayıcı kümesi tarafından çalıştırılmaktadır. Bu nedenle her uygulamanın yalnızca sınırlı sayıda bağımsızlığı mevcuttur. IBC, heterojen blok zincirlerinin belirteçleri ve verileri birbirine aktarmasına izin vermektedir; bu, farklı uygulamalara ve doğrulayıcı kümelere sahip blok zincirlerinin birlikte çalışabilir olduğu anlamına gelmektedir. Buna örnek vermek gerekirse, genel ve özel blok zincirlerinin belirteçleri birbirine aktarmasına izin vermektedir. Güncel zamanda, başka hiçbir blok zinciri çerçevesi bu düzeyde birlikte çalışabilirlik sağlamamaktadır.
IBC Nasıl Çalışır?
IBC’nin sisteminin ardındaki fikir oldukça basittir. A zincirindeki bir hesabın B zincirine 10 token (ATOM) göndermek istediği bir örneği ele alınsın:
Takip
Sürekli olarak, B zinciri A zincirinin başlıklarını alır ve bunun tersi de geçerlidir. Bu durum, her zincirin diğerinin doğrulayıcı kümesini izlemesini sağlamaktadır. İşin özünde ise, her zincir diğerinin istemcisini çalıştırmaktadır.
Bir Araya Getirme
IBC transferi başlatıldığında ATOM, A zincirinde kilitlenmektedir (bağlanmaktadır).
İspat Rölesi
Ardından, 10 ATOM’un bağlı olduğuna dair bir ispat A zincirinden B zincirine aktarılmaktadır.
Doğrulama
Kanıt, B zincirinde A zincirinin başlığına göre doğrulanır ve geçerli kabul edilirse, B zincirinde 10 ATOM kuponu oluşturulur.
ATOM yalnızca A zincirinde bulunduğundan, B zincirinde oluşturulan ATOM’un gerçek ATOM olmadığına dikkat edilmelidir. Bunlar, A zincirindeki ATOM’un B üzerinde bir temsili ve ATOM’ların A zincirinde donmuş olduğunun bir kanıtıdır.
Benzer bir mekanizma, ATOM’un başlangıç zincirlerine geri döndüğünde kilidini açmak için kullanılmaktadır.
“Blok Zincirleri İnterneti” Tasarlamak
IBC, iki heterojen blok zincirinin belirteçleri birbirine aktarmasına izin veren bir protokoldür.
Öne sürülen fikirlerden biri, ağdaki her bir blok zincirini doğrudan IBC bağlantıları aracılığıyla birbirine bağlamaktır. Bu yaklaşımla ilgili temel sorun, ağdaki bağlantı sayısının blok zinciri sayısı ile ikinci dereceden artmasıdır. Ağda 100 blok zinciri varsa ve her birinin birbiriyle bir IBC bağlantısı sürdürmesi gerekiyorsa, bu 4950 bağlantı olması anlamına gelmektedir. Bu hız sistemi kontrolden çıkarabilmektedir. Bunu çözmek için Cosmos, iki blok zinciri sınıfına sahip modüler bir mimari önermektedir, bunlar: Hub’lar ve Zone’lardır.
Zone’lar, normal olarak kabul edilen heterojen blok zincirlerdir, Hub’lar ise Zone’ları birbirine bağlamak için özel olarak tasarlanmış blok zincirlerdir. Bir Zone ve bir Hub ile IBC bağlantısı oluşturduğunda, kendisine bağlı olan diğer tüm Zone’lara otomatik olarak erişebilmektedir (yani, gönderebilir ve alabilir). Sonuç olarak, her Zone’un yalnızca sınırlı sayıda Hub ile sınırlı sayıda bağlantı kurması gerekmektedir. Hub’lar ayrıca Zone’lar arasında çifte harcamayı (Double Spending) da önlemektedir. Bu durum, Zone’un Hub’dan bir token aldığında, yalnızca bu token’ın başlangıç Zone’una ve Hub’a güvenmesi gerektiği anlamına gelmektedir. Cosmos Network’te başlatılan ilk Hub, Cosmos Hub olarak bilinmektedir. Cosmos Hub, yerel stake token’ı ATOM olarak adlandırılan ve işlem ücretlerinin birden fazla token olarak ödeneceği halka açık bir Proof of Stake blok zinciridir.
Tendermint Olmayan Zincirler Arasında Köprü Oluşturma
Cosmos yapısı, Tendermint tabanlı zincirlerin nasıl birlikte çalışabileceğini göstermektedir. Ancak Cosmos, Tendermint zincirleriyle sınırlı kalmamaktadır. Aslında, her tür blok zinciri Cosmos’a bağlanabilmektedir. Bu aşamada ayırt edilmesi gereken iki durum vardır, bunlar: Hızlı kesinlik zincirleri ve olasılıksal kesinlik zincirleridir.
Hızlı Kesinlik Zincirleri
Herhangi bir hızlı kesinlikli konsensüs algoritmasını kullanan blok zincirleri, IBC’yi uyarlayarak Cosmos ile bağlantı kurabilmektedir. Buna örnek olarak, Ethereum Casper FFG’ye (Friendly Finality Gadget) geçiş yapmış olsaydı, IBC’yi Casper ile çalışacak şekilde uyarlayarak onunla Cosmos Ekosistemi arasında doğrudan bir bağlantı kurulabilirdi.
Olasılıksal Kesinlik Zincirleri
Proof of Work zincirleri gibi hızlı kesinliğe sahip olmayan blok zincirleri için işlemler biraz daha karmaşıktır. Bu zincirler için Peg-Zone adı verilen özel bir tür proxy zinciri kullanılmaktadır. Peg-Zone, başka bir blok zincirinin durumunu izleyen bir blok zinciri olarak adlandırılmaktadır. Peg-Zone’un kendisi hızlı kesinliğe sahiptir ve bu nedenle IBC ile uyumludur. Peg-Zone’un rolü, köprü kurduğu blok zinciri için kesinlik sağlamaktır. Örnek ile açıklamak gerekirse: Ethereum Peg-Zone
Ethereum ve Cosmos arasında token göndermeyi mümkün kılmak için Proof of Work Ethereum blok zincirini köprülemek istenmektedir. Proof of Work Ethereum’un hızlı kesinliği olmadığı için, ikisi arasında köprü görevi görecek bir Peg-Zone oluşturulması gerekmektedir. Bunun için ilk olarak, Peg-Zone’un başlangıç zinciri için bir kesinlik eşiğine karar vermesi gerekmektedir. Başka bir deyişle, başlangıç zincirinin belirli bir bloğunun, kendisinden sonra 100 blok eklendiğinde nihai olduğunu düşünebilmektedir. İkincisi ise, ana Ethereum blok zincirinde bir sözleşme dağıtılarak, kullanıcılar Ethereum’dan Cosmos’a token göndermek istediklerinde, bu sözleşmeye token göndererek başlamaktadırlar. Ardından sözleşme, varlıkları dondurarak ve 100 bloktan sonra bu varlıkların bir temsili olan Peg-Zone’da yayınlanmaktadır. Varlıkları Ethereum zincirine geri göndermek için de benzer bir mekanizma kullanılmaktadır.
Peg-Zone, kullanıcıların Cosmos’ta yaşayan herhangi bir token’ı Ethereum zincirine göndermesine de izin vermektedir (Cosmos tokenları, Ethereum zincirinde ERC-20 olarak temsil edilmektedir. Tendermint ekibi Peggy adlı Ethereum zinciri için bir Peg-Zone uygulaması üzerinde çalışmaktadır. Peg-Zone’ların köprü kurdukları belirli zincir için özelleştirilmesi gerekmektedir. Ethereum Peg-Zone oluşturmak basit bir işlemdir çünkü Ethereum hesap tabanlıdır ve akıllı sözleşmelere sahiptir. Ancak, bir Bitcoin Peg-Zone oluşturmak Ethereum Peg-Zone’a göre daha zorlayıcı olabilmektedir.
Ölçeklenebilirliği Çözme
Blok zincirlerin kolaylıkla oluşturulabildiği açıklandığına göre, üzerinde durulması gereken bir başka konu da ölçeklenebilirlik özelliğidir. Cosmos, iki tür ölçeklenebilirlikten yararlanmaktadır, bunlar:
Dikey ölçeklenebilirlik: Blok zincirinin kendisini ölçeklendirme yöntemlerini kapsamaktadır. Proof of Work’ten uzaklaşarak ve bileşenlerini optimize ederek Tendermint BFT, saniyede binlerce işleme ulaşabilmektedir. Buna örnek olarak, sanal makine (ör. Ethereum sanal makinesi) gibi bir uygulama, işlem türlerinin ve durum geçiş işlevlerinin doğrudan içine gömülü olduğu bir uygulamaya (ör. standart bir Cosmos SDK uygulaması) göre işlem verimine çok daha düşük bir sınır uygulamaktadır. Bu durum, uygulamaya özel blok zincirlerinin mantıklı olmasının nedenlerinden biridir.
Yatay ölçeklenebilirlik: Konsensüs motoru ve uygulama son derece optimize edilmiş olsa da, bir noktada tek bir zincirin işlem hacmi kaçınılmaz olarak aşamayacağı bir engelle karşılaşmaktadır. Buna dikey ölçeklemenin sınırı denmektedir. Bunun ötesine geçmek için çözüm, çok zincirli mimarilere geçmektir. Bir başka deyişle, aynı uygulamayı çalıştıran ve ortak bir doğrulayıcı kümesi tarafından çalıştırılan birden fazla paralel zincire sahip olmak ve blok zincirlerini teorik olarak sonsuz ölçeklenebilir hale getirmektir.
Cosmos’un sunduğu iyi dikey ölçeklenebilirlik, kendi içinde mevcut blok zinciri çözümlerine göre büyük bir gelişme olacaktır. Daha sonra ise, IBC modülünün tamamlanmasının ardından yatay ölçeklenebilirlik çözümlerini hayata geçirecektir.
Özetle Cosmos Nedir?
Cosmos, Tendermint BFT ve Cosmos SDK’nın modülerliği sayesinde blok zincirlerini güçlü ve geliştirilmesi kolay hale getirmeyi sağlamaktadır. Cosmos, blok zincirlerinin IBC ve Peg-Zones aracılığıyla birbirleriyle değer aktarmalarını sağlarken, özerkliklerini korumalarına izin vermektedir.
Cosmos, blok zinciri uygulamalarının yatay ve dikey ölçeklenebilirlik çözümleri aracılığıyla milyonlarca kullanıcıya ölçeklenmesine olanak tanımaktadır. Her şeyden öte Cosmos bir ürün olmak yerine, bir dizi modüler, uyarlanabilir ve değiştirilebilir araç üzerine kurulu bir ekosistemdir. Geliştiriciler, blok zinciri teknolojisinin vaadini gerçeğe dönüştürmek için mevcut araçları iyileştirme ve yenilerini oluşturma çalışmalarına katılmaya teşvik edilmektedir. Bu araçlar, yarının merkeziyetsiz internet ve küresel finans sistemini oluşturmak için gereken temeldir.
Piyasada Kaç Cosmos (ATOM) Coin Var?
ATOM coin’in kendine özgü 260.906.513 adet toplam arzı miktarı bulunmaktadır. Bu kripto para birimleri, madencilikten ziyade staking yöntemi ile kazanılmaktadır.
ATOM için Ocak 2017’de iki özel satış yapılmıştır ve ardından aynı yılın nisan ayında halka açık bir satış daha gerçekleştirilmiştir. Bu iki satışın ardından her ATOM coin başına yaklaşık 0,10 dolar fiyat oluşmuş ve toplam piyasa değeri 16 milyon dolara ulaşmıştır. Üretilen toplam token miktarının dağılımı ise yüzde 80’i yatırımcılara, kalan yüzde 20 ise All In Bits ve Interchain Foundation isimli iki şirkete tahsis edilerek yapılmıştır.
Cosmos ağının ATOM tokenleri, Bitcoin madenciliği için kullanılan ASIC donanımlarına benzetilmiştir.
Cosmos Ağı Güvenli mi?
Cosmos’un, Proof of Stake konsensüs algoritması kullandığı bu yazıda belirtilmiştir. Yüksek miktarda ATOM tokenine sahip olan doğrulayıcı node (düğüm)’ların, işlemleri doğrulamak ve ödül kazanmak için seçilme olasılığı daha fazla olmaktadır. Kurallara uygun hareket etmediği tespit edilen düğümler cezalandırılarak, sahip oldukları tokenleri kaybetme riskiyle bir karşı karşıya kalabilmektedirler.