Ethereum'un Ölçeklenme Krizi: Yürütme Katmanı

Bu makale, kolaylığınız için orijinal dilinden çevrilmiştir. Tam doğruluk için çaba sarf etmemize rağmen, küçük hatalar veya yorum farklılıkları olabilir. En doğru ve gerçek temsili için lütfen orijinal yayını adresinden inceleyin. Anlayışınız için teşekkür eder ve detaylı bilgi için orijinal kaynağa başvurmanızı öneririz.

Fuel Labs tarafından yayınlanan ve Ethereum'da ölçeklenebilirlik ve yürütme ile ilgili konuları ele alan bir serinin ilk bölümü ile karşınızdayız. Bu seri, Ethereum'un performansı ve kapasitesini artırmakla ilgili zorlukları ve daha onu verimli ve ölçeklenebilir hale getirme çabalarıyla birlikte Ethereum’un ölçeklenmesi ve kitlesel adaptasyonu için mevcut çözümler hakkında kapsamlı bilgiler sunmayı amaçlamaktadır.

Ethereum'un mimarisi, her biri ağın işleyişinde önemli bir rol oynayan birkaç katmandan oluşur. Bu katmanlar arasında, yürütme katmanı özellikle önemlidir. İşlem işleme, akıllı sözleşme yürütme ve tutarlı ve güvenli bir durumun (state) korunması yürütme katmanında gerçekleştirilir. Ancak, bu katman genellikle Ethereum ağının genel performansını ve ölçeklenebilirliğini sınırlayan bir darboğazdır.

Ethereum'da Yürütme

Yürütme, işlemleri ve blokzincirde durum değişikliklerini gerçekleştirmek için gereken hesaplamayı ifade eder. Bu hesaplama genellikle işlemleri doğrulamak için imzaları ve token bakiyelerini kontrol etmeyi ve durumu güncellemek için gerekli zincir üstü mantığı yürütmeyi içerir. Durum değişiklikleri, tam düğümler (full nodes) yeni token transferlerini, akıllı sözleşme kodu güncellemelerini ve veri depolama değişikliklerini yansıtmak için tuttukları kayıtları güncellediğinde meydana gelir.

Yürütme katmanının birincil işlevleri şunlardır:

İşlem İşleme: Kullanıcılar tarafından gönderilen işlemleri doğrulama ve yürütme.

Akıllı Sözleşme Yürütme: Anlaşma şartlarının doğrudan koda yazıldığı kendi kendini yürüten sözleşmeler olan akıllı sözleşmelerin kodunu çalıştırma.

Durum Yönetimi: Hesap bakiyeleri, akıllı sözleşme durumları ve diğer önemli veriler dahil olmak üzere blokzincirin durumunu koruma. Ethereum'un durum yönetimi, karmaşık durum ağacı nedeniyle özellikle zorludur ancak durum depolamayı optimize ederek daha küçük ve daha verimli veri kanıtları sağlayan Verkle Tree’ler bu sorunun çözümü için geliştirilmektedir. Ek olarak Solana’da küresel bir durum ağacı olmamasına rağmen de durum yönetimi sorunlarıyla uğraşmıştır.

Ölçeklenebilirliğin hedefi, işlem hızını (daha hızlı kesinlik) ve işlem verimini (saniye başına daha yüksek işlem sayısı) artırarak performansı artırmaktır. Performans genellikle TPS (saniye başına işlem) bazında düşünülür. Gerçekte ise ölçeklenebilirlik, bir blokzincirin bir saniyede gerçekleştirebileceği hesaplama sayısını ifade eder çünkü işlemler karmaşıklık ve kaynak gereksinimleri açısından değişiklik gösterebilir. Ethereum, işlemleri ve akıllı sözleşmeleri yürütmek için gereken hesaplamaları ölçmek için "gas" kullanır. Yürütme katmanını ölçeklendirmenin zorluğu, işlemleri bloklarda doğrulayan bireysel tam düğümler için donanım gereksinimlerini önemli ölçüde artırmadan saniye başına hesaplama sayısını artırmaktır. Bu sorunu verimli bir şekilde çözmek, blokzincirlerin verimliliğini ve performansını artırmak için kritik öneme sahiptir.

