İşlemler
Sayfanın son güncellenmesi: 23 Şubat 2026
İşlemler, hesaplardan gelen kriptografik olarak imzalanmış talimatlardır. Bir hesap, Ethereum ağının durumunu güncellemek için bir işlem başlatacaktır. En basit işlem ETH'yi bir hesaptan diğerine aktarmaktır.
Ön Koşullar
Bu sayfayı daha iyi anlamanıza yardımcı olmak için önce Hesaplar ve Ethereum'a giriş bölümlerini okumanızı öneririz.
İşlem ne demek?
Bir Ethereum işlemi, harici olarak sahiplenilmiş bir hesap tarafından başlatılan bir eylemi ifade eder, başka bir deyişle, bir sözleşme değil, bir insan tarafından yönetilen bir hesap. Örneğin Bob, Alice'e 1 ETH gönderirse, Bob'un hesabı borçlandırılmalı ve Alice'inki alacaklandırılmalıdır. Bu durum değiştirme eylemi bir işlem içinde gerçekleşir.
Ethereum EVM illustrated (opens in a new tab) kaynağından uyarlanan diyagram
EVM'nin durumunu değiştiren işlemlerin tüm ağa yayınlanması gerekir. Herhangi bir düğüm, Ethereum Sanal Makinesinde ugulanacak işlemleri yayınlamak için talepte bulunabilir, bu olduktan sonra da, doğrulayıcı işlemi uygulayacak ve ortaya çıkan durum değişikliğini ağın geri kalanına yayacaktır.
İşlemler için ücretler gereklidir ve doğrulanan bir blokta bulunmak zorundadırlar. Bu taslağı daha basit hale getirebilmek için gaz ücretlerini ve doğrulamayı başka bir yerde inceleyeceğiz.
Gönderilen bir işlem aşağıdaki bilgileri içerir:
from– işlemi imzalayacak olan göndericinin adresi. Bu sözleşme hesapları işlem gönderemeyeceği için harici olarak sahiplenilmiş bir hesap olacaktırto– alıcı adres (harici olarak sahiplenilmiş bir hesapsa, işlem değeri aktaracaktır. Eğer bir sözleşme hesabıysa, işlem sözleşme kodunu yürütecektir)signature– gönderenin tanımlayıcısı. Bu, gönderenin özel anahtarı işlemi imzaladığında ve gönderenin bu işleme yetki verdiğini doğruladığında oluşturulurnonce- hesabın işlem sayısını belirten ve ardışık olarak artan bir sayaçvalue– göndericiden alıcıya aktarılacak ETH miktarı (WEI şeklinde birimlendirilmiştir, 1ETH 1e+18wei'ye eşittir)input data– keyfi verileri dahil etmek için isteğe bağlı alangasLimit– işlem tarafından tüketilebilecek maksimum gaz birimi miktarı. EVM, her bir hesaplama adımı için gereken gaz birimlerini belirtirmaxPriorityFeePerGas- doğrulayıcıya bir bahşiş olarak eklenmesi için harcanan gazın maksimum fiyatımaxFeePerGas- işlem için ödenecek gaz birimi başına maksimum ücret (baseFeePerGasvemaxPriorityFeePerGasdahil)
Gaz, işlemin bir doğrulayıcı tarafından işlenmesi için gereken hesaplamaya bir referanstır. Kullanıcılar bu hesaplama için bir ücret ödemek zorundadır. gasLimit ve maxPriorityFeePerGas, doğrulayıcıya ödenen maksimum işlem ücretini belirler. Gaz hakkında daha fazla bilgi.
İşlem nesnesi biraz şuna benzer:
1{2 from: "0xEA674fdDe714fd979de3EdF0F56AA9716B898ec8",3 to: "0xac03bb73b6a9e108530aff4df5077c2b3d481e5a",4 gasLimit: "21000",5 maxFeePerGas: "300",6 maxPriorityFeePerGas: "10",7 nonce: "0",8 value: "10000000000"9}Tümünü gösterAncak, gönderenin özel anahtarı kullanılarak bir işlem nesnesinin imzalanması gerekir. Bu, işlemin yalnızca göndericiden gelebileceğini ve sahtekârlıkla gönderilmediğini kanıtlıyor.
Geth gibi bir Ethereum istemcisi bu imzalama sürecini yerine getirir.
Örnek JSON-RPC çağrısı:
1{2 "id": 2,3 "jsonrpc": "2.0",4 "method": "account_signTransaction",5 "params": [6 {7 "from": "0x1923f626bb8dc025849e00f99c25fe2b2f7fb0db",8 "gas": "0x55555",9 "maxFeePerGas": "0x1234",10 "maxPriorityFeePerGas": "0x1234",11 "input": "0xabcd",12 "nonce": "0x0",13 "to": "0x07a565b7ed7d7a678680a4c162885bedbb695fe0",14 "value": "0x1234"15 }16 ]17}Tümünü gösterYanıt örneği:
1{2 "jsonrpc": "2.0",3 "id": 2,4 "result": {5 "raw": "0xf88380018203339407a565b7ed7d7a678680a4c162885bedbb695fe080a44401a6e4000000000000000000000000000000000000000000000000000000000000001226a0223a7c9bcf5531c99be5ea7082183816eb20cfe0bbc322e97cc5c7f71ab8b20ea02aadee6b34b45bb15bc42d9c09de4a6754e7000908da72d48cc7704971491663",6 "tx": {7 "nonce": "0x0",8 "maxFeePerGas": "0x1234",9 "maxPriorityFeePerGas": "0x1234",10 "gas": "0x55555",11 "to": "0x07a565b7ed7d7a678680a4c162885bedbb695fe0",12 "value": "0x1234",13 "input": "0xabcd",14 "v": "0x26",15 "r": "0x223a7c9bcf5531c99be5ea7082183816eb20cfe0bbc322e97cc5c7f71ab8b20e",16 "s": "0x2aadee6b34b45bb15bc42d9c09de4a6754e7000908da72d48cc7704971491663",17 "hash": "0xeba2df809e7a612a0a0d444ccfa5c839624bdc00dd29e3340d46df3870f8a30e"18 }19 }20}Tümünü gösterraw, Tekrarlamalı Uzunluk Öneki (RLP) kodlanmış formdaki imzalı işlemdirtx, JSON formundaki imzalı işlemdir
İmza hash değeri ile işlemin göndericiden geldiği ve ağa gönderildiği kriptografik olarak kanıtlanabilir.
Veri alanı
İşlemlerin büyük bir çoğunluğu, bir sözleşmeye dıştan sahiplenilmiş bir hesaptan erişir. Çoğu sözleşme Solidity ile yazılmıştır ve veri alanlarını ile uyumlu olacak şekilde yorumlar.
İlk dört bayt, fonksiyonun isminin ve argümanlarının hash değerini kullanarak hangi fonksiyonun çağrılacağını belirler. Bazen bu veritabanını (opens in a new tab) kullanarak seçiciden işlevi tanımlayabilirsiniz.
Çağrı verisinin geri kalanı, ABI özelliklerinde belirtildiği gibi kodlanmış (opens in a new tab) bağımsız değişkenlerdir.
Örneğin, şu işleme (opens in a new tab) bir bakalım. Çağrı verisini görmek için Click to see More seçeneğini kullanın.
İşlev seçici 0xa9059cbb'dir. Bu imzaya sahip birkaç bilinen işlev (opens in a new tab) vardır.
Bu durumda sözleşme kaynak kodu (opens in a new tab) Etherscan'e yüklenmiştir, bu nedenle işlevin transfer(address,uint256) olduğunu biliyoruz.
Verinin geri kalanı:
10000000000000000000000004f6742badb049791cd9a37ea913f2bac38d012792000000000000000000000000000000000000000000000000000000003b0559f4ABI koşullarına göre, tamsayı değerleri (20 bayt tamsayılar olan adresler gibi) ABI içinde 32 bayt kelimelerin önü sıfırlarla doldurulmuş şekilde bulunurlar.
Yani to adresinin 4f6742badb049791cd9a37ea913f2bac38d01279 (opens in a new tab) olduğunu biliyoruz.
value değeri 0x3b0559f4 = 990206452'dir.
İşlem türleri
Ethereum'da birkaç farklı işlem türü vardır:
- Düzenli işlemler: bir hesaptan diğerine yapılan işlem.
- Sözleşme dağıtım işlemleri: Veri alanının sözleşme kodu için kullanıldığı, "to"' (gönderilen adres) adresi olmayan bir işlem.
- Bir sözleşmenin yürütümü: dağıtılmış akıllı sözleşme ile etkileşime geçen bir işlem. Bu durumda, "to" adresi akıllı sözleşme adresidir.
Gaz hakkında
Belirtildiği gibi, işlemlerin yürütülmesi için gaz gerekir. Basit transfer işlemleri 21.000 birim Gaz gerektirir.
Dolayısıyla Bob'un Alice'e 1 ETH'yi 190 gwei baseFeePerGas ve 10 gwei maxPriorityFeePerGas ile göndermesi için aşağıdaki ücreti ödemesi gerekir:
1(190 + 10) * 21.000 = 4.200.000 gwei2--veya--30,0042 ETHBob'un hesabı -1,0042 ETH borçlandırılacaktır (Alice için 1 ETH + gaz ücretleri için 0,0042 ETH)
Alice'in hesabına +1,0 ETH alacak kaydedilecektir
Taban ücret yakılacaktır -0,00399 ETH
Doğrulayıcı bahşişi tutar +0,000210 ETH
Ethereum EVM illustrated (opens in a new tab) kaynağından uyarlanan diyagram
İşlemde kullanılmayan gaz, kullanıcı hesabına iade edilir.
Akıllı sözleşme etkileşimleri
Akıllı sözleşme içeren herhangi bir işlem için gaz gereklidir.
Akıllı sözleşmeler, sözleşmenin durumunu değiştirmeyen view (opens in a new tab) veya pure (opens in a new tab) işlevleri olarak bilinen işlevleri de içerebilir. Bu nedenle bu fonksiyonların bir EOA tarafından çağrılması için herhangi bir gaz gerekmez. Bu senaryo için temel RPC çağrısı eth_call şeklindedir.
eth_call kullanılarak erişilmesinin aksine, bu view veya pure işlevleri dahili olarak da (yani sözleşmenin kendisinden veya başka bir sözleşmeden) yaygın olarak çağrılır ve bu da gaza mal olur.
İşlem yaşam döngüsü
İşlem gönderildikten sonra aşağıdakiler gerçekleşir:
- Bir işlem karması kriptografik olarak oluşturulur:
0x97d99bc7729211111a21b12c933c949d4f31684f1d6954ff477d0477538ff017 - İşlem sonrasında ağa yayınlanır ve diğer bekleyen ağ işlemlerinden oluşan işlem havuzuna eklenir.
- Bir doğrulayıcı, işlemi doğrulamak ve "başarılı" olarak değerlendirmek için işleminizi seçmeli ve bir bloka eklemelidir.
- Zaman geçtikçe işleminizi taşıyan blok önce "kanıtlanmış" sonrasında "kesinleştirilmiş" şeklinde güncellenecektir. Bu yükseltmeler, işleminizin başarılı olduğunu ve asla değiştirilmeyeceğini çok daha netleştirir. Bir blok "kesinleştirildikten" sonra, yalnızca milyarlarca dolara mal olacak bir ağ düzeyindeki saldırı ile değiştirilebilir.
Görsel bir demo
Austin'in işlemleri, gazı ve madenciliği açıklamasını izleyin.
Tür Belirtilmiş İşlem Zarfı
Ethereum'un başlangıçta işlemler için tek bir formatı vardı. Her işlem, adres, değer, veri, v, r ve s için nonce, gaz fiyatı, gaz limiti içeriyordu. Bu alanlar, şuna benzer bir görünüme sahip olacak şekilde RLP kodludur:
RLP([nonce, gasPrice, gasLimit, to, value, data, v, r, s])
Ethereum, eski işlem formatlarını etkilemeden erişim listeleri ve EIP-1559 (opens in a new tab) gibi yeni özelliklerin uygulanmasına olanak tanımak için birden fazla işlem türünü destekleyecek şekilde gelişmiştir.
Bu davranışa izin veren EIP-2718 (opens in a new tab)'dir. İşlemler şu şekilde yorumlanır:
TransactionType || TransactionPayload
Burada alanlar şu şekilde tanımlanır:
TransactionType- toplam 128 olası işlem türü için 0 ile 0x7f arasında bir sayı.TransactionPayload- işlem türü tarafından tanımlanan rastgele bir bayt dizisi.
TransactionType değerine bağlı olarak, bir işlem şu şekilde sınıflandırılabilir:
-
Tip 0 (Eski) İşlemler: Ethereum'un lansmanından bu yana kullanılan orijinal işlem formatı. Akıllı sözleşmeler için dinamik gaz ücreti hesaplamaları veya erişim listeleri gibi EIP-1559 (opens in a new tab) özellikleri içermezler. Eski işlemler, serileştirilmiş biçimlerinde türlerini belirten özel bir önekten yoksundur ve Tekrarlamalı Uzunluk Öneki (RLP) kodlaması kullanıldığında
0xf8baytı ile başlarlar. Bu işlemler için TransactionType değeri0x0'dır. -
Tip 1 İşlemler: Ethereum'un Berlin Yükseltmesi kapsamında EIP-2930 (opens in a new tab) ile tanıtılan bu işlemler bir
accessListparametresi içerir. Bu liste, işlemin erişmeyi beklediği adresleri ve depolama anahtarlarını belirtir ve akıllı sözleşmeleri içeren karmaşık işlemler için gaz maliyetlerini potansiyel olarak azaltmaya yardımcı olur. EIP-1559 ücret piyasası değişiklikleri Tip 1 işlemlere dahil değildir. Tip 1 işlemler ayrıca, secp256k1 imzasının y-değerinin paritesini gösteren0x0veya0x1olabilen biryParityparametresi içerir.0x01baytı ile başlamalarıyla tanımlanırlar ve TransactionType değerleri0x1'dir. -
Genellikle EIP-1559 işlemleri olarak adlandırılan Tip 2 İşlemler, Ethereum'un Londra Yükseltmesi kapsamında EIP-1559 (opens in a new tab) ile tanıtılan işlemlerdir. Bu işlemler, Ethereum ağında standart işlem tipi haline gelmiştir. Bu işlemler, işlem ücretini ana ücret ve öncelik ücreti olarak ayıran öngörülebilirliği artıran yeni bir ücret piyasası mekanizması sunar.
0x02baytı ile başlarlar vemaxPriorityFeePerGasilemaxFeePerGasgibi alanlar içerirler. Tip 2 işlemler, esneklikleri ve verimlilikleri nedeniyle varsayılan seçenek durumuna gelmiştir. Özellikle yüksek ağ tıkanıklığı dönemlerinde kullanıcıların işlem ücretlerini daha öngörülebilir şekilde yönetmelerine yardımcı olma yetenekleri nedeniyle tercih edilirler. Bu işlemler için TransactionType değeri0x2'dir. -
Tip 3 (Blob) İşlemler, Ethereum'un Dencun Yükseltmesi kapsamında EIP-4844 (opens in a new tab) ile tanıtılmıştır. Bu işlemler, "blob" verilerini (İkili Büyük Nesneler) daha verimli bir şekilde işlemek için tasarlanmıştır ve özellikle Ethereum ağına daha düşük bir maliyetle veri göndermenin bir yolunu sağlayarak Katman 2 toplamalarına fayda sağlar. Blob işlemleri,
blobVersionedHashes,maxFeePerBlobGasveblobGasPricegibi ek alanlar içerir.0x03baytı ile başlarlar ve TransactionType değerleri0x3'tür. Blob işlemleri, Ethereum'un veri kullanılabilirliği ve ölçeklendirme yeteneklerinde önemli bir gelişmeyi temsil eder. -
Tip 4 İşlemler, Ethereum'un Pectra Yükseltmesi kapsamında EIP-7702 (opens in a new tab) ile tanıtılmıştır. Bu işlemler, hesap soyutlaması ile ileriye dönük uyumlu olacak şekilde tasarlanmıştır. EOA'ların orijinal işlevselliklerinden ödün vermeden geçici olarak akıllı sözleşme hesapları gibi davranmalarına olanak tanırlar. EOA'nın yetkisini devrettiği akıllı sözleşmeyi belirten bir
authorization_listparametresi içerirler. İşlemden sonra, EOA'nın kod alanı, yetki devredilen akıllı sözleşmenin adresine sahip olacaktır.
Daha fazla kaynak
Size yardımcı olan bir topluluk kaynağı mı biliyorsunuz? Bu sayfayı düzenleyin ve onu ekleyin!