Monad, yakın zamanda risk sermayesi şirketi Paradigm'den 225 milyon dolar fon toplayan yeni bir katman 1 akıllı sözleşme platformudur. 

Monad henüz piyasaya sürülmemiş olsa da, 2024'ün sonlarında genel test ağında yayına girmesi bekleniyor ve ana ağ dağıtımının 2025'in başlarında yapılması planlanıyor.

Monad, paralel bir Ethereum Sanal Makinesi (EVM) projesidir ve Aurora (Near Protokolü üzerine inşa edilmiştir) veya Sei gibi benzer projeler gibi, ağın birden fazla işlemi aynı anda işleyebilmesi için EVM talimatlarının yürütülmesini paralelleştirmeye çalışır. Bu, daha büyük hacimli işlemlerin üstesinden gelmeyi mümkün kılar, verimi artırır ve maliyetleri azaltır.

Paralelleştirme, işlem yürütmenin aynı anda işlenebilecek daha küçük, bağımsız görevlere bölünmesini içerir. Monad, fikir birliğini, yürütmeyi ve veri depolamayı geliştirmek için dört optimizasyon sunar: MonadBFT, ertelenmiş yürütme, paralel yürütme ve MonadDb.

MonadBFT

MonadBFT, blok zincirinin ölçeklenebilirliğini ve verimliliğini artırmak için tasarlanmış, ardışık düzende iki aşamalı, Bizans hatasına dayanıklı bir algoritmadır. Kısmen senkronize koşullar altında çalışacak şekilde optimize edilmiş HotStuff algoritmasının bir türevidir. 

Bu optimizasyon önemlidir, çünkü çoğu gerçek dünya ağı, ağ tıkanıklığı, gecikme ve diğer faktörlerin neden olduğu değişken mesaj teslim süreleri nedeniyle mükemmel şekilde senkronize davranış sergilemez. MonadBFT, bu kısmen senkronize koşulları karşılayarak pratik dağıtımlarda iyi performans ve güvenilirlik sağlar.

HotStuff algoritması, bir bilgisayar sisteminin bazı düğümleri kötü niyetli davransa veya hatalı olsa bile çalışmaya devam etme yeteneği olan Bizans hata toleransını (BFT) elde etmek için blockchain sistemleri için tasarlanmış bir fikir birliği protokolüdür.

Bu sağlamlığa, zincirdeki bir sonraki blok üzerinde anlaşmaya varmak için düğümler arasındaki bir dizi iletişim turu aracılığıyla ulaşılır. HotStuff, bir fikir birliğine varmak için üç iletişim turu gerektirir ve bu, ölçeklenebilirlik ve verimlilik açısından bir darboğaz haline gelebilir. MonadBFT, fikir birliği için gereken iletişim turlarını üçten ikiye düşürerek HotStuff'ı geliştiriyor.

Konsensüs mekanizması aşamalar halinde çalışır. Bir lider düğüm bloklar önerir ve doğrulayıcılar bunları inceler. Her turda lider, bir önceki tur için yeterli çoğunluk sertifikası (QC) veya zaman aşımı sertifikası (TC) içeren yeni bir blok gönderir. QC, bir bloğun doğrulayıcıların çoğunluğu tarafından onaylandığının kanıtıdır ve bloğun geçerliliği konusunda anlaştıklarını gösterir.

Öte yandan bir TC, gerekli sayıda doğrulayıcının belirli bir zaman dilimi içinde fikir birliğine varamadığını gösterir. Bu, sistemin durmasını önlemek için bir geri dönüş mekanizması görevi görür.

Doğrulayıcılar, lider tarafından önerilen yeni bloğa oy verir. Yeterli sayıda doğrulayıcının (üçte iki) onaylaması durumunda blok sonraki turlarda sonlandırılır ve QC'ler düzenlenir.

Doğrulayıcılar zamanında geçerli bir blok almazsa, bir TC'de toplanabilen imzalı zaman aşımı mesajları gönderirler. Bu TC daha sonra doğrudan bir sonraki lidere gönderilir. Doğrulayıcılar ardışık iki sertifikalı blok gördüğünde blok sonlandırılır.

Bu iki aşamalı taahhüt kuralı, ağ güvenliğini ve hata toleransını korurken bloğun hızlı bir şekilde sonlandırılmasını sağlar. Tüm eşzamansız BFT ayarlarında olduğu gibi, güvenliği sürdürmek için Monad'ın doğrulayıcı düğümlerinin üçte ikisinin rakip olmaması ve eşit oy payı ağırlığına sahip olması gerekir.

