Bloga geri dön
Blockchain ekosisteminde işlemler bir kez yazıldıktan sonra geri alınamazlar. Dolayısıyla, bu işlemlerin bloklara nasıl yazılacağını yönlendirecek mekanizmalara ihtiyaç vardır. Bu ekosistemde bir işlem/eylem (transaction) gönderildiğinde, nihai varış noktasına ulaşmadan önce teknik bir "bekleme odasında" vakit geçirir. Bu bekleme odası, mempool (açılımı "memory pool” / bellek havuzu) olarak adlandırılan, onaylanmamış işlemlerin madenciler (miners) veya doğrulayıcılar (validators) tarafından yeni bir bloğa dahil edilmeyi beklediği, blockchain düğümündeki (node) geçici depolama alanıdır. Bir ağın ne kadar hızlı çalıştığı veya bir işlem için ne kadar komisyon (fee) ödemeniz gerektiği, doğrudan bu odadaki yoğunlukla ilgilidir.
Bu süreci yoğun bir otel otoparkı olarak düşünürsek, arabaların (işlemlerin) gelip vale (madenci veya doğrulayıcı) tarafından bir park yerine yerleştirilmeyi (bir bloğa dahil edilmeyi) beklemesine benzer.
Tıpkı otoparkın kapasitesi gibi mempool’un boyutu ve yoğunluğu işlemin 'yaşam süresini' belirler. Kalabalık bir mempool, dijital bir trafik sıkışıklığı yaratarak onay sürelerini uzatır. Madenciler veya doğrulayıcılar, genellikle daha yüksek ücretli (fee) işlemlere öncelik verirler; çünkü bu, onları oluşturdukları bir sonraki bloğa bu işlemleri dahil etmeye teşvik eder. Mempool yoğun olduğunda, kullanıcıların işlemlerini daha hızlı gerçekleştirebilmesi için daha yüksek ücretler teklif etmesi gerekebilir.
Blockchain işlemleri, konsensüs mekanizmaları, madenciler ve doğrulayıcıların nasıl çalıştığıyla ilgili ayrıntılı bilgi için “Blockchain Teknolojileri” eğitimine bakılabilir.
Bir işlem bloğa eklenmeden önce, ağdaki düğümler işlemin geçerli olduğundan emin olmak için birkaç kontrol gerçekleştirir. Mempool sadece bir depolama birimi olarak değil, ağın validasyon (doğrulama) merkezi olarak da çalışır. Düğümler, geçersiz işlemleri (yetersiz bakiye, hatalı imza vb.) daha mempool aşamasındayken eler. Bu aşamada, gönderenin genel anahtarı (public key) ile dijital imza doğrulanır, işlemin özgünlüğü kanıtlanır ve bakiyenin yeterliliği (çift harcama / double spend) denetlenir.
Ayrıca Mempool işlem ücretleri için rekabetçi bir pazar yeri işlevi görür. Yeni bloklar oluşturmaktan sorumlu olan madenciler veya doğrulayıcılar, kâr maksimizasyonu için en yüksek ücreti veren işlemleri buradan seçer çünkü karşılık olarak bu ücretleri kazanırlar. Bu nedenle, ağ aktivitesinin yüksek olduğu ve mempool’un sıkıştığı zamanlarda, sınırlı blok alanına olan talep işlem ücretlerini yukarı çeker. Yüksek ücretli işlemler sıranın önüne geçer, bu da bir sonraki bloğa dahil edilme ve daha hızlı onaylanma şanslarını artırır.
Mempool’ların temel özellikleri bellek içi (in-memory) depolama, dinamik yapı ve merkeziyetsizlik olarak tanımlanabilir.
Bellekte Depolanan: Mempool fiziksel olarak blockchain'in bir parçası değildir. Her düğüm (node) kendi RAM'inde (geçici bellek) tuttuğu bir alandır. Yani işlem henüz "zincire" yazılmamıştır. Bu, mempool içeriğinin uçucu olduğu ve bir düğüm çevrimdışı kalırsa veya yeniden başlatılırsa verilerin kaybolabileceği anlamına gelir.
Dinamik: Mempool sürekli bir değişim halindedir. Saniyeler içinde binlerce yeni işlem eklenirken, onaylanan işlemler listeden silinir. Bu durum, mempool boyutunun ve bileşiminin her zaman değiştiği dinamik bir ortam yaratır.
Merkeziyetsiz: Tek bir "merkezi mempool" yoktur. Ağdaki her düğüm kendi bağımsız mempool’unu yönetir. Düğümler genellikle senkronize kalmaya çalışsa da, ağ gecikmesi veya farklı ücret tercihleri gibi faktörler nedeniyle küçük farklılıklar oluşabilir. Bu yüzden bir işlemin bir düğümün mempool'unda görünüp diğerinde görünmemesi (propagasyon gecikmesi) mümkündür.
Şeffaf: En önemli özelliklerinden biri ise mempool verileri halka açıktır ve blockchain ağının mevcut durumu hakkında değerli bilgiler sunar. Mempool boyutu ve bekleyen işlemlerle ilişkili ücretler analiz edilerek ağ yoğunluğu ölçülebilir. Büyük bir mempool, yüksek talep ve işlem onaylarında olası gecikmelere işaret eder. Mempool içindeki ücret dağılımını analiz ederek, kullanıcıların ve cüzdanların işlemlerinin zamanında onaylanması için uygun ücret seviyesini tahmin edebilirler. Mempool trendlerini gözlemlemek, ücretlerin ağ aktivitesine göre nasıl dalgalandığını anlamaya yardımcı olur ve işlemlerin ne zaman gönderileceği konusunda bilinçli kararlar verilmesini sağlar.
Mempool trend takibi için kullanılabilecek bazı araçlar:
● Mempool.space: Bitcoin odaklı, ücret dağılımını ve trendleri gösteren kapsamlı bir gezgin.
● Blocknative Mempool Explorer: Ethereum mempool verileri ve gaz tahminleri konusunda uzmanlaşmıştır.
● Etherscan: Ethereum için gerçek zamanlı bekleyen işlem bilgilerini sağlar. ● TxStreet: Bitcoin mempool’unu bir sokak görünümü şeklinde görselleştiren araçtır.
Mempool üç temel ilkeye sahiptir:
Kullanıcı cüzdan yazılımı aracılığıyla bir işlem başlatır. Bu işlem göndereni, alıcıyı ve transfer edilen kripto para miktarını belirten dijital imzalı bir mesaj oluşturur. Cüzdan yazılımı bu işlemi ağdaki bağlı düğümlere yayınlar. Bu işlem genellikle eşler arası (P2P) bir protokol üzerinden yapılır. İşlemi alan her düğüm onu doğrular ve ardından bağlı olduğu eşlerine (peer) tekrar yayınlar. Bu, işlemin ağ geneline yayılmasını sağlayan bir dalga etkisi yaratır. Düğümler yeni işlemi aldıklarında, eğer doğrulama testlerini geçerse, onu kendi mempool’larına eklerler. Her düğümün kendi mempool'u vardır; bu nedenle farklı düğümlerin kısa süreliğine de olsa biraz farklı mempool durumlarına sahip olduğu bir süreç yaşanabilir.
İşlemlerin yayılması genellikle bir "gossip protokolü" ile kolaylaştırılır. Düğümler bağlantı listelerinden periyodik olarak birkaç rastgele eş seçer ve mempool’larındaki işlemler hakkındaki bilgileri bu seçilen eşlere (peer) “fısıldar”. Eşler de bildikleri işlemleri paylaşarak karşılık verirler.
Bu davranış, bazı düğümler geçici olarak çevrimdışı olsa veya sınırlı bağlantıya sahip olsa bile işlemlerin ağda hızla yayılmasını sağlar. Dedikodu protokolünün bazı ana noktaları şunlardır:
● Hız: Dedikodu protokolü ve aktarım mekanizmaları işlemlerin ağda hızla yayılmasına yardımcı olur.
● Verimlilik: Merkezi bir sunucuya dayanmadıkları için merkeziyetsiz ağlarda bilgi yaymada oldukça verimlidirler.
● Yedekleme: Ağın dağıtık yapısı sayesinde, bazı düğümler arızalansa bile veriler diğer düğümlerde saklanmaya devam eder
● Sonuçta Tutarlılık: Her düğüm işlemi aynı anda almasa da, protokol eninde sonunda tüm geçerli işlemlerin tüm mempool'lara ulaşmasını garanti eder.
Madenciler ve doğrulayıcılar işlemleri rastgele seçmezler. Çabalarının karşılığında en fazla ödülü sunan işlemlere öncelik vermeye teşvik edilirler. Madencilerin çalışma şeklini etkileyen bazı önemli etkenler vardır. Bunlardan en önemlisi işleme eklenen ücrettir. Yüksek ücret madenci için yüksek ödül sağlar. Bir başka etken ise işlemin boyutudur; blokta çok yer kaplayan işlemler (karmaşık scriptler veya çok sayıda giriş/çıkış) daha az tercih edilebilir. Çünkü madenci bir bloğa bunlardan daha az sığdırabilir. Son olarak, her zaman belirleyici olmasa da, bazı madenciler mempool'da daha uzun süredir bekleyen eski işlemlere, özellikle rekabetçi ücretleri varsa öncelik verebilirler.
Doğrulanan işlemler belirli kurallar çerçevesinde yeni bir bloğa dahil edilir ve mempool’dan çıkarılır. Ancak bu seçimi kimin yapacağı, ağın kullandığı mekanizmaya (konsensüs mekanizması) göre değişir:
● Proof of Work (PoW) ve Madenciler: Bitcoin gibi ağlarda madenciler karmaşık bir matematiksel bulmacayı çözmek için devasa bir işlem gücüyle yarışır. Bu bulmacayı ilk çözen madenci, mempool'dan seçtiği işlemleri bir bloğa koyma ve ağa yayınlama hakkını kazanır. Buradaki "madencilik" tabiri, harcanan yoğun hesaplama eforunu temsil eder.
● Proof of Stake (PoS) ve Doğrulayıcılar: Yeni nesil ağlarda ise doğrulayıcılar bulunur. Burada bir yarış değil, bir "seçim" söz konusudur. Ağ, sisteme belirli miktarda kripto para kilitleyen (stake) kişiler arasından algoritma ile birini "blok önerici" olarak seçer. Doğrulayıcı mempool'daki işlemleri düzenler ve bloğu sisteme sunar.
Bir madenci veya doğrulayıcı bloğu bir araya getirdiğinde, bu blok tüm ağa yayınlanır. Diğer düğümler bloğu saniyeler içinde kontrol eder. Eğer işlemler kurallara uygunsa, blok zincire eklenir ve içindeki tüm işlemler "onaylanmış" statüsüne geçer. Bu noktada kritik bir temizlik yapılır: Onaylanan işlemler, artık bir "bekleme odasına" ihtiyaç duymadıkları için ağdaki tüm düğümlerin mempool’undan eşzamanlı olarak silinir.
Blockchain yapısı gereği geçici çatallanmalar (fork) oluşabilir. İki madenci veya doğrulayıcı neredeyse aynı anda farklı bloklar ürettiğinde, ağ kısa süreliğine hangi zincirin devam edeceği konusunda ayrılır. En sonunda en uzun veya en ağır zincir kuralı devreye girer ve bir blok ana zincire eklenirken diğeri ana zincir dışında kalır.
Bu dışarıda kalan bloklara genel olarak yetim blok (orphan block) veya eski blok (stale block) denir:
● Bitcoin gibi Proof of Work ağlarında bu bloklar “yetim blok” olarak adlandırılır ve madencisi hiçbir ödül alamaz.
● Ethereum’un eski Proof of Work döneminde (2022’deki Merge öncesinde) ise bu tip bloklara uncle block (amca blok) denirdi. Uncle bloklar tamamen atılmaz, bir sonraki bloklar tarafından referans gösterilebilir ve madencisine kısmi ödül verilirdi. Ancak Ethereum Proof of Stake’e geçtikten sonra uncle mekanizması ve ilgili ödüller (GHOST/hayalet protokolü) tamamen kaldırılmıştır.
Yetim bloktaki işlemler kaybolmaz. Blok ana zincire dahil edilmediği için içindeki işlemler (coinbase/ödül hariç) tekrar onaylanmamış duruma döner ve ağdaki düğümlerin mempool’larına geri eklenir. Bu işlemler genellikle kısa bir gecikmeyle bir sonraki bloklara dahil edilir.
Bu durum özellikle blok süresi kısa olan ağlarda daha sık yaşanabilir ve blockchain’in doğal bir sonucudur. İşleminiz yetim blok nedeniyle tamamen kaybolmaz; sadece mempool’a geri dönerek yeniden seçilme şansı yakalar.
Mempool, blockchain'in mevcut aktivitesinin gerçek zamanlı bir anlık görüntüsünü sunar. Böylece işlemin ne kadar süreceği tahmin edilebilir. Şişkin bir mempool, yüksek ağ aktivitesi ve tıkanıklık anlamına gelir; bu da daha uzun onay süreleri ve yüksek ücretler demektir.
Daha yüksek ücret ödemek, ücret tahmin araçlarını kullanmak, RBF (Replace-by-Fee - Ücretle Değiştirme) yöntemini seçmek veya ağın sakin olduğu zamanları beklemek, maliyet ve hız yönetimi sağlar. Yoğun saatlerde ücret miktarını mempool verisine göre ayarlamak, fazladan ödemeyi engeller.
Mempool boyutu, ağın işlem hacmini ve blok alanına olan talebi yansıtır. Mempool boyutu (vMB) aniden şişiyorsa, bu bir spam saldırısının veya ağda bir tıkanıklığın habercisidir. Diğer yandan, sürekli çok düşük kalması düşük adaptasyonun işareti olabilir. Geliştiriciler bu verileri ağı izlemek ve gerekirse parametreleri ayarlamak için kullanırlar.
Mempool izleme olası saldırılar için bir erken uyarı sistemi görevi görebilir. Mempool boyutundaki anormal ve ani artışlar, ağı meşgul etmeye yönelik "flood" saldırılarının işareti olabilir. Analizler spam saldırılarını, ağdaki zafiyetleri kullanma girişimlerini veya piyasa manipülasyonu çabalarını tespit etmeye yardımcı olur.
Blockchain ölçeklendikçe mempool yönetimi de evrilmektedir. Bu evrilmeyle karşımıza çıkan bazı heyecan verici gelişmeler aşağıdaki gibidir:
Gelişmiş Ücret Tahmin Algoritmaları: Makine öğrenmesi kullanarak daha doğru ücret önerileri sunmak.
İşlem Aktarım Ağları (Relay Networks): Gossip protokolüne ek olarak işlemleri daha hızlı yayan özel altyapılar.
Mempool Sıkıştırma Teknikleri: Veri bütünlüğünden ödün vermeden mempool'un bellek yükünü azaltma hedefleri.
Mempool Sharding: Ölçeklenebilirlik için mempool'u daha yönetilebilir küçük parçalara bölmek.
Verimli bir mempool yönetimi, gelecekte saniyede binlerce işlemi (TPS) destekleyecek olan katman çözümlerinin (Layer 2/L2 [maliyet düşürücü, ölçeklenebilirlik sorununu düşüren ikincil protokoller]) de temel taşıdır.
Sonuç
Mempool, blockchain mimarisinin perde arkasındaki en kritik bileşenlerden biridir. Bir işlemi cüzdandan gönderip zincirde görene kadar geçen süreci takip etmeyi sağlar. İşlem hızlarını, ücret piyasasını ve ağ güvenliğini anlamak isteyen her kullanıcı veya geliştirici için mempool'u takip etmek, blockchain’in iç işleyişine hâkim olmak demektir.
Okuma Önerisi
https://mempool.space/tr/
https://gelecegiyazanlar.turkcell.com.tr/blog/akilli-sozlesme-guvenligi
https://gelecegiyazanlar.turkcell.com.tr/egitimler/blockchain-teknolojileri https://developer.bitcoin.org/devguide/transactions.html
https://ethereum.org/developers/docs/transactions/
https://www.investopedia.com/terms/o/orphan-block-cryptocurrency.asp