Tendermint Nedir?
İçindekiler
Giriş
Tendermint hakkında bilmeniz gerekenler
Tendermint Core
Son düşünceler
Tendermint Nedir?
Ana sayfaMakaleler
Tendermint Nedir?

Tendermint Nedir?

Orta Seviye
Published Jan 8, 2021Updated Oct 4, 2021
6m

Kısa Özet

Genel olarak blockchainlerin yapısı oldukça katıdır. Bir geliştirici olarak bu da size iki seçenek sunar: uygulamalarınızı kısıtlayıcı bir çevre içinde geliştirebilirsiniz ya da kodda çatallanma yaparak kendi blockchaininizi yaratabilirsiniz. Fakat kendi blockchaininizi yaratmanız kolay değildir – aynı zamanda bir ağ da yaratmanız ve hangi mutabakat mekanizmasını kullanacağınıza karar vermeniz gerekir.

Tendermint, uygulamaları herhangi bir dilde yazmaya imkan tanıyan blockchainler yaratmaya yönelik açık kaynaklı bir yazılımdır. Daha da iyisi, bu blockchainler diğer blockchainlerle iletişim kurabilir.


Giriş

Bir kripto para ya da blockchain ağı yaratmak, bir veritabanı oluşturmaktan çok daha fazla çaba gerektirir. Teşviklerin hassas bir şekilde dengelenmesine ve güvenlik, merkeziyetsizlik ve ölçeklenebilirlik arasında bir kar zarar dengesinin kurulmasına ihtiyaç vardır.
Tahmin edebileceğiniz gibi en güçlü blockchain ekosistemini yaratmayı amaçlayan ekipler, bu hedefe ulaşmak için bugüne kadar farklı birçok yaklaşım benimsemiştir. Bu makalede, böyle yaklaşımlardan biri olan Tendermint'i inceleyeceğiz.


Tendermint hakkında bilmeniz gerekenler

Blockchainler hakkında biraz bilgi sahibiyseniz Tendermint'e dair birçok özellik size tanıdık gelebilir. Daha fazla ayrıntıya girmeden önce bazı temel kavramları tekrar hatırlayalım.


Blockchain mimarisini anlamak

Tendermint, bir tür blockchain yığınıdır. Aslında, Bitcoin ve Ethereum gibi diğer ağlar da aynı şekilde birer yığındır. Bu yalnızca blockchainin veritabanıyla ilgili değil, node'lardan oluşan eşler arası ağ, bu node'ların nasıl etkileşim kurduğu, akıllı kontratlar ve nasıl işlemler yapabileceğinizle de ilgilidir. Buradaki amaç, herkesin mevcut durum (veritabanının anlık bir görüntüsü gibi düşünülebilir) hakkında hemfikir olması ve bu fikir birliği için karşılıklı güvene ihtiyaç duyulmamasıdır.
Günümüzün başlıca blockchainlerinin büyük bir bölümü bunu mümkün kılmanın bir yolunu keşfetmiştir. Fakat bu blockchainlerin çoğu, monolitik mimariye dayanır. Monolitik mimari, bir yazılım mühendisliği kavramıdır ve öğelerin birbirine bağlı olduğu ve dayandığı anlamına gelir. Diğer bir deyişle, bir parçayı alıp başka bir yere yerleştirmeniz mümkün değildir.
Esneklik istiyorsanız, monolitik mimari sizin için pek uygun değildir. Bunun tam tersi olan modelde (modüler mimari), sistemi bozma ihtimali olmadan bireysel parçalar üzerinde değişiklikler yapabilirsiniz. Monolitik yapıda ise tek bir öğe üzerinde yükseltme yaparsanız diğer tüm öğelerin de bununla uyumlu olduğundan emin olmanız gerekir. 

Bu farktan bahsettiğimize göre Tendermint protokolünün ayrıntılarına girebiliriz.


Bizans hatası toleransı (BFT)