Ertelenmiş yürütme

Ertelenmiş yürütme, işlem yürütmeyi konsensüsten ayırır. Düğümlerin fikir birliği oluşturmadan önce işlemleri yürütmesi gereken Ethereum gibi geleneksel blok zincirlerin aksine, MonadBFT fikir birliği yalnızca işlem sırasına odaklanır.

Ethereum'da, düğümlerin hem bloktaki işlemlerin listesi hem de işlem sonrası durum yürütmesi için Merkle ağacı kökü üzerinde fikir birliğine varmaları gerekir. Bu, fikir birliği liderinin bloğu göndermeden önce işlemleri yürütmesi gerektiği ve doğrulama düğümlerinin hepsinin oy vermeden önce bu yürütmeyi yeniden yapması gerektiği anlamına gelir.

Bu nedenle blok süreleri oldukça uzun olabilir ve ağın işleyebileceği hesaplamanın karmaşıklığı azalır. MonadBFT'nin mutabakat mekanizması yalnızca işlemlerin sırasını belirler ve mutabakata varıldıktan sonra yürütmenin bağımsız olarak gerçekleşmesine olanak tanır.

Yürütmenin doğru şekilde gerçekleştirildiğinden emin olmak için Monad, durumun Merkle kökü üzerindeki anlaşmayı D blokları kadar geciktirir. D, şu anda 10 olması beklenen sistem çapında bir parametredir.

Bu tasarım, işlemleri doğru şekilde yürütmeyen kötü amaçlı bir düğümle ilişkili riskleri azaltır. Ağ, N bloğu üzerinde üçte iki çoğunluk oyu ile fikir birliğine vardığında, N-D bloğundaki Merkle ağacının temsil ettiği durum üzerinde de anlaşmaya varır.

Herhangi bir düğüm, N-D bloğunu yürütürken bir hata tespit ederse, N bloğuna yönelik teklife karşı oy kullanır. Bu, N-D-1 bloğunun son durumuna geri dönüşü tetikler ve ardından N-D bloğundan işlemlerin yeniden yürütülmesini tetikler. Bir düğüm, kendi Merkle kökünü kontrol ederek yürütme sonuçlarını ağdaki diğer düğümlere göre doğrulayabilir ve düzeltebilir. Hafif düğümler, durum değişkeni değerlerinin Merkle kanıtları için tam düğümleri sorgulayabilir.

Paralel yürütme

Popüler paralel yürütme blok zincirleri ya deterministik ya da iyimserdir.