İşlemler Nasıl İşlenir ve Doğrulanır?

Ölçeklenebilirliğin neden hesaplama olarak ele alınması gerektiğini tam olarak anlamak için işlemlerin Ethereum'da nasıl gerçekleştiğine daha yakından bakmak gerekir. Bir kullanıcı Ethereum'da bir işlem başlattığında, işlem tamamlanmadan önce birkaç adımdan geçer. İşte bu sürecin basitleştirilmiş bir özeti:

İşlem Başlatma: Bir harici sahipli hesap (EOA) veya bir akıllı sözleşme sahibi, imzalı bir JSON-RPC isteği oluşturarak bir işlem başlatır. Bu istek, alıcı adresi, aktarılacak Ether miktarı (varsa), dahil edilecek veri (sözleşme ile etkileşimde bulunuluyorsa), gas limiti ve diğer işlem parametreleri gibi ayrıntıları içerir.

Dijital İmza Doğrulama: Ethereum ağındaki düğümler, işlemin orijinalliğini doğrulamak ve iletim sırasında üzerinde oynama yapılmadığını kontrol etmek için önce işlemin dijital imzasını doğrular.

Nonce Kontrolü: Ağ, göndericinin hesabının nonce'unu kontrol ederek işlemin sıralı olduğunu doğrular ve yeniden oynatma saldırılarını (replay attack) önler. Nonce, bir hesaptan gönderilen her işlemle birlikte artar.

Gas Hesaplama: Gas, hesaplama maliyetini ölçmek için kullanılan bir birimdir ve işlemleri ve akıllı sözleşmeleri yürütmek için gereklidir. İşlem, göndericinin bu işlem için kullanmayı kabul ettiği maksimum gas miktarını belirten bir gas limiti belirtir. Gas ücretleri Ether olarak ödenir ve Ethereum ağında hesaplama ve depolama maliyetini karşılar.

İşlem Yayını: Doğrulandıktan sonra işlem, Ethereum ağında tüm düğümlere yayınlanır. Düğümler işlemi alır ve doğrulama için bir bloğa dahil etme sürecine başlar.

Blok Oluşturma: Ethereum'un Hisse İspatı (PoS) konsensüs mekanizmasındaki doğrulayıcılar, en son başlatılan işlem de dahil olmak üzere doğrulanmış işlemlerden oluşan yeni bir blok önerir ve doğrular.

Blok Doğrulama: Diğer düğümler de işlemlerin doğruluğunu, imzaları kontrol ederek, mevcut fonları onaylayarak ve çift harcama olmadığını doğrulayarak doğrular.

Durum Güncelleme: Bir blok geçerli olduğunda, her düğüm, o bloktaki işlemlerden gelen yeni durum değişiklikleriyle bulundurdukları Ethereum blok zinciri kopyasını günceller. Bu, hesap bakiyelerini, sözleşme verilerini ve diğer önemli verileri güncellemeyi içerir. Ethereum, tüm durum verilerini organize ederek tek bir kök hash'e bağlayan hiyerarşik bir yapıda düzenlenmiş küresel bir Merkle ağacı barındırır. Bu, belirli işlemlerin veya veri parçalarının bütünlüğünü doğrulamak için tüm blok zincirini indirmeden hafif istemcilerin kullanabileceği tek, düzenli bir durum kökü sağlar.

İşlem Onayı: Bir işlem bir bloğa dahil edildiğinde ve o blok blokzincire eklendiğinde, işlem onaylanmış olarak kabul edilir. Onay, işlemin geri alınamaz olduğunu ve Ethereum ağı tarafından kabul edildiğini belirtir.

Son Yürütme ve Sözleşme Etkileşimi: Akıllı sözleşmelerle etkileşime giren işlemlerde sağlanan giriş verilerine göre sözleşmenin kodu yürütülür. Bu yürütme, sözleşmenin iç durum değişkenlerini güncellemeyi veya daha fazla işlemi tetiklemeyi içerebilir.