Bitcoin'in ortaya koyduğu en önemli inovasyonlardan biri Bizans Generalleri Sorunu'nu çözmesidir. Burada, bu sorundan ayrıntılı bir şekilde bahsetmeyeceğiz (daha fazla bilgi için Bizans hata toleransı makalemizi okuyabilirsiniz). Şu aşamada tek bilmeniz gereken, bu sorunun dağıtılmış bir ortam dahilinde birbirleriyle iletişim kurması gereken katılımcılarla ilgili olduğudur. 
Bu katılımcılar, diğerlerinin yalan söyleyip söylemediğini ya da gönderilen mesajların üzerinde oynama yapılıp yapılmadığını bilemez. Bir sistemde bu sorunlar mevcutken bile katılımcılar neyin doğru olduğuna yönelik fikir birliğine varabiliyorsa, bu sistemin Bizans hata toleransına (BFT) sahip olduğu söylenebilir.
Merkeziyetsiz bir düzende bunun başarılabiliyor olması elbette çok önemlidir. Bizans hata toleransına sahip olmayan kripto paraların gerçek anlamda çalıştığı söylenemez – koordinasyon için bir tür merkezi birime ihtiyaç duyulur ve bu da asıl amaca aykırıdır. Dijital birçok para birimi gibi Bitcoin de bu sorunu Proof of Work (PoW) mutabakat algoritmasıyla çözer.


Bir blockchainin üç katmanı

Bu aşamada, monolitik/modüler mimari arasındaki farkı ve merkeziyetsiz kripto para ağlarının Bizans hata toleransına sahip olması gerektiğini biliyoruz. Şimdi bir blockchainde tipik olarak karşımıza çıkan üç katmandan bahsedelim: uygulama katmanı, mutabakat katmanı ve ağ oluşturma katmanı.
Mutabakat ve ağ oluşturma katmanlarında node'lar birbirleriyle konuşur ve mevcut gerçekler üzerine fikir birliğine varmaya çalışır. Uygulama katmanı ise sizin bir şeyler yapabileceğiniz katmandır – örneğin, Ethereum'daki merkeziyetsiz uygulamalar ve akıllı kontratlar ya da Bitcoin'deki kişisel işlemler gibi.



Tendermint Core

Önce, terminolojiyi kısaca netleştirelim. Biz burada “Tendermint” ve “Tendermint Core” terimlerini eş anlamlı olarak kullanacağız, çünkü yalnızca teknolojiye odaklanıyoruz. 

