Ethereum Sanal Makinesi (EVM)

LunaVerse
3 min readFeb 18, 2022

--

Bu yazımızda sizlere Ethereum Sanal Makinesinden bahsetmek istiyorum. Gelin aşağıdaki konulara bir değinelim;

  • EVM nedir?
  • Neden EVM’e ihtiyaç duyuyoruz?
  • EVM Bytecode nedir?
  • ABI nedir?
  • Solidity nedir?
  • Gaz ve Ethereum arasındaki ilişki nedir?
  • Client nedir?

EVM Nedir?

EVM Ethereum blok zinciri için geliştirilmiş, akıllı sözleşmelerin gerçek zamanlı olarak EVM Bytecode derlendiği bir ortamdır. EVM blok zincirinin bize kazandırdığı en önemli unsurların güven kavramını ve merkezi olan yapılanmaların ortadan kaldırılması olduğunu söyleyebiliriz. EVM her bir nodu bir diğerinden izole eder ve bu sayede Ethereum blok zincirinin güvenliği sağlanmış olur.

Bitcoin blok zinciri yalnızca değer transferi sağlayan bir blok zinciri iken, Ethereum; EVM ile hem yazılan kodu okur, işlemlerin gerçekleşmesi için harcanacak gazı hesaplar, işlemleri gerçekleştirir, ve blok zincirine işler.

Neden EVM’e İhtiyaç Duyuyoruz?

EVM yazılan akıllı sözleşmelerin herhangi bir işletim sistemi üzerinde çalışmasına olanak sağlar (Her işletim sisteminde derlenebilir olmasıyla, verimliliği artırmış olur). Aslında “İşletim Sistemi” ve “Akıllı Sözleşme” arasında bir ara katman görevi görür.

Peki EVM olmasaydı!?
Bu durumda her işletim sistemi için ayrı bir compiler (derleyici) tasarlanması gerekirdi.

EVM Bytecode Nedir?

Solidity ile geliştirilmiş bir akıllı sözleşme kodunun makine diline dönüştürülmesi sonucu EVM tarafından algılanan Bytecode elde edilir. Akış sıralamasından bahsedecek olursak;

Source Code(Smart Contract: Solidity) => Bytecode => Machine Code

ABI Nedir?

ABI (Application Binary Interface) iki program modülü arasında ki arayüzdür; bu ara katman genellikle bir işletim sistemi ile kullanıcı programları arasında sağlanır. Ethereum’da sözleşmeden sözleşmeye etkileşimin sağlanmasında, harici uygulamaların akıllı sözleşme ile etkileşime geçmesinde JSON dizi formatı ile işlev gören bir standarttır. Örnek olarak akıllı sözleşme ile Web3 cüzdanlarının etkileşimi verilebilir.

Solidity Nedir?

Solidity EVM’de çalışan edilen yüksek seviyeli bir programlama dilidir. EVM’de çalışabilmesi için öncelikle derlenmesi gerekir, bunu solc gibi solidity derleyicileri sağlar. Derlenen kodu EVM anlar ve blok zincirine işlenmesi için gereken operasyon komutları çağırılır ve işlenir.

Gaz ve Ethereum Arasındaki İlişki Nedir?

Ethereum ağında akıllı sözleşmeler yüklenmek istediğinde ya da akıllı sözleşmelerle etkileşime geçilmek istendiğinde bunun için EVM tarafından hesaplanan bir gaz ücreti çıkarılır. Gaz ücreti kabul edilip, web3 cüzdanı ile imza atıldığı vakit işlem gerçekleştirilir. Ethereum ağının yoğunluğuyla doğru orantılı olarak artan gaz ücretlerinin sebebi ise sıraya giren işlemlerin anlık gerçekleşmesinin istenmesiyle teklif edilen gaz ücretinin yükselmesidir.

Client Nedir?

Bilgisayar bilimlerinde “client” sunucuya bağlı olan yazılım/donanıma verilen isimdir. Ethereum’da ise EVM’e implemente olmuş yazılıma verilen isimdir; örnek olarak Geth (Go-Ethereum) ve Parity (Rust Implementasyonu) verilebilir. Client ve Node aslında oldukça birbirine benzer fakat client daha çok donanıma yüklenmiş bir yazılım, node ise bilgisayarın tamamı olarak düşünülebilir. (donanım + yazılım) İki çeşit client tipi mevcuttur, bunlar;

  • Full Node Client : Tüm blok zinciri verilerini diske indirir, blokları bu şekilde takip ederek işlemlerin onaylanmasını sağlar.
  • Lightweight Client : Yalnızca blok zincirinde header kısmını indirirerek alandan tasarruf eder, bu şekilde işlemlerin onaylanmasını sağlar.

Bu hafta ki yazımızda “bytecode, ABI, Solidity, Gas, ve Client” kavramlarından bahsettik. Zamanla daha derin bilgileri öğrenip sizlerle paylaşmaktan mutluluk duyarım; görüşmek üzere, keyifli bir hafta sonu dilerim.

--

--

LunaVerse

Once upon a time a blockchain developer and digital humanist decide to write mini-articles about the meta universe.