WATS Wallet logoWATS Wallet
Teknik6 dk okuma

Mempool Nedir? Her İşlemin Geçtiği Bekleme Odası

Mempool, imzalanmış işlemlerin bir blok üreticisi tarafından alınmadan önce beklediği, node düzeyinde tutulan bekleme alanıdır. Beklemede kalmanın, değiştirmenin ve tahliyenin gerçekte nasıl işlediğini, halka açık havuzun front-running botlarına neden hediye olduğunu ve Solana ile ERC-4337'nin bunu neden farklı yaptığını anlatıyoruz.

Mempool (“memory pool”ün kısaltması), bir blok zinciri node'unun imzalanmış ve ağa yayınlanmış ama henüz bir bloğa dahil edilmemiş işlemleri tuttuğu bekleme alanıdır. Tek ve küresel bir mempool yoktur: her node kendi kopyasını tutar ve komşularına dedikodu (gossip) yoluyla aktarır; dolayısıyla “beklemede”, işleminizin iyi bağlantılı node'ların çoğunun havuzunda alınmayı beklediği anlamına gelir. Blok üreticileri o havuzdan ücret önceliğine göre seçim yapar; düşük ücretli bir işlemin saatlerce bekleyebilmesinin, aynı nonce'ı taşıyan daha yüksek ücretli bir sürümle değiştirilebilmesinin ya da zincir üstünde hiç başarısız olmadan tahliye edilip unutulabilmesinin nedeni budur. Halka açık havuzu herkes okuyabilir; bu yüzden bekleyen takaslar onaylanmadan önce arayıcı (searcher) botlara görünür. Her zincir böyle çalışmaz — Solana işlemleri doğrudan sıradaki blok üreticilerine akıtır; EVM zincirlerinde ise WATS gibi ERC-4337 cüzdanları, UserOperation'ları bundler'ların sıradan işlemlere paketlediği ayrı bir alternatif mempool'a gönderir.

İmza ile blok arasında

Gönder'e bastığınızda işleminiz blok zincirine gitmez. Blok zincirine belki girmek üzere bir kuyruğa girer. Cüzdanınız imzalı işlemi bir node'a yayınlar; node işlemin biçimsel olarak düzgün, doğru imzalanmış, makul bir nonce taşıyan ve karşılığı bulunan bir işlem olduğunu doğrular, ardından işlem mempool'a girer — bir blok üreticisinin almasını bekleyen işlemler havuzuna. Cüzdanınızın “beklemede” gösterdiği her şey bu bekleme odasında yaşar ve işlemlerin yaptığı kafa karıştırıcı şeylerin çoğu — takılmak, kaybolmak, değiştirilmek — blok zinciri davranışı değil, mempool davranışıdır.

Mempool gerçekte nedir

İlk sürpriz: tek ve küresel bir mempool yoktur. Her node bekleyen işlemlerin kendi havuzunu tutar ve bunları komşularına dedikodu (gossip) yoluyla aktarır; ağ, büyük ölçüde örtüşen ama asla birebir aynı olmayan binlerce kopya barındırır. “Mempool'da” olan bir işlem aslında “şu ana kadar iyi bağlantılı node'ların çoğunun mempool'unda” demektir. Node'lar ayrıca yerel kurallar uygular — bir işlemi kabul etmek için asgari ücret, tek bir hesabın tutabileceği bekleyen işlem sayısına üst sınır ve havuz dolduğunda en ucuz kayıtların tahliyesi — çok düşük ücretli bir işlemin zincir üstünde hiç geri dönmeden ağdan sessizce yok olabilmesinin nedeni budur. Hiçbir şey harcanmadı, çünkü hiçbir şey çalıştırılmadı.

İşlemler nasıl çıkar: ücret açık artırması

Blok alanı kıttır ve mempool, onun piyasasının temizlendiği yerdir. Blok üreticileri sığdırabildikleri en kârlı bekleyen işlem kümesini derler; pratikte bu, bekleme odasından kimin önce çıkacağına ücret önceliğinin karar vermesi demektir. EVM zincirlerinde o öncelik, EIP-1559 kapsamında taban ücretin üzerine eklediğiniz bahşiştir: güncel fiyatı öderseniz bir iki blok içinde çıkarsınız; düşük teklif verirseniz talep soğuyana ya da işleminiz tahliye edilene dek beklersiniz. Bir sonucu insanlar sürekli gözden kaçırır — EVM hesapları kesin nonce sırasıyla çalıştığından, takılı kalmış tek bir ucuz işlem, ne kadar cömert fiyatlandırılmış olurlarsa olsunlar sonradan gönderdiğiniz bütün işlemleri bloke eder.