İşlem Makbuzu: Kullanılan gas miktarı, işlemin dahil edildiği blok numarası ve sözleşme yürütme sırasında üretilen kayıtlar gibi ayrıntıları doğrulamak için incelenebilen bir işlem makbuzu üretilir.

Yürütme Darboğazı

Yürütme katmanı, Ethereum'un işlevselliğinin merkezinde yer alırken, aynı zamanda Ethereum'un herhangi bir zamanda gerçekleştirebileceği hesaplama sayısına önemli bir darboğaz oluşturur. Veri kullanılabilirliği (DA) kritik bir sorun olmakla birlikte, EIP-4844 gibi düzenli Ethereum işlemlerinden çok daha ucuz depolanan geçici "blob"lar gibi çözümler bu zorlukların büyük ölçüde üstesinden gelmiştir. EIP-4844 gibi yenilikler veri dağıtımını ve zincir dışı depolamayı geliştirerek, Ethereum'un ölçeklenebilirliğine yönelik birincil engel olarak yürütme katmanına odaklanmayı sağlamıştır.

Ethereum'daki yürütme darboğazına katkıda bulunan birkaç faktör vardır.

Gecikme Darboğazları

Gecikme, bir işlemin gönderilmesinden blok zincirine dahil edilip onaylanmasına kadar geçen zamandır. Yüksek gecikme, daha yavaş işlem onaylarına, kullanıcılar için daha uzun bekleme sürelerine ve akıllı sözleşmelerin yürütülmesinde gecikmelere yol açabilir. Birincil gecikme darboğazları şunlardır:

Blok Zamanı ve Onay Gecikmesi: Ethereum'un ortalama blok süresi, şu anda yaklaşık 12 saniye civarındadır ve bu, işlem onayları için minimum bir gecikme süresi oluşturur. Bir işlem bir sonraki bloğa dahil edilirse, ortalama bekleme süresi yaklaşık olarak blok süresinin yarısı, yani 6 saniyedir. Anlık işlem hacmi düşükse, işlemler bir bloğa dahil edilene kadar daha uzun süre beklediğinden gecikme artabilir.

Blok Zinciri Senkronizasyonu (Konsensüs): Ethereum ağındaki düğümler, her bloğun geçerliliği konusunda fikir birliğine varmalıdır. Bu süreç, düğümlerin işlemleri doğrulaması, blokları doğrulaması ve ağ durumu ile senkronize olmasıyla gecikmeye neden olabilir. Blok yayılma sürelerindeki değişkenlik de gecikmeye katkıda bulunur.

Verim (Throughput) Darboğazları

Verim, ağın belirli bir zaman diliminde büyük işlem hacimlerini verimli bir şekilde işleme ve yönetme kapasitesidir. Daha yüksek verim, ağın saniye başına daha fazla işlem gerçekleştirebileceği anlamına gelir. Verim darboğazları şunları içerir:

Tek İş Parçacıklı Yürütme: Ethereum Sanal Makinesi (EVM), işlemleri tek iş parçacıklı bir şekilde birer birer işler. Bu, işlemlerin paralelize edilemeyeceği anlamına gelir ve aynı anda kaç işlemin işlenebileceğini sınırlar.

İsrafçı Yürütme: EVM, 256 bitlik kelimeler ve yığın tabanlı bir yaklaşım kullanır. Bu tasarım seçimi, hesaplama kaynaklarının verimsiz kullanımına yol açar ve sözleşmelerin yürütülmesi için gereken zaman ve enerjiyi artırır.

Durum Yönetimi: Ethereum, 256 seviyeli büyük, derinlemesine bir durum ağacını korur. Her bir anahtar-değer çifti güncellendiğinde, veritabanında 256 güncelleme yapılmalıdır. Bu kapsamlı güncelleme süreci, ağı önemli ölçüde yavaşlatır.

Gas Ölçüm Aşırı Yükü: Gas ölçümü, aşırı kaynak kullanımını önlemek ve durma sorununu önlemek için tasarlanmış olsa da her işlemi izlemek önemli bir yük ekler. Bu yük, işlem işlemesini yavaşlatmaya katkıda bulunur.

