Skip to main content

EVM nedir

Not: Bu belge orijinal İngilizce versiyonun otomatik bir çevirisidir.

EVM nedir

EVM (Ethereum Virtual Machine — Ethereum Sanal Makinesi), Ethereum'a ve çok sayıda başka blok zincirine güç veren hesaplama motorudur. Akıllı sözleşmeleri — blok zincirinde saklanan, kendi kendini uygulayan programları — yürüten yazılım ortamıdır. Bir geliştirici Solidity (veya başka bir EVM uyumlu dil) ile bir akıllı sözleşme yazıp derleyip bir zincire dağıttığında, o kodu fiilen çalıştıran EVM'dir.

EVM uyumlu bir ağdaki her düğüm, aynı kurallara sahip aynı sanal makineyi çalıştırır. Akıllı sözleşmeleri deterministik kılan budur: aynı girdi ve durum verildiğinde, her düğüm aynı çıktıyı üretir. Belirsizlik yoktur, "benim makinemde çalışıyor" sorunu yoktur. EVM, ağdaki her katılımcının her hesaplamanın sonucunda anlaşmasını garanti eder.

Kısaca: EVM, Ethereum ve EVM uyumlu zincirlerdeki akıllı sözleşmeler için standartlaştırılmış yürütme motorudur. Kodun nasıl çalıştığını, durumun nasıl saklandığını ve gazın nasıl tüketildiğini tanımlar — tüm düğümlerde özdeş şekilde çalışan ortak bir çalışma zamanı yaratır.

EVM nasıl çalışır

Bytecode yürütme

Akıllı sözleşmeler zincir üstünde insan tarafından okunabilir kaynak kodu olarak saklanmaz. Dağıtımdan önce kaynak kodu (genellikle Solidity ile yazılmış) bytecode'a — EVM'nin anladığı düşük seviyeli bir komut kümesine — derlenir. Her komut bir opcode'dur: "iki sayıyı topla", "belleğe bir değer sakla", "depolamadan veri yükle" veya "token transfer et" gibi temel bir işlem.

Bir işlem bir akıllı sözleşmeyi tetiklediğinde, ağdaki her doğrulayıcı düğüm:

  1. Sözleşmenin bytecode'unu blok zinciri durumundan yükler.
  2. Opcode'ları EVM spesifikasyonunu izleyerek sıralı olarak yürütür.
  3. Yürütme sonucuna göre blok zinciri durumunu günceller.
  4. Yürütülen her opcode için gaz tahsil eder.

Her düğüm aynı bytecode'u aynı kurallarla çalıştırdığından, hepsi aynı sonuca ulaşır. Bu deterministik yürütme, zincir üstünde güven gerektirmeyen hesaplamanın temelidir.

Gaz