Beklemede, değiştirildi, düştü

Bekleyen bir işlem henüz tarih olmadığından, tek bir belirli biçimde hâlâ düzenlenebilir: değiştirilerek. Aynı nonce ve kayda değer ölçüde daha yüksek bir ücretle yeni bir işlem yayınlamak, node'lara eskisini düşürmelerini söyler — takılı bir gönderimin standart ilacı; değiştiren işlem kendi adresinize yapılan sıfır değerli bir transfer olduğunda ise standart iptal yöntemi. Ne onaylanan ne değiştirilen işlemler sonunda düşer: havuzlardan tahliye edilir ve hiç gönderilmemiş gibi unutulur. Hiçbir şey kaybolmadı, çünkü fonlar hiç hareket etmedi — ama tüm bunların tipik bir cüzdan arayüzünde görünmemesi, “işlemim nerede?” paniklerinin çoğunun kaynağıdır.

Fazlasıyla halka açık bir bekleme odası

Halka açık mempool'daki her şey, onaylanmadan önce herkese görünür — bekleyen takasları ayrıştırıp gördükleri üzerine harekete geçen botlar dahil. Bu görünürlük, front-running'in ve slippage açıklamamızda ele aldığımız sandviç işlemlerinin ham maddesidir: bekleyen bir işlem, tam olarak ne almak üzere olduğunuzu ve kabul ettiğiniz en kötü fiyatı ilan eder. Sıkı bir slippage toleransının gerçek bir savunma olmasının nedeni budur — bir sandviçin çekebileceği değeri sınırlar. EVM trafiğinin giderek büyüyen bir bölümünün halka açık havuzu atlayıp doğrudan blok kurucularına giden özel gönderim kanallarından geçmesinin nedeni de budur: şeffaflığı korumayla takas eden ve bu sırada yeni bir güven varsayımı üstlenen bir tercih.

Her zincirde mempool yok

Dedikoduyla yayılan mempool bir Ethereum-tarzı tasarım tercihidir, doğa kanunu değil. Solana onu büyük ölçüde atlar: lider takvimi önceden bilindiğinden istemciler işlemleri küresel bir havuza akıtmak yerine doğrudan sıradaki blok üreticilerine iletir — bekleme hallerinin bu kadar kısa ömürlü hissettirmesinin bir nedeni. TON, mesajları tek bir ortak kuyruk yerine kendi parçalı yönlendirmesinden geçirir. Ve ERC-4337, EVM'in kendisine paralel bir şerit ekler: UserOperation'lar kendilerine ait alternatif bir mempool'da bekler; bundler'lar onları oradan alıp normal bir işleme sarar — bundler ve UserOperation açıklamamızda anlattığımız gibi. Aynı bekleme odası mantığı, farklı bir oda.

Bir cüzdan mempool ile nerede buluşur

Mempool, WATS'ın sizin yerinize hallettiği katmandır; bu yüzden onu nadiren düşünmeniz gerekir: WATS sağlıklı node'lar üzerinden yayın yapar ve bekleyen durumu Ethereum, Arbitrum, Optimism, Base, Polygon, BNB Chain, Solana ve TON genelinde — üç farklı bekleme odası olan üç ekosistem — tek bir arayüzün arkasında izler; böylece “beklemede”, hangi bekleme odasında takılı kalırsa kalsın sizin için aynı şeyi ifade eder. EVM zincirlerinde WATS eylemleri, ERC-4337 UserOperation'ları olarak alternatif mempool'dan geçer; orada bir paymaster, blok üreticisinin talep ettiği yerel gas'i öderken siz tek bir tokenle, ATS ile ödersiniz. Bu bir indirim değildir — ağ güncel ücretinin tamamını almayı sürdürür ve ATS bedeliniz onu takip eder — yalnızca ödemeyi hangi tokenin yaptığı değişir. ATS bir LayerZero OFT'sidir; sekiz ayrı yerel coin bakiyesi yerine tek bakiye desteklenen her zinciri kapsar ve ücret olarak toplanan ATS yakılır, arzı 100.000.000'dan 30.000.000 tabanına doğru iter. WATS, ERC-4337 ile OFT tek-token ücretlerini bu yakımla birleştiren ilk ve tek cüzdandır ve bunların hiçbiri saklamaya dokunmaz: WATS tamamen non-custodial'dır, anahtarlarınızı siz tutarsınız, WATS asla bir anahtar tutmaz.

