Ether (ETH), which is the second largest cryptocurrency in terms of market capitalization, is popular among cryptocurrency investors because of its native ETH token. However, its native Solidity programming language and Ethereum Virtual Machine (EVM) are instrumental in the adulation it receives from the developer community. In fact, the Ethereum blockchain continues to attract decentralized application (DApp) developers due to its flexibility, the vast range of developer tools available and the platform’s large user base.

Piyasa değeri açısından en büyük ikinci kripto para birimi olan Ether (ETH), yerel ETH token'ı nedeniyle kripto para yatırımcıları arasında popülerdir. Bununla birlikte, yerel Solidity programlama dili ve Ethereum Virtual Machine (EVM), geliştirici topluluğundan aldığı övgüde etkilidir. Aslında, Ethereum blokzinciri esnekliği, mevcut çok çeşitli geliştirici araçları ve platformun geniş kullanıcı tabanı nedeniyle merkezi olmayan uygulama (DApp) geliştiricilerini çekmeye devam ediyor.

Blok zincirinin mimarisinin çekirdeğini oluşturan EVM, uygulama kodunu veya akıllı sözleşmeleri yürüten ve Ethereum ağının üstünde çalışan bir çalışma zamanı ortamı sağlayan programdır. Dahası, EVM Turing-complete'dir ve bu nedenle herhangi bir programlama dilinde kodlanmış herhangi bir programı çalıştırabilir, böylece geliştiricilerin gelişen Web3 alanı için kolayca özel akıllı sözleşmeler ve DApp'ler oluşturmasına olanak tanır. 

Bu önemli işlevlere ek olarak, EVM'nin ağdaki tüm düğümlere erişimi vardır, akıllı sözleşmelerin yürütülmesini sağlar ve Ethereum blok zincirindeki tüm işlemleri etkin bir şekilde gerçekleştirir, bu da onu bugün var olan en güçlü sanal makinelerden biri haline getirir.

Ethereum Virtual Machine (EVM) nedir ve nasıl çalışır?

2013 yılında programcı Vitalik Buterin tarafından kavramsallaştırılan Ethereum ağı, DApp geliştiricileri için tercih edilen blok zinciri olarak olağanüstü başarısını, Ethereum'daki görev süresi boyunca Gavin Wood tarafından tasarlanan Ethereum Virtual Machine'ne (EVM) borçludur. C++ dilinde yazılan ve LLVM Project derleyicisini kullanan EVM, sürekli olarak çalışan ve değişmez işlemleri Ethereum blok zincirindeki her bir bloğun durumunu belirleyen özel bir durum makinesidir. 

EVM yalnızca düğümlerin Ethereum blok zinciri tarafından tutulan dağıtılmış deftere ne yapıp yapamayacağını yönetmekle kalmaz, aynı zamanda bloktan bloğa durum değiştirmenin belirli kurallarını da tanımlar. İkinci işlevsellik, Ethereum'un tanınmaya başladığı akıllı sözleşme işlevselliğini mümkün kılan şeydir.

Bir Ethereum Virtual Machinenin ne yaptığını anlamak için, Ethereum ağının sorunsuz çalışmasını sağlamada hizmet ettiği farklı işlevlerin her birine bakmak gerekir. EVM, aldığı her girdi için, doğası gereği deterministik olan ve en basit anlamda matematiksel bir işlevi izleyen bir çıktı üretir. 

Geçici değerleri bir itme yığınına iten ve bir itme yığınından çıkaran bir yığın makinesi gibi çalışan EVM, her biri 256 bitlik bir kelime olan 1024 öğelik bir derinliğe sahiptir. Ayrıca, Ethereum blok zincirindeki iki işlem arasında değişen bir bayt dizisi biçiminde geçici bir bellek tutar. Derlenen akıllı sözleşme kodları EVM tarafından 140 standart işlem kodundan oluşan bir koleksiyon şeklinde yürütülürken, blok zincirine özgü diğer yığın işlemleri de EVM tarafından gerçekleştirilir.

Schematics of an Ethereum Virtual Machine

Bu nedenle, EVM, herhangi bir işlemin işlenmesi sırasında doğası gereği değişken olan bir makine durumuna ve Ethereum blok zincirinde tutulan farklı hesaplara ilişkin bilgileri içeren küresel veya dünya durumuna sahiptir. Tüm eylemler, 2015 yılında Ethereum ağının başlatılmasından bu yana kendi içinde birkaç yinelemeden geçen ve şu anda kullanımda olan EVM'nin farklı uygulamalarının varlığına yol açan EVM kodu tarafından yönetilmektedir.

Aslında EVM, binlerce Ethereum düğümü ile yürütme kodu arasında bir soyutlama seviyesini korumaktan sorumludur ve istemcilere veya düğümlere birçok ayrıntıyı ifşa etmeden tutarlı sonuçlar veren bir işlev olarak hareket eder.

Ethereum Virtual Machine'in (EVM) amacı nedir?

EVM, Ethereum ağı üzerinde çalışan tüm uygulamalara, herhangi bir büyük kesinti bildirilmeksizin güvenilir bir şekilde güç sağlamaktadır. Geliştiriciler için EVM, Ethereum'da akıllı sözleşmeler olarak bilinen daha küçük yürütülebilir programları çalıştıran kapsayıcı bir program görevi görürken, onlara bu akıllı sözleşmeleri Solidity, Vyper, Python ve Yul gibi çeşitli programlama dillerinde yazma özgürlüğü sağlar.