Her opcode'un bir gaz maliyeti vardır — o komutu yürütmek için gereken hesaplama çabasını temsil eden bir ölçü birimi. Gaz iki amaca hizmet eder:

  • Kaynak ölçümü — gaz, sonsuz döngüleri önler ve her hesaplamanın sınırlı miktarda ağ kaynağı tüketmesini garanti eder. Sonsuza dek çalışmaya çalışan bir sözleşme, gaz limitini tüketir ve geri alınır.
  • Ücret mekanizması — kullanıcılar, işlemlerini yürüten doğrulayıcıları tazmin etmek için (zincirin yerel token'ı cinsinden) gaz ücreti öder. Daha karmaşık işlemler daha çok gaz tüketir.

Gaz maliyetleri EVM spesifikasyonu tarafından tanımlanır ve tüm EVM uyumlu zincirlerde aynıdır (gerçi gazın yerel token cinsinden fiyatı ağa göre değişir).

Durum ve depolama

EVM küresel bir durum tutar — adreslerden (hem kullanıcı hesapları hem sözleşme hesapları) güncel bakiyelerine, kodlarına ve depolamalarına bir eşleme. Akıllı sözleşme depolaması bir anahtar-değer deposu olarak düzenlenir: her sözleşmenin, kalıcı veri okuyup yazabileceği kendi 256-bit adres alanı vardır.

Depolama işlemleri (kalıcı duruma yazma ve ondan okuma), gaz açısından en pahalı EVM işlemleri arasındadır; çünkü her düğümün kalıcı olarak saklaması gereken verileri etkiler.

Yığın tabanlı mimari

EVM bir yığın makinesidir: hesaplama sırasında ara değerleri tutmak için adlandırılmış yazmaçlar (register'lar) yerine, son giren ilk çıkar bir yığın kullanır. Opcode'lar yığına değer iter, en üstteki öğeler üzerinde işlem yapar ve sonuçları geri iter. Bu tasarım basit ve iyi tanımlıdır; ancak çoğu geleneksel CPU'nun ve bazı daha yeni blok zinciri sanal makinelerinin (Solana'nın SBF/eBPF'si gibi) kullandığı yazmaç tabanlı mimarilerden farklıdır.

EVM neden önemli

Ekosisteme dönüşen standart

EVM'nin önemi Ethereum'un çok ötesine uzanır. EVM spesifikasyonu açık ve iyi belgelenmiş olduğundan, birçok başka blok zinciri onu benimsemiştir — ya EVM'yi yerel olarak çalıştırarak ya da EVM uyumlu bir yürütme katmanı uygulayarak. Bu, paylaşımlı bir ekosistem yarattı:

Neyin paylaşıldığı Pratikte ne anlama geldiği
Akıllı sözleşme dili Geliştiriciler Solidity'yi bir kez yazar ve herhangi bir EVM zincirine dağıtır
Geliştirme araçları Hardhat, Foundry, Remix ve diğer araçlar tüm EVM zincirlerinde çalışır
Cüzdan uyumluluğu MetaMask ve diğer EVM cüzdanları, yalnızca yeni bir ağ eklenerek çalışır
Token standartları ERC-20 (değiştirilebilir token'lar), ERC-721 (NFT'ler) ve diğer standartlar zincirler arasında taşınabilir
Denetim ve güvenlik Güvenlik denetçileri, biçimsel doğrulama araçları ve en iyi uygulamalar EVM zincirleri arasında aktarılabilir
Geliştirici bilgisi Solidity ve EVM bilen bir geliştirici Ethereum, Polygon, Avalanche, BNB Chain, Arbitrum, Base ve düzinelerce başka ağda çalışabilir

Bu taşınabilirlik, geliştiricileri ve uygulamaları hızla çekmek isteyen yeni blok zincirleri için EVM uyumluluğunun varsayılan tercih hâline gelmesinin nedenidir. Mevcut bir ekosisteme katılmak, sıfırdan bir tane inşa etmekten daha ucuz ve daha hızlıdır.

Çoklu zincir dağıtımı

AI ilişkili kripto projeler dahil projeler için EVM uyumluluğu, Ethereum'a dağıtılan bir akıllı sözleşmenin asgari değişiklikle Polygon'a, Avalanche'ın C-Chain'ine, Arbitrum'a, Base'e veya BNB Smart Chain'e dağıtılabilmesi anlamına gelir. Bu, şunları mümkün kılar:

  • Çoklu zincir varlığı — bir proje, farklı kullanıcı tabanlarına ulaşmak için aynı token sözleşmesini ve temel mantığı birden fazla zincire dağıtabilir.
  • Zincir göçü — bir projenin daha düşük ücretli veya daha yüksek verimli bir zincire taşınması gerekiyorsa, EVM uyumluluğu göç maliyetini düşürür.
  • Birleştirilebilirlik — herhangi bir EVM zincirinde sözleşmeler, aynı arayüzleri ve standartları kullanarak birbirleriyle etkileşebilir; bu, DeFi birleştirilebilirliğini, token entegrasyonlarını ve paylaşımlı altyapıyı mümkün kılar.

Sınırlamalar

EVM, hesaplama yoğun iş yükleri için değil, genel amaçlı akıllı sözleşme yürütmesi için tasarlanmıştır. Başlıca sınırlamalar şunlardır:

  • Yerel kayan nokta yok — EVM yalnızca 256-bit tamsayılar kullanır. (Çoğu AI/ML hesaplaması için elzem olan) kayan nokta aritmetiği emüle edilmelidir; bu da gaz açısından son derece pahalıdır.
  • Gaz kısıtları — blok gaz limiti, blok başına toplam hesaplamayı sınırlar. Karmaşık işlemler (AI çıkarımı için matris çarpımı gibi) EVM yürütmesi içinde aşırı derecede pahalıdır.
  • Sıralı yürütme — EVM, blok içindeki işlemleri sıralı olarak işler. Modern CPU'ların performans için kullandığı paralel yürütme yerel olarak desteklenmez (gerçi bazı daha yeni EVM uyumlu zincirler paralel EVM yürütmesini denemektedir).
  • Depolama maliyeti — zincir üstünde büyük miktarda veri saklamak pahalıdır. AI modelleri, veri kümeleri ve ara hesaplamalar zincir üstü depolama için çok fazla büyüktür.

Bu sınırlamalar, AI ilişkili kripto projelerin AI iş yüklerini neden tipik olarak zincir dışında çalıştırdığını ve zincir üstü EVM sözleşmelerini yalnızca koordinasyon, ödemeler, yönetişim ve sonuç kaydı için kullandığını açıklar.

DecAIHub proje kartlarında nerede görünür

DecAIHub proje kartlarında EVM şu alanlarda görünür:

  • Type — EVM, projenin EVM uyumlu bir zincirde çalıştığını gösterir. Bu, okuyucuya projenin Solidity tabanlı akıllı sözleşmeler ve standart Ethereum araçları kullandığını söyler.
  • Main chain — belirli EVM uyumlu zincir listelenir (Ethereum, Polygon, Avalanche, Arbitrum, Base, BNB Smart Chain vb.). Bunların tümü EVM yürütmesini paylaşır.
  • Token standard — EVM uyumlu zincirler Ethereum token standartlarını kullanır. En yaygın olanları ERC-20 (değiştirilebilir token'lar), ERC-721 (NFT'ler) ve ERC-1155'tir (çoklu token). Bu standartlar EVM ekosistemine özgüdür.
  • Akıllı sözleşmeler — bir projenin akıllı sözleşmeleri bir blok tarayıcısında doğrulanmışsa, okuyucu onları inceleyebilir. EVM sözleşmeleri Solidity (veya Vyper) ile yazılır ve EVM bytecode'una derlenir.

Type: EVM sınıflandırması, projenin araçları ve ekosistemi hakkında yararlı bağlam sağlar; ancak tek başına projenin AI'sının kalitesi veya token'ının gerekliliği hakkında hiçbir şey söylemez.

Tek başına EVM uyumluluğu neyi kanıtlamaz

  • EVM uyumluluğu AI yeteneğini kanıtlamaz. EVM akıllı sözleşmeleri çalıştırır; AI modelleri GPU'larda çalışır. Bir projenin bir EVM zincirinde olması, gerçek bir AI bileşenine sahip olup olmadığı hakkında hiçbir şey söylemez.
  • Bir EVM zincirine dağıtım yapmak projeyi benzersiz kılmaz. Aynı sözleşme düzinelerce EVM uyumlu zincire dağıtılabilir. Dağıtım tercihi bir altyapı kararıdır, bir farklılaştırıcı değildir.
  • Doğrulanmış akıllı sözleşmeler, zincir dışı bileşenin çalıştığını kanıtlamaz. Bir proje temiz, denetlenmiş zincir üstü koda sahip olabilir ve arkasında yine de çalışan hiçbir AI hattı bulunmayabilir. Zincir üstü ve zincir dışı bileşenler ayrı ayrı değerlendirilmelidir.
  • EVM ekosistem araçları kanıt ihtiyacını azaltmaz. MetaMask desteğine, bir blok tarayıcısı listelemesine ve ERC-20 token'lara sahip olmak standart altyapıdır — teknolojinin, yeniliğin veya kalitenin kanıtı değildir.
  • EVM yürütmesi AI yürütmesi değildir. Önemsiz olmayan herhangi bir model için EVM içinde bir sinir ağı çalıştırmak aşırı derecede pahalıdır. Bir proje bir EVM zincirinde "zincir üstü AI" dediğinde, neyin zincir üstünde neyin zincir dışında çalıştığını tam olarak kontrol edin.

Karıştırmayın

  • Ethereum — Ethereum belirli bir blok zinciri ağıdır. EVM ise Ethereum'un (ve başka birçok zincirin) kullandığı sanal makinedir. "EVM" yürütme motorunu; "Ethereum" ağı, doğrulayıcılarını ve durumunu ifade eder.
  • non-EVM blok zinciri — Solana, Cosmos zincirleri ve Bittensor gibi blok zincirleri farklı sanal makineler (SVM, CosmWasm, özel çalışma zamanları) kullanır. EVM uyumlu değildirler; yani Solidity sözleşmeleri ve EVM araçları onlarda yerel olarak çalışmaz.
  • Akıllı sözleşme — akıllı sözleşme, EVM'de çalışan bir programdır. EVM motordur; akıllı sözleşme onun yürüttüğü koddur. Akıllı sözleşmeler, farklı diller ve çalışma zamanları kullanan non-EVM zincirlerde de vardır.
  • Solidity — Solidity, EVM akıllı sözleşmeleri için en popüler programlama dilidir, ancak EVM'nin kendisi değildir. Vyper bir başka EVM uyumlu dildir. EVM, hangi kaynak dilin ürettiğinden bağımsız olarak derlenmiş bytecode'u yürütür.

Sık sorulan sorular

"EVM uyumlu" ne anlama gelir?

Bir blok zinciri, EVM bytecode'unu — Solidity akıllı sözleşmelerinin derlenmiş biçimini — Ethereum ile aynı opcode kümesi ve yürütme kurallarıyla yürütebiliyorsa EVM uyumludur. Pratikte bu, geliştiricilerin aynı sözleşmeleri birden fazla EVM uyumlu zincire dağıtabilmesi, aynı araçları (Hardhat, Foundry, MetaMask) kullanabilmesi ve aynı token standartlarına (ERC-20, ERC-721) dayanabilmesi anlamına gelir. EVM uyumlu zincir örnekleri arasında Polygon, Avalanche C-Chain, BNB Smart Chain, Arbitrum ve Base bulunur.

AI modelleri EVM'nin içinde çalışabilir mi?

Teoride her hesaplama EVM opcode'ları olarak ifade edilebilir. Pratikte önemsiz olmayan AI modellerini EVM içinde çalıştırmak aşırı derecede pahalıdır. EVM'nin yerel kayan nokta desteği yoktur, blok başına katı gaz limitleri vardır ve karmaşık işlemler için yüksek gaz maliyetleri uygular. Küçük bir sinir ağından bile tek bir ileri geçiş, herhangi bir pratik uygulamanın haklı çıkarabileceğinden kat kat fazla gaza mal olurdu. Bu yüzden AI ilişkili kripto projeler modelleri zincir dışında çalıştırır ve EVM'yi yalnızca koordinasyon, ödeme ve doğrulama mantığı için kullanır.

Neden bu kadar çok blok zinciri EVM'yi benimsiyor?

Ağ etkileri. Ethereum ilk büyük akıllı sözleşme platformuydu ve geliştirici ekosistemi — Solidity bilgisi, araçlar, denetim uzmanlığı, cüzdan desteği ve token standartları — yıllar içinde büyüdü. EVM'yi benimseyen yeni bir blok zinciri, tüm bu ekosisteme anında erişim kazanır. Geliştiricilerin yeni bir dil öğrenmesi gerekmez, projeler mevcut sözleşmeleri dağıtabilir ve kullanıcılar tanıdık cüzdanlarla bağlanabilir. Rakip bir ekosistemi sıfırdan inşa etmek çok daha pahalı ve belirsizdir. EVM uyumluluğu, benimsenmeye giden pragmatik bir kestirmedir.

EVM uyumlu ile EVM eşdeğeri arasındaki fark nedir?

EVM uyumlu, zincirin EVM bytecode'unu çalıştırabildiği ve aynı opcode'ları desteklediği anlamına gelir; ancak davranışta küçük farklılıklar olabilir (ör. gaz maliyetleri, precompile'lar veya uç durum opcode davranışı). EVM eşdeğeri ise zincirin, Ethereum'un EVM davranışını opcode düzeyinde birebir kopyaladığı anlamına gelir — her işlem, Ethereum'da üreteceği sonucun aynısını üretir. EVM eşdeğerliği daha güçlü bir iddiadır: hassas EVM davranışına bağımlı karmaşık sözleşmelerin ve araçların bile değişiklik yapılmadan çalışması gerektiği anlamına gelir. Örneğin Polygon zkEVM, EVM eşdeğerliğini hedefler.

Dış kaynaklar

  • Ethereum.org — Ethereum Virtual Machine — EVM mimarisini, opcode'ları ve yürütme modelini açıklayan resmî Ethereum Vakfı dokümantasyonu.
  • Ethereum Yellow Paper — tam EVM opcode kümesi ve yürütme semantiği dahil, Ethereum protokolünün biçimsel spesifikasyonu.
  • EVM Codes — gaz maliyetleri, açıklamalar ve bytecode yürütmesini test etmek için oyun alanı içeren, EVM opcode'ları için etkileşimli referans.

Ayrıca bakınız