Yani pratik çıkarım dar. Mempool'u ortadan kaldıramazsınız ve kaldırmak da istememelisiniz — işleminizin bloğa girmesini sağlayan açık artırma odur. Kaldırabileceğiniz şey, açık artırmayla hiç ilgisi olmayan arıza biçimidir: yanlış zincirde, teklif verecek yerel coininiz olmadan oturmak. Sürekli karşılaştığınız “beklemede” bu sürümse, çözüm WATS Hot Wallet'ta tek bir ATS bakiyesi bulundurmaktır; mekanik ATS ücret sayfasında ayrıntısıyla anlatılıyor.

Sıkça sorulan sorular

Tek cümleyle mempool nedir?

Mempool, bir blok zinciri node'unun; ağa yayınlanmış ama henüz bir bloğa dahil edilmemiş geçerli ve imzalı işlemleri tuttuğu bekleme alanıdır. Blok üreticileri genelde ücret önceliğine göre buradan seçim yapar; dolayısıyla mempool hem bir kuyruk hem de blok alanı için bir açık artırmadır. Cüzdanınızın “beklemede” diye etiketlediği her şey orada bekliyordur.

Tek bir küresel mempool var mı?

Hayır. Her node bekleyen işlemlerin kendi havuzunu tutar ve bir dedikodu ağı üzerinden komşularıyla paylaşır; var olan şey tek bir ana kuyruk değil, binlerce örtüşen yerel görünümdür. Explorer'ların bekleyen bir işlem hakkında bazen anlaşamamasının ve çok düşük ücretli bir işlemin kimi havuzlarda bulunup kimilerinden tahliye edilip sonunda hepsince unutulabilmesinin nedeni budur.

İşlemim neden beklemede takılı kaldı ve iptal edebilir miyim?

Neredeyse her zaman, ücreti güncel fiyatın altında olduğu için mempool'da bekliyordur — talep soğursa onaylanır, yoksa süresiz bekler. Bekleyen bir işlem değiştirilebildiğinden çözüm, aynı nonce ve daha yüksek ücretle yeniden yayınlamaktır: ya aynı işlemi (hızlandırmak için) ya da kendinize sıfır değerli bir gönderim (iptal etmek için). Cüzdanlar bunları genellikle hızlandır ve iptal düğmeleri olarak sunar. EVM zincirlerinde bunun önemi tek bir işlemi aşar, çünkü takılı bir nonce o hesaptan gönderilen sonraki bütün işlemleri bloke eder.

Başkaları işlemimi onaylanmadan önce görebilir mi?

Halka açık mempool'da evet — bekleyen işlemler tamamen görünürdür ve botlar onları aktif biçimde ayrıştırır; front-running'i ve sandviç saldırılarını mümkün kılan budur. Slippage toleransını sıkı tutmak bu botların bir takastan çekebileceğini sınırlar; EVM'de ise trafiğin giderek büyüyen bir bölümü, o şeffaflığı korumayla takas ederek halka açık havuzu tamamen atlayan özel gönderim kanallarını kullanıyor.

ERC-4337 UserOperation'ları aynı mempool'da mı bekler?

Hayır. UserOperation'lar işlem değildir; bu yüzden ayrı bir alternatif mempool'dan geçerler. Bundler'lar onları orada toplayıp normal bir işlemin içine sarar ve o işlem sıradan mempool'a girer. WATS, EVM zincirlerinde bu yolu kullanır: UserOperation, yerel gas'i ödeyen bir paymaster taşır — bir WATS kullanıcısının ağ ücretlerini her zincirin yerel coini yerine ATS ile ödeyebilmesinin yolu budur.

Bir işlemi mempool'dan çıkarmak için her zincirin yerel coinine ihtiyacım var mı?

WATS'ta hayır. WATS Hot Wallet ağ ücretlerini Ethereum, Arbitrum, Optimism, Base, Polygon, BNB Chain, Solana ve TON genelinde tek bir tokenle, ATS ile tahsil eder; bir zincirde ETH'niz, bir başkasında BNB'niz yok diye yayın yapmanız asla engellenmez. EVM'de bu, blok üreticisinin talep ettiği yerel gas'i bir paymaster'ın ödediği ERC-4337 üzerinden çalışır; ATS bir LayerZero OFT olduğundan tek bir bakiye desteklenen her zinciri kapsar. Bu bir indirim değildir — ağ ücretinin tamamını almaya devam eder; ATS yalnızca o ücreti hangi tokenin ödediğini değiştirir.