Düğüm Kapasite Sınırları: Ethereum düğümlerinin işleme ve depolama kapasitelerinde pratik sınırları vardır. İşlem işleme talepleri bu sınırları aştığında, düğümler blok doğrulama ve yayılmada gecikmelere yol açarak bu taleplerle başa çıkmakta zorlanır.

Durum Büyümesi: İşlem sayısı arttıkça, blokzincirin durumu da büyür. Bu büyüme, daha fazla depolama gerektirir ve durum doğrulama ve erişimi daha zaman alıcı hale getirerek ağı daha da yavaşlatır.

Yürütme Darboğazının Ölçeklenebilirlik Üzerindeki Etkisi

Yürütme katmanından kaynaklanan performans sorunları, ağın ölçeklenebilirliğini ve kullanıcı deneyimini etkileyerek çeşitli şekillerde ortaya çıkar. İşte bazı örnekler:

Ağ Tıkanıklığı: Popüler TGE'ler veya NFT satışları gibi yüksek talep dönemlerinde, işlem sayısı ağı aşırı yükleyerek tıkanıklığa neden olabilir. Bu, daha uzun onay sürelerine ve kullanıcıların işlemlerinin işlenmesi için rekabet ettikçe daha yüksek gas ücretlerine yol açar.

Yüksek Gas Ücretleri: Ağ tıkandığında gas ücretleri fırlayabilir, kullanıcılar için basit işlemleri bile gerçekleştirmeyi maliyetli hale getirir. Bu, ağın erişilebilirliğini ve kullanılabilirliğini sınırlar.

Ölçeklenme Sorunları: EVM'nin sınırlı verimi, Ethereum'un etkili bir şekilde ölçeklenme yeteneğini engeller. Kullanıcı ve merkeziyetsiz uygulama (dApp) sayısı arttıkça, ağ önemli performans düşüşleri olmadan artan yükü karşılamada zorlanır.

Kullanılabilirlik ve Benimsenme Üzerindeki Etkiler

Yürütme darboğazı, hem son kullanıcılar hem de geliştiriciler üzerinde somut etkiler yaratarak daha geniş Ethereum ekosistemini önemli şekillerde etkiler.

Yürütme Darboğazlarının Son Kullanıcılar ve Geliştiriciler Üzerindeki Etkileri

Yoğun zamanlarda yüksek gas ücretleri, kullanıcılar için ağ ile etkileşimi maliyetli hale getirir; bu, ETH göndermek, DeFi protokollerine katılmak veya NFT basmak gibi işlemleri içerir. Ağ tıkanıklığı, işlem onaylarında gecikmelere neden olarak, gerçek zamanlı etkileşimler bekleyen kullanıcılar için problem yaratır. Bu yüksek maliyetler ve gecikmeler, ağın genel kullanılabilirliğini azaltır, potansiyel kullanıcıları caydırır ve ekosistemin büyümesini sınırlar.

Geliştiriciler açısından, gas kullanımını en aza indirmek için akıllı sözleşmeleri optimize etme gerekliliği geliştirme sürecine karmaşıklık ve zaman ekler. Ayrıca, genellikle düğüm hizmetleri (örneğin, Infura) gibi üçüncü taraf sağlayıcılar aracılığıyla altyapıyı optimize etme zorunluluğu ile de mücadele etmek zorundadırlar. Bu, yalnızca akıllı sözleşmeleri optimize etmekten daha büyük bir engel olabilir. Ethereum üzerinde ölçeklenebilir dApp'ler oluşturmak, ağın sınırlı verimi nedeniyle daha iyi performans için zincir dışı çözümler veya ikinci katman ölçeklenebilirlik tekniklerini uygulamalarını gerektirir.

Önemli Ağ Tıkanıklık Olayları

