Ana içeriğe geç

Bu sayfanın güncellenmesine yardım edin

🌏

Bu sayfanın yeni bir sürümü vardır ancak şu anda yalnızca İngilizce'dir. Son sürümü çevirmemize yardımcı ol.

Sayfayı çevir
İngilizce'yi gör

Burada hata yok!🐛

Bu sayfa tercüme edilmiyor. Bu sayfayı şimdilik kasıtlı olarak İngilizce bıraktık.

Ethereum Sanal Makinası (EVM)

Son düzenleme: , Invalid DateTime
Sayfayı düzenle
(opens in a new tab)

EVM'nin fiziksel varlığı, bir buluta veya bir okyanus dalgasına benzetilerek açıklanamaz ama EVM, bir Ethereum istemcisi çalıştıran binlerce bağlı bilgisayar tarafından sürdürülen tek bir varlık olarak var olmaktadır.

Ethereum protokolü sadece bu özel durum makinesinin devamlı, kesintisiz ve değiştirilemez işleyişini sürdürmek için vardır: EVM, tüm Ethereum hesaplarının ve akıllı sözleşmelerin yaşadığı ortamdır. Ethereum, zincirdeki tüm bloklarda sadece tek bir "kurallı" duruma sahiptir ve EVM, bloktan bloğa yeni geçerli bir durum hesaplama kurallarını belirler.

Ön koşullar

Bayt(opens in a new tab), bellek(opens in a new tab) ve yığın(opens in a new tab) gibi bilgisayar bilimlerindeki yaygın terminolojiyi temel seviyede kavramak, EVM'yi anlamak için zorunludur. Hash fonksiyonları(opens in a new tab), iş ispatı(opens in a new tab) ve Merkle ağacı(opens in a new tab) gibi kriptografi/blok zinciri konseptlerine aşina olmak da yardımcı olacaktır.

Defterden durum makinesine

“Dağıtılmış defter” analojisi, genellikle temel kriptografi araçlarını kullanarak merkeziyetsiz bir para birimini mümkün kılan Bitcoin gibi blok zincirlerini tanımlamak için kullanılır. Bir kripto para, defteri değiştirmek için ne yapıp ne yapamayacağını yöneten kurallar nedeniyle "normal" bir para birimi gibi davranır. Örneğin, bir Bitcoin adresi daha önce aldığından daha fazla Bitcoin harcayamaz. Bu kurallar, Bitcoin ve diğer birçok blok zincirindeki tüm işlemlerin temelini oluşturur.

Ethereum'un neredeyse tamamen aynı sezgisel kuralları takip eden kendi yerel kripto parası (Ether) olsa da, Ethereum çok daha güçlü bir fonksiyonu da mümkün kılar: akıllı sözleşmeler. Bu daha karmaşık olan özellik için daha karmaşık bir analoji gerekir. Ethereum, dağıtılmış bir defter değil de dağıtılmış bir durum makinesidir(opens in a new tab). Ethereum'un durumu, yalnızca tüm hesapları ve bakiyeleri değil, aynı zamanda önceden tanımlanmış bir dizi kurala göre bloktan bloğa değişebilen ve isteğe bağlı makine kodunu çalıştırabilen makine durumunu tutan büyük bir veri yapısıdır. Durumu bloktan bloğa değiştirmenin özel kuralları EVM tarafından tanımlanır.

EVM'nin oluşumunu gösteren bir diyagram (opens in a new tab) Diyagram Ethereum EVM resmediciden(opens in a new tab) uyarlanmıştır

Ethereum durum geçiş fonksiyonu

EVM, matematiksel bir fonksiyon gibi davranır: Bir girdi verildiğinde, deterministik bir çıktı üretir. Bu nedenle, Ethereum'u bir durum geçiş fonksiyonuna sahip olarak daha belirgin bir şekilde tanımlamak oldukça yararlıdır:

1Y(S, T)= S'
2

Eski (S) geçerli durum ve yeni (T) geçerli işlem grubu ele alındığında, Ethereum Y(S, T) durum geçiş fonksiyonu, yeni S' geçerli çıktı durumu üretir

Durum

Ethereum bağlamında durum, tüm hesapları hash değerleri ile bağlı tutabilen ve blok zincirinde saklanan tek bir kök hash değerine indirgenebilir hâle getirebilen değiştirilmiş Merkle Patricia Ağacı(opens in a new tab) adlı devasa bir veri yapısıdır.

İşlemler

İşlemler, hesaplardan gelen kriptografik olarak imzalanmış talimatlardır. İki tür işlem vardır: mesaj çağrılarıyla sonuçlananlar ve sözleşme oluşturulmasıyla sonuçlananlar.

Sözleşme oluşturma, derlenmiş akıllı sözleşme bayt kodunu içeren yeni bir sözleşme hesabının oluşturulmasıyla sonuçlanır. Başka bir hesap o sözleşmeye mesaj çağrısı yaptığında, sözleşme kendi bayt kodunu yürütür.

EVM talimatları

EVM, 1024 öğe derinliğinde bir yığın makinesi(opens in a new tab) olarak çalışır. Her öğe, 256 bitlik kriptografi (Keccak-256 hash'leri veya secp256k1 imzaları gibi) ile kullanım kolaylığı sağlamak için seçilmiş 256 bitlik bir kelimedir.

Yürütme sırasında EVM, işlemler arasında varlığını sürdürmeyen geçici bir bellek (kelime adresli bayt dizisi olarak) tutar.

Ancak sözleşmeler, söz konusu hesap ve küresel durumun bir parçası ile ilişkili bir Merkle Patricia depolama ağacı (kelime adreslenebilir bir kelime dizisi olarak) içerir.

Derlenmiş akıllı sözleşme bayt kodu, XOR, AND, ADD, SUB vb. gibi standart yığın işlemleri gerçekleştiren bir dizi EVM işlem kodları olarak yürütülür. EVM ayrıca, ADDRESS, BALANCE, BLOCKHASH vb. gibi blok zincirine özgü bir dizi yığın işlemi uygular.

EVM operasyonlarında gazın nerede gerekli olduğunu gösteren bir diyagram (opens in a new tab) Diyagramlar Ethereum EVM resmediciden(opens in a new tab) uyarlanmıştır

EVM uygulamaları

EVM'nin tüm uygulamaları, Ethereum Sarı Kağıdında açıklanan şartnameye uymalıdır.

Ethereum'un 5 yıllık geçmişinde, EVM birkaç revizyondan geçmiştir ve çeşitli programlama dillerinde birkaç uygulaması mevcuttur.

Tüm Ethereum istemcileri bir EVM uygulaması içerir. Ek olarak şunlar da dahil olmak üzere birden fazla bağımsız uygulaması bulunmaktadır:

Daha Fazla Bilgi

Bu makale yararlı oldu mu?