Bu rehberimizde, Ethereum gas nedir, Ethereum gas ne işe yarar gibi soruların cevaplarını bulabilirsiniz.
Ethereum Gas, Ethereum ekosisteminin can damarıdır. Gas, belirli işlemleri yürütmek için gereken hesaplama çabasını ölçen bir birimdir. Ethereum’da yer alan her bir operasyon, basit bir işlem veya akıllı bir sözleşme bir miktar gas’a ihtiyaç duyar. Gas, bir işlemi yerine getirmek için ağa ödenmesi gereken ücretlerin miktarını hesaplamak için kullanılır.
Bu rehberde gas’ın nasıl çalıştığını anlamaya çalışacağız. Fakat bunu yapmadan önce öğrenmememiz gereken birkaç kavram var. Şimdi Ethereum Gas’ın derinliklerine inelim.
Rehber İçeriği
Ethereum Gas Nedir?
Bitcoin, Ethereum ve Akıllı Sözleşmelerin Sıçraması
Bitcoin oluşturuldu, çünkü herkes aynı soruları soruyordu. Bu sorular tam olarak şu şekildeydi;
- Aracı olmadan iki kişi arasında transfer edilebilecek bir para birimi oluşturmak mümkün mü?
- Blockchain gibi bir şey üzerinde çalışabilecek merkezi olmayan bir para oluşturmak mümkün olacak mı?
Satoshi Nakamoto, tüm bu soruları Bitcoin’i oluştururken yanıtladı. İşin sonunda ise bir kişiden diğerine para transfer edebilen merkezi olmayan bir para sistemi vardı.
Bununla birlikte, tüm birinci nesil blok zincirleriyle ilgili bir problem olan Bitcoin ile ilgili bir problem vardı. Sadece parasal işlemlere izin veriliyordu ve bu işlemlere koşul eklemenin bir yolu yoktu.
Ali, Ömer’e 5 BTC’yi gönderebilir, ancak bu işlemlerde şart koşamazdı. Örneğin, Ömer’e parayı ancak belirli görevleri yerine getirmesi durumunda alacağını söyleyemezdi. Bu koşullar aşırı karmaşık bir betimleme gerektiriyordu. Süreci daha sorunsuz hale getirmek için bir şey gerekiyordu.
Ve bu şey tam olarak “Akıllı Sözleşme” olarak isimlendiriliyordu.
Akıllı Sözleşme Nedir?
Akıllı sözleşmeler, aracıların hizmetlerinden kaçınırken para, mülk, hisse veya herhangi bir değeri şeffaf ve anlaşılmaz bir şekilde değiş tokuş yapmalarına yardımcı olur.
Vitalik Buterin’in başını çektiği Ethereum bunun tipik bir örneği. Blockchain’nin basit bir ödeme mekanizmasından çok daha anlamlı ve güçlü bir şeye nasıl dönüşebileceğini tüm dünyaya gösterdi.
Akıllı sözleşmeler tümüyle otomatik çalışırlar. Bazı şartlar yerine getirildiğinde, kodunda yazılı özel talimatlar ile işlemler kendi kendine yürütülür.
Akıllı sözleşmeler, işlerin Ethereum ekosisteminde nasıl yapıldığıdır. Birisi Ethereum‘da özel bir görev almak istediğinde, bir veya daha fazla kişiyle akıllı bir sözleşme yapar.
Akıllı sözleşmeler, IF-THIS-THEN-logic mantığı olan IFTTT mantığına dayanan “katılık” programlama dili kullanılarak yazılmış bir dizi talimattır. Temel olarak, eğer ilk komut kümesi gerçekleştirilirse bir sonraki işlevi yerine getirilir ve bundan sonra bir sonraki işlem yerine getirilir ve sözleşmenin sonuna ulaşana kadar bu işlemler tekrarlamaya devam eder.
Bunu anlamanın en iyi yolu bir otomatı hayal etmek. Aldığınız her adım, kendini uygulamak için bir sonraki adım için bir tetikleyici gibi davranır. Domino etkisi gibi bir şey. O halde, otomat ile etkileşimde bulunacağınız adımları inceleyelim:
- Otomata biraz para verirsin.
- İstediğiniz öğeye karşılık gelen düğmeye basarsın.
- Öğe size verilir ve alırsınız.
Şimdi tüm bu adımlara bakın ve düşünün. Bir öncekinin yapılmaması durumunda sonraki adımın gerçekleşmesi mümkün mü? Her biri bir önceki adımla ilgili. Düşünebilmek için bir faktör daha var ve akıllı sözleşmelerin ayrılmaz bir parçasıdır. Gördüğünüz gibi, otomatla olan tüm etkileşiminizde siz (istekte bulunan) sadece otomatla (sağlayıcı) ile çalışıyorsunuz. kesinlikle üçüncü taraf veya taraflar yok.
Yani, şimdi bu işlem Ethereum ağında olsaydı nasıl olurdu? Ethereum ağındaki bir otomattan bir şeyler aldığınızı varsayalım, bu aşamalar gerçekleşecek?
- Otomata bir miktar para verdiniz. Bu, Ethereum ağındaki tüm düğümler tarafından kaydedildi ve işlem defteri güncellendi.
- İstediğiniz öğeye karşılık gelen düğmeye bastınız ve Ethereum ağı ve defterinde güncellenen kayıtları harekete geçirdiniz.
- Öğe size verildi ve siz onu aldığınız ve bu tüm düğümler ve defterler tarafından işlem kaydedildi.
Akıllı sözleşmeler aracılığıyla yaptığınız her işlem, ağ tarafından kaydedilecek ve güncellenecektir. Bunun anlamı, sözleşmeye katılan herkesi eylemlerinden sorumlu tutmasıdır. Tüm eylemlerin ağın tamamında görünmesini sağlayarak insan kaynaklı kötülükler ortadan kaldırılıyor.
Ethereum Sanal Makinesi Nedir?
Ethereum Sanal Makinesi’nin (EVM) ne olduğunu anlamadan önce neden bir “Sanal Makine”nin gerekli olduğunu anlamalıyız. O zaman akıllı sözleşmelere geri dönelim.
Akıllı sözleşmemizde istediğimiz özellikler nelerdir? Bir blockchain üzerinde çalışan herhangi bir şeyin değişmez olması ve bütünlüğünden ödün vermeden birden çok düğümden geçebilmesi gerekir. Sonuç olarak, akıllı sözleşme işlevselliği üç şey olmalı:
- Deterministik
- Sınırlanabilir
- Yalıtılmışlık
1) Deterministik
Her defasında belirli bir girdiye aynı çıktının verilmesi program tarafından verilir. Örneğin, 3 + 1 = 4 ise 3 + 1 DAİMA 4 olacaktır. Yani bir program aynı çıktıyı farklı bilgisayarlardaki aynı girdi grubuna verdiğinde, program deterministik olarak adlandırılır.
Bir programın deterministik olmayan bir şekilde hareket edebileceği çeşitli anlar vardır:
- Belirsiz olmayan sistem işlevlerini çağırma: Bir programcı kendi programında belirsiz olmayan bir işlevi çağırdığında.
- Belirsiz olmayan veri kaynakları: Bir program çalışma zamanı sırasında veri alırsa ve bu veri kaynağı belirsiz değilse, program belirsiz hale gelir. Örneğin, belirli bir sorgunun ilk 10 Google aramalarını elde eden bir program olduğunu varsayalım. Liste değişmeye devam edebilir.
- Dinamik Çağrılar: Bir program ikinci programı çağırdığında dinamik çağrılır. Çağrı hedefi sadece yürütme sırasında belirlendiğinden doğası gereği belirsizdir.
2) Sınırlanabilir
Matematiksel mantıkta “durma problemi” denen bir hata vardır. Temel olarak belirli bir programın işlevini bir süre içinde yürütüp yürütemeyeceğini bilmemek bir yetersizliktir. 1936’da Alan Turing, Cantor’un Diyagonal Problemini kullanarak belirli bir programın bir zaman sınırı içinde bitirip bitiremeyeceğini bilmenin bir yolu olmadığı sonucuna vardı.
Açıkça, akıllı sözleşmelerle ilgili bir problemdir bu, çünkü tanım gereği sözleşmeler belirli bir süre içinde sona erdirilebilir olmalıdır. Sözleşmeyi harici olarak “öldürmek” ve kaynakları tahliye edecek sonsuz bir döngüye girmemesinin bir yolu olduğundan emin olmak için bazı önlemler alınır:
- Turing Eksikliği: Turing Eksik bir blockchain sınırlı işlevselliğe sahip olacak ve atlayış ve / veya döngüler yapamayacak. Böylece sonsuz bir döngüye girilemeyecek.
- Basamak ve Ücret Ölçer: Bir program, aldığı “adım” sayısını yani yürütmekte olduğu talimatların sayısını izleyebilir ve belirli bir adım sayımı gerçekleştirdikten sonra sona erebilir. Başka bir yöntem Ücret ölçerdir. Burada sözleşmeler ön ödemeli bir ücretle yapılır. Her talimat yürütme belirli bir ücret gerektirir. Harcanan ücret ön ödemeli ücreti aşarsa sözleşme feshedilir.
- Zamanlayıcı: Burada önceden belirlenmiş bir zamanlayıcı tutulur. Sözleşme yürütme zaman sınırını aşarsa harici olarak iptal edilir.
3) Yalıtılmışlık
Bir Blockchain’de herkes ve herkes akıllı bir sözleşme yükleyebilir. Ancak, herhangi bir nedenle sözleşmeler bilerek ve bilmeden virüs ve kod hataları içerebilir.
Sözleşme izole edilmezse, bu tüm sistemi engelleyebilir. Bu nedenle tüm ekosistemi herhangi bir olumsuz etkiden korumak için bir sözleşmenin bir kum havuzunda izole edilmesini sağlamak çok önemlidir.
Sanal Makineler, akıllı sözleşmeler için daha iyi deterministik, sınırlanabilir ve yalıtılmış bir ortam sağlar.
Ethereum Gas Nedir?
Giriş bölümünde açıklandığı gibi, gas belirli operasyonları yürütmek için çabayı ölçen bir hesaplama birimidir.
EVM’de çalışan akıllı sözleşmelerin çoğu Solidity kullanılarak kodlanmıştır. Solidity’deki her kod satırı, yürütülecek belirli bir miktar gas gerektirir.
Aşağıdaki görüntü Ethereum Yellowpaper’dan alınmıştır ve özel talimatların gas maliyeti için kabaca bir fikir vermek için kullanılabilir. Bu tabloya göre, her işlem için en az 21.000 Gas gerekiyor:
Gas’ın Ethereum’da nasıl çalıştığının daha iyi anlamak için bir analoji kullanalım.
Bir yolculuğa çıktığınızı varsayılalım. Bunu yapmadan önce şu adımları gerçekleştirmelisiniz:
- Benzin istasyonuna gidip arabanızda ne kadar benzin doldurmak istediğinizi belirtirsiniz.
- Benzininiz arabanıza doldurulur.
- Benzin istasyonuna benzin için borçlu olduğu parayı ödersiniz.
Şimdi bu analojinin Ethereum ile ne alakası olduğuna geçelim. Arabayı kullanmak bir akıllı sözleşmenin bir işlevini yürütmek gibi, yürütmek istenilen işlemdir.
Benzin = Gas’dır.
Benzin istasyonu madencidir.
Benzin için ödenen para belirlenen ücretlerdir.
Kullanıcıların Ethereum’da yürütmek istediği tüm işlemler için aşağıdaki Gas sağlanmalıdır:
- Verileri korumak için içsel Gas.
- Tüm hesaplamayı kapsaması için.
Kabaca işin özü budur. Bu Gas sistemine neden sahip olduğumuzu merak ediyor olabilirsiniz. Şimdi gelin bunun cevaplamaya çalışalım.
Neden Bu Gas Sistemine Sahibiz?
Bu sorunun cevabı oldukça basit; teşvik.
İşbirliğinin bir kanıtı olan bir sistem gibi, Ethereum’da madencilerinin işçiliğine büyük ölçüde bağımlıdır. Daha fazla madenci, daha fazla karmaşa, daha fazla güvenlik ve daha hızlı sistem demektir.
Daha fazla madenciyi sisteme çekmek, sistemi madenciler için mümkün olduğunda karlı ve cazip hale getirmek gerekiyor. Ethereum’da, madencilerin para kazanabilmesinin iki yolu vardır:
- Blok madenciliği yaparak ve blok ödülleri kazanmak ve
- Madencilik bloklarının geçici diktatörleri haline gelmek.
Madenciler, bloklarının içinde işlem yapmaktan sorumludur. Bunu yapmak, akıllı sözleşmeleri onaylamak için hesaplama güçlerini kullanmaları gerekir. Gas sistemi, bunun için belirli bir ücret talep etmelerini sağlar.
Bu ücret, madenci ücreti olarak bilinir ve ekosistemde aktif olarak yer almak için onları teşvik etmeye yardımcı olur. Peki, ne kadar ücret talep edebilirler? Bunu hesaplayabilmemiz için, Gas’ın nasıl ölçüldüğünü anlayalım.
Gas sadece gas birimleriyle ölçülür. Ethereum ağına gönderilen bir işlem kaç EVM talimatının yürütülmesi gerektiğine bağlı olarak bir miktar Gas’a (örneğin 100 gas) mal olur.
Gas’ı Ethereum’a Nasıl Dönüştüreceğiz?
Sabit bir dönüşüm fiyatı yoktur. Beğendikleri herhangi bir gas fiyatını belirtmek bir işlemin göndericisine kalmıştır. Diğer tarafta, istedikleri işlemleri doğrulamak madencinin sorumluluğundadır. Ortalama gas fiyatı tipik olarak yaklaşık 20 Gwei (ya da 0.00000002 ETH) düzeyindedir, ancak bir sonraki sırada yer almak için yarışan ve daha fazla işlem olması ile yüksek ağ trafiği zamanlarında bu ücret artabilir.
Ethereum Gas Limiti Nedir?
Ethereum’da bir işlem yapmak için işlemin göndereni ağa göndermeden önce bir gas limiti belirtmelidir. Gas limiti, gönderenin bu işlem için ödemek istediği maksimum gas miktarıdır. Bir gas limiti belirlerken aşağıdaki hususlar dikkate alınmalıdır:
- Farklı operasyonlar farklı gas maliyetlerine sahip olacaktır (daha önce de gösterildiği gibi).
- Madenciler Gas’ın tükendiği an işlemlerin yürütülmesini durduracaklardır.
- Herhangi bir ek gas kalması durumunda hemen işletim jeneratörüne iade edilecektir.
Bunu varsayımsal bir senaryoda çalışırken görelim. Farz edelim iki sayı ekliyoruz ve bunun için sözleşme aşağıdaki işlemleri yapmalıdır:
- 10 değişken saklamak. Diyelim ki bu işlem 45 Gas’a mal oluyor.
- İki değişken ekledikten sonra bu maliyetin 10 gas olduğunu varsayalım.
- Sonuçta yine de 45 Gas’a mal oluyor.
- Gönderenin 120 gas sınırı koyduğunu varsayalım.
- Madencinin hesaplama için kullandığı toplam gas (45 + 10 + 45) = 100 Gas’dır.
- Madenciye borçlanan ücret 1 GG maliyeti 20 Gwei olduğu varsayılırsa, (100*20 Gwei) = 0.000002 ETH’dir.
- 120 – 100 = 20 gas.
- Kullanılmayan 20 gas göndericiye geri gönderilir (20*20 Gwei) = 0.0000004 ETH.
Öyleyse, şunu söylemeliyim ki kişinin düşünmesi gereken iki senaryo var:
- Belirtilen gas limiti çok düşük.
- Belirtilen gas limiti çok yüksek.
Senaryo 1: Gas Limiti Çok Düşük
Eğer bir işlem için gas tükenirse o zaman gerçekte hiçbir şey olmamış gibi orijinal durumuna geri döner, ancak işletme jeneratörü madencilere hesaplama maliyetlerini ödemek zorundadır ve operasyon blokaja eklenir.
Yolculuğumuza benzetmeye devam edecek olursak, arabanızda yeterince benzin yoksa o zaman hedefinize ulaşamayacaksınız, ancak benzin istasyonuna yakıtın parasını ödediniz.
Bunun, varsayımsal akıllı sözleşmemizde nasıl çalıştığını görelim. Adımlar şunlardı:
- 10 değişken saklamak. Diyelim ki bu işlem 45 Gas’a mal oluyor.
- İki değişken ekledikten sonra bu maliyetin 10 gas olduğunu varsayalım.
- Sonuçta yine de 45 Gas’a mal oluyor.
Ancak, bu kez gönderen 90 Gas sınırını ayarladı. Şimdi, işlemin gerçekleşmesi için gerekli olan Gas’ın miktarının 100 gas olduğunu biliyoruz, ancak sadece 90 gas limiti belirledik. Bu senaryoda, madenci 90 gas değerinde hesaplama yapacak ve 90 Gas’ın gönderici ücretini (90*20 Gwei) = 0.0000018 ETH olacak şekilde hesaplayacaktır.
Ayrıca, sözleşme orijinal durumuna geri döner ve işlem blok zincirine dahil edilir.
Senaryo 2: Gas Limiti Çok Yüksek
Peki ya Gas limitini çok yükseğe ayarlarsak? Bunu yapmak mantıklı olur mu? Limitin yüksek olması kulağa hoş geliyor olabilir, ancak gerçekte işe yaramıyor.
Madenciler, 6.700.000 Gas olduğunu düşündüğümüz bir blok gas limitiyle sınırlıdır. Basit bir işlem (ETH’nin basit transferi) en az 21.000 Gas ihtiyacına sahiptir. Madenciler, yalnızca blok Gas’ı limitine eşit veya daha az miktarda toplanan işlemleri gerçekleştirebilir.
Bir A işleminin (basit bir ETH transferi yapılsın) olduğunu ve 21.000 Gas limiti ile B ve C (aynı zamanda basit ETH transferleri) olmak üzere 42.000 Gas limiti olduğunu varsayalım. Bir madencinin bloklarına girmesi daha mantıklı olacak mı?
- İşlem A’ya girecek ve çok fazla kullanılmayan Gas’ın geri iadesini yapacak mı?
- Yoksa B ve C işlemlerini gerçekleştirecekler ve geri bir şey kalmayacak mı?
- İkinci nokta, onlara ekonomik açıdan daha mantıklı mı geliyor?
Bu, şişirilmiş bir Gas limitine sahip olmanın neden mantıklı bir yol olmadığının cevabıdır. İşleminiz için gereken Gas miktarından biraz daha (aşırı değil) yüksek bir Gas limiti ayarlamak daha mantıklıdır.
Yüksek ve Düşük Gas vs Yüksek ve Düşük Ücret
Şimdiye kadar, gas ve Ethereum’un aynı şeyler olmadığı açık olmalı. Gas, gerekli olan hesaplama gücünün miktarıdır; Ethereum ise bu gas için ödeme yapmak için kullanılan para birimidir.
Şimdiye kadar elde ettiğimiz her şeyin bilgisi ile belirli gas ve ücret senaryolarının üstünden geçelim. Eğer bir operasyonda DÜŞÜK gas varsa madenciler bile hesaplama işlemini tamamlamak için yeterli Gas’a sahip olmadığından onu almaz.
Eğer bir işlem DÜŞÜK ücrete sahipse o zaman bunu karşılayacak kadar gas olabilir, ancak madenciler, almayı düşünmek için küçük parçalarla uğraşmayacaktır çünkü düşük ücrete sahip bir işlem onlar için ekonomik açıdan cazip değildir.
Bir operasyonda YÜKSEK gas varsa, bu işlem yüksek bir gas sınırı ile şişirilmiş olduğu anlamına gelir ve bu nedenle madenciler onu almayacaktır.
Eğer bir operasyon YÜKSEK ücrete sahipse, madenciler bundan çok para kazanacaklarını bilirler ve anında toplarlar.
Bu makale yatırım tavsiyesi veya önerisi içermemektedir. Her yatırım ve alım satım hareketi risk içerir ve okuyucular karar verirken kendi araştırmalarını yapmalıdır.