Ethereum: Yeni Nesil Akıllı Sözleşme ve Merkeziyetsiz Uygulama Platformu

Ethereum: A Next-Generation Smart Contract and Decentralized Application Platform

Автор Vitalik Buterin · 2013

Abstract

Satoshi Nakamoto's development of Bitcoin in 2009 has often been hailed as a radical development in money and currency, being the first example of a digital asset which simultaneously has no backing or intrinsic value and no centralized issuer or controller. However, another, arguably more important, part of the Bitcoin experiment is the underlying blockchain technology as a tool of distributed consensus, and attention is rapidly starting to shift to this other aspect of Bitcoin. Commonly cited alternative applications of blockchain technology include using on-blockchain digital assets to represent custom currencies and financial instruments (colored coins), the ownership of an underlying physical device (smart property), non-fungible assets such as domain names (Namecoin), as well as more complex applications involving having digital assets being directly controlled by a piece of code implementing arbitrary rules (smart contracts) or even blockchain-based decentralized autonomous organizations (DAOs).

What Ethereum intends to provide is a blockchain with a built-in fully fledged Turing-complete programming language that can be used to create "contracts" that can be used to encode arbitrary state transition functions, allowing users to create any of the systems described above, as well as many others that we have not yet imagined, simply by writing up the logic in a few lines of code. A bare-bones version of Namecoin can be written in two lines of code, and other protocols like currencies and reputation systems can be built in under twenty lines. Smart contracts, cryptographic "boxes" that contain value and only unlock it if certain conditions are met, can also be built on top of the platform, with vastly more power than that offered by Bitcoin scripting because of the added powers of Turing-completeness, value-awareness, blockchain-awareness, and state.

Abstract

Ethereum, yerleşik Turing-complete bir programlama dili içeren bir blockchain sunan, yeni nesil bir kripto para ve merkeziyetsiz uygulama platformudur. Bu, herkesin mülkiyet, işlem biçimleri ve state transition fonksiyonları için kendi kurallarını oluşturabilecekleri smart contract'lar ve merkeziyetsiz uygulamalar yazmasına olanak tanır.

Ethereum'un temel yeniliği, Bitcoin tarafından öncülük edilen blockchain teknolojisini genel amaçlı bir programlama ortamıyla birleştirmesidir. Bitcoin, bir hesaptan diğerine para transferi için basit bir state transition sistemi sağlarken, Ethereum geliştiricilerin alternatif para birimlerinden ve finansal araçlardan alan adı kayıt sistemlerine ve merkeziyetsiz organizasyonlara kadar hayal edebilecekleri her türlü merkeziyetsiz uygulamayı oluşturabilecekleri bir platform sunar.

Ethereum bunu, özünde nihai soyut temel katmanı inşa ederek başarır: yerleşik Turing-complete bir programlama diline sahip bir blockchain, herkesin mülkiyet, işlem biçimleri ve state transition fonksiyonları için kendi kurallarını oluşturabilecekleri smart contract'lar ve merkeziyetsiz uygulamalar yazmasına olanak tanır. Namecoin'in temel bir versiyonu iki satır kodla yazılabilir ve para birimleri ile itibar sistemleri gibi diğer protokoller yirmiden az satırda oluşturulabilir.

Introduction and Existing Concepts

The concept of decentralized digital currency, as well as alternative applications like property registries, has been around for decades. The anonymous e-cash protocols of the 1980s and the 1990s, mostly reliant on a cryptographic primitive known as Chaumian blinding, provided a currency with a high degree of privacy, but the protocols largely failed to gain traction because of their reliance on a centralized intermediary. In 1998, Wei Dai's b-money became the first proposal to introduce the idea of creating money through solving computational puzzles as well as decentralized consensus, but the proposal was scant on details as to how decentralized consensus could actually be implemented. In 2005, Hal Finney introduced a concept of reusable proofs of work, a system which uses ideas from b-money together with Adam Back's computationally difficult Hashcash puzzles to create a concept for a cryptocurrency, but once again fell short of the ideal by relying on trusted computing as a backend.

In 2009, a decentralized currency was for the first time implemented in practice by Satoshi Nakamoto, combining established primitives for managing ownership through public key cryptography with a consensus algorithm for keeping track of who owns coins, known as "proof of work." The mechanism behind proof of work was a breakthrough in the space because it simultaneously solved two problems. First, it provided a simple and moderately effective consensus algorithm, allowing nodes in the network to collectively agree on a set of canonical updates to the state of the Bitcoin ledger. Second, it provided a mechanism for allowing free entry into the consensus process, solving the political problem of deciding who gets to influence the consensus, while simultaneously preventing sybil attacks. It does this by substituting a formal barrier to participation, such as the requirement to be registered as a unique entity on a particular list, with an economic barrier -- the weight of a single node in the consensus voting process is directly proportional to the computing power that the node brings. Since then, an alternative approach has been proposed called proof of stake, calculating the weight of a node as being proportional to its currency holdings and not computational resources; the discussion of the relative merits of the two approaches is beyond the scope of this paper but it should be noted that both approaches can be used to serve as the backbone of a cryptocurrency.

The Bitcoin blockchain has proven remarkably robust in practice over the subsequent years of operation, but it is inherently limited in what it can accomplish beyond simple value transfer. Bitcoin's scripting language is intentionally designed to be restrictive, lacking loops, Turing-completeness, and many other features that would be necessary to build more complex applications. This limitation, while providing safety from certain classes of attacks, severely restricts what can be built on top of Bitcoin. Over the following years, numerous attempts to extend Bitcoin's functionality emerged: colored coins sought to use the Bitcoin blockchain to track ownership of alternative assets, Namecoin attempted to create a decentralized name registration database, and various metacoin protocols aimed to build additional layers on top of Bitcoin's transaction format. While these approaches showed promise, they were ultimately constrained by Bitcoin's scripting capabilities and the inability to access blockchain data from within scripts.

What Ethereum intends to provide is a blockchain with a built-in fully fledged Turing-complete programming language that can be used to create "contracts" that can be used to encode arbitrary state transition functions, allowing users to create any of the systems described above, as well as many others that we have not yet imagined, simply by writing up the logic in a few lines of code.

Introduction and Existing Concepts

Merkeziyetsiz dijital para birimi kavramı ve mülk kayıtları gibi alternatif uygulamalar onlarca yıldır var olmaktadır. 1980'lerin ve 1990'ların anonim e-nakit protokolleri, büyük ölçüde Chaumian blinding olarak bilinen bir kriptografik ilkeye dayanan, yüksek düzeyde gizlilik sunan bir para birimi sağlıyordu, ancak bu protokoller merkezi bir aracıya bağımlılıkları nedeniyle büyük ölçüde ilgi görmedi. 1998'de Wei Dai'nin b-money'si, hesaplama bulmacalarını çözerek para yaratma ve merkeziyetsiz uzlaşma fikrini ortaya koyan ilk teklif oldu, ancak teklif merkeziyetsiz uzlaşmanın gerçekte nasıl uygulanabileceği konusunda ayrıntılardan yoksundu.

2009'da Satoshi Nakamoto tarafından ilk kez pratikte merkeziyetsiz bir para birimi uygulandı; public key kriptografisi aracılığıyla sahiplik yönetimi için yerleşik ilkeleri, "proof of work" olarak bilinen, kimin madeni paralara sahip olduğunu izlemek için bir uzlaşma algoritması ile birleştirdi. Proof of work'ün arkasındaki mekanizma bu alanda bir atılımdı çünkü aynı anda iki sorunu çözdü. Birincisi, ağdaki düğümlerin Bitcoin defterinin durumuna ilişkin güncellemeler üzerinde toplu olarak anlaşmasını sağlayan basit ve orta düzeyde etkili bir uzlaşma algoritması sağladı. İkincisi, uzlaşma sürecine serbest girişe izin veren bir mekanizma sağladı; uzlaşmayı kimin etkileyeceğine karar verme siyasi sorununu çözerken aynı anda sybil saldırılarını önledi.

Bitcoin blockchain'i yıllarca süren işleyişinde dikkate değer bir sağlamlık göstermiştir, ancak doğası gereği sınırlıdır. Bitcoin'in betik dili kasıtlı olarak kısıtlayıcı ve Turing-complete olmayan şekilde tasarlanmıştır; daha karmaşık uygulamalar oluşturmak için gerekli olan döngüler ve birçok özellikten yoksundur. Bu sınırlama sonsuz döngüleri ve diğer hesaplama saldırılarını önlemek için mevcuttur, ancak Bitcoin üzerine ne inşa edilebileceğini ciddi şekilde kısıtlar.

Son beş yılda Bitcoin'in işlevselliğini genişletmek için birçok girişim olmuştur. Colored coins alternatif varlıkların sahipliğini izlemek için Bitcoin blockchain'ini kullanmayı amaçladı, Namecoin merkeziyetsiz bir isim kayıt veritabanı oluşturmaya çalıştı ve çeşitli metacoin protokolleri Bitcoin'in üzerine ek katmanlar inşa etmeyi hedefledi. Bu yaklaşımlar umut vaat etse de, nihayetinde Bitcoin'in betik yetenekleri ve betikler içinden blockchain verilerine erişim yetersizliği nedeniyle sınırlı kaldılar.

Ethereum'un sağlamayı amaçladığı şey, rastgele state transition fonksiyonlarını kodlayabilen "sözleşmeler" oluşturmak için kullanılabilecek, yerleşik tam donanımlı Turing-complete bir programlama diline sahip bir blockchain'dir; bu sayede kullanıcılar yukarıda açıklanan sistemlerden herhangi birini ve henüz hayal etmediğimiz birçoğunu, mantığı birkaç satır kodla yazarak oluşturabilirler.

Bitcoin As A State Transition System

