Blockchain & Kripto Para Eğitmeni
Devrim Danyal
Blockchain & Kripto Para Eğitmeni Devrim Danyal, Fintechtime okurları için kaleme aldı “Blokzincirde İşlem Maliyetli midir? Ethereum İşlem Maliyeti Nedir ve Nasıl Hesaplanır?”
Akıllı sözleşmeler başta olmak üzere, ERC20 tokenlar için en çok kullanılan blockchain Ethereum’dur. Ancak masraflar arttıkça kitlelerin kullanımında sıkıntılar doğurmaya, hatta küçük miktarlarda işlem yapan çoğu kullanıcıyı da kendinden soğutmaya başlıyor. Gelin bu masraflar nasıl artıyor birlikte inceleyelim;
Peki nedir bu Gas Fee? Gazın gerçekte ne olduğu ile başlayalım.
Ethereum blokzinciri üzerinde belirli işlemleri gerçekleştirmek için gereken hesaplama çabası miktarını ölçmek için kullanılan bir birimdir.
İster bir işlem isterse akıllı sözleşme yürütme olsun, her işlem bir miktar gaz gerektirir. İşlemi gerçekleştirmek için, işlemi gerçekleştirecek madencilere doğacak ücret tutarını hesaplamakta kullanılır. Madenciler bir işlem gerçekleştirmek için aldıkları toplam gaz miktarına eşdeğer olan Ether cinsinden işlem masrafı alırlar.
Gaz ismi; İngilizcede Gasoline olan kelimenin kısaltılmışı olan Gas’dır. Kelime anlamından yola çıkılarak, bir arabaya doldurulan yakıt ve arabanın ilerlemesini sağlayan benzine benzer şekilde seçilmiştir.
Ethereum da yaşanan bu süreç, Bitcoin gibi bir kripto para biriminden farklıdır. Nedeni, Bitcoin blokzincirinin, bir işleme “koşullar” eklemenin hiçbir yolu olmaksızın, yalnızca parasal işlemleri kolaylaştırmak için tasarlanmış olmasıdır. Örneğin, birine 1 BTC gönderirseniz, “alıcıya parayı yalnızca belirli görevleri yerine getirirse alacağını bildirmek gibi” işleme bir koşul koyamazsınız. Buna ek olarak, genellikle Ethereum blok zincirinde çalıştırılan akıllı sözleşmeler, bu tür koşulların bir işleme eklenmesine izin verir. Bu nedenle akıllı sözleşmeler, avukat gibi bir aracıya ihtiyaç duymadan şeffaf bir şekilde mülk, hisse veya para alışverişi için kullanışlıdır.
Ethereum ağının işlem sürecini besler ve hem Ethereum blokzincirindeki her işlemin farklı kapsamlarda gerçekleştirmesine izin verir. Ethereum Sanal Makinesinde (EVM) önceden belirlenmiş şekilde ve transfer süreçleriyle ilişkili sabit bir gaz maliyeti vardır.
Örneğin; iki sayı eklemek 3 Gas, bir hesabın bakiyesini elde etmek 400 Gas, bir işlem göndermek 21000 Gas bedeli ödenmesini gerektirir. Akıllı sözleşmeler, (içerik kapsamının artmasıyla) genellikle yüz binlerce gaza bile mal olabilen birden fazla işlemden oluşur. Her bir işlem için gerekli masraf bedellerini aşağıdaki tablodan inceleyebilirsiniz;
Bir yandan da, gaz masrafının neden var olması gerektiğini sistemin işleyişi ve sağlığı açısından anlamak da önemlidir.
Temelde bir nevi turing-complete makinesi olarak çalışmakta olan EVM (Ethereum Virtual Machine), herhangi bir keyfi kodun çalıştırılmasına izin verir. Bu yapı, Ethereum’u bu kadar güçlü kılan ana nedenlerden biridir ancak aynı zamanda onu durma problemine karşı savunmasız hale getirir.
Keyfi bir bilgisayar programının, hatalı olabilecek bir tanımından dolayı çalışmayı bitirip bitirmeyeceğini bilemeyiz. Eğer herhangi bir gaz maliyeti talep edilmezse sonsuza kadar çalışarak sistemi kilitleyebilir. Bir kullanıcı ya kodunda hata yaparak durmayan bir programı çalıştırabilir. İşte bu nedenle işlemin sisteme getireceği yük önceden belirlenerek, bu yük için kodu çalıştırmak isteyen tarafın belirli bir maliyete katlanması talep edilir. Her işlemle ilişkili, bir programın sonsuza kadar çalışmasını ve tüm ağı durma noktasına getirmesini önleyecek, gaz fiyatının yanı sıra, her işlemin aynı veya içeriğine göre daha farklı tutarlarda olması gereken bir gaz limiti de vardır. Şu an için bu limit bir ETH bloğu için 12,5 milyondur.
Her bir işlemi gerçekleştirmeden önce EVM’de belirli bir işlemi başarıyla yürütmek için gerekli olan tahmini hesaplama miktarı yapılır. Yeterli gaz olmadan işlem başlatılması durumunda, gaz istisnası dışında tüm işlem geri alınır. Tüm durum değişiklikleri geri alınsa da, kullanıcı yine de yapılan iş miktarı için işlem ücretini madenciye ödeyecektir. Bunun nedeni; işlem başarısız olsa bile madencinin işlem için bir emek harcamasıdır. Ethereum üzerinde birbirleriyle ilişkili olarak doğru gaz maliyeti bilgisine sahip olmak bu nedenle önem taşır.
“Örnek vermek gerekirse, benzinciye giren bir araba, gideceği yer için harcayacağı toplam benzin miktarından daha az benzin alırsa yarı yolda kalabilir ama benzini aldığı için benzin istasyonuna aldığı benzinin ücretini öder. Gideceği mesafenin ne kadar benzin gerektirdiğini önceden bilmek ve ona göre yeterli benzin almak tamamen sürücünün görevidir”
İlginç olan; gaz maliyetinin tek başına, belirli bir işlemin gerçekleşmesini hesaplamak için ne kadar işlem ücreti ödememiz gerektiğini bize söylememesidir. İşlem ücretini bulabilmemiz için, gaz maliyetini, gaz fiyatı ile çarpmak zorundayız. Başka bir deyişle;
Gas Fee = Gas Maliyeti x Gas Fiyatı
GWEI olarak belirtilen Gaz fiyatı;
1 GWEI = 0,000000001 ETH dir
Popüler cüzdanlardan biri olan metamask gibi ethereum cüzdanları gerekli gaz fiyatlarını tahmin eder ve hızlı, orta ve yavaş işlem onay hızı arasında seçim yapmamıza izin verir. Bu seçim bizim işlemin sonuçlanmasına ne kadar ihtiyacımız olduğu ve bunun karşısında ne kadarlık bir bedel ödeyebileceğimizi sorgulayan şeffaf bir sistemdir.
Örnek olarak Ethereum ağında basit bir ETH transfer işlemi göndermek istediğimizi ve ETH fiyatının 1800$ olduğunu varsayalım.
İşlemimizin bir sonraki blok içinde onaylanma şansına sahip olmak istiyorsak, cüzdanın gaz fiyatının 100 GWEI olarak ayarlandığını düşünelim. Böyle bir işlem için metamask bize ödememiz gereken tutarı 3,78$ olarak hızlı bir şekilde hesaplayarak onayımıza sunar.
Bu işlemin hesabında yukarıda belirttiğimiz formülü izler;
100 GWEI x 21.000 Gas = 2.1Milyon GWEI
1 ETH = 0,000000001 GWEI hesabından;
2.1Milyon GWEI = 0,0021 ETH yapar
1 ETH 1800$ almıştık;
0,0021 ETH x 1800$ = 3,78$ yapar
Gazın yalnızca EVM içinde var olan soyut bir birim olduğunu ve kullanıcının her zaman ETH’deki işlemler için ödeme yaptığını belirtmek gerekir. İşlem masrafını ölçmek için ayrı bir birime sahip olmanın ana nedeni, onu ETH fiyatından ayırmaktır. Ethereum işlem maliyetinin fiyat artışı, çoğu zaman Ethereum ağındaki yoğun işlem talebine ait artışla ilişkilidir.
Aslında işlemlerin maliyetini artıran olgunun tam olarak nasıl neden olduğunu birlikte inceleyelim;
Ethereum blok madencileri, normal bir işlem sürecinde, temelde sabit bir iş birimi yaptıkları için sabit bir gas fee getirisi elde ederler. Ancak işlemler yoğunlaşmaya başladıkça, ilk önce, en yüksek gaz fiyatına sahip işlemleri almaya teşvik edilirler. Madencilik işlemleri, tek bir blokta kaç işlem içerebilecekleriyle de sınırlıdır. Bu, blok başına maksimum gaz limiti ile belirlenir. Bu sınır, 12,5 milyon gaza ayarlanmıştır.
Ethereum ağına gelen tüm işlemler öncelikle Mempool adı verilen işlem havuzuna alınır. Madenciler, kendi çıkarları için, bu havuz içerisinden işlemleri, kendilerine en yüksek gas fee kalacak işlemlerden seçerler.
Peki madenciler, bir Mempool içerisinde bekleyen işlemlerden bir bloğa kaç işlem yazılabilir?
Örnek olarak Mempool’da her biri sadece 21.000 gaza mal olan basit işlemler olduğunu varsayalım.
Basit bir hesapla 12,5 Milyon gaz limiti içerisinde 21.000 gazdan toplamda 595 işlem gerçekleştirebilirler.
12.500.000 Gas / 21.000 Gas = 595 İşlem
Mempool’da bekleyen 1000 işlem varsa, madenci tüm bekleyen işlemlerden, gaz fiyatı en karlı 595 olanı seçmeyi tercih eder. Mevcut ücret modeli basit bir açık artırma mekanizmasına dayanmaktadır ve işlemlerinin madenciler tarafından öne alınmasını isteyen kullanıcılar, öncelikle gelecek ilk blokta yer alabilmek için diğer işlem açanlara göre daha fazla teklif vermek zorundadırlar. İşte bu da sonuç olarak direkt gaz fiyatına yansır. Özellikle birçok kullanıcının acil işlemleri olduğunda ve işlemlerini tamamlamak istedikleri zamanlarda daha yüksektir. Gas fee ile ilgili süreçleri animasyon olarak izlemek isterseniz txstreet.com ve referans olarak finematics takibini öneririm.
İşte ETH2.0 ve EIP1559’da tam bu noktada hayatımıza renk katacaklar…
Ne zaman mı? Siz hazır olduğunuzda 😉
Teknolojiyle Kalın…
dD