Monad, paralel işlem işlemeyi gerçekleştirmek için iyimser yürütmeyi kullanır. Bu yöntem, işlemcilerin dallanma talimatlarının yolunu tahmin ettiği ve bunları önceden yürüttüğü merkezi işlem birimleri (CPU'lar) tarafından kullanılan spekülatif yürütmeye bir şekilde benzer. 

Monad'ın yürütme motoru, daha önceki işlemlerin yürütülmesi tamamlanmadan önce yeni işlemleri işlemeye başlar ve bu da genel verimi artırır.

Ancak iyimser eşzamanlılık kontrolü adı verilen bu strateji, sonraki işlemler birbirine bağımlı olduğunda hatalara yol açabilir. Bir çakışma tespit edilirse (örneğin, iki işlem aynı hesap bakiyesini değiştirmeye çalıştığında), etkilenen işlemler tutarsızlıkları düzeltmek için yeniden yürütülür.

En kötü durumda, bir işlemin iki kez yürütülmesi gerekir, ancak toplamda bu yalnızca %1,5 ek yük ekler. Monad ayrıca işlemler arasındaki bağımlılıkları önceden tahmin etmek için statik bir kod analizörü kullanır. Bu statik analiz, Monad'ın potansiyel çatışmaları yürütmeden önce belirlemesine olanak tanır ve tüm çatışmaları önlemese de, daha verimli, iyimser paralel yürütme için ilk işlem planlamasını optimize etmeye yardımcı olur.

Sei ayrıca işlemlerin çakışmayacağını varsayarak iyimser paralelleştirmeyi kullanıyor ancak çatışmaları ele alma konusunda farklı bir yaklaşım izliyor. Paralelleştirme süreci sırasında Sei, her işlemin durumun hangi kısımlarını değiştirdiğini izler. İki işlemin çakıştığını tespit ederse, yani durumun aynı bölümünü değiştirmeye çalışırlarsa sistem, yürütmeyi geçici olarak durdurur ve çakışan işlemleri Monad'a benzer şekilde sırayla yeniden işler.

Bununla birlikte, Monad'ın statik kod analizörü kullanması, daha verimli işlem planlamaya olanak tanır ve böylece çakışma olasılığını azaltır; oysa Sei, yalnızca yürütme sırasında ortaya çıkan çakışmaları giderir.

İyimser uygulama aynı zamanda deterministik metodolojiler için gerekli olan karmaşık planlama ve bağımlılık analizi algoritmalarına olan ihtiyacı da ortadan kaldırır. Sui ve Solana tarafından kullanılan deterministik bir yaklaşıma göre, işlemlerin yürütmeden önce devletin hangi bölümlerine erişeceklerini beyan etmesi gerekiyor.

Bu ön bildirim, sistemin işlemleri yürütme sırasında çakışmaları önleyecek şekilde planlamasına olanak tanır. Bu yöntemin temel avantajı öngörülebilirliktir: Bağımlılıklar önceden bilindiğinden sistem, işlemlerin birbirine karışmamasını sağlayarak tutarlı ve güvenilir sonuçlar elde edilmesini sağlayabilir.

Ancak bu öngörülebilirliğin bir bedeli var. Bağımlılıkları analiz etmek ve işlemleri planlamak, işlemler arasındaki tüm potansiyel etkileşimleri hesaba katması gereken ve hesaplama yükünü ortaya çıkaran karmaşık algoritmalar gerektirir, bu da daha yüksek donanım gereksinimlerine yol açar.

Sistemin çakışmaları önlemek için yürütme sırasını sürekli olarak izlemesi ve ayarlaması gerektiğinden, gerçek zamanlı analiz ve planlama ihtiyacı da karmaşıklığı artırır.

Ek olarak, deterministik bir yaklaşım verimli bir şekilde ölçeklendirme konusunda zorluklarla karşılaşabilir. İşlem sayısı arttıkça bağımlılık analizinin karmaşıklığı da katlanarak artıyor.

MonadDB

MonadDB, paralel yürütmenin uygulanmasını optimize etmek için özel olarak tasarlanmış özel bir veritabanıdır. Ethereum gibi geleneksel blok zincirlerinde, giriş/çıkış (G/Ç) erişimi önemli bir darboğaz haline gelir, çünkü bu sistemler öncelikle senkronize G/Ç işlemlerine dayanır. 

İşlemler, bir sonrakine geçmeden önce her okuma veya yazma işleminin tamamlanmasını beklemek zorundadır; bu da verimi ve genel performansı ciddi şekilde sınırlandırır. Bu sınırlamanın üstesinden gelmek için MonadDB, sistemin her birinin tamamlanmasını beklemeden birden fazla okuma ve yazma işlemini aynı anda başlatmasına olanak tanıyan eşzamansız disk işlemlerini kullanır. Bu, özellikle paralel yürütmeyle birleştirildiğinde, işlem işlemenin genel hızını artırır.

Çözüm

Monad, blockchain teknolojisinde önemli bir ilerlemeyi temsil ediyor. Ölçeklenebilirliği ve verimliliği artırmak için iyimser yürütme, ertelenmiş yürütme ve özel bir veritabanı olan MonadDB gibi yenilikçi teknikler kullanır. 

CPU'lardaki spekülatif yürütmeye benzeyen iyimser paralelleştirme yöntemi, işlemleri eşzamanlı olarak işleyerek ve çakışan işlemleri yalnızca gerektiğinde yeniden yürüterek yüksek verim sağlar.

Statik kod analiziyle birleştirilen bu yöntem, işlem zamanlamasını optimize eder ve çakışma olasılığını azaltır. Sei gibi diğer paralel EVM projeleri ve Sui ve Solana gibi deterministik sistemlerle karşılaştırıldığında Monad'ın yaklaşımı, yüksek işlem hacimleri için sağlam bir çözüm sunarak verimliliği ve karmaşıklığı dengeliyor.

Ardışık düzende iki aşamalı, Bizans hatasına dayanıklı bir algoritma olan MonadBFT'nin kullanıma sunulması, hızlı blok sonlandırmayı ve ağ güvenliğini daha da sağlar.

Monad, 2024'ün sonlarında halka açık test ağına ve 2025'in başlarında ana ağ dağıtımına hazırlanırken, kendisini yeni nesil ölçeklenebilir blockchain platformlarında zorlu bir oyuncu olarak konumlandırıyor.