2017'nin sonlarında yaşanan CryptoKitties NFT çılgınlığı, ağın ne kadar tıkanabileceğini gösteren önemli bir an oldu. Kullanıcıların sanal kedileri üretip ticaretini yapmasından kaynaklanan işlem artışı, önemli ağ gecikmelerine neden oldu. Zirve noktasında, CryptoKitties, Ethereum ağındaki tüm işlemlerin neredeyse %16'sından sorumluydu ve bazı işlemlerin saatlerce hatta günlerce gecikmesine neden oldu. Bir Coindesk makalesine göre, bir noktada yaklaşık 30.000 işlem sıkışmış ve işlenmeyi bekliyordu.

CryptoKitties, Ethereum gas ücretlerinde benzeri görülmemiş bir artışa yol açtı ve ardından gelen P2E patlaması bu artışı sürdürdü. Kaynak: Glassnode
CryptoKitties, Ethereum gas ücretlerinde benzeri görülmemiş bir artışa yol açtı ve ardından gelen P2E patlaması bu artışı sürdürdü. Kaynak: Glassnode

2020'nin DeFi Yazı, ağ tıkanıklığının başka bir önemli dönemiydi. Uniswap ve Compound gibi dApp'lerin hızla benimsenmesi, ağ etkinliğinde önemli bir artışa neden oldu. Bu faktörler, zincir üstü alana olan yüksek talep ve buna bağlı olarak gas ücretlerinde bir artışa yol açtı, günlük işlem maliyetlerine binlerce ETH harcanıyordu.

2021'den 2022'ye kadar devam eden NFT patlaması, Ethereum'un ölçeklenebilirlik sorunlarını daha da belirgin hale getirdi. Yuga Labs'in Otherside NFT lansmanı gibi yüksek profilli NFT satışları ve açık artırmalar, binlerce katılımcıyı çekerek gas ücretlerini tavan yaptırdı. Otherside mint gününde ortalama gas ücreti işlem başına 400 doları aştı.

Gerçek Dünya Yansımaları

NFT ticareti ve DeFi spekülasyonu gibi niş aktivitelerin ötesinde, yüksek maliyetler ve gecikmeler, dApp'lerin kullanıcı deneyimini de zedeleyerek etkileşimi ve kullanıcı sürekliliğini azaltabilir. Birkaç blokzincir projesi, başka blokzincirlere geçmek veya tamamen kapanmak zorunda kaldı. Örneğin, ETH tabanlı uygulamalara kullanıcı girişlerini basitleştirmeyi amaçlayan UniLogin, gaz ücretlerinin hızla artması nedeniyle işlemleri sürdürülemez hale getirerek, zaman zaman kayıt başına 130 doların üzerinde maliyetlere ulaşması nedeniyle operasyonlarını durdurmak zorunda kaldı. Ayrıca, kullanıcıların içerik oluşturup okuyarak kripto kazandıkları bir platform olan Publish0x, yüksek maliyetler nedeniyle ödemeleri geciktirip aylık dağıtımlara geçmek zorunda kaldı. Ethereum'un finans, tedarik zinciri yönetimi ve merkeziyetsiz kimlik gibi gerçek dünya uygulamalarına etkili bir şekilde ölçeklenebilmesi için, bu ölçeklenebilirlik sorunlarını çözmesi ve daha geniş benimsemeyi desteklemesi gerekmektedir.

Sonuç Düşünceleri

Yürütme darboğazlarının gerçek dünya yansımaları, hem kullanıcıları hem de geliştiricileri etkileyerek geniş çapta hissedilir. Yüksek gas ücretleri, ağ tıkanıklığı ve ölçeklenebilirlik kısıtlamaları, Ethereum ekosisteminin büyümesini ve kullanılabilirliğini engeller. Bu zorlukları ele almak, yürütme katmanına yönelik yenilikler ve iyileştirmeler gerektirir.

İkinci bölümde, Ethereum'un geleceği için yürütme katmanında yenilik yapmanın önemini inceleyeceğiz. EVM'nin mevcut sınırlamalarını, olası çözümleri ve geleneksel yürütme modelinin ötesine geçmenin faydalarını yakından inceleyeceğiz.

Önerilen Okumalar:

Subscribe to Fuel Labs — Turkish Blog
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.