TL;DR
Bildiğiniz ve sevdiğiniz blockchainler oldukça katı bir yapıya sahip. Bir geliştirici olarak bu size iki seçenek sunar: kısıtlayıcı bir ortamda uygulamalar oluşturun veya kodu çatallayıp kendi zincirinizi oluşturun. Ancak kendi zincirinizi oluşturmak o kadar kolay değil; ayrıca bir ağ kurmanız ve hangi fikir birliği mekanizmasını kullanacağınızı bulmanız gerekiyor.
Tendermint, herhangi bir dilde uygulama yazmanıza olanak tanıyan blok zincirleri başlatmak için kullanılan açık kaynaklı bir yazılımdır. Daha da iyisi, diğer blockchainlerle iletişim kurabilirler.
giriiş
Bir kripto para birimi veya blockchain ağı oluşturmak, bir veritabanını başlatmaktan çok daha fazla çaba gerektirir. Güvenlik, merkezi olmayan yönetim ve ölçeklenebilirlik arasında hassas bir teşvik ve ödünleşim dengesi gerektirir.
Şaşırtıcı olmayan bir şekilde, en güçlü blockchain ekosistemlerini oluşturmak isteyen ekipler tarafından bir dizi farklı yaklaşım araştırıldı. Bu yazıda böyle bir yaklaşıma göz atacağız: Tendermint.
Tendermint hakkında bilmeniz gerekenler
Blockchain'ler hakkında biraz bilginiz varsa Tendermint'in çoğu tanıdık gelecektir. Daha fazla detaya girmeden önce bazı temel kavramları özetleyelim.
Blockchain mimarisini anlamak
Tendermint bir tür blockchain yığınıdır. Öte yandan Bitcoin ve Ethereum gibi şeyler de öyle. Unutmayın, bu sadece blockchain veritabanının kendisiyle ilgili değil, aynı zamanda eşler arası düğüm ağı, bunların nasıl etkileşime girdiği ve işlemler ve akıllı sözleşmelerle yapabileceğiniz eğlenceli şeylerle de ilgilidir. Buradaki amaç, başka kimseye güvenmeseler bile herkesin bir durum üzerinde (veritabanının anlık görüntüsü gibi) hemfikir olmasını sağlamaktır.
Çoğunlukla günümüzün büyük blok zincirleri bunu mümkün kılan gizli sosu bulmuşlardır. Ancak genellikle yekpare mimariye dayanırlar: bileşenlerin birbirine bağlı ve birbirine bağımlı olduğu anlamına gelen bir yazılım mühendisliği konsepti. Onun bir parçasını alıp başka bir şeye takamazsınız.
Esneklik istiyorsanız monolitik mimari mükemmel değildir. Tersi türdeki modellerde (modüler mimariye sahip), herhangi bir şeyin kırılmasından endişe etmeden tek tek bileşenlerde ince ayar yapabilirsiniz. Monolitik bir yapıyla, tek bir bileşeni yükselttiğinizde her bileşenin uyumlu kalmasını sağlamanız gerekir.
Artık bu ayrımı anladığımıza göre Tendermint protokolünden biraz daha bahsedebiliriz.
Bizans hata toleransı (BFT)
Bitcoin'deki en büyük yeniliğin Bizans Generalleri Sorunu denen bir şeyi çözmesi olduğunu biliyor olabilirsiniz. Sorunun ayrıntılarına girmeyeceğiz (eğer ilgileniyorsanız Bizans hata toleransı hakkındaki makalemize göz atın). Bilmeniz gereken tek şey, katılımcıların dağıtılmış bir ortamda iletişim kurması gereken bir senaryoyu ayrıntılarıyla anlatmasıdır.
Bu katılımcılar başkalarının yalan mı söylediğini veya aralarında gönderilen mesajların değiştirilip değiştirilmediğini bilmiyorlar. Katılımcılar mevcut sorunlarla bile bir dizi gerçek üzerinde anlaşabiliyorsa, sistemin Bizans hata toleransına (BFT) sahip olduğu söylenir.
Açıkçası, merkezi olmayan bir ortamda bunu doğru yapmak çok önemlidir. Bizans'ın hata toleransı olmayan kripto para birimleri gerçekten işe yaramıyor; bir tür merkezi parti koordinasyonuna ihtiyacınız olacak, bu da amacı boşa çıkarıyor. Birçok dijital para birimi gibi Bitcoin de bu sorunu İş Kanıtı (PoW) konsensüs algoritması kullanarak çözer.
Blockchain'in üç katmanı
Dolayısıyla monolitik/modüler mimari arasındaki farkı biliyoruz ve merkezi olmayan kripto para ağlarının Bizans hata toleranslı olması gerektiğini biliyoruz. Bir blockchainde genellikle gördüğümüz katmanlardan bahsedelim: uygulama katmanı, fikir birliği katmanı ve ağ oluşturma katmanı.
Konsensüs ve ağ oluşturma katmanları, ağ düğümlerinin birbirleriyle konuştuğu ve bir dizi gerçek üzerinde anlaşmaya varmaya çalıştığı yerdir. Uygulama katmanı, kendi başınıza bir şeyler yapabileceğiniz yerdir; Ethereum'daki merkezi olmayan uygulamaları ve akıllı sözleşmeleri veya Bitcoin'deki özel işlemleri düşünün.
➟ Kripto para birimine başlamak mı istiyorsunuz? Binance'den Bitcoin (BTC) satın alın!
Nane Çekirdeği
İlk olarak, terminolojiye dair hızlı bir açıklama. Yalnızca teknolojiye odaklandığımız için burada "Tendermint" ve "Tendermint Core" terimlerini birbirinin yerine kullanacağız.
Ancak Tendermint şirketin adıdır (orijinal teknik incelemeyi yazan geliştirici Jae Kwon tarafından kurulmuştur), Tendermint Core ise şirketin üzerinde çalıştığı gerçek yazılımdır. Daha spesifik olarak, yazılımın iki ana bileşeni vardır: temel konsensüs motoru (Tendermint Core) ve uygulama arayüzü (ABCI).
Tendermint Core, hata toleransına ulaşan bir sistemdir. Temelde herkese aynı durumu aynı anda gösteren büyük, dağıtılmış bir bilgisayardır. Katılımcıların en az üçte ikisi dürüst olduğu sürece her şey yolunda gider. Ama bu hemen hemen her blockchain için geçerli, değil mi? Onu bu kadar özel yapan ne?
İlk olarak, kullanılan fikir birliği mekanizması bir Proof of Stake (PoS) mekanizmasıdır. Her dönem için doğrulayıcı kümesinden rastgele bir düğüm seçilir. Bu düğüm daha sonra bir sonraki bloğu önermelidir (yuvarlak-robin sistemi adı verilen bir sistemde). Diğer doğrulayıcılar bundan memnunsa yeni blok eklenir ve zincir güncellenir. Kesinlik anında gerçekleşir; Bitcoin veya Ethereum'un aksine, işleminizin geçerli olduğundan emin olmak için onayları beklemenize gerek yoktur.
Ama durun, dahası da var! Tendermint Core'un mimarisi modülerdir ve uygulama katmanı fikir birliği ve ağ katmanlarından ayrılmıştır. Düz İngilizcede bu, kendi uygulama katmanınızı yığına bağlayabileceğiniz anlamına gelir. Sinir bozucu teşvikler veya fikir birliği algoritmaları konusunda endişelenmenize gerek yok.
Belki de bu son kullanıcı için çok heyecan verici değildir. Ancak geliştiriciler için mevcut bir çerçeveden yararlanma yeteneği, tüm ağın ön yüklemesini yapmadan doğrudan uygulama oluşturmaya başlayabilecekleri anlamına gelir. Blockchain'den gelen veriler entegre katmana aktarılarak geliştiricilerin herhangi bir dilde yazılım yazmasına olanak sağlanır.
Sihir, Uygulama Blockchain Arayüzü veya basitçe ABCI adı verilen bir şeyle gerçekleşir. Bunu Raspberry Pi bilgisayarına aldığınız GPIO pinleri gibi düşünün. Tesisleriniz için LED'lerden ayrıntılı yağmurlama sistemlerine kadar her türlü üçüncü taraf bileşeni bunlara bağlayabilirsiniz. Benzer şekilde ABCI, blockchain ile onun üzerinde çalışan uygulamalar arasındaki sınırı tanımlayan şeydir.
Tendermint Core'un nesi harika?
Uygulama arayüzünün ve fikir birliği mekanizmasının ayrılması, çeşitli merkezi olmayan uygulamaların herhangi bir programlama dilini kendi iş mantıklarına dahil etmeleri için daha fazla esneklik sağlar.
Ne yapılabileceğine dair somut bir örnek için yalnızca Ethermint'e bakmanız yeterli: Ethereum kod tabanını alan, Proof of Work mekanizmasını kaldıran ve Ethereum Sanal Makinesini Tendermint'in üzerine yerleştiren bir proje.
Bu, birkaç ilginç şeyi mümkün kıldı. Birincisi, Ethereum geliştiricilerinin akıllı sözleşmelerini yeni motora kolaylıkla aktarabilmeleri veya Solidity dilinde yeni sözleşmeler yazabilmeleri. Ethermint, Ethereum işlevselliği sağlamanın yanı sıra, Proof of Stake Ethereum gibi davranarak bize bir Casper uygulamasının Ethereum 2.0'da nasıl görünebileceğine dair bir fikir veriyor.
Blockchain birlikte çalışabilirliği
Birçok kişiyi Tendermint tabanlı protokollere çeken şey, “blok zincirlerin interneti” vaadi. Birlikte çalışabilirlik, kripto para birimi alanına uzun zamandır beklenen bir eklentidir; çünkü bu, yüzlerce bireysel blok zincirinin çapraz uyumlu hale geleceği anlamına gelir.
Şu anda, herkesin uygulamaya özel genel veya özel bir blockchain oluşturmasına olanak tanıyan açık kaynaklı bir çerçeve olan Cosmos SDK üzerinde çok fazla çalışma yapıldı. Bu blok zincirleri daha sonra başkalarıyla iletişim kurabilecekleri Cosmos Hub adı verilen bir şey aracılığıyla daha geniş Cosmos ağına takılabilir.
Cosmos SDK ile BNB Smart Chain (BSC), KAVA, Band Protokolü, Terra ve IRISnet gibi çok sayıda popüler proje oluşturuldu.
Düşünceleri kapatmak
Bir blockchain motoru olarak Tendermint, geliştiricilerden son kullanıcılara kadar kripto para birimi alanındaki çok sayıda paydaşın dikkatini çekti.
Yazılım ilgi görmeye devam ederse, blok zincirlerin interneti için omurga görevi görebilir. Gördüğümüz gibi, bu vizyonu gerçekleştirmek için Cosmos SDK ile halihazırda bir avuç proje başlatıldı.