Fakat aslında Tendermint, şirketin adı (orijinal whitepaper'ı yazan geliştirici Jae Kwon tarafından kurulmuştur), Tendermint Core ise şirketin üzerinde çalıştığı yazılımdır. Bu yazılım da başlıca iki öğeden oluşur: temel mutabakat motoru (Tendermint Core) ve uygulama arayüzü (ABCI).

Tendermint Core, hata toleransını gerçekleştiren sistemdir. En özünde, herkese aynı zamanda aynı durumu gösteren büyük, dağıtılmış bir bilgisayardır. Katılımcıların üçte ikisi dürüst olduğu müddetçe her şey sorunsuz bir şekilde çalışır. Fakat aslında neredeyse bütün blockchainler de bu şekilde çalışır. O zaman Tendermint'i özel kılan nedir?

Öncelikle, kullanılan mutabakat mekanizması Proof of Stake'dir (PoS). Doğrulayıcı grubundan, her bir dönem için rastgele bir node seçilir. Bu node'un bir sonraki bloğu önermesi gereklidir (round robin adlı bir sistemde). Diğer doğrulayıcılar bu öneriyi kabul ederse yeni blok eklenir ve zincir güncellenir. İşlem sonlandırma anındadır – Bitcoin ve Ethereum'un aksine işleminizin geçerli olduğundan emin olabilmeniz için doğrulama yapılmasını beklemenize gerek yoktur.

Fakat her şey bu kadarla sınırlı değildir. Tendermint Core'un mimarisi modülerdir. Uygulama katmanı, mutabakat ve ağ oluşturma katmanından ayrılmıştır. Bu da kendi uygulama katmanınızı yığına ekleyebileceğiniz anlamına gelir. Bunu yapmak için teşvikler ya da mutabakat algoritmaları üzerine çalışmanıza gerek yoktur. 

Muhtemelen bu özellik, son kullanıcı için pek de heyecan verici değildir. Fakat geliştiriciler için mevcut bir çerçeveden faydalanabiliyor olmak; bütün bir ağı sıfırdan inşa etmek zorunda kalmadan, doğrudan uygulama geliştirmeye başlayabilmek anlamına gelir. Blockchainden gelen veriler, entegre edilmiş katmana nakledilebilir, böylece geliştiriciler de herhangi bir dili kullanarak yazılım geliştirebilir.

Bunu mümkün kılan ise Uygulama Blockchain Arayüzü ya da kısaca ABCI'dır. ABCI'ı, bir Raspberry Pi bilgisayara eklediğiniz GPIO (genel amaçlı girdi-çıktı) pin'leri gibi düşünebilirsiniz. LED'lerden bitkileriniz için özenle hazırlanmış sulama sistemlerine kadar her türden üçüncü taraf öğeyi bunlara bağlayabilirsiniz. Benzer şekilde ABCI da blockchain ve üzerinde çalışan uygulamalar arasındaki sınırı belirler.


Tendermint Core'u bu kadar önemli kılan nedir?

Uygulama arayüzü ve mutabakat algoritmasının birbirinden ayrılmış olması, farklı türlerdeki merkeziyetsiz uygulamaların herhangi bir programlama dilini iş mantığına dahil edebilmesi için daha fazla esneklik sunar.

Nelerin yapılabileceğini yönelik net bir örnek için Ethermint'e bakmak yeterlidir. Bu proje, Ethereum kod tabanını alıp Proof of Work mekanizmasını çıkarmış ve Ethereum Sanal Makinası'nı Tendermint üzerine yerleştirmiştir.
Böylece ilginç birkaç şey mümkün hale gelmiştir. Birincisi, Ethereum geliştiricileri akıllı kontralarını yeni motora kolaylıkla taşıyabilmiş ya da Solidity kullanarak yeni kontratlar yazabilmiştir. Ethermint, Ethereum'un işlevselliğini sunmanın yanında Proof of Stake Ethereum gibi hareket ederek Ethereum 2.0'da Casper uygulamasının nasıl olacağı hakkında fikir de vermiştir.


Blockchain birlikte çalışabilirliği

“Blockchainlerin interneti” vaadi, birçok kişinin Tendermint tabanlı protokollere yönelmesine sebep olan şeydir. Birlikte çalışabilirlik, bireysel yüzlerce blockchainin birbirleriyle uyumlu olabileceği anlamına geldiğinden kripto para dünyasında uzun süredir beklenen bir yeniliktir.
İsteyen herkesin uygulamaya özel bir herkese açık ya da gizli blockchain oluşturmasına imkan tanıyan açık kaynaklı bir çerçeve olan Cosmos SDK'ya yönelik yoğun çalışmalar yapılmıştır. Daha sonra bu blockchainler Cosmos Hub aracılığıyla genel Cosmos ağına eklenebilir ve burada birbirleriyle iletişim kurabilir.
Binance Smart Chain (BSC)KAVABand ProtocolTerra ve IRISnet gibi çok sayıda popüler proje Cosmos SDK ile inşa edilmiştir.


Son düşünceler

Bir blockchain motoru olarak Tendermint, geliştiricilerden son kullanıcılara kadar kripto dünyasından birçok paydaşın ilgisini çeker.

Tendermint'e yönelik ilgi devam ederse bu yazılım, blockchainlerin internetinin belkemiği olarak başarıyla hizmet edebilir. Yukarıda da bahsettiğimiz gibi bu vizyonu hayata geçirmek için halihazırda birkaç proje Cosmos SDK ile kullanıma sunulmuştur.

Tendermint, mutabakat algoritmaları ya da genel anlamda blockchain teknolojisi hakkında sorularınız mı var? Bu sorularınızın topluluk tarafından yanıtlanacağı Academy'ye Sor'u ziyaret edebilirsiniz.