EVM'nin sunduğu bu esneklik sayesinde Ethereum blokzinciri, merkezi olmayan finans (DeFi) ve fungible token (NFT) alanında binlerce DApp üretmiştir. Bu DApp'lerin her biri ve bunların oluşturduğu akıllı sözleşmeler, EVM'ye beslenen ve Ethereum ağındaki tüm düğümler arasında dağıtılan bayt koduna dönüştürülür. Bir akıllı sözleşme dağıtıldığında, EVM tüm düğümlerle iletişim kurmaktan ve bir fikir birliğine varıldığında durum değişikliklerini gerçekleştirmekten sorumludur.

EVM'nin, temel programlama dili yerine bayt kodu kullanarak akıllı sözleşmeleri yürütmek için her Ethereum düğümünün içine yerleştirildiği ve böylece fiziksel ana bilgisayarı Ethereum'un üzerinde çalıştığı makine kodundan izole ettiği söylenebilir.

Ethereum Virtual Machinenin (EVM) Faydaları

EVM'nin çalışma şekli nedeniyle, geliştiriciler, ağın geri kalanı üzerindeki etkisi veya herhangi bir düğüm bilgisayarında barındırılan veriler veya kişisel dosyalarla oynama olasılığı konusunda endişelenmeden kod yürütebilirler. 
Ayrıca, karmaşık akıllı sözleşmeleri dağıtılmış mutabakat ile farklı bilgi işlem ortamlarında çalıştırabilirler. Bu, EVM kodu tüm düğümlerde aynı kaldığından, tek bir düğümün arızalanmasının DApp veya akıllı sözleşmenin çalışması üzerinde herhangi bir olumsuz etkiye sahip olmamasını sağlar. Ayrıca, hesap verileri EVM'de küresel düzeyde tutulduğundan, geliştiriciler özel akıllı sözleşme kodu yazmak ve bu küresel veri setine erişebilen ve güvenilir çıktılar üretebilen farklı DApp'ler oluşturmak için mükemmeldir. 

Sonucun kutsallığı, özellikle EVM'yi ve genel olarak Ethereum blok zincirini DApp'lerin ve akıllı sözleşme Ethereum ekosisteminin sürdürülebilir genişlemesi için çok uygun kılan şeydir. Buna, geliştiricilerin aralarından seçim yapabileceği standart kodlar kütüphanesi, artan sayıda EVM uyumlu katman-2 blok zinciri ve mümkün olan çok sayıda potansiyel EVM kullanım durumu eklendiğinde, EVM'nin neden Web3 geliştirme için tercih edilen platform olduğunu görmek kolaydır.

Ethereum Virtual Machine'in (EVM) Dezavantajları

EVM'nin sunduğu birçok avantaja rağmen, Ethereum üzerinde çalışan geliştiriciler ve girişimciler tarafından dikkate alınması gereken bazı dezavantajlar vardır. Bunlardan en önemlisi, Ethereum ağında akıllı bir sözleşme yürütmekle ilişkili yüksek işlem ücretleri veya gaz maliyetleridir. 

ETH olarak ödenen bu ücretler, sözleşmenin karmaşıklığına ve yürütme sırasındaki ağ tıkanıklığına bağlı olarak değişmekte, bu da geliştiricilerin ve girişimcilerin hizmetlerini buna göre fiyatlandırmasını zorunlu kılmaktadır. Ek olarak, Solidity EVM'de kodlama için en çok tercih edilen dil olduğundan, geliştiricilerin bu dili kullanarak verimli akıllı sözleşmeler oluşturmak için bu konuda yeterli deneyime sahip olmaları ve bir miktar teknik uzmanlığa sahip olmaları gerektiği anlamına gelir. 

İkincisi önemlidir, çünkü herhangi bir ek hesaplama gereksinimi daha yüksek gaz maliyetlerine yol açacak ve sonuçta projenin başarısına zarar verecektir. Geliştiriciler diğer dilleri kullanarak kodlama yapmayı tercih ederlerse, EVM bunları her halükarda derlemeye devam edeceğinden, koddaki doğal tekrarları çözme konusunda dikkatli olmaları gerekir. Akıllı sözleşmeleri daha sonraki bir aşamada yükseltmek mümkün olsa da, orijinal akıllı sözleşmenin adresini referans alan aracı bir akıllı sözleşme oluşturmakla ilişkili güvenlik riskleri de beraberinde gelir.

EVM'lerin geleceği

EVM'nin blok zinciri ekosistemine getirdiği devrim niteliğindeki değişikliklere rağmen, kod okuma ve yürütmeye yönelik bu teknoloji bir dizi blok zinciri projesi tarafından geliştirilmektedir. 

Zincirler arası birlikte çalışabilirliğin geliştiriciler için en önemli husus olmasıyla birlikte, çoğu Ethereum protokolünden daha düşük gaz ve daha yüksek işlem hızları sunan birçok EVM uyumlu blok zinciri ortaya çıkmıştır. Sonuç olarak, bu blok zincirleri artık Ethereum kullanıcılarıyla sorunsuz bir şekilde etkileşime girebilmekte ve blok zinciri köprülerini kullanarak kendi ağlarına fon transferlerini kolaylaştırmaktadır.

Bununla birlikte, Ethereum protokolünün Eylül 2022'de Birleşmeyi başarıyla tamamlamasıyla birlikte, bir sonraki hedef EVM'den Ethereum WebAssembly'a (eWASM) geçmektir. Son derece modüler ve platformdan bağımsız olacak şekilde tasarlanan eWASM, Ethereum protokolü için bir sonraki oyun değiştirici olarak lanse ediliyor ve diğer blok zincirlerini de akıllı sözleşmeler için bu çalışma zamanı ortamını kullanmaya motive edebilir. Bununla birlikte, eWASM'lerin akıllı sözleşmeler için en güvenilir mekanizma olarak EVM'nin yerini alıp almayacağı yalnızca zamanın yanıtlayacağı bir sorudur.