From a technical standpoint, the ledger of a cryptocurrency such as Bitcoin can be thought of as a state transition system, where there is a "state" consisting of the ownership status of all existing bitcoins and a "state transition function" that takes a state and a transaction and outputs a new state which is the result. In a standard banking system, for example, the state is a balance sheet, a transaction is a request to move \(X from A to B, and the state transition function reduces the value in A's account by \)X and increases the value in B's account by \(X. If A's account has less than \)X in the first place, the state transition function returns an error. Hence, one can formally define:

APPLY(S,TX) - S' or ERROR

In the banking system defined above:

APPLY({ Alice: \(50, Bob: \)50 },send \(20 from Alice to Bob") = { Alice: \)30, Bob: $70 }

But:

APPLY({ Alice: \(50, Bob: \)50 },send $70 from Alice to Bob) = ERROR

The "state" in Bitcoin is the collection of all coins (technically, "unspent transaction outputs" or UTXO) that have been minted and not yet spent, with each UTXO having a denomination and an owner (defined by a 20-byte address which is essentially a cryptographic public key). A transaction contains one or more inputs, with each input containing a reference to an existing UTXO and a cryptographic signature produced by the private key associated with the owner's address, and one or more outputs, with each output containing a new UTXO to be added to the state.

Ethereum state transition diagram showing how transactions transform blockchain state

The state transition function APPLY(S,TX) - S' can be defined roughly as follows:

  1. For each input in TX:
  2. If the referenced UTXO is not in S, return an error.
  3. If the provided signature does not match the owner of the UTXO, return an error.
  4. If the sum of the denominations of all input UTXO is less than the sum of the denominations of all output UTXO, return an error.
  5. Return S with all input UTXO removed and all output UTXO added.

The first half of the first step prevents transaction senders from spending coins that do not exist, the second half of the first step prevents transaction senders from spending other people's coins, and the second step enforces conservation of value. In order to use this for payment, the protocol is as follows. Suppose Alice wants to send 11.7 BTC to Bob. First, Alice will look for a set of available UTXO that she owns that totals up to at least 11.7 BTC. Realistically, Alice will not be able to get exactly 11.7 BTC; say that the smallest she can get is 6+4+2=12. She then creates a transaction with those three inputs and two outputs. The first output will be 11.7 BTC with Bob's address as its owner, and the second output will be the remaining 0.3 BTC "change", with the owner being Alice herself.

Bitcoin As A State Transition System

Teknik açıdan, Bitcoin gibi bir kripto para biriminin defteri, tüm mevcut bitcoin'lerin sahiplik durumundan oluşan bir "durum" ve bir durum ile bir işlem alıp sonuç olan yeni bir durum üreten bir "state transition fonksiyonu"nun bulunduğu bir state transition sistemi olarak düşünülebilir. Standart bir bankacılık sisteminde, örneğin, durum bir bilanço, işlem A'dan B'ye \(X transfer etme talebi ve state transition fonksiyonu A'nın hesabındaki değeri \)X azaltıp B'nin hesabındaki değeri \(X artıran fonksiyondur. A'nın hesabında başlangıçta \)X'den az varsa, state transition fonksiyonu bir hata döndürür.

Ethereum state transition diagram showing how transactions transform blockchain state

Bitcoin'deki "durum", basılmış ve henüz harcanmamış tüm madeni paraların (teknik olarak, "harcanmamış işlem çıktıları" veya UTXO) koleksiyonudur; her UTXO'nun bir değeri ve bir sahibi vardır (20 baytlık bir adresle tanımlanır ve bu esasen kriptografik bir public key'dir). Bir işlem, her biri mevcut bir UTXO'ya referans ve sahibin adresiyle ilişkili private key tarafından üretilmiş kriptografik bir imza içeren bir veya daha fazla girdi ve her biri duruma eklenecek yeni bir UTXO içeren bir veya daha fazla çıktı içerir.

State transition fonksiyonu APPLY(S,TX) - S' kabaca şu şekilde tanımlanabilir:

  1. TX'teki her girdi için, referans verilen UTXO S'de yoksa, hata döndür.
  2. Sağlanan imza UTXO'nun sahibiyle eşleşmiyorsa, hata döndür.
  3. Tüm girdi UTXO'larının değerlerinin toplamı tüm çıktı UTXO'larının değerlerinin toplamından azsa, hata döndür.
  4. Tüm girdi UTXO'ları kaldırılmış ve tüm çıktı UTXO'ları eklenmiş S'yi döndür.

İlk adımın ilk yarısı, işlem göndericilerinin var olmayan madeni paraları harcamasını önler; ilk adımın ikinci yarısı, işlem göndericilerinin başkalarının madeni paralarını harcamasını önler ve ikinci adım değer korunumunu sağlar. Bunu ödeme için kullanmak üzere protokol şöyledir: Alice'in Bob'a 11,7 BTC göndermek istediğini varsayalım. İlk olarak, Alice en az 11,7 BTC'ye ulaşan sahip olduğu mevcut UTXO'lar kümesini arayacaktır. Gerçekçi olarak, Alice tam 11,7 BTC elde edemeyecektir; diyelim ki elde edebileceği en küçük miktar 6+4+2=12'dir. Daha sonra bu üç girdi ve iki çıktı ile bir işlem oluşturur. İlk çıktı, sahibi Bob'un adresi olan 11,7 BTC olacaktır ve ikinci çıktı, sahibi Alice'in kendisi olan kalan 0,3 BTC "para üstü" olacaktır.

Mining

If we had access to a trustworthy centralized service, this system would be trivial to implement; it could simply be coded exactly as described, using a centralized server's hard drive to keep track of the state. However, with Bitcoin we are trying to build a decentralized currency system, so we will need to combine the state transaction system with a consensus system in order to ensure that everyone agrees on the order of transactions. Bitcoin's decentralized consensus process requires nodes in the network to continuously attempt to produce packages of transactions called "blocks." The network is intended to produce roughly one block every ten minutes, with each block containing a timestamp, a nonce, a reference to (i.e. hash of) the previous block and a list of all of the transactions that have taken place since the previous block. Over time, this creates a persistent, ever-growing, "blockchain" that constantly updates to represent the latest state of the Bitcoin ledger.

Ethereum block structure showing linked blocks with timestamps nonces and transactions

The algorithm for checking if a block is valid, expressed in this paradigm, is as follows:

  1. Check if the previous block referenced by the block exists and is valid.
  2. Check that the timestamp of the block is greater than that of the previous block and less than 2 hours into the future.
  3. Check that the proof of work on the block is valid.
  4. Let S[0] be the state at the end of the previous block.
  5. Suppose TX is the block's transaction list with n transactions. For all i in 0...n-1, set S[i+1] = APPLY(S[i],TX[i]). If any application returns an error, exit and return false.
  6. Return true, and register S[n] as the state at the end of this block.

Essentially, each transaction in the block must provide a valid state transition from what was the canonical state before the transaction was executed to some new state. Note that the state is not encoded in the block in any way; it is purely an abstraction to be remembered by the validating node and can only be (securely) computed for any block by starting from the genesis state and sequentially applying every transaction in every block. Additionally, note that the order in which the miner includes transactions into the block matters; if there are two transactions A and B in a block such that B spends a UTXO created by A, then the block will be valid if A comes before B but not otherwise.

The one validity condition present in the above list that is not found in other systems is the requirement for "proof of work." The precise condition is that the double-SHA256 hash of every block, treated as a 256-bit number, must be less than a dynamically adjusted target, which as of the time of this writing is approximately \(2^{187}\). The purpose of this is to make block creation computationally "hard," thereby preventing sybil attackers from remaking the entire blockchain in their favor. Because SHA256 is designed to be a completely unpredictable pseudorandom function, the only way to create a valid block is simply trial and error, repeatedly incrementing the nonce and seeing if the new hash matches.

At the current target of \(\sim 2^{187}\), the network must make an average of \(\sim 2^{69}\) tries before a valid block is found; in general, the target is recalibrated by the network every 2016 blocks so that on average a new block is produced by some node in the network every ten minutes. In order to compensate miners for this computational work, the miner of every block is entitled to include a transaction giving themselves 25 BTC out of nowhere. Additionally, if any transaction has a higher total denomination in its inputs than in its outputs, the difference also goes to the miner as a "transaction fee." Incidentally, this is also the only mechanism by which BTC are issued; the genesis state contained no coins at all.

In order to better understand the purpose of mining, let us examine what happens in the event of a malicious attacker. Since Bitcoin's underlying cryptography is known to be secure, the attacker will target the one part of the Bitcoin system that is not protected by cryptography directly: the order of transactions. The attacker's strategy is simple:

  1. Send 100 BTC to a merchant in exchange for some product (preferably a rapid-delivery digital good).
  2. Wait for the delivery of the product.
  3. Produce another transaction sending the same 100 BTC to himself.
  4. Try to convince the network that his transaction to himself was the one that came first.

Once step (1) has taken place, after a few minutes some miner will include the transaction in a block, say block number 270000. After about one hour, five more blocks will have been added to the chain after that block, with each of those blocks indirectly pointing to the transaction and thus "confirming" it. At this point, the merchant will accept the payment as finalized and deliver the product. Since we are assuming this is a digital good, delivery is instant. Now, the attacker creates another transaction sending the 100 BTC to himself. If the attacker simply releases it into the wild, the transaction will not be processed; miners will attempt to run APPLY(S,TX) and notice that TX consumes a UTXO which is no longer in the state. So instead, the attacker creates a "fork" of the blockchain, starting by mining another version of block 270000 pointing to the same block 269999 as a parent but with the new transaction in place of the old one. Because the block data is different, this requires redoing the proof of work. Furthermore, the attacker's new version of block 270000 has a different hash, so the original blocks 270001 to 270005 do not "point" to it; thus, the original chain and the attacker's new chain are completely separate. The rule is that in a fork the longest blockchain is taken to be the truth, and so legitimate miners will work on the 270005 chain while the attacker alone is working on the 270000 chain. In order for the attacker to make his blockchain the longest, he would need to have more computational power than the rest of the network combined in order to catch up (hence, "51% attack").

Mining

Güvenilir merkezi bir hizmete erişimimiz olsaydı, bu sistemi uygulamak önemsiz olurdu; tam olarak açıklandığı gibi kodlanabilir, durumu takip etmek için merkezi bir sunucunun sabit diskini kullanarak. Ancak Bitcoin ile merkeziyetsiz bir para birimi sistemi inşa etmeye çalışıyoruz, bu nedenle herkesin işlemlerin sırası üzerinde anlaşmasını sağlamak için state transition sistemini bir uzlaşma sistemi ile birleştirmemiz gerekecek. Bitcoin'in merkeziyetsiz uzlaşma süreci, ağdaki düğümlerin sürekli olarak "blok" adı verilen işlem paketleri üretmeye çalışmasını gerektirir. Ağ, yaklaşık her on dakikada bir blok üretmeyi amaçlar; her blok bir zaman damgası, bir nonce, önceki bloğa bir referans (yani hash) ve önceki bloktan bu yana gerçekleşen tüm işlemlerin bir listesini içerir.

Ethereum block structure showing linked blocks with timestamps nonces and transactions

Zamanla bu, Bitcoin defterinin en son durumunu temsil etmek için sürekli güncellenen kalıcı, sürekli büyüyen bir "blockchain" oluşturur. Bir bloğun geçerli olup olmadığını kontrol etme algoritması, bu paradigmada şu şekilde ifade edilir:

  1. Blok tarafından referans verilen önceki bloğun var olduğunu ve geçerli olduğunu kontrol et.
  2. Bloğun zaman damgasının önceki bloktan büyük ve gelecekte 2 saatten az olduğunu kontrol et.
  3. Blok üzerindeki proof of work'ün geçerli olduğunu kontrol et.
  4. S önceki bloğun sonundaki durum olsun.
  5. TX, n işlem içeren bloğun işlem listesi olsun. 0...n-1'deki tüm i için S = APPLY(S,TX[i]) ayarla. Herhangi bir uygulama hata döndürürse, çık ve false döndür.
  6. true döndür ve S'yi bu bloğun sonundaki durum olarak kaydet.

Esasen, bloktaki her işlem, işlem yürütülmeden önceki kanonik durumdan yeni bir duruma geçerli bir state transition sağlamalıdır. Durumun blokta hiçbir şekilde kodlanmadığını unutmayın; tamamen doğrulama düğümü tarafından hatırlanacak bir soyutlamadır ve herhangi bir blok için yalnızca genesis durumundan başlayarak her bloktaki her işlem sıralı olarak uygulanarak (güvenli bir şekilde) hesaplanabilir.

Madenci, hesaplama çalışması için yeni oluşturulan bitcoin'ler ve işlem ücretleri ile ödüllendirilir. Madencilik süreci şöyle çalışır: madenciler blok başlığını alır ve belirli bir zorluk hedefinin altında bir hash bulana kadar farklı nonce değerleriyle tekrar tekrar hash ederler. Bir madenci böyle bir hash bulduğunda, bloğu ağa yayınlar ve diğer düğümler hash'in geçerli olduğunu ve bloktaki tüm işlemlerin geçerli olduğunu doğrular. Zorluk hedefi, blokların yaklaşık sabit bir hızda üretilmesini sağlamak için protokol tarafından her 2016 blokta (yaklaşık iki hafta) otomatik olarak ayarlanır.

Uzun vadede, blockchain'in güvenliğinin madencilerin dürüst davranmaları için finansal teşvike sahip olmasına bağlı olduğunu unutmayın. Bir saldırgan ağın madencilik gücünün %50'sinden fazlasını kontrol ederse, dürüst zincirden daha hızlı büyüyen alternatif bir blockchain oluşturarak potansiyel olarak bir "%51 saldırısı" gerçekleştirebilir. Ancak böyle bir saldırı muazzam hesaplama kaynakları gerektirir ve ağ blockchain'in bütünlüğüne olan güvenini kaybettikçe saldırganın madencilik ödülleri muhtemelen değersiz hale gelir.

Merkle Trees

Merkle trees are a fundamental data structure used in Bitcoin blocks to enable efficient and secure verification of transaction inclusion. A Merkle tree is a binary tree of hashes where the leaf nodes contain hashes of individual transactions, and each interior node contains the hash of its two children, recursively building up to a single root hash that is stored in the block-header/" class="glossary-link" data-slug="block-header" title="block header">block header. This hierarchical structure allows anyone to verify that a specific transaction is included in a block by downloading only the Merkle branch—the chain of hashes from the transaction up to the root—rather than downloading all transactions in the block.

Simplified Payment Verification using Merkle tree branch proofs for transaction verification

The efficiency gains are substantial: while a full Bitcoin node must store the entire blockchain (approximately 15GB as of 2013), a simplified payment verification (SPV) node only needs to download block headers containing Merkle roots, requiring just 4MB of data. To verify a transaction, an SPV node requests the Merkle branch from full nodes, which requires only \(O(\log n)\) data where \(n\) is the number of transactions in a block. This logarithmic scaling makes it feasible to run lightweight clients on mobile devices and low-resource environments.

Bitcoin's use of Merkle trees demonstrates a key principle: cryptographic structures can dramatically reduce the trust and resource requirements for participating in a decentralized network. This same principle underlies Ethereum's design, where Merkle trees are used not only for transactions but also for state and receipt storage, enabling even more sophisticated light client protocols.

Merkle Trees

Merkle tree'ler, Bitcoin bloklarında işlem dahilinin verimli ve güvenli doğrulanmasını sağlamak için kullanılan temel bir veri yapısıdır. Merkle tree, yaprak düğümlerin bireysel işlemlerin hash'lerini içerdiği, her iç düğümün iki çocuğunun hash'ini içerdiği ve blok başlığında saklanan tek bir kök hash'e kadar özyinelemeli olarak inşa edilen bir ikili hash ağacıdır. Bu hiyerarşik yapı, herhangi birinin, bloktaki tüm işlemleri indirmek yerine yalnızca Merkle dalını—işlemden köke kadar olan hash zincirini—indirerek belirli bir işlemin bir blokta yer aldığını doğrulamasına olanak tanır.

Simplified Payment Verification using Merkle tree branch proofs for transaction verification

Verimlilik kazanımları önemlidir: tam bir Bitcoin düğümü tüm blockchain'i (2013 itibarıyla yaklaşık 15GB) depolamak zorundayken, basitleştirilmiş ödeme doğrulama (SPV) düğümünün yalnızca Merkle köklerini içeren blok başlıklarını indirmesi gerekir ve bu yalnızca 4MB veri gerektirir. Bir işlemi doğrulamak için, SPV düğümü tam düğümlerden Merkle dalını talep eder ve bu yalnızca O(log n) veri gerektirir; burada n bloktaki işlem sayısıdır. Bu logaritmik ölçekleme, mobil cihazlarda ve düşük kaynaklı ortamlarda hafif istemcilerin çalıştırılmasını mümkün kılar.

Bitcoin'in Merkle tree kullanımı önemli bir ilkeyi gösterir: kriptografik yapılar, merkeziyetsiz bir ağa katılmak için güven ve kaynak gereksinimlerini dramatik şekilde azaltabilir. Aynı ilke Ethereum'un tasarımının temelini oluşturur; burada Merkle tree'ler yalnızca işlemler için değil, aynı zamanda durum ve makbuz depolama için de kullanılır ve daha sofistike hafif istemci protokollerini mümkün kılar.

Alternative Blockchain Applications

The success of Bitcoin's blockchain inspired numerous attempts to extend the concept beyond simple currency. Namecoin, launched in 2010, was one of the earliest examples—a decentralized name registration database built on a blockchain, allowing users to register names in a distributed namespace that no central authority could censor or revoke. Colored coins emerged as a way to represent alternative assets on the Bitcoin blockchain by "tagging" specific transaction outputs to represent ownership of real-world assets, company shares, or other cryptocurrencies. Metacoins and meta-protocols like Mastercoin (later Omni) layered additional functionality on top of Bitcoin by encoding extra data in Bitcoin transactions and building separate protocol rules on top.

However, all these approaches suffered from fundamental limitations imposed by Bitcoin's architecture. The Bitcoin scripting language is intentionally restricted—it cannot access blockchain state, lacks loops and complex control flow, and provides limited introspection into transaction values. Building sophisticated applications required awkward workarounds: encoding metadata in transaction fields never intended for that purpose, relying on off-chain infrastructure for complex logic, or accepting severe limitations on what the protocol could accomplish.

These constraints motivated the search for a more general-purpose blockchain platform. Rather than building yet another special-purpose protocol on top of Bitcoin's limited foundation, Ethereum takes a different approach: providing a blockchain with a built-in Turing-complete programming language, allowing anyone to write smart contracts and decentralized applications with arbitrary rules for ownership, transaction formats, and state transition functions.

Alternative Blockchain Applications

Bitcoin'in blockchain'inin başarısı, kavramı basit para biriminin ötesine genişletmeye yönelik çok sayıda girişime ilham verdi. 2010'da başlatılan Namecoin, en erken örneklerden biriydi—bir blockchain üzerine kurulmuş merkeziyetsiz bir isim kayıt veritabanı, kullanıcıların hiçbir merkezi otoritenin sansürleyemeyeceği veya iptal edemeyeceği dağıtılmış bir ad alanında isim kaydetmesine izin veren. Colored coins, belirli işlem çıktılarını "etiketleyerek" gerçek dünya varlıklarının, şirket hisselerinin veya diğer kripto paraların sahipliğini temsil etmek için Bitcoin blockchain'inde alternatif varlıkları temsil etmenin bir yolu olarak ortaya çıktı. Metacoin'ler ve Mastercoin (sonradan Omni) gibi meta-protokoller, Bitcoin işlemlerine ek veri kodlayarak ve bunun üzerine ayrı protokol kuralları inşa ederek Bitcoin'in üzerine ek işlevsellik katmanladı.

Ancak tüm bu yaklaşımlar, Bitcoin'in mimarisi tarafından dayatılan temel sınırlamalardan muzdaripti. Bitcoin betik dili kasıtlı olarak kısıtlıdır—blockchain durumuna erişemez, döngülerden ve karmaşık kontrol akışından yoksundur ve işlem değerlerine sınırlı iç gözlem sağlar. Sofistike uygulamalar inşa etmek garip geçici çözümler gerektiriyordu: metadata'yı hiçbir zaman bu amaç için tasarlanmamış işlem alanlarına kodlamak, karmaşık mantık için zincir dışı altyapıya güvenmek veya protokolün başarabileceklerindeki ciddi sınırlamaları kabul etmek.

Bu kısıtlamalar, daha genel amaçlı bir blockchain platformu arayışını motive etti. Bitcoin'in sınırlı temeli üzerine bir başka özel amaçlı protokol inşa etmek yerine, Ethereum farklı bir yaklaşım benimser: yerleşik Turing-complete bir programlama diline sahip bir blockchain sağlayarak, herkesin sahiplik, işlem formatları ve state transition fonksiyonları için rastgele kurallarla smart contract'lar ve merkeziyetsiz uygulamalar yazmasına olanak tanır.

Scripting

Bitcoin Script, the language used to define spending conditions for Bitcoin transactions, is intentionally designed with severe limitations. It is not Turing-complete—most notably, it lacks loops and complex control flow structures. The language operates as a simple stack-based execution environment where operations push and pop values, evaluate cryptographic conditions, and ultimately return true or false to determine whether a transaction is valid. While this simplicity provides security benefits and makes formal analysis easier, it also makes many types of applications impossible to implement.

These limitations fall into three main categories. First, the lack of Turing-completeness prevents implementing complex state machines, decision trees, or any algorithm requiring iteration. Second, value-blindness means that scripts cannot specify fine-grained control over withdrawal amounts—a UTXO can only be spent in its entirety, with change sent to a new output. A script cannot, for example, limit withdrawals to a maximum of X per day while leaving the remainder locked. Third, the lack of blockchain state awareness means that UTXO are either spent or unspent with no intermediate states, making multi-stage contracts impossible to implement purely on-chain.

These constraints make sophisticated applications like decentralized autonomous organizations, savings wallets with withdrawal limits, decentralized exchanges, or prediction markets either impossible or require awkward off-chain mechanisms. An advanced financial contract might require access to market data, the ability to maintain internal state across multiple transactions, and complex conditional logic—none of which Bitcoin Script can provide. Ethereum removes these limitations by providing a Turing-complete language with full access to blockchain state.

Scripting

Bitcoin Script, Bitcoin işlemleri için harcama koşullarını tanımlamak için kullanılan dil, kasıtlı olarak ciddi sınırlamalarla tasarlanmıştır. Turing-complete değildir—en önemlisi döngüler ve karmaşık kontrol akışı yapılarından yoksundur. Dil, işlemlerin değerleri ittiği ve çektiği, kriptografik koşulları değerlendirdiği ve nihayetinde bir işlemin geçerli olup olmadığını belirlemek için true veya false döndürdüğü basit bir yığın tabanlı yürütme ortamı olarak çalışır. Bu basitlik güvenlik avantajları sağlar ve biçimsel analizi kolaylaştırırken, birçok uygulama türünü uygulamayı imkansız kılar.

Bu sınırlamalar üç ana kategoriye ayrılır. Birincisi, Turing-completeness eksikliği karmaşık durum makinelerinin, karar ağaçlarının veya yineleme gerektiren herhangi bir algoritmanın uygulanmasını engeller. İkincisi, değer körlüğü, betiklerin çekim miktarları üzerinde ince ayarlı kontrol belirleyemeyeceği anlamına gelir—bir UTXO yalnızca bütünüyle harcanabilir ve para üstü yeni bir çıktıya gönderilir. Bir betik, örneğin, günlük maksimum X çekimle sınırlandırırken kalanı kilitli tutamaz. Üçüncüsü, blockchain durum farkındalığı eksikliği, UTXO'ların ya harcanmış ya da harcanmamış olduğu ve ara durumlar olmadığı anlamına gelir, bu da çok aşamalı sözleşmelerin tamamen zincir üzerinde uygulanmasını imkansız kılar.

Bu kısıtlamalar, merkeziyetsiz otonom organizasyonlar, çekim limitleri olan tasarruf cüzdanları, merkeziyetsiz borsalar veya tahmin piyasaları gibi sofistike uygulamaları ya imkansız kılar ya da garip zincir dışı mekanizmalar gerektirir. Gelişmiş bir finansal sözleşme, piyasa verilerine erişim, birden fazla işlem boyunca dahili durum sürdürme yeteneği ve karmaşık koşullu mantık gerektirebilir—bunların hiçbirini Bitcoin Script sağlayamaz. Ethereum, blockchain durumuna tam erişim ile Turing-complete bir dil sağlayarak bu sınırlamaları ortadan kaldırır.

Ethereum

Ethereum's fundamental goal is to provide a blockchain with a built-in Turing-complete programming language that allows anyone to write smart contracts and decentralized applications where they can create their own arbitrary rules for ownership, transaction formats, and state transition functions. Rather than designing a protocol for specific applications like currency, name registration, or asset trading, Ethereum provides a foundational layer—a blockchain-based distributed computing platform that developers can use to build any application they can imagine.

The architecture differs fundamentally from Bitcoin's UTXO model. Ethereum uses an account-based system where the blockchain state consists of a mapping from addresses to account objects. Each account has a balance, a transaction counter (nonce), and for contract accounts, associated code and storage. The platform includes a built-in Turing-complete programming language for writing contract code that executes in the Ethereum Virtual Machine (EVM), a stack-based execution environment that processes transactions and state transitions.

This generality enables a vast range of applications: alternative cryptocurrencies with custom issuance rules, financial derivatives and stablecoins, identity and reputation systems, decentralized file storage, decentralized autonomous organizations (DAOs), and much more. The whitepaper emphasizes that Ethereum is not optimized for any particular use case but instead provides the fundamental building blocks—accounts, transactions, a Turing-complete language, and gas-metered execution—that developers can combine to create whatever applications the ecosystem demands.

Ethereum

Ethereum'un temel hedefi, herkesin smart contract'lar ve merkeziyetsiz uygulamalar yazabileceği, sahiplik, işlem formatları ve state transition fonksiyonları için kendi rastgele kurallarını oluşturabileceği yerleşik Turing-complete bir programlama diline sahip bir blockchain sağlamaktır. Para birimi, isim kaydı veya varlık ticareti gibi belirli uygulamalar için bir protokol tasarlamak yerine, Ethereum temel bir katman sağlar—geliştiricilerin hayal edebilecekleri herhangi bir uygulamayı inşa etmek için kullanabilecekleri blockchain tabanlı dağıtık bir bilgi işlem platformu.

Mimari, Bitcoin'in UTXO modelinden temelden farklıdır. Ethereum, blockchain durumunun adreslerden hesap nesnelerine bir eşlemeden oluştuğu hesap tabanlı bir sistem kullanır. Her hesabın bir bakiyesi, bir işlem sayacı (nonce) ve sözleşme hesapları için ilişkili kodu ve depolama alanı vardır. Platform, Ethereum Virtual Machine'de (EVM) yürütülen sözleşme kodu yazmak için yerleşik Turing-complete bir programlama dili içerir; EVM, işlemleri ve durum geçişlerini işleyen yığın tabanlı bir yürütme ortamıdır.

Bu genellik, geniş bir uygulama yelpazesini mümkün kılar: özel ihraç kurallarına sahip alternatif kripto paralar, finansal türevler ve stablecoin'ler, kimlik ve itibar sistemleri, merkeziyetsiz dosya depolama, merkeziyetsiz otonom organizasyonlar (DAO'lar) ve çok daha fazlası. Teknik rapor, Ethereum'un herhangi bir belirli kullanım durumu için optimize edilmediğini, bunun yerine temel yapı taşları—hesaplar, işlemler, Turing-complete bir dil ve gas ile ölçülmüş yürütme—sağladığını ve geliştiricilerin ekosistemin talep ettiği herhangi bir uygulamayı oluşturmak için bunları birleştirebileceğini vurgular.

Ethereum Accounts

In Ethereum, the state is made up of accounts, and there are two fundamental types. Externally owned accounts (EOAs) are controlled by private keys and have no associated code—they represent human users or external entities interacting with the blockchain. Contract accounts are controlled by their contract code and are activated when they receive a message or transaction. Both types share a common structure: every account has a nonce (a counter used to ensure each transaction can only be processed once), an ether balance, and for contracts specifically, contract code and persistent storage.

Ether is the primary internal cryptocurrency of Ethereum, serving as both a medium of value transfer and the fundamental unit for paying transaction fees (gas). Unlike Bitcoin's UTXO model where value is distributed across multiple unspent outputs, Ethereum accounts maintain a simple balance that increases when they receive ether and decreases when they send it. This account-based model simplifies many types of applications, particularly those requiring persistent state or complex access control, though it introduces different security considerations compared to Bitcoin's approach.

The distinction between EOAs and contract accounts is crucial to understanding Ethereum's operation. EOAs can initiate transactions by creating and signing messages with their private keys, paying gas fees to have their transactions included in blocks. Contract accounts cannot initiate transactions themselves but can send messages to other contracts in response to receiving a transaction or message, enabling complex chains of execution where a single external transaction triggers multiple contract-to-contract interactions.

Ethereum Accounts

Ethereum'da durum hesaplardan oluşur ve iki temel tür vardır. Harici olarak sahiplenilmiş hesaplar (EOA'lar) özel anahtarlar tarafından kontrol edilir ve ilişkili kodları yoktur—blockchain ile etkileşime giren insan kullanıcıları veya harici varlıkları temsil ederler. Sözleşme hesapları, sözleşme kodları tarafından kontrol edilir ve bir mesaj veya işlem aldıklarında etkinleştirilir. Her iki tür de ortak bir yapıyı paylaşır: her hesabın bir nonce'u (her işlemin yalnızca bir kez işlenmesini sağlamak için kullanılan bir sayaç), bir ether bakiyesi ve özellikle sözleşmeler için sözleşme kodu ve kalıcı depolama alanı vardır.

Ether, Ethereum'un birincil dahili kripto para birimidir ve hem değer transferi aracı hem de işlem ücretlerini (gas) ödemek için temel birim olarak hizmet eder. Değerin birden fazla harcanmamış çıktıya dağıtıldığı Bitcoin'in UTXO modelinin aksine, Ethereum hesapları ether aldıklarında artan ve gönderdiklerinde azalan basit bir bakiye sürdürür. Bu hesap tabanlı model, özellikle kalıcı durum veya karmaşık erişim kontrolü gerektiren birçok uygulama türünü basitleştirir, ancak Bitcoin'in yaklaşımına kıyasla farklı güvenlik değerlendirmeleri sunar.

EOA'lar ve sözleşme hesapları arasındaki ayrım, Ethereum'un işleyişini anlamak için çok önemlidir. EOA'lar, özel anahtarlarıyla mesaj oluşturup imzalayarak işlem başlatabilir ve işlemlerinin bloklara dahil edilmesi için gas ücreti öderler. Sözleşme hesapları kendi başlarına işlem başlatamaz, ancak bir işlem veya mesaj almaya yanıt olarak diğer sözleşmelere mesaj gönderebilir; bu, tek bir harici işlemin birden fazla sözleşmeler arası etkileşimi tetiklediği karmaşık yürütme zincirlerini mümkün kılar.

Messages and Transactions

Transactions in Ethereum are signed data packages created by externally owned accounts and broadcast to the network. A transaction contains the recipient address, a cryptographic signature proving the sender's identity, the amount of ether to transfer, an optional data field (crucial for interacting with contracts), STARTGAS (the maximum number of computational steps the transaction is allowed to take), and GASPRICE (the fee per computational step the sender is willing to pay). Miners collect these transactions, validate them, execute them, and include them in blocks, receiving the gas fees as compensation.

Messages are conceptually similar to transactions but are produced by contracts rather than external actors. When a contract's code executes, it can send messages to other contracts—these internal messages contain the sender (the contract address), recipient, an amount of ether to transfer, an optional data payload, and a STARTGAS limit. Messages enable contract-to-contract communication, allowing complex applications to be built from multiple interacting contracts rather than monolithic programs.

The gas mechanism is crucial for preventing abuse: every computational step, storage operation, and data byte in a transaction consumes gas. If a transaction runs out of gas before completing, all state changes are reverted (except the gas payment to the miner), preventing infinite loops or excessive computation from grinding the network to a halt. The sender specifies both the total gas budget (STARTGAS) and the price they're willing to pay per unit (GASPRICE), and any unused gas is refunded after execution completes.

Messages and Transactions

Ethereum'daki işlemler, harici olarak sahiplenilmiş hesaplar tarafından oluşturulan ve ağa yayınlanan imzalı veri paketleridir. Bir işlem; alıcı adresi, gönderenin kimliğini kanıtlayan kriptografik imza, transfer edilecek ether miktarı, isteğe bağlı bir veri alanı (sözleşmelerle etkileşim için kritik), STARTGAS (işlemin alabileceği maksimum hesaplama adımı sayısı) ve GASPRICE (gönderenin hesaplama adımı başına ödemeye razı olduğu ücret) içerir. Madenciler bu işlemleri toplar, doğrular, yürütür ve bloklara dahil eder; karşılığında gas ücretlerini alırlar.

Mesajlar kavramsal olarak işlemlere benzer ancak harici aktörler yerine sözleşmeler tarafından üretilir. Bir sözleşmenin kodu yürütüldüğünde, diğer sözleşmelere mesaj gönderebilir—bu dahili mesajlar göndereni (sözleşme adresi), alıcıyı, transfer edilecek ether miktarını, isteğe bağlı bir veri yükünü ve bir STARTGAS limitini içerir. Mesajlar, sözleşmeler arası iletişimi mümkün kılarak, karmaşık uygulamaların monolitik programlar yerine birden fazla etkileşen sözleşmeden inşa edilmesine olanak tanır.

Gas mekanizması, kötüye kullanımı önlemek için kritiktir: bir işlemdeki her hesaplama adımı, depolama işlemi ve veri baytı gas tüketir. Bir işlem tamamlanmadan önce gas'ı biterse, tüm durum değişiklikleri geri alınır (madenciye gas ödemesi hariç); bu, sonsuz döngülerin veya aşırı hesaplamanın ağı durma noktasına getirmesini önler. Gönderen hem toplam gas bütçesini (STARTGAS) hem de birim başına ödemeye razı olduğu fiyatı (GASPRICE) belirtir ve yürütme tamamlandıktan sonra kullanılmamış gas iade edilir.

Ethereum State Transition Function

The Ethereum state transition function APPLY(S,TX) - S' defines how a transaction transforms the blockchain state, and it follows a precise sequence of steps. First, the system checks transaction validity: verifying the signature is correct, confirming the nonce matches the sender's account nonce, and ensuring the sender has sufficient balance to pay the upfront cost (STARTGAS × GASPRICE plus the value being sent). If any check fails, the transaction is rejected before execution begins. If valid, the transaction fee is deducted from the sender's account, the sender's nonce is incremented, and an initial gas counter is set to STARTGAS minus a per-byte fee for the transaction data.

Ethereum state transition function showing gas deduction value transfer and code execution

Next, the system transfers the specified ether value from the sender to the recipient. If the recipient is an externally owned account, this completes the transaction. If the recipient is a contract account, the contract's code runs in the Ethereum Virtual Machine, consuming gas for each operation until either the code completes successfully, the code explicitly halts, or the gas runs out. During execution, the contract can read and modify its storage, send messages to other contracts, and create new contracts.

Finally, if the value transfer failed (insufficient balance) or code execution failed (running out of gas or hitting an error), all state changes are reverted—except that the sender still pays gas fees to the miner for the computation performed. If execution succeeded, the remaining gas is refunded to the sender, and the gas that was consumed is sent to the miner as a fee. This mechanism ensures that miners are compensated for computation while preventing runaway execution from consuming unbounded resources.

Ethereum State Transition Function

Ethereum state transition fonksiyonu APPLY(S,TX) - S', bir işlemin blockchain durumunu nasıl dönüştürdüğünü tanımlar ve kesin bir adım dizisini takip eder. İlk olarak, sistem işlem geçerliliğini kontrol eder: imzanın doğru olduğunu doğrulama, nonce'un gönderenin hesap nonce'uyla eşleştiğini onaylama ve gönderenin peşin maliyeti (STARTGAS x GASPRICE artı gönderilen değer) ödemeye yetecek bakiyeye sahip olduğunu sağlama. Herhangi bir kontrol başarısız olursa, işlem yürütme başlamadan önce reddedilir. Geçerliyse, işlem ücreti gönderenin hesabından düşülür, gönderenin nonce'u artırılır ve başlangıç gas sayacı STARTGAS eksi işlem verileri için bayt başına ücret olarak ayarlanır.

Ethereum state transition function showing gas deduction value transfer and code execution

Ardından, sistem belirtilen ether değerini göndericiden alıcıya transfer eder. Alıcı harici olarak sahiplenilmiş bir hesapsa, bu işlemi tamamlar. Alıcı bir sözleşme hesabıysa, sözleşmenin kodu Ethereum Virtual Machine'de çalışır ve her işlem için gas tüketir; kod başarıyla tamamlanana, kod açıkça durdurana veya gas bitene kadar devam eder. Yürütme sırasında sözleşme, depolama alanını okuyabilir ve değiştirebilir, diğer sözleşmelere mesaj gönderebilir ve yeni sözleşmeler oluşturabilir.

Son olarak, değer transferi başarısız olursa (yetersiz bakiye) veya kod yürütme başarısız olursa (gas bitmesi veya bir hataya çarpma), tüm durum değişiklikleri geri alınır—ancak gönderen yine de gerçekleştirilen hesaplama için madenciye gas ücreti öder. Yürütme başarılı olduysa, kalan gas göndericiye iade edilir ve tüketilen gas madenciye ücret olarak gönderilir. Bu mekanizma, madencilerin hesaplama için tazmin edilmesini sağlarken kontrolsüz yürütmenin sınırsız kaynak tüketmesini önler.

Code Execution

The Ethereum Virtual Machine (EVM) is the runtime environment where contract code executes—a low-level, stack-based virtual machine similar in concept to the Java Virtual Machine or WebAssembly. Contract code is stored as a sequence of bytes, where each byte represents an operation (opcode) that the EVM can execute. The execution model is deliberately simple and deterministic: every node running the EVM with the same input state and transaction must arrive at the same output state, ensuring consensus across the network.

The EVM provides three distinct types of storage for computation. The stack is a last-in-first-out (LIFO) structure limited to 1024 elements, used for immediate operation values. Memory is an infinitely expandable byte array that persists only for the duration of a single message call and is reset between executions. Storage is the persistent key-value store permanently associated with each account/" class="glossary-link" data-slug="contract-account" title="contract account">contract account, where contracts maintain their long-term state across transactions. These storage types are priced differently in gas—stack and memory operations are cheap, while storage operations are expensive to prevent blockchain bloat.

During execution, contract code has access to crucial context: it can read the message sender's address, the amount of ether sent, the data payload provided by the caller, and block-level properties like the current block number, timestamp, and miner address. The code can return an output byte array to the caller and can send messages to other contracts or create new contracts. This execution model is Turing-complete—loops and complex control flow are possible—but the gas mechanism ensures that all computation terminates in bounded time, solving the halting problem economically rather than through language restrictions.

Code Execution

Ethereum Virtual Machine (EVM), sözleşme kodunun yürütüldüğü çalışma zamanı ortamıdır—kavramsal olarak Java Virtual Machine veya WebAssembly'ye benzer düşük seviyeli, yığın tabanlı bir sanal makine. Sözleşme kodu, her baytın EVM'nin yürütebileceği bir işlemi (opcode) temsil ettiği bir bayt dizisi olarak depolanır. Yürütme modeli kasıtlı olarak basit ve deterministiktir: aynı giriş durumu ve işlemle EVM'yi çalıştıran her düğüm aynı çıkış durumuna ulaşmalıdır, bu da ağ genelinde uzlaşmayı sağlar.

EVM, hesaplama için üç farklı depolama türü sağlar. Yığın, anlık işlem değerleri için kullanılan, 1024 öğeyle sınırlı son giren ilk çıkar (LIFO) yapısıdır. Bellek, yalnızca tek bir mesaj çağrısı süresince var olan ve yürütmeler arasında sıfırlanan sonsuz genişletilebilir bir bayt dizisidir. Depolama, her sözleşme hesabıyla kalıcı olarak ilişkili olan ve sözleşmelerin işlemler boyunca uzun vadeli durumlarını sürdürdüğü kalıcı anahtar-değer deposudur. Bu depolama türleri gas'ta farklı şekilde fiyatlandırılır—yığın ve bellek işlemleri ucuzdur, depolama işlemleri ise blockchain şişmesini önlemek için pahalıdır.

Yürütme sırasında, sözleşme kodunun kritik bağlama erişimi vardır: mesaj gönderenin adresini, gönderilen ether miktarını, çağıran tarafından sağlanan veri yükünü ve mevcut blok numarası, zaman damgası ve madenci adresi gibi blok düzeyindeki özellikleri okuyabilir. Kod, çağırana bir çıkış bayt dizisi döndürebilir ve diğer sözleşmelere mesaj gönderebilir veya yeni sözleşmeler oluşturabilir. Bu yürütme modeli Turing-complete'dir—döngüler ve karmaşık kontrol akışı mümkündür—ancak gas mekanizması, tüm hesaplamanın sınırlı zamanda sona ermesini sağlar ve durma problemini dil kısıtlamalarıyla değil ekonomik olarak çözer.

Blockchain and Mining

The Ethereum blockchain is fundamentally similar to Bitcoin's, serving as a database containing every transaction ever executed. However, while Bitcoin stores only a transaction list, Ethereum stores both the transaction list and the most recent state. Each block in Ethereum contains the previous block's hash, a state root (the root hash of the Patricia trie">Merkle Patricia trie representing the entire state), a transaction root, a receipt root (storing data from transaction execution), along with difficulty, timestamp, and nonce values. The state itself is a large Merkle Patricia trie mapping addresses to account objects, where each account has a balance, nonce, code (if present), and storage.

Ethereum APPLY BLOCK function processing transactions and updating state

Ethereum uses a modified version of the GHOST (Greedy Heaviest Observed Subtree) protocol to address security issues that arise from fast block times. In traditional longest-chain protocols, fast blocks lead to high stale rates, reducing network security and increasing centralization risks as large miners waste less computation on stales. GHOST includes stale blocks (called "uncles" in Ethereum) in the calculation of which chain is longest, and provides partial rewards to uncle blocks, incentivizing miners to reference them. This allows Ethereum to maintain a target block time of approximately 12 seconds while preserving network security.

The mining algorithm works similarly to Bitcoin's proof-of-work, requiring miners to find a nonce such that the hash of the block is below a certain difficulty target. However, Ethereum's memory-hard mining algorithm (Ethash) is designed to be ASIC-resistant, promoting a more decentralized mining ecosystem. The difficulty adjusts dynamically based on block times to maintain the ~12 second target, ensuring consistent block production while the GHOST protocol provides security guarantees despite the faster block times compared to Bitcoin's 10-minute average.

Blockchain and Mining

Ethereum blockchain'i, yürütülen her işlemi içeren bir veritabanı olarak hizmet eden Bitcoin'inkine temelden benzerdir. Ancak Bitcoin yalnızca bir işlem listesi depolarken, Ethereum hem işlem listesini hem de en son durumu depolar. Ethereum'daki her blok; önceki bloğun hash'ini, bir durum kökünü (tüm durumu temsil eden Patricia trie">Merkle Patricia trie'sinin kök hash'i), bir işlem kökünü, bir makbuz kökünü (işlem yürütmesinden verileri depolayan), zorluk, zaman damgası ve nonce değerlerini içerir. Durumun kendisi, adresleri hesap nesnelerine eşleyen büyük bir Merkle Patricia trie'sidir; her hesabın bakiyesi, nonce'u, kodu (varsa) ve depolama alanı vardır.

Ethereum APPLY BLOCK function processing transactions and updating state

Ethereum, hızlı blok sürelerinden kaynaklanan güvenlik sorunlarını çözmek için GHOST (Greedy Heaviest Observed Subtree) protokolünün değiştirilmiş bir versiyonunu kullanır. Geleneksel en uzun zincir protokollerinde, hızlı bloklar yüksek eski blok oranlarına yol açarak ağ güvenliğini azaltır ve büyük madencilerin eskilerde daha az hesaplama israf etmesi nedeniyle merkezileşme risklerini artırır. GHOST, eski blokları (Ethereum'da "amcalar" olarak adlandırılır) en uzun zincir hesaplamasına dahil eder ve amca bloklara kısmi ödüller sağlayarak madencileri bunlara referans vermeye teşvik eder. Bu, Ethereum'un ağ güvenliğini korurken yaklaşık 12 saniyelik hedef blok süresini sürdürmesine olanak tanır.

Madencilik algoritması Bitcoin'in proof-of-work'üne benzer şekilde çalışır ve madencilerin bloğun hash'inin belirli bir zorluk hedefinin altında olacağı bir nonce bulmasını gerektirir. Ancak Ethereum'un bellek yoğun madencilik algoritması (Ethash), daha merkeziyetsiz bir madencilik ekosistemi teşvik ederek ASIC'e dayanıklı olacak şekilde tasarlanmıştır. Zorluk, ~12 saniyelik hedefi korumak için blok sürelerine göre dinamik olarak ayarlanır; bu, Bitcoin'in 10 dakikalık ortalamasına kıyasla daha hızlı blok sürelerine rağmen GHOST protokolünün güvenlik garantileri sağlarken tutarlı blok üretimini sağlar.

Applications

The applications that can be built on Ethereum fall into three broad categories. The first category is financial applications, providing users with more powerful ways to manage and enter contracts involving their money. This includes sub-currencies, financial derivatives, hedging contracts, savings wallets with withdrawal limits, wills that distribute funds automatically, and even employment contracts that calculate payment based on verified work completion. These applications leverage Ethereum's programmability to create complex financial instruments that would be impossible or extremely difficult to implement in traditional systems or even on Bitcoin.

The second category is semi-financial applications, where money is involved but there is also a substantial non-monetary component to what is being done. A perfect example is self-enforcing bounties for solutions to computational problems. Someone could post a computational problem along with a reward, and the contract could automatically verify submitted solutions and pay out the bounty to the first correct answer. This category bridges pure finance and other domains, using economic incentives to solve problems or coordinate behavior.

The third category is applications that have nothing to do with money at all, such as online voting and decentralized governance systems. These non-financial applications demonstrate Ethereum's flexibility as a general-purpose platform. Examples include decentralized domain name systems like Namecoin, reputation systems, decentralized file storage, and organizational governance tools. Of all these application types, token systems have emerged as the most common and fundamental, serving as building blocks for many other applications.

Applications

Ethereum üzerine inşa edilebilecek uygulamalar üç geniş kategoriye ayrılır. İlk kategori, kullanıcılara paralarını yönetme ve parayla ilgili sözleşmelere girme konusunda daha güçlü yollar sunan finansal uygulamalardır. Bunlar arasında alt para birimleri, finansal türevler, riskten korunma sözleşmeleri, çekim limitleri olan tasarruf cüzdanları, fonları otomatik olarak dağıtan vasiyetnameler ve hatta doğrulanmış iş tamamlamaya dayalı ödeme hesaplayan istihdam sözleşmeleri yer alır. Bu uygulamalar, geleneksel sistemlerde veya Bitcoin'de bile uygulanması imkansız veya son derece zor olan karmaşık finansal araçlar oluşturmak için Ethereum'un programlanabilirliğinden yararlanır.

İkinci kategori, paranın dahil olduğu ancak yapılanın önemli bir parasal olmayan bileşeninin de bulunduğu yarı-finansal uygulamalardır. Mükemmel bir örnek, hesaplama problemlerinin çözümleri için kendi kendini uygulayan ödüllerdir. Birisi bir hesaplama problemini bir ödülle birlikte yayınlayabilir ve sözleşme, sunulan çözümleri otomatik olarak doğrulayıp ilk doğru cevaba ödülü ödeyebilir. Bu kategori, sorunları çözmek veya davranışı koordine etmek için ekonomik teşvikleri kullanarak saf finans ile diğer alanlar arasında köprü oluşturur.

Üçüncü kategori, çevrimiçi oylama ve merkeziyetsiz yönetişim sistemleri gibi parayla hiç ilgisi olmayan uygulamalardır. Bu finansal olmayan uygulamalar, genel amaçlı bir platform olarak Ethereum'un esnekliğini gösterir. Örnekler arasında Namecoin gibi merkeziyetsiz alan adı sistemleri, itibar sistemleri, merkeziyetsiz dosya depolama ve organizasyonel yönetişim araçları bulunur. Tüm bu uygulama türleri arasında token sistemleri en yaygın ve temel olanı olarak öne çıkmış ve birçok diğer uygulama için yapı taşı görevi görmüştür.

Token Systems

Token systems are surprisingly straightforward to implement on Ethereum, despite being one of the most powerful and common applications. At their core, token systems are simply a database with a single operation: subtract X units from account A and add X units to account B, with the condition that A had at least X units before the transaction and the transaction is authorized by A. The implementation requires maintaining a mapping of addresses to balances and providing a transfer function that performs the appropriate checks before moving tokens between accounts.

The contract code for a basic token system is remarkably simple and can be written in just a few lines. It consists of a data structure mapping addresses to balances, an initialization function that assigns initial token supply, and a transfer function that checks the sender's balance and authorization before executing the transfer. This simplicity stands in stark contrast to the complexity required to implement similar systems on Bitcoin, which would require significant workarounds and limitations due to Bitcoin's restricted scripting capabilities.

Tokens on Ethereum can represent virtually anything of value. They might represent sub-currencies with their own monetary policies, financial derivatives tracking external assets, company shares with dividend rights, loyalty points in customer programs, commodities like gold or oil, or even representations of physical property. The programmability of Ethereum allows these tokens to have arbitrary rules governing their behavior, such as transfer restrictions, automatic burning mechanisms, dividend distributions, or governance rights. This flexibility has made token systems the foundational building block for much of the Ethereum ecosystem.

Token Systems

Token sistemleri, en güçlü ve yaygın uygulamalardan biri olmalarına rağmen Ethereum üzerinde uygulanması şaşırtıcı derecede basittir. Özünde token sistemleri, tek bir işlemle basit bir veritabanıdır: A hesabından X birim çıkar ve B hesabına X birim ekle, A'nın işlemden önce en az X birimi olması ve işlemin A tarafından yetkilendirilmesi koşuluyla. Uygulama, adreslerden bakiyelere bir eşleme sürdürmeyi ve hesaplar arasında token transfer etmeden önce uygun kontrolleri gerçekleştiren bir transfer fonksiyonu sağlamayı gerektirir.

Temel bir token sistemi için sözleşme kodu son derece basittir ve sadece birkaç satırda yazılabilir. Adresleri bakiyelere eşleyen bir veri yapısı, başlangıç token arzını atayan bir başlatma fonksiyonu ve transferi gerçekleştirmeden önce gönderenin bakiyesini ve yetkisini kontrol eden bir transfer fonksiyonundan oluşur. Bu basitlik, Bitcoin'in kısıtlı betik yetenekleri nedeniyle önemli geçici çözümler ve sınırlamalar gerektiren Bitcoin üzerinde benzer sistemlerin uygulanması için gereken karmaşıklıkla keskin bir tezat oluşturur.

Ethereum'daki token'lar fiilen değerli herhangi bir şeyi temsil edebilir. Kendi para politikalarına sahip alt para birimleri, harici varlıkları izleyen finansal türevler, temettü haklarına sahip şirket hisseleri, müşteri programlarındaki sadakat puanları, altın veya petrol gibi emtialar veya hatta fiziksel mülkün temsilleri olabilirler. Ethereum'un programlanabilirliği, bu token'ların davranışlarını yöneten transfer kısıtlamaları, otomatik yakma mekanizmaları, temettü dağıtımları veya yönetişim hakları gibi rastgele kurallara sahip olmasına olanak tanır. Bu esneklik, token sistemlerini Ethereum ekosisteminin çoğunun temel yapı taşı haline getirmiştir.

Financial Derivatives and Stable-Value Currencies

Financial derivatives represent one of the most fundamental and important applications of Ethereum smart contracts. A simple hedging contract demonstrates the basic mechanism: party A deposits a certain amount of ether worth \(1000, party B deposits an equivalent amount, and the contract records the USD value of ether at that moment using a data feed. After 30 days, the contract recalculates the value and sends ether worth \)1000 to A and the remainder to B. If the price of ether has risen, A receives fewer ether but maintains $1000 value; if it has fallen, A receives more ether to maintain that value. This allows A to hedge against volatility while B speculates on price movements.

The implementation of such contracts requires access to external data through oracle contracts or data feeds. These oracles provide price information, weather data, or other real-world information that contracts need to execute properly. While oracles introduce a trust dependency, they can be designed with redundancy and cryptoeconomic incentives to provide reliable data. The contract itself simply queries the oracle, performs calculations based on that data, and distributes funds according to its programmed logic.

Stablecoins and more complex financial instruments can be built using similar mechanisms. A stablecoin contract might maintain a reserve of ether and issue tokens pegged to a fiat currency, automatically adjusting supply or collateral requirements based on price feeds. Options contracts, futures, swaps, and other derivatives that would normally require complex legal frameworks and trusted intermediaries can instead be encoded as self-executing smart contracts. This programmable finance infrastructure enables sophisticated financial engineering while maintaining the transparency and security guarantees of blockchain technology.

Financial Derivatives and Stable-Value Currencies

Finansal türevler, Ethereum smart contract'larının en temel ve önemli uygulamalarından birini temsil eder. Basit bir riskten korunma sözleşmesi temel mekanizmayı gösterir: A tarafı 1000\( değerinde belirli bir miktar ether yatırır, B tarafı eşdeğer bir miktar yatırır ve sözleşme bir veri beslemesi kullanarak o andaki ether'in USD değerini kaydeder. 30 gün sonra, sözleşme değeri yeniden hesaplar ve A'ya 1000\) değerinde ether, kalanını B'ye gönderir. Ether'in fiyatı yükseldiyse, A daha az ether alır ama 1000$ değerini korur; düştüyse, A bu değeri korumak için daha fazla ether alır. Bu, A'nın dalgalanmaya karşı korunmasına izin verirken B fiyat hareketleri üzerine spekülasyon yapar.

Bu tür sözleşmelerin uygulanması, oracle sözleşmeleri veya veri beslemeleri aracılığıyla harici verilere erişim gerektirir. Bu oracle'lar, sözleşmelerin düzgün çalışması için ihtiyaç duyduğu fiyat bilgisi, hava durumu verileri veya diğer gerçek dünya bilgilerini sağlar. Oracle'lar bir güven bağımlılığı getirse de, güvenilir veri sağlamak için yedeklilik ve kriptoekonomik teşviklerle tasarlanabilir. Sözleşmenin kendisi basitçe oracle'ı sorgular, bu verilere dayalı hesaplamalar yapar ve programlı mantığına göre fonları dağıtır.

Stablecoin'ler ve daha karmaşık finansal araçlar benzer mekanizmalar kullanılarak inşa edilebilir. Bir stablecoin sözleşmesi, bir ether rezervi tutabilir ve fiyat beslemelerine dayalı olarak arz veya teminat gereksinimlerini otomatik olarak ayarlayarak itibari para birimine sabitlenmiş token'lar çıkarabilir. Normalde karmaşık hukuki çerçeveler ve güvenilir aracılar gerektiren opsiyon sözleşmeleri, vadeli işlemler, takaslar ve diğer türevler bunun yerine kendi kendini yürüten smart contract'lar olarak kodlanabilir. Bu programlanabilir finans altyapısı, blockchain teknolojisinin şeffaflık ve güvenlik garantilerini korurken sofistike finansal mühendisliği mümkün kılar.

Identity and Reputation Systems

A name registration system similar to Namecoin is trivially implementable on Ethereum and serves as the simplest example of an identity system. The contract maintains a database with a key-value table mapping names to associated data (such as IP addresses, public keys, or other information). Anyone can register a name by sending a transaction to the contract along with a small registration fee, provided that name is not already taken. The owner can update the associated data at any time, and names can be made transferable or permanent according to the rules encoded in the contract.

More advanced identity systems can be built on this foundation to include reputation scores, web of trust relationships, and decentralized identity verification. For example, a contract could maintain reputation scores based on verified transactions, peer ratings, or completion of tasks. These scores would be publicly visible and cryptographically tied to specific addresses, creating a portable reputation that follows users across applications. Web of trust systems could allow users to vouch for others' identities, building social graphs that help distinguish legitimate users from bad actors.

Such identity and reputation systems become particularly powerful when integrated with other applications. A marketplace could require minimum reputation scores for sellers, a loan platform could adjust interest rates based on borrower reputation, or a social network could use web of trust to filter spam and fraudulent content. By providing a shared infrastructure for identity that any application can query, Ethereum enables a new class of trust-based applications that don't rely on centralized identity providers or proprietary reputation systems.

Identity and Reputation Systems

Namecoin'e benzer bir isim kayıt sistemi Ethereum üzerinde kolayca uygulanabilir ve bir kimlik sisteminin en basit örneğidir. Sözleşme, isimleri ilişkili verilere (IP adresleri, public key'ler veya diğer bilgiler gibi) eşleyen bir anahtar-değer tablosuna sahip bir veritabanı sürdürür. Herkes, isim daha önce alınmamış olmak koşuluyla, küçük bir kayıt ücreti ile sözleşmeye bir işlem göndererek bir isim kaydedebilir. Sahip, ilişkili verileri istediği zaman güncelleyebilir ve isimler, sözleşmede kodlanan kurallara göre transfer edilebilir veya kalıcı hale getirilebilir.

Bu temelden itibar puanlarını, güven ağı ilişkilerini ve merkeziyetsiz kimlik doğrulamayı içeren daha gelişmiş kimlik sistemleri inşa edilebilir. Örneğin, bir sözleşme doğrulanmış işlemlere, eş değerlendirmelerine veya görev tamamlamaya dayalı itibar puanları sürdürebilir. Bu puanlar kamuya açık ve belirli adreslere kriptografik olarak bağlı olacaktır, uygulamalar arasında kullanıcıları takip eden taşınabilir bir itibar oluşturur. Güven ağı sistemleri, kullanıcıların başkalarının kimliklerini onaylamasına izin vererek meşru kullanıcıları kötü aktörlerden ayırmaya yardımcı olan sosyal grafikler oluşturabilir.

Bu tür kimlik ve itibar sistemleri, diğer uygulamalarla entegre edildiğinde özellikle güçlü hale gelir. Bir pazar yeri satıcılar için minimum itibar puanı gerektirebilir, bir kredi platformu borçlu itibarına göre faiz oranlarını ayarlayabilir veya bir sosyal ağ spam ve dolandırıcılık içeriğini filtrelemek için güven ağını kullanabilir. Herhangi bir uygulamanın sorgulayabileceği paylaşımlı bir kimlik altyapısı sağlayarak, Ethereum merkezi kimlik sağlayıcılarına veya tescilli itibar sistemlerine dayanmayan yeni bir güven tabanlı uygulama sınıfını mümkün kılar.

Decentralized File Storage

Decentralized file storage can be implemented through Ethereum contracts that coordinate between users who need storage and providers who offer it. In a "decentralized Dropbox" model, users would pay a monthly fee to upload files, with the contract distributing payments to storage providers who prove they are actually storing the data. The proof mechanism works through periodic cryptographic challenges: the contract randomly selects portions of files and asks providers to supply Merkle tree proofs demonstrating they possess that data. Providers who fail challenges or go offline would lose their deposits and future payment stream.

This approach offers several advantages over centralized storage. Merkle tree proofs enable efficient verification—users and the contract can confirm file availability without downloading entire files. The system naturally distributes files across multiple independent providers, creating redundancy without requiring explicit replication protocols. Economic incentives align provider behavior with user needs: providers earn money by reliably storing data and lose money if they fail to do so. This eliminates the trust requirement inherent in centralized storage solutions.

Storage costs in such a system can potentially be lower than centralized alternatives for several reasons. The elimination of monopoly pricing allows market competition to drive costs down to near the actual cost of storage. Implicit redundancy from multiple users storing similar files can reduce total storage requirements. There's no need for expensive data center infrastructure or corporate overhead. However, challenges remain around payment mechanisms, ensuring adequate provider participation, and managing the tradeoff between redundancy and cost. Despite these challenges, decentralized storage demonstrates how Ethereum can coordinate complex multi-party interactions through economic incentives alone.

Decentralized File Storage

Merkeziyetsiz dosya depolama, depolamaya ihtiyaç duyan kullanıcılar ile bunu sunan sağlayıcılar arasında koordinasyon sağlayan Ethereum sözleşmeleri aracılığıyla uygulanabilir. "Merkeziyetsiz Dropbox" modelinde, kullanıcılar dosya yüklemek için aylık ücret ödeyecek ve sözleşme, verileri gerçekten depoladıklarını kanıtlayan depolama sağlayıcılarına ödemeleri dağıtacaktır. Kanıt mekanizması periyodik kriptografik zorluklar aracılığıyla çalışır: sözleşme dosyaların bölümlerini rastgele seçer ve sağlayıcılardan bu verilere sahip olduklarını gösteren Merkle tree kanıtları sunmalarını ister. Zorluklarda başarısız olan veya çevrimdışı olan sağlayıcılar, depozitolarını ve gelecekteki ödeme akışlarını kaybedecektir.

Bu yaklaşım, merkezi depolamaya göre birçok avantaj sunar. Merkle tree kanıtları verimli doğrulama sağlar—kullanıcılar ve sözleşme, dosyaların tamamını indirmeden dosya kullanılabilirliğini doğrulayabilir. Sistem doğal olarak dosyaları birden fazla bağımsız sağlayıcıya dağıtarak açık çoğaltma protokollerine ihtiyaç duymadan yedeklilik oluşturur. Ekonomik teşvikler, sağlayıcı davranışını kullanıcı ihtiyaçlarıyla uyumlu hale getirir: sağlayıcılar verileri güvenilir şekilde depolayarak para kazanır ve bunu yapamazlarsa para kaybederler. Bu, merkezi depolama çözümlerindeki doğal güven gereksinimini ortadan kaldırır.

Böyle bir sistemde depolama maliyetleri, birkaç nedenden dolayı merkezi alternatiflere göre potansiyel olarak daha düşük olabilir. Tekel fiyatlandırmasının ortadan kaldırılması, piyasa rekabetinin maliyetleri depolamanın gerçek maliyetine yaklaştırmasına olanak tanır. Benzer dosyaları depolayan birden fazla kullanıcıdan kaynaklanan örtük yedeklilik, toplam depolama gereksinimlerini azaltabilir. Pahalı veri merkezi altyapısına veya kurumsal genel giderlere gerek yoktur. Ancak ödeme mekanizmaları, yeterli sağlayıcı katılımını sağlama ve yedeklilik ile maliyet arasındaki dengeyi yönetme konularında zorluklar devam etmektedir. Bu zorluklara rağmen, merkeziyetsiz depolama, Ethereum'un yalnızca ekonomik teşvikler aracılığıyla karmaşık çok taraflı etkileşimleri nasıl koordine edebileceğini göstermektedir.

Decentralized Autonomous Organizations

A Decentralized Autonomous Organization (DAO) is a virtual entity that has a set of members or shareholders who collectively have the right to spend the entity's funds and modify its code. A typical DAO operates with a simple rule: 67% of members are needed to make spending decisions or modify the organization's code. Members can submit proposals, vote on them, and if a proposal receives sufficient support, the contract automatically executes the decision. Membership shares can be transferable, allowing a liquid market for DAO participation, and different classes of shares can have different voting rights or economic claims.

The simplest DAO design is a self-modifying contract that maintains a list of members and requires a 2/3 majority vote to change any aspect of the contract, including its own voting rules. Members would submit code changes as transactions, other members would vote, and upon reaching the threshold, the contract would update itself. More sophisticated designs might include delegated voting systems where members can assign their voting power to representatives, or liquid democracy where votes can be delegated but reclaimed at any time for important decisions.

DAOs can serve various purposes beyond simple fund management. A DAO could function as a decentralized corporation, hiring contractors, purchasing services, and distributing profits to shareholders—all governed by smart contract code rather than traditional legal structures. It could operate as a decentralized investment fund, with members voting on which projects to fund. It could manage a commons resource, with stakeholders voting on allocation rules. The key insight is that by encoding governance rules in transparent, immutable code and tying them to economic stake, DAOs can coordinate group decisions without requiring traditional hierarchical management or legal enforcement.

Decentralized Autonomous Organizations

Merkeziyetsiz Otonom Organizasyon (DAO), kuruluşun fonlarını harcama ve kodunu değiştirme hakkına toplu olarak sahip olan bir üye veya hissedar grubuna sahip sanal bir varlıktır. Tipik bir DAO basit bir kuralla çalışır: harcama kararları almak veya organizasyonun kodunu değiştirmek için üyelerin %67'si gereklidir. Üyeler teklifler sunabilir, bunlara oy verebilir ve bir teklif yeterli destek alırsa, sözleşme kararı otomatik olarak yürütür. Üyelik payları transfer edilebilir olabilir, DAO katılımı için likit bir piyasa sağlar ve farklı pay sınıfları farklı oy hakları veya ekonomik taleplere sahip olabilir.

En basit DAO tasarımı, üyelerin bir listesini sürdüren ve sözleşmenin herhangi bir yönünü, kendi oy kuralları dahil, değiştirmek için 2/3 çoğunluk oyu gerektiren kendi kendini değiştiren bir sözleşmedir. Üyeler kod değişikliklerini işlem olarak sunacak, diğer üyeler oy kullanacak ve eşiğe ulaşıldığında sözleşme kendini güncelleyecektir. Daha sofistike tasarımlar, üyelerin oy güçlerini temsilcilere atayabileceği yetkilendirilmiş oy sistemleri veya oyların devredilebildiği ancak önemli kararlar için herhangi bir zamanda geri alınabildiği likit demokrasi içerebilir.

DAO'lar basit fon yönetiminin ötesinde çeşitli amaçlara hizmet edebilir. Bir DAO, geleneksel hukuki yapılar yerine smart contract kodu tarafından yönetilen, yüklenicileri işe alan, hizmet satın alan ve hissedarlara kar dağıtan merkeziyetsiz bir şirket olarak işlev görebilir. Merkeziyetsiz bir yatırım fonu olarak çalışabilir; üyeler hangi projelere fon sağlanacağı konusunda oy kullanır. Bir ortak kaynağı yönetebilir; paydaşlar tahsis kuralları konusunda oy kullanır. Temel içgörü, yönetişim kurallarını şeffaf, değiştirilemez koda kodlayarak ve bunları ekonomik paya bağlayarak, DAO'ların geleneksel hiyerarşik yönetim veya hukuki uygulamaya ihtiyaç duymadan grup kararlarını koordine edebileceğidir.

Further Applications

Beyond the major categories already discussed, Ethereum enables numerous other applications. Savings wallets with sophisticated security features can impose daily withdrawal limits while providing emergency keys for recovery, protecting users from theft while maintaining ultimate control. Crop insurance contracts can automatically pay farmers based on weather data feeds, eliminating claims processing and reducing administrative overhead. Peer-to-peer gambling applications can operate without any trusted intermediary, with smart contracts holding stakes and automatically paying winners based on verifiable random numbers or real-world event data.

On-chain prediction markets allow users to bet on future events, creating powerful forecasting mechanisms through the wisdom of crowds. These can be augmented with SchellingCoin-style protocols to create decentralized oracles: participants independently report data (like election results or weather conditions), and those whose reports match the majority receive rewards while outliers are penalized. This cryptoeconomic approach incentivizes honest reporting and can provide reliable real-world data to other contracts without requiring trust in any single oracle provider.

Multi-signature wallets represent another important application, enabling shared control of funds between multiple parties. A 2-of-3 multi-sig wallet might require any two of three designated parties to approve a transaction before funds can be spent, useful for escrow arrangements, corporate treasuries, or personal security. Decentralized marketplaces can combine identity systems, reputation scores, escrow contracts, and dispute resolution mechanisms to enable peer-to-peer commerce without centralized platforms. Each of these applications demonstrates how Ethereum's programmability enables new trust models and organizational structures.

Further Applications

Daha önce tartışılan ana kategorilerin ötesinde, Ethereum çok sayıda başka uygulamayı mümkün kılar. Sofistike güvenlik özelliklerine sahip tasarruf cüzdanları, günlük çekim limitleri uygularken kurtarma için acil anahtarlar sağlayabilir; kullanıcıları hırsızlıktan korurken nihai kontrolü sürdürür. Hasat sigortası sözleşmeleri, hava durumu veri beslemelerine dayalı olarak çiftçilere otomatik olarak ödeme yapabilir; talep işlemeyi ortadan kaldırır ve yönetim giderlerini azaltır. Eşler arası kumar uygulamaları, herhangi bir güvenilir aracı olmadan çalışabilir; smart contract'lar bahisleri tutar ve doğrulanabilir rastgele sayılara veya gerçek dünya olay verilerine dayalı olarak kazananlara otomatik olarak ödeme yapar.

Zincir üstü tahmin piyasaları, kullanıcıların gelecekteki olaylara bahis oynamasına olanak tanıyarak kalabalıkların bilgeliği aracılığıyla güçlü tahmin mekanizmaları oluşturur. Bunlar, merkeziyetsiz oracle'lar oluşturmak için SchellingCoin tarzı protokollerle güçlendirilebilir: katılımcılar bağımsız olarak verileri (seçim sonuçları veya hava koşulları gibi) raporlar ve raporları çoğunlukla eşleşenler ödül alırken sapanlar cezalandırılır. Bu kriptoekonomik yaklaşım dürüst raporlamayı teşvik eder ve herhangi bir tek oracle sağlayıcısına güven gerektirmeden diğer sözleşmelere güvenilir gerçek dünya verileri sağlayabilir.

Çoklu imza cüzdanları, birden fazla taraf arasında fonların paylaşımlı kontrolünü sağlayan bir diğer önemli uygulamayı temsil eder. 2-of-3 çoklu imza cüzdanı, fonlar harcanmadan önce belirlenen üç taraftan herhangi ikisinin işlemi onaylamasını gerektirebilir; emanet düzenlemeleri, kurumsal hazineler veya kişisel güvenlik için kullanışlıdır. Merkeziyetsiz pazar yerleri, kimlik sistemlerini, itibar puanlarını, emanet sözleşmelerini ve uyuşmazlık çözüm mekanizmalarını birleştirerek merkezi platformlar olmadan eşler arası ticareti mümkün kılabilir. Bu uygulamaların her biri, Ethereum'un programlanabilirliğinin yeni güven modelleri ve organizasyonel yapıları nasıl mümkün kıldığını göstermektedir.

Miscellanea And Concerns

Ethereum's implementation of the modified GHOST protocol includes specific rules for uncle inclusion and rewards. Uncles must be direct children of the current block's ancestor (between 2 and 7 generations back), must be valid block headers, must be distinct from previous uncles, and must not be direct ancestors of the current block. Uncle blocks receive 87.5% of the standard block reward, while the including block receives an additional 3.125% per uncle included (up to two uncles). This incentive structure encourages miners to reference stale blocks they observe, strengthening network security while rewarding miners who experienced temporary bad luck with network propagation.

The transaction-fee/" class="glossary-link" data-slug="transaction-fee" title="fee">fee system is based on the concept of "gas," where every computational operation has a fixed gas cost. For example, a multiplication operation costs 5 gas, a SHA256 hash costs 20 gas, and every transaction has a base cost of 21,000 gas. Users specify both a gas limit (maximum gas they're willing to consume) and a gas price (how much ether they'll pay per unit of gas). This system serves multiple purposes: it prevents infinite loops and denial-of-service attacks by ensuring all computation is paid for, it creates a market for block space where users bid via gas prices, and it allows miners to set a minimum gas price they're willing to accept, protecting network resources.

Ethereum supply growth rate comparing linear issuance to Bitcoin decreasing growth

Scalability remains a significant concern, as every node/" class="glossary-link" data-slug="full-node" title="full node">full node must process every transaction to verify the state. Current blockchain architectures struggle to match centralized systems' transaction throughput. Potential solutions include state sharding, where different nodes process different subsets of transactions, and a transition from proof-of-work to proof-of-stake consensus, which could enable more efficient block production. Light clients using Merkle proofs can verify transactions without processing all blocks, but someone must still process everything. These scalability challenges represent active areas of research and development critical to Ethereum's long-term viability.

Miscellanea And Concerns

Ethereum'un değiştirilmiş GHOST protokolü uygulaması, amca dahil etme ve ödüller için özel kurallar içerir. Amcalar, mevcut bloğun atasının doğrudan çocukları olmalıdır (2 ile 7 nesil arasında), geçerli blok başlıkları olmalıdır, önceki amcalardan farklı olmalıdır ve mevcut bloğun doğrudan ataları olmamalıdır. Amca bloklar standart blok ödülünün %87,5'ini alır, dahil eden blok ise dahil edilen amca başına ek %3,125 alır (en fazla iki amca). Bu teşvik yapısı, madencileri gözlemledikleri eski blokları referans almaya teşvik ederek ağ güvenliğini güçlendirir ve ağ yayılımında geçici kötü şansa maruz kalan madencileri ödüllendirir.

Ücret sistemi, her hesaplama işleminin sabit bir gas maliyetine sahip olduğu "gas" kavramına dayanır. Örneğin, bir çarpma işlemi 5 gas, bir SHA256 hash'i 20 gas maliyetindedir ve her işlemin temel maliyeti 21.000 gas'tır. Kullanıcılar hem gas limiti (tüketmeye razı oldukları maksimum gas) hem de gas fiyatı (gas birimi başına ne kadar ether ödeyecekleri) belirtir. Bu sistem birden fazla amaca hizmet eder: tüm hesaplamanın ücretli olmasını sağlayarak sonsuz döngüleri ve hizmet reddi saldırılarını önler, kullanıcıların gas fiyatları aracılığıyla teklif verdiği blok alanı için bir piyasa oluşturur ve madencilerin kabul etmeye razı oldukları minimum gas fiyatını belirlemelerine izin vererek ağ kaynaklarını korur.

Ethereum supply growth rate comparing linear issuance to Bitcoin decreasing growth

Ölçeklenebilirlik önemli bir endişe olmaya devam etmektedir, çünkü her düğüm">tam düğüm durumu doğrulamak için her işlemi işlemek zorundadır. Mevcut blockchain mimarileri, merkezi sistemlerin işlem hacmiyle eşleşmekte zorlanır. Potansiyel çözümler arasında farklı düğümlerin farklı işlem alt kümelerini işlediği durum parçalama ve daha verimli blok üretimini mümkün kılabilecek proof-of-work'ten proof-of-stake uzlaşmasına geçiş yer alır. Merkle kanıtları kullanan hafif istemciler tüm blokları işlemeden işlemleri doğrulayabilir, ancak birinin yine de her şeyi işlemesi gerekir. Bu ölçeklenebilirlik zorlukları, Ethereum'un uzun vadeli yaşayabilirliği için kritik aktif araştırma ve geliştirme alanlarını temsil eder.

Conclusion

The Ethereum protocol was originally conceived as an upgraded version of a cryptocurrency, providing advanced features like on-blockchain escrow, withdrawal limits, and financial contracts through a highly generalized programming language. However, the Ethereum protocol moves far beyond just currency. Protocols around decentralized file storage, decentralized computation, and decentralized prediction markets, among dozens of other concepts, have the potential to substantially increase the efficiency of the computational industry and provide a massive boost to other peer-to-peer protocols by adding for the first time an economic layer.

Rather than providing a limited set of operations designed for specific use cases, Ethereum provides a Turing-complete programming language that enables developers to build any application they can design. Want to invent your own financial derivative? Create your own currency? Establish a government on the blockchain? These are all trivially implementable with Ethereum's scripting system. The platform's power lies not in predicting what applications will be built, but in providing the foundational infrastructure that makes building them easy.

The concept of an arbitrary state transition function as implemented by the Ethereum protocol provides a platform with unique potential. Rather than being a closed-ended, single-purpose protocol intended for specific applications in data storage, gambling, or finance, Ethereum is open-ended by design, and we believe it is extremely well-suited to serving as a foundational layer for a large number of both financial and non-financial protocols in the years to come. The applications that will be built on Ethereum in the future may be ones we cannot even imagine today, and that open-ended possibility represents the true promise of the platform.

Conclusion

Ethereum protokolü başlangıçta bir kripto para biriminin geliştirilmiş versiyonu olarak tasarlandı; yüksek düzeyde genelleştirilmiş bir programlama dili aracılığıyla zincir üstü emanet, çekim limitleri ve finansal sözleşmeler gibi gelişmiş özellikler sunan. Ancak Ethereum protokolü sadece para biriminin çok ötesine geçer. Merkeziyetsiz dosya depolama, merkeziyetsiz hesaplama ve merkeziyetsiz tahmin piyasaları etrafındaki protokoller, düzinelerce başka kavramla birlikte, bilgi işlem endüstrisinin verimliliğini önemli ölçüde artırma ve ilk kez ekonomik bir katman ekleyerek diğer eşler arası protokollere büyük bir destek sağlama potansiyeline sahiptir.

Belirli kullanım durumları için tasarlanmış sınırlı bir işlem seti sağlamak yerine, Ethereum geliştiricilerin tasarlayabildikleri herhangi bir uygulamayı inşa etmelerini sağlayan Turing-complete bir programlama dili sunar. Kendi finansal türevinizi icat etmek mi istiyorsunuz? Kendi para biriminizi oluşturmak mı? Blockchain üzerinde bir hükümet kurmak mı? Bunların hepsi Ethereum'un betik sistemiyle kolayca uygulanabilir. Platformun gücü, hangi uygulamaların inşa edileceğini tahmin etmekte değil, onları inşa etmeyi kolaylaştıran temel altyapıyı sağlamaktadır.

Ethereum protokolü tarafından uygulanan rastgele state transition fonksiyonu kavramı, benzersiz potansiyele sahip bir platform sunar. Veri depolama, kumar veya finans alanındaki belirli uygulamalar için tasarlanmış kapalı uçlu, tek amaçlı bir protokol olmak yerine, Ethereum tasarım gereği açık uçludur ve hem finansal hem de finansal olmayan çok sayıda protokol için önümüzdeki yıllarda temel katman olarak hizmet etmeye son derece uygun olduğuna inanıyoruz. Gelecekte Ethereum üzerine inşa edilecek uygulamalar, bugün hayal bile edemeyeceğimiz uygulamalar olabilir ve bu açık uçlu olasılık platformun gerçek vaadini temsil eder.

References and Further Reading

The Ethereum whitepaper builds upon extensive prior work in cryptocurrency and distributed systems research. The foundational Bitcoin protocol is described in Satoshi Nakamoto's original 2008 paper "Bitcoin: A Peer-to-Peer Electronic Cash System," which introduced the concept of blockchain-based digital currency. Early attempts to extend Bitcoin's functionality include Namecoin, a decentralized name registration system demonstrating blockchain applications beyond currency, though limited by Bitcoin's restricted scripting capabilities.

The colored coins whitepaper proposed a method for representing alternative assets on the Bitcoin blockchain by "coloring" specific bitcoins to represent other assets, while Mastercoin attempted to create a protocol layer on top of Bitcoin for more complex financial instruments. Both highlighted the limitations of building on Bitcoin and motivated the need for a more flexible platform. The concept of decentralized autonomous corporations, explored in Bitcoin Magazine, provided theoretical foundations for organizational governance through smart contracts.

Key technical components include simplified payment verification (SPV) for light clients, Merkle trees for efficient data verification, and Patricia tries for Ethereum's state representation. The GHOST (Greedy Heaviest Observed Subtree) protocol, described in a 2013 cryptography paper, addresses security issues arising from fast block times and forms the basis for Ethereum's consensus mechanism. These references represent the intellectual foundations upon which Ethereum was built, combining insights from cryptocurrency, distributed systems, cryptography, and game theory to create a general-purpose blockchain platform.

References and Further Reading

Ethereum teknik raporu, kripto para ve dağıtık sistemler araştırmasındaki kapsamlı önceki çalışmalar üzerine inşa edilmiştir. Temel Bitcoin protokolü, blockchain tabanlı dijital para birimi kavramını tanıtan Satoshi Nakamoto'nun 2008 orijinal makalesi "Bitcoin: A Peer-to-Peer Electronic Cash System"de açıklanmıştır. Bitcoin'in işlevselliğini genişletmeye yönelik erken girişimler arasında, Bitcoin'in kısıtlı betik yetenekleri tarafından sınırlandırılmış olsa da para biriminin ötesinde blockchain uygulamalarını gösteren merkeziyetsiz bir isim kayıt sistemi olan Namecoin bulunur.

Colored coins teknik raporu, belirli bitcoin'leri diğer varlıkları temsil etmek üzere "renklendirerek" Bitcoin blockchain'inde alternatif varlıkları temsil etmek için bir yöntem önerirken, Mastercoin daha karmaşık finansal araçlar için Bitcoin'in üzerine bir protokol katmanı oluşturmaya çalıştı. Her ikisi de Bitcoin üzerine inşa etmenin sınırlamalarını vurguladı ve daha esnek bir platform ihtiyacını motive etti. Bitcoin Magazine'de incelenen merkeziyetsiz otonom şirketler kavramı, smart contract'lar aracılığıyla organizasyonel yönetişim için teorik temeller sağladı.

Temel teknik bileşenler arasında hafif istemciler için basitleştirilmiş ödeme doğrulaması (SPV), verimli veri doğrulama için Merkle tree'ler ve Ethereum'un durum temsili için Patricia trie'leri yer alır. 2013 kriptografi makalesinde açıklanan GHOST (Greedy Heaviest Observed Subtree) protokolü, hızlı blok sürelerinden kaynaklanan güvenlik sorunlarını ele alır ve Ethereum'un uzlaşma mekanizmasının temelini oluşturur. Bu referanslar, genel amaçlı bir blockchain platformu oluşturmak için kripto para, dağıtık sistemler, kriptografi ve oyun teorisinden içgörüleri birleştiren Ethereum'un inşa edildiği entelektüel temelleri temsil eder.