Эфириум: Платформа смарт-контрактов и децентрализованных приложений нового поколения
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.
Abstract
Ethereum — это платформа криптовалюты и децентрализованных приложений следующего поколения, которая представляет блокчейн со встроенным Тьюринг-полным языком программирования. Это позволяет любому писать смарт-контракты и децентрализованные приложения, в которых можно создавать собственные произвольные правила владения, форматы транзакций и функции перехода состояний.
Фундаментальная инновация Ethereum заключается в сочетании блокчейн-технологии, впервые разработанной Bitcoin, с универсальной средой программирования. В то время как Bitcoin предоставляет простую систему перехода состояний для перемещения валюты с одного счёта на другой, Ethereum предоставляет платформу, на которой разработчики могут создавать любые децентрализованные приложения, какие только могут себе представить, от альтернативных валют и финансовых инструментов до систем регистрации доменных имён и децентрализованных организаций.
Ethereum достигает этого, создавая по сути окончательный абстрактный фундаментальный слой: блокчейн со встроенным Тьюринг-полным языком программирования, позволяющим любому писать смарт-контракты и децентрализованные приложения, в которых можно создавать собственные произвольные правила владения, форматы транзакций и функции перехода состояний. Минимальная версия Namecoin может быть написана в двух строках кода, а другие протоколы, такие как валюты и системы репутации, могут быть построены менее чем в двадцати.
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.
Introduction and Existing Concepts
Концепция децентрализованной цифровой валюты, а также альтернативных приложений, таких как реестры собственности, существует уже несколько десятилетий. Анонимные протоколы электронных денег 1980-х и 1990-х годов, в основном основанные на криптографическом примитиве, известном как слепая подпись Чаума, обеспечивали валюту с высокой степенью конфиденциальности, но эти протоколы в значительной степени не смогли получить распространение из-за их зависимости от централизованного посредника. В 1998 году b-money Вэй Дая стал первым предложением, представившим идею создания денег путём решения вычислительных задач, а также децентрализованного консенсуса, однако предложение содержало мало деталей о том, как децентрализованный консенсус может быть реально реализован.
В 2009 году децентрализованная валюта была впервые реализована на практике Сатоши Накамото, объединившим устоявшиеся примитивы управления собственностью через криптографию с открытым ключом с алгоритмом консенсуса для отслеживания владения монетами, известным как «доказательство работы» (proof of work). Механизм, лежащий в основе доказательства работы, стал прорывом в этой области, поскольку он одновременно решал две проблемы. Во-первых, он предоставил простой и умеренно эффективный алгоритм консенсуса, позволяющий узлам сети коллективно согласовывать набор канонических обновлений состояния реестра Bitcoin. Во-вторых, он предоставил механизм свободного входа в процесс консенсуса, решая политическую проблему определения того, кто может влиять на консенсус, одновременно предотвращая атаки Сибила.
Блокчейн Bitcoin доказал свою замечательную устойчивость за годы работы, но он по своей природе ограничен. Скриптовый язык Bitcoin намеренно разработан как ограничительный и не-Тьюринг-полный, лишённый циклов и многих других возможностей, которые были бы необходимы для создания более сложных приложений. Это ограничение существует для предотвращения бесконечных циклов и других форм вычислительных атак, но оно серьёзно ограничивает то, что может быть построено поверх Bitcoin.
За последние пять лет было предпринято множество попыток расширить функциональность Bitcoin. Colored coins стремились использовать блокчейн Bitcoin для отслеживания владения альтернативными активами, Namecoin пытался создать децентрализованную базу данных регистрации имён, а различные протоколы metacoin были направлены на создание дополнительных слоёв поверх Bitcoin. Хотя эти подходы показали перспективность, они были в конечном счёте ограничены скриптовыми возможностями Bitcoin и невозможностью доступа к данным блокчейна из скриптов.
То, что Ethereum намеревается предоставить — это блокчейн со встроенным полноценным Тьюринг-полным языком программирования, который может использоваться для создания «контрактов», способных кодировать произвольные функции перехода состояний, позволяя пользователям создавать любую из описанных выше систем, а также многие другие, которые мы ещё не представили, просто записывая логику в нескольких строках кода.
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.

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:
- TX'teki her girdi için, referans verilen UTXO S'de yoksa, hata döndür.
- Sağlanan imza UTXO'nun sahibiyle eşleşmiyorsa, hata döndür.
- 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.
- 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.
Bitcoin As A State Transition System
С технической точки зрения реестр криптовалюты, такой как Bitcoin, можно рассматривать как систему перехода состояний, где есть «состояние», состоящее из статуса владения всеми существующими биткойнами, и «функция перехода состояний», которая принимает состояние и транзакцию и выдаёт новое состояние как результат. В стандартной банковской системе, например, состояние — это балансовый отчёт, транзакция — это запрос на перевод \(X от A к B, и функция перехода состояний уменьшает значение на счёте A на \)X и увеличивает значение на счёте B на \(X. Если на счёте A изначально менее \)X, функция перехода состояний возвращает ошибку.

«Состояние» в Bitcoin — это совокупность всех монет (технически, «неизрасходованных выходов транзакций» или UTXO), которые были выпущены и ещё не потрачены, при этом каждый UTXO имеет номинал и владельца (определяемого 20-байтовым адресом, который по сути является криптографическим открытым ключом). Транзакция содержит один или более входов, где каждый вход содержит ссылку на существующий UTXO и криптографическую подпись, созданную закрытым ключом, связанным с адресом владельца, и один или более выходов, где каждый выход содержит новый UTXO, который будет добавлен в состояние.
Функция перехода состояний APPLY(S,TX) - S' может быть приблизительно определена следующим образом:
- Для каждого входа в TX, если указанный UTXO отсутствует в S, вернуть ошибку.
- Если предоставленная подпись не соответствует владельцу UTXO, вернуть ошибку.
- Если сумма номиналов всех входных UTXO меньше суммы номиналов всех выходных UTXO, вернуть ошибку.
- Вернуть S со всеми входными UTXO удалёнными и всеми выходными UTXO добавленными.
Первая половина первого шага предотвращает трату монет, которые не существуют, вторая половина первого шага предотвращает трату чужих монет, а второй шаг обеспечивает сохранение стоимости. Чтобы использовать это для платежа, протокол следующий: предположим, Алиса хочет отправить 11,7 BTC Бобу. Сначала Алиса ищет набор доступных UTXO, которыми она владеет, в сумме составляющих не менее 11,7 BTC. Реалистично, Алиса не сможет получить ровно 11,7 BTC; допустим, наименьшее, что она может получить — это 6+4+2=12. Затем она создаёт транзакцию с тремя входами и двумя выходами. Первый выход составит 11,7 BTC с адресом Боба в качестве владельца, а второй выход будет оставшейся «сдачей» в 0,3 BTC, владельцем которой является сама Алиса.
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.

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:
- Blok tarafından referans verilen önceki bloğun var olduğunu ve geçerli olduğunu kontrol et.
- Bloğun zaman damgasının önceki bloktan büyük ve gelecekte 2 saatten az olduğunu kontrol et.
- Blok üzerindeki proof of work'ün geçerli olduğunu kontrol et.
- S önceki bloğun sonundaki durum olsun.
- 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.
- 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.
Mining
Если бы у нас был доступ к надёжному централизованному сервису, эту систему было бы тривиально реализовать; её можно было бы просто запрограммировать точно так, как описано, используя жёсткий диск централизованного сервера для отслеживания состояния. Однако с Bitcoin мы пытаемся построить децентрализованную валютную систему, поэтому нам нужно будет объединить систему транзакций состояния с системой консенсуса, чтобы обеспечить согласие всех относительно порядка транзакций. Децентрализованный процесс консенсуса Bitcoin требует, чтобы узлы в сети непрерывно пытались создавать пакеты транзакций, называемые «блоками». Сеть предназначена для производства примерно одного блока каждые десять минут, при этом каждый блок содержит метку времени, nonce, ссылку на (т.е. хеш) предыдущий блок и список всех транзакций, произошедших с момента предыдущего блока.

Со временем это создаёт постоянную, непрерывно растущую «блокчейн», которая постоянно обновляется, чтобы отражать последнее состояние реестра Bitcoin. Алгоритм проверки валидности блока, выраженный в этой парадигме, выглядит следующим образом:
- Проверить, существует ли предыдущий блок, на который ссылается блок, и является ли он валидным.
- Проверить, что метка времени блока больше метки времени предыдущего блока и менее чем на 2 часа опережает текущее время.
- Проверить, что доказательство работы блока валидно.
- Пусть S — состояние в конце предыдущего блока.
- Предположим, TX — это список транзакций блока с n транзакциями. Для всех i в 0...n-1 установить S = APPLY(S,TX[i]). Если какое-либо применение возвращает ошибку, выйти и вернуть ложь.
- Вернуть истину и зарегистрировать S как состояние в конце этого блока.
По сути, каждая транзакция в блоке должна обеспечивать валидный переход состояния от того, что было каноническим состоянием до выполнения транзакции, к некоторому новому состоянию. Обратите внимание, что состояние никак не закодировано в блоке; это чисто абстракция, которую должен помнить проверяющий узел, и которая может быть (безопасно) вычислена для любого блока только начиная с генезис-состояния и последовательно применяя каждую транзакцию в каждом блоке.
Майнер вознаграждается за свою вычислительную работу вновь созданными биткойнами плюс комиссиями за транзакции. Процесс майнинга работает следующим образом: майнеры берут заголовок блока и многократно хешируют его с различными значениями nonce, пока не найдут хеш, который ниже определённого целевого значения сложности. Когда майнер находит такой хеш, он транслирует блок в сеть, и другие узлы проверяют, что хеш валиден и что все транзакции в блоке валидны. Целевое значение сложности автоматически корректируется протоколом каждые 2016 блоков (приблизительно две недели), чтобы обеспечить производство блоков с примерно постоянной скоростью.
Обратите внимание, что в долгосрочной перспективе безопасность блокчейна зависит от того, имеют ли майнеры финансовый стимул вести себя честно. Если злоумышленник контролирует более 50% вычислительной мощности сети, он потенциально может выполнить «атаку 51%», создав альтернативный блокчейн, который растёт быстрее, чем честная цепочка. Однако такая атака потребовала бы огромных вычислительных ресурсов и, вероятно, привела бы к тому, что вознаграждения за майнинг атакующего стали бы бесполезными, поскольку сеть потеряла бы доверие к целостности блокчейна.
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.

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.
Merkle Trees
Деревья Меркла являются фундаментальной структурой данных, используемой в блоках Bitcoin для обеспечения эффективной и безопасной верификации включения транзакций. Дерево Меркла представляет собой бинарное дерево хешей, где листовые узлы содержат хеши отдельных транзакций, а каждый внутренний узел содержит хеш своих двух потомков, рекурсивно формируя единственный корневой хеш, который хранится в заголовке блока. Эта иерархическая структура позволяет любому проверить, что конкретная транзакция включена в блок, загрузив лишь ветвь Меркла — цепочку хешей от транзакции до корня — вместо загрузки всех транзакций в блоке.

Выигрыш в эффективности существенен: в то время как полный узел Bitcoin должен хранить всю цепочку блоков (приблизительно 15 ГБ по состоянию на 2013 год), узел упрощённой верификации платежей (SPV) должен загрузить только заголовки блоков, содержащие корни Меркла, что требует всего 4 МБ данных. Для верификации транзакции узел SPV запрашивает ветвь Меркла у полных узлов, что требует лишь O(log n) данных, где n — количество транзакций в блоке. Такое логарифмическое масштабирование делает возможным запуск лёгких клиентов на мобильных устройствах и в средах с ограниченными ресурсами.
Использование деревьев Меркла в Bitcoin демонстрирует ключевой принцип: криптографические структуры могут значительно снизить требования к доверию и ресурсам для участия в децентрализованной сети. Этот же принцип лежит в основе архитектуры Ethereum, где деревья Меркла используются не только для транзакций, но и для хранения состояния и квитанций, что позволяет создавать ещё более сложные протоколы для лёгких клиентов.
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.
Alternative Blockchain Applications
Успех блокчейна Bitcoin вдохновил многочисленные попытки расширить эту концепцию за пределы простой валюты. Namecoin, запущенный в 2010 году, был одним из первых примеров — децентрализованная база данных регистрации имён, построенная на блокчейне, позволяющая пользователям регистрировать имена в распределённом пространстве имён, которое ни одна центральная власть не могла цензурировать или отозвать. Colored coins появились как способ представления альтернативных активов на блокчейне Bitcoin путём «маркировки» определённых выходов транзакций для обозначения владения реальными активами, акциями компаний или другими криптовалютами. Метакоины и мета-протоколы, такие как Mastercoin (позднее Omni), добавляли дополнительную функциональность поверх Bitcoin, кодируя дополнительные данные в транзакциях Bitcoin и строя отдельные правила протокола поверх них.
Однако все эти подходы страдали от фундаментальных ограничений, налагаемых архитектурой Bitcoin. Язык скриптов Bitcoin намеренно ограничен — он не может получить доступ к состоянию блокчейна, не имеет циклов и сложного управления потоком выполнения, а также предоставляет ограниченную интроспекцию значений транзакций. Создание сложных приложений требовало неуклюжих обходных решений: кодирования метаданных в полях транзакций, никогда не предназначавшихся для этого, зависимости от внецепочечной инфраструктуры для сложной логики или принятия серьёзных ограничений на то, что протокол мог реализовать.
Эти ограничения мотивировали поиск более универсальной блокчейн-платформы. Вместо создания ещё одного специализированного протокола поверх ограниченного фундамента Bitcoin, Ethereum использует другой подход: предоставление блокчейна со встроенным Тьюринг-полным языком программирования, позволяющим любому создавать смарт-контракты и децентрализованные приложения с произвольными правилами владения, форматами транзакций и функциями перехода состояний.
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.
Scripting
Bitcoin Script, язык, используемый для определения условий расходования транзакций Bitcoin, намеренно спроектирован с серьёзными ограничениями. Он не является Тьюринг-полным — в первую очередь, в нём отсутствуют циклы и сложные структуры управления потоком выполнения. Язык работает как простая стековая среда исполнения, где операции помещают и извлекают значения, оценивают криптографические условия и в конечном итоге возвращают истину или ложь, определяя, является ли транзакция допустимой. Хотя эта простота обеспечивает преимущества безопасности и упрощает формальный анализ, она также делает невозможной реализацию многих типов приложений.
Эти ограничения делятся на три основные категории. Во-первых, отсутствие Тьюринг-полноты не позволяет реализовать сложные конечные автоматы, деревья решений или любой алгоритм, требующий итерации. Во-вторых, «слепота к значениям» означает, что скрипты не могут определять детальный контроль над суммами снятия — UTXO может быть потрачен только целиком, а сдача отправляется на новый выход. Скрипт не может, например, ограничить снятие максимумом X в день, оставив остаток заблокированным. В-третьих, отсутствие осведомлённости о состоянии блокчейна означает, что UTXO либо потрачены, либо не потрачены, без промежуточных состояний, что делает невозможной реализацию многоэтапных контрактов исключительно в цепочке.
Эти ограничения делают такие сложные приложения, как децентрализованные автономные организации, сберегательные кошельки с лимитами снятия, децентрализованные биржи или рынки предсказаний, либо невозможными, либо требующими неуклюжих внецепочечных механизмов. Продвинутый финансовый контракт может потребовать доступа к рыночным данным, способности поддерживать внутреннее состояние между несколькими транзакциями и сложной условной логики — ничего из этого Bitcoin Script обеспечить не может. Ethereum устраняет эти ограничения, предоставляя Тьюринг-полный язык с полным доступом к состоянию блокчейна.
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
Фундаментальная цель Ethereum — предоставить блокчейн со встроенным Тьюринг-полным языком программирования, который позволяет любому писать смарт-контракты и децентрализованные приложения, в которых можно создавать собственные произвольные правила владения, форматы транзакций и функции перехода состояний. Вместо разработки протокола для конкретных приложений, таких как валюта, регистрация имён или торговля активами, Ethereum предоставляет фундаментальный слой — платформу распределённых вычислений на основе блокчейна, которую разработчики могут использовать для создания любого приложения, которое они могут себе представить.
Архитектура фундаментально отличается от модели UTXO Bitcoin. Ethereum использует систему на основе счетов, где состояние блокчейна представляет собой отображение адресов в объекты счетов. Каждый счёт имеет баланс, счётчик транзакций (nonce), а для контрактных счетов — связанный код и хранилище. Платформа включает встроенный Тьюринг-полный язык программирования для написания кода контрактов, который выполняется в виртуальной машине Ethereum (EVM) — стековой среде исполнения, обрабатывающей транзакции и переходы состояний.
Эта универсальность позволяет создавать обширный спектр приложений: альтернативные криптовалюты с пользовательскими правилами эмиссии, финансовые деривативы и стейблкоины, системы идентификации и репутации, децентрализованное файловое хранилище, децентрализованные автономные организации (DAO) и многое другое. Whitepaper подчёркивает, что Ethereum не оптимизирован для какого-либо конкретного варианта использования, а предоставляет фундаментальные строительные блоки — счета, транзакции, Тьюринг-полный язык и исполнение с измерением газа — которые разработчики могут комбинировать для создания приложений, востребованных экосистемой.
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.
Ethereum Accounts
В Ethereum состояние формируется из счетов, и существуют два фундаментальных типа. Внешние счета (EOA) контролируются закрытыми ключами и не имеют связанного кода — они представляют пользователей-людей или внешние сущности, взаимодействующие с блокчейном. Контрактные счета контролируются своим кодом контракта и активируются при получении сообщения или транзакции. Оба типа имеют общую структуру: каждый счёт имеет nonce (счётчик, обеспечивающий однократную обработку каждой транзакции), баланс в эфире, а для контрактов — код контракта и постоянное хранилище.
Эфир (ether) является основной внутренней криптовалютой Ethereum, служащей одновременно средством передачи стоимости и фундаментальной единицей для оплаты комиссий за транзакции (газ). В отличие от модели UTXO Bitcoin, где стоимость распределена между несколькими неизрасходованными выходами, счета Ethereum поддерживают простой баланс, который увеличивается при получении эфира и уменьшается при его отправке. Эта модель на основе счетов упрощает многие типы приложений, особенно требующие постоянного состояния или сложного контроля доступа, хотя и вводит другие соображения безопасности по сравнению с подходом Bitcoin.
Различие между EOA и контрактными счетами имеет решающее значение для понимания работы Ethereum. EOA могут инициировать транзакции, создавая и подписывая сообщения своими закрытыми ключами, оплачивая комиссии в газе за включение транзакций в блоки. Контрактные счета не могут инициировать транзакции самостоятельно, но могут отправлять сообщения другим контрактам в ответ на полученную транзакцию или сообщение, обеспечивая сложные цепочки выполнения, где одна внешняя транзакция запускает множественные взаимодействия между контрактами.
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.
Messages and Transactions
Транзакции в Ethereum представляют собой подписанные пакеты данных, создаваемые внешними счетами и транслируемые по сети. Транзакция содержит адрес получателя, криптографическую подпись, подтверждающую личность отправителя, количество эфира для перевода, необязательное поле данных (критически важное для взаимодействия с контрактами), STARTGAS (максимальное количество вычислительных шагов, которое транзакция может совершить) и GASPRICE (комиссия за вычислительный шаг, которую отправитель готов заплатить). Майнеры собирают эти транзакции, проверяют их, исполняют и включают в блоки, получая комиссии в газе в качестве вознаграждения.
Сообщения концептуально аналогичны транзакциям, но создаются контрактами, а не внешними участниками. Когда код контракта исполняется, он может отправлять сообщения другим контрактам — эти внутренние сообщения содержат отправителя (адрес контракта), получателя, количество эфира для перевода, необязательную полезную нагрузку данных и лимит STARTGAS. Сообщения обеспечивают коммуникацию между контрактами, позволяя строить сложные приложения из множества взаимодействующих контрактов, а не из монолитных программ.
Механизм газа критически важен для предотвращения злоупотреблений: каждый вычислительный шаг, операция хранения и байт данных в транзакции потребляет газ. Если транзакция исчерпывает газ до завершения, все изменения состояния откатываются (за исключением оплаты газа майнеру), предотвращая бесконечные циклы или чрезмерные вычисления, способные парализовать сеть. Отправитель указывает как общий бюджет газа (STARTGAS), так и цену, которую он готов платить за единицу (GASPRICE), а неиспользованный газ возвращается после завершения исполнения.
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.

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.
Ethereum State Transition Function
Функция перехода состояний Ethereum APPLY(S,TX) - S' определяет, как транзакция преобразует состояние блокчейна, и следует точной последовательности шагов. Сначала система проверяет допустимость транзакции: верифицирует правильность подписи, подтверждает соответствие nonce значению nonce счёта отправителя и обеспечивает наличие у отправителя достаточного баланса для оплаты авансовой стоимости (STARTGAS x GASPRICE плюс отправляемая сумма). Если любая проверка не проходит, транзакция отклоняется до начала исполнения. При успешной проверке комиссия за транзакцию вычитается со счёта отправителя, nonce отправителя увеличивается, и начальный счётчик газа устанавливается равным STARTGAS за вычетом побайтовой комиссии за данные транзакции.

Далее система переводит указанную сумму эфира от отправителя получателю. Если получатель является внешним счётом, на этом транзакция завершается. Если получатель является контрактным счётом, код контракта запускается в виртуальной машине Ethereum, потребляя газ за каждую операцию до тех пор, пока код не завершится успешно, явно не остановится или газ не будет исчерпан. Во время исполнения контракт может читать и изменять своё хранилище, отправлять сообщения другим контрактам и создавать новые контракты.
Наконец, если перевод средств не удался (недостаточный баланс) или исполнение кода завершилось неудачей (исчерпание газа или ошибка), все изменения состояния откатываются — за исключением того, что отправитель всё равно оплачивает газ майнеру за выполненные вычисления. При успешном исполнении оставшийся газ возвращается отправителю, а потреблённый газ отправляется майнеру в качестве комиссии. Этот механизм гарантирует, что майнеры получают компенсацию за вычисления, одновременно предотвращая неконтролируемое исполнение, потребляющее неограниченные ресурсы.
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.
Code Execution
Виртуальная машина Ethereum (EVM) — это среда исполнения, в которой выполняется код контрактов — низкоуровневая стековая виртуальная машина, концептуально схожая с виртуальной машиной Java или WebAssembly. Код контракта хранится в виде последовательности байтов, где каждый байт представляет операцию (opcode), которую EVM может выполнить. Модель исполнения намеренно проста и детерминистична: каждый узел, исполняющий EVM с одинаковым входным состоянием и транзакцией, должен прийти к одинаковому выходному состоянию, обеспечивая консенсус в сети.
EVM предоставляет три различных типа хранения для вычислений. Стек — это структура «последним вошёл, первым вышел» (LIFO), ограниченная 1024 элементами и используемая для непосредственных значений операций. Память — это бесконечно расширяемый массив байтов, существующий только в течение одного вызова сообщения и сбрасываемый между исполнениями. Хранилище — это постоянное хранилище «ключ-значение», навсегда связанное с каждым контрактным счётом, где контракты поддерживают своё долгосрочное состояние между транзакциями. Эти типы хранения тарифицируются по-разному в газе — операции со стеком и памятью дешёвые, тогда как операции с хранилищем дорогие для предотвращения раздувания блокчейна.
Во время исполнения код контракта имеет доступ к важному контексту: он может читать адрес отправителя сообщения, сумму отправленного эфира, полезную нагрузку данных, предоставленную вызывающей стороной, и свойства уровня блока, такие как текущий номер блока, метка времени и адрес майнера. Код может возвращать выходной массив байтов вызывающей стороне и может отправлять сообщения другим контрактам или создавать новые контракты. Эта модель исполнения является Тьюринг-полной — циклы и сложное управление потоком возможны — но механизм газа гарантирует, что все вычисления завершаются за ограниченное время, решая проблему останова экономически, а не через языковые ограничения.
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 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, 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.
Blockchain and Mining
Блокчейн Ethereum фундаментально подобен блокчейну Bitcoin, служа базой данных, содержащей каждую когда-либо исполненную транзакцию. Однако, в то время как Bitcoin хранит только список транзакций, Ethereum хранит как список транзакций, так и актуальное состояние. Каждый блок в Ethereum содержит хеш предыдущего блока, корень состояния (корневой хеш дерева Меркла-Патриции, представляющего полное состояние), корень транзакций, корень квитанций (хранящий данные исполнения транзакций), а также значения сложности, метки времени и nonce. Само состояние представляет собой большое дерево Меркла-Патриции, отображающее адреса в объекты счетов, где каждый счёт имеет баланс, nonce, код (при наличии) и хранилище.

Ethereum использует модифицированную версию протокола GHOST (Greedy Heaviest Observed Subtree) для решения проблем безопасности, возникающих при быстром времени создания блоков. В традиционных протоколах с самой длинной цепью быстрые блоки приводят к высокой доле устаревших блоков, снижая безопасность сети и увеличивая риски централизации, поскольку крупные майнеры теряют меньше вычислений на устаревших блоках. GHOST включает устаревшие блоки (называемые «дядями» в Ethereum) в расчёт того, какая цепь является самой длинной, и предоставляет частичные вознаграждения блокам-дядям, стимулируя майнеров ссылаться на них. Это позволяет Ethereum поддерживать целевое время блока приблизительно в 12 секунд, сохраняя при этом безопасность сети.
Алгоритм майнинга работает аналогично доказательству работы Bitcoin, требуя от майнеров найти nonce, при котором хеш блока оказывается ниже определённого целевого значения сложности. Однако алгоритм майнинга с высоким потреблением памяти (Ethash) спроектирован для устойчивости к ASIC, способствуя более децентрализованной экосистеме майнинга. Сложность динамически корректируется на основе времени создания блоков для поддержания цели в ~12 секунд, обеспечивая стабильное производство блоков, в то время как протокол GHOST предоставляет гарантии безопасности, несмотря на более быстрое время блоков по сравнению со средним показателем Bitcoin в 10 минут.
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.
Applications
Приложения, которые можно создать на Ethereum, делятся на три широкие категории. Первая категория — финансовые приложения, предоставляющие пользователям более мощные способы управления деньгами и заключения контрактов с их участием. Сюда входят суб-валюты, финансовые деривативы, контракты хеджирования, сберегательные кошельки с лимитами снятия, завещания, автоматически распределяющие средства, и даже трудовые контракты, рассчитывающие оплату на основе подтверждённого выполнения работы. Эти приложения используют программируемость Ethereum для создания сложных финансовых инструментов, которые были бы невозможны или чрезвычайно сложны для реализации в традиционных системах или даже на Bitcoin.
Вторая категория — полуфинансовые приложения, где деньги задействованы, но присутствует также существенная неденежная составляющая. Идеальный пример — самоисполняющиеся вознаграждения за решения вычислительных задач. Кто-то мог бы опубликовать вычислительную задачу вместе с наградой, и контракт мог бы автоматически проверять представленные решения и выплачивать вознаграждение за первый правильный ответ. Эта категория связывает чистые финансы с другими областями, используя экономические стимулы для решения задач или координации поведения.
Третья категория — приложения, вообще не связанные с деньгами, такие как онлайн-голосование и системы децентрализованного управления. Эти нефинансовые приложения демонстрируют гибкость Ethereum как универсальной платформы. Примеры включают децентрализованные системы доменных имён наподобие Namecoin, системы репутации, децентрализованное файловое хранилище и инструменты организационного управления. Среди всех этих типов приложений токен-системы стали наиболее распространёнными и фундаментальными, служа строительными блоками для многих других приложений.
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.
Token Systems
Токен-системы удивительно просты в реализации на Ethereum, несмотря на то что являются одним из самых мощных и распространённых приложений. По своей сути токен-системы — это просто база данных с одной операцией: вычесть X единиц со счёта A и добавить X единиц на счёт B при условии, что у A было как минимум X единиц до транзакции и транзакция авторизована A. Реализация требует поддержания отображения адресов в балансы и предоставления функции перевода, которая выполняет соответствующие проверки перед перемещением токенов между счетами.
Код контракта для базовой токен-системы замечательно прост и может быть написан всего в нескольких строках. Он состоит из структуры данных, отображающей адреса в балансы, функции инициализации, назначающей начальное предложение токенов, и функции перевода, проверяющей баланс и авторизацию отправителя перед выполнением перевода. Эта простота разительно контрастирует со сложностью, необходимой для реализации аналогичных систем на Bitcoin, которая потребовала бы значительных обходных решений и ограничений из-за ограниченных возможностей скриптов Bitcoin.
Токены на Ethereum могут представлять практически всё, что имеет ценность. Они могут представлять суб-валюты с собственной денежно-кредитной политикой, финансовые деривативы, отслеживающие внешние активы, акции компаний с правами на дивиденды, баллы лояльности в клиентских программах, товары, такие как золото или нефть, или даже представления физической собственности. Программируемость Ethereum позволяет этим токенам иметь произвольные правила, управляющие их поведением, такие как ограничения на переводы, механизмы автоматического сжигания, распределение дивидендов или права управления. Эта гибкость сделала токен-системы фундаментальным строительным блоком значительной части экосистемы Ethereum.
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.
Financial Derivatives and Stable-Value Currencies
Финансовые деривативы представляют одно из наиболее фундаментальных и важных применений смарт-контрактов Ethereum. Простой контракт хеджирования демонстрирует базовый механизм: сторона A вносит определённое количество эфира стоимостью 1000 \(, сторона B вносит эквивалентную сумму, и контракт записывает стоимость эфира в USD на этот момент, используя поток данных. Через 30 дней контракт пересчитывает стоимость и отправляет эфир на сумму 1000 \) стороне A, а остаток — стороне B. Если цена эфира выросла, A получает меньше эфира, но сохраняет стоимость в 1000 $; если упала — A получает больше эфира для поддержания этой стоимости. Это позволяет A хеджировать волатильность, в то время как B спекулирует на ценовых движениях.
Реализация таких контрактов требует доступа к внешним данным через контракты-оракулы или потоки данных. Эти оракулы предоставляют информацию о ценах, погодные данные или другую информацию из реального мира, необходимую контрактам для корректного исполнения. Хотя оракулы вводят зависимость от доверия, они могут быть спроектированы с резервированием и криптоэкономическими стимулами для предоставления надёжных данных. Сам контракт просто запрашивает оракул, выполняет вычисления на основе этих данных и распределяет средства в соответствии со своей запрограммированной логикой.
Стейблкоины и более сложные финансовые инструменты могут быть построены с использованием аналогичных механизмов. Контракт стейблкоина может поддерживать резерв эфира и выпускать токены, привязанные к фиатной валюте, автоматически корректируя предложение или требования к обеспечению на основе ценовых потоков. Опционные контракты, фьючерсы, свопы и другие деривативы, которые обычно требуют сложных юридических структур и доверенных посредников, могут быть закодированы как самоисполняющиеся смарт-контракты. Эта инфраструктура программируемых финансов обеспечивает сложный финансовый инжиниринг, сохраняя при этом гарантии прозрачности и безопасности блокчейн-технологии.
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.
Identity and Reputation Systems
Система регистрации имён, аналогичная Namecoin, тривиально реализуема на Ethereum и служит простейшим примером системы идентификации. Контракт поддерживает базу данных с таблицей «ключ-значение», отображающей имена в связанные данные (такие как IP-адреса, открытые ключи или другую информацию). Любой может зарегистрировать имя, отправив транзакцию контракту вместе с небольшой регистрационной комиссией, при условии что это имя ещё не занято. Владелец может обновить связанные данные в любое время, а имена могут быть сделаны передаваемыми или постоянными в соответствии с правилами, закодированными в контракте.
Более продвинутые системы идентификации могут быть построены на этой основе, включая оценки репутации, отношения сети доверия и децентрализованную верификацию личности. Например, контракт мог бы поддерживать оценки репутации на основе подтверждённых транзакций, оценок коллег или выполнения задач. Эти оценки были бы публично видимыми и криптографически привязанными к конкретным адресам, создавая портативную репутацию, которая следует за пользователями через приложения. Системы сети доверия могли бы позволять пользователям поручаться за личность других, выстраивая социальные графы, помогающие отличить легитимных пользователей от злоумышленников.
Такие системы идентификации и репутации становятся особенно мощными при интеграции с другими приложениями. Маркетплейс мог бы требовать минимальные оценки репутации для продавцов, кредитная платформа — корректировать процентные ставки на основе репутации заёмщика, а социальная сеть — использовать сеть доверия для фильтрации спама и мошеннического контента. Предоставляя общую инфраструктуру для идентификации, которую может запрашивать любое приложение, Ethereum позволяет создать новый класс приложений, основанных на доверии, не зависящих от централизованных провайдеров идентификации или проприетарных систем репутации.
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 File Storage
Децентрализованное файловое хранилище может быть реализовано через контракты Ethereum, координирующие взаимодействие между пользователями, нуждающимися в хранении, и провайдерами, которые его предоставляют. В модели «децентрализованного Dropbox» пользователи платили бы ежемесячную плату за загрузку файлов, а контракт распределял бы платежи провайдерам хранения, которые доказывают, что действительно хранят данные. Механизм доказательства работает через периодические криптографические испытания: контракт случайным образом выбирает фрагменты файлов и просит провайдеров предоставить доказательства на основе дерева Меркла, демонстрирующие, что они обладают этими данными. Провайдеры, не прошедшие испытания или ушедшие в оффлайн, теряли бы свои депозиты и будущий поток платежей.
Этот подход предлагает несколько преимуществ по сравнению с централизованным хранением. Доказательства на основе дерева Меркла обеспечивают эффективную верификацию — пользователи и контракт могут подтвердить доступность файлов без загрузки целых файлов. Система естественно распределяет файлы между несколькими независимыми провайдерами, создавая избыточность без необходимости в явных протоколах репликации. Экономические стимулы согласуют поведение провайдеров с потребностями пользователей: провайдеры зарабатывают деньги, надёжно храня данные, и теряют деньги, если этого не делают. Это устраняет требование доверия, присущее централизованным решениям хранения.
Стоимость хранения в такой системе потенциально может быть ниже, чем у централизованных альтернатив, по нескольким причинам. Устранение монопольного ценообразования позволяет рыночной конкуренции снизить стоимость до уровня, близкого к фактической стоимости хранения. Неявная избыточность от нескольких пользователей, хранящих похожие файлы, может уменьшить общие потребности в хранении. Нет необходимости в дорогостоящей инфраструктуре центров обработки данных или корпоративных накладных расходах. Тем не менее остаются проблемы с механизмами оплаты, обеспечением достаточного участия провайдеров и управлением компромиссом между избыточностью и стоимостью. Несмотря на эти проблемы, децентрализованное хранилище демонстрирует, как Ethereum может координировать сложные многосторонние взаимодействия исключительно через экономические стимулы.
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.
Decentralized Autonomous Organizations
Децентрализованная автономная организация (DAO) — это виртуальная сущность, имеющая набор участников или акционеров, которые коллективно обладают правом расходовать средства организации и изменять её код. Типичная DAO работает по простому правилу: 67% участников необходимы для принятия решений о расходовании средств или изменения кода организации. Участники могут подавать предложения, голосовать по ним, и если предложение получает достаточную поддержку, контракт автоматически исполняет решение. Доли участников могут быть передаваемыми, обеспечивая ликвидный рынок для участия в DAO, а различные классы долей могут иметь различные права голоса или экономические требования.
Простейшая конструкция DAO — это самомодифицирующийся контракт, поддерживающий список участников и требующий голосования с большинством 2/3 для изменения любого аспекта контракта, включая его собственные правила голосования. Участники подавали бы изменения кода в виде транзакций, другие участники голосовали бы, и по достижении порога контракт обновлял бы себя. Более сложные конструкции могут включать системы делегированного голосования, где участники могут передавать свои полномочия голосования представителям, или ликвидную демократию, где голоса могут быть делегированы, но в любой момент возвращены для важных решений.
DAO могут служить различным целям помимо простого управления фондами. DAO может функционировать как децентрализованная корпорация, нанимая подрядчиков, приобретая услуги и распределяя прибыль между акционерами — всё это управляется кодом смарт-контракта, а не традиционными юридическими структурами. Она может действовать как децентрализованный инвестиционный фонд, где участники голосуют за то, какие проекты финансировать. Она может управлять общим ресурсом, где заинтересованные стороны голосуют за правила распределения. Ключевое понимание заключается в том, что, кодируя правила управления в прозрачном, неизменяемом коде и привязывая их к экономической ставке, DAO могут координировать групповые решения без необходимости в традиционном иерархическом управлении или юридическом принуждении.
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.
Further Applications
Помимо уже рассмотренных основных категорий, Ethereum позволяет создавать многочисленные другие приложения. Сберегательные кошельки с продвинутыми функциями безопасности могут устанавливать ежедневные лимиты снятия, предоставляя при этом экстренные ключи для восстановления, защищая пользователей от кражи и сохраняя полный контроль. Контракты страхования урожая могут автоматически выплачивать фермерам на основе потоков метеорологических данных, устраняя обработку претензий и снижая административные расходы. Приложения для одноранговых азартных игр могут работать без каких-либо доверенных посредников, при этом смарт-контракты удерживают ставки и автоматически выплачивают выигрыши на основе верифицируемых случайных чисел или данных о реальных событиях.
Ончейн-рынки предсказаний позволяют пользователям делать ставки на будущие события, создавая мощные механизмы прогнозирования через мудрость толпы. Они могут быть дополнены протоколами типа SchellingCoin для создания децентрализованных оракулов: участники независимо сообщают данные (такие как результаты выборов или погодные условия), и те, чьи отчёты совпадают с большинством, получают вознаграждения, тогда как отклоняющиеся штрафуются. Этот криптоэкономический подход стимулирует честное сообщение данных и может предоставлять надёжные данные реального мира другим контрактам без необходимости доверять какому-либо единственному провайдеру оракула.
Мультиподписные кошельки представляют ещё одно важное приложение, обеспечивающее совместный контроль средств несколькими сторонами. Мультиподписной кошелёк 2-из-3 может требовать одобрения транзакции двумя из трёх назначенных сторон до того, как средства могут быть потрачены, что полезно для эскроу-соглашений, корпоративных казначейств или личной безопасности. Децентрализованные маркетплейсы могут сочетать системы идентификации, оценки репутации, эскроу-контракты и механизмы разрешения споров для обеспечения одноранговой торговли без централизованных платформ. Каждое из этих приложений демонстрирует, как программируемость Ethereum позволяет создавать новые модели доверия и организационные структуры.
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.

Ölçeklenebilirlik önemli bir endişe olmaya devam etmektedir, çünkü her 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.
Miscellanea And Concerns
Реализация модифицированного протокола GHOST в Ethereum включает специфические правила для включения и вознаграждения дядей. Дяди должны быть прямыми потомками предка текущего блока (от 2 до 7 поколений назад), должны быть валидными заголовками блоков, должны быть отличны от предыдущих дядей и не должны быть прямыми предками текущего блока. Блоки-дяди получают 87,5% стандартного вознаграждения за блок, а включающий блок получает дополнительные 3,125% за каждого включённого дядю (до двух дядей). Эта структура стимулов побуждает майнеров ссылаться на устаревшие блоки, которые они наблюдают, укрепляя безопасность сети и одновременно вознаграждая майнеров, которым временно не повезло с распространением по сети.
Система комиссий основана на концепции «газа», где каждая вычислительная операция имеет фиксированную стоимость в газе. Например, операция умножения стоит 5 газа, хеш SHA256 стоит 20 газа, а каждая транзакция имеет базовую стоимость 21 000 газа. Пользователи указывают как лимит газа (максимум газа, который они готовы потребить), так и цену газа (сколько эфира они заплатят за единицу газа). Эта система служит нескольким целям: она предотвращает бесконечные циклы и атаки типа «отказ в обслуживании», гарантируя оплату всех вычислений, создаёт рынок блочного пространства, где пользователи делают ставки через цены газа, и позволяет майнерам устанавливать минимальную цену газа, которую они готовы принять, защищая ресурсы сети.

Масштабируемость остаётся серьёзной проблемой, поскольку каждый полный узел должен обработать каждую транзакцию для верификации состояния. Текущие архитектуры блокчейна с трудом могут сравниться с пропускной способностью транзакций централизованных систем. Потенциальные решения включают шардинг состояния, где различные узлы обрабатывают различные подмножества транзакций, и переход от доказательства работы к консенсусу на основе доказательства доли, который мог бы обеспечить более эффективное производство блоков. Лёгкие клиенты, использующие доказательства Меркла, могут верифицировать транзакции без обработки всех блоков, но кто-то всё равно должен всё обработать. Эти проблемы масштабируемости представляют активные области исследований и разработок, критически важные для долгосрочной жизнеспособности Ethereum.
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.
Conclusion
Протокол Ethereum изначально был задуман как улучшенная версия криптовалюты, предоставляющая продвинутые функции, такие как ончейн-эскроу, лимиты снятия и финансовые контракты через высокообобщённый язык программирования. Однако протокол Ethereum выходит далеко за рамки простой валюты. Протоколы децентрализованного файлового хранилища, децентрализованных вычислений и децентрализованных рынков предсказаний, среди десятков других концепций, обладают потенциалом для существенного повышения эффективности вычислительной индустрии и массового развития других одноранговых протоколов, впервые добавляя экономический слой.
Вместо предоставления ограниченного набора операций, предназначенных для конкретных сценариев использования, Ethereum предоставляет Тьюринг-полный язык программирования, позволяющий разработчикам создавать любое приложение, которое они могут спроектировать. Хотите изобрести собственный финансовый дериватив? Создать собственную валюту? Основать правительство на блокчейне? Всё это тривиально реализуемо с помощью скриптовой системы Ethereum. Мощь платформы заключается не в предсказании того, какие приложения будут построены, а в предоставлении фундаментальной инфраструктуры, делающей их создание лёгким.
Концепция произвольной функции перехода состояний, реализованная протоколом Ethereum, предоставляет платформу с уникальным потенциалом. Вместо того чтобы быть закрытым протоколом единственного назначения для конкретных приложений в хранении данных, азартных играх или финансах, Ethereum открыт по замыслу, и мы считаем, что он чрезвычайно хорошо подходит для того, чтобы служить фундаментальным слоем для большого количества как финансовых, так и нефинансовых протоколов в ближайшие годы. Приложения, которые будут построены на Ethereum в будущем, могут оказаться теми, которые мы не можем даже вообразить сегодня, и эта открытая возможность представляет собой истинное обещание платформы.
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.
References and Further Reading
Whitepaper Ethereum основывается на обширных предшествующих работах в области исследований криптовалют и распределённых систем. Основополагающий протокол Bitcoin описан в оригинальной статье Сатоси Накамото 2008 года «Bitcoin: A Peer-to-Peer Electronic Cash System», которая представила концепцию цифровой валюты на основе блокчейна. Ранние попытки расширить функциональность Bitcoin включают Namecoin — децентрализованную систему регистрации имён, демонстрирующую блокчейн-приложения за пределами валюты, хотя и ограниченную возможностями скриптов Bitcoin.
Whitepaper colored coins предложил метод представления альтернативных активов на блокчейне Bitcoin путём «окрашивания» определённых биткоинов для обозначения других активов, тогда как Mastercoin попытался создать протокольный слой поверх Bitcoin для более сложных финансовых инструментов. Оба подчеркнули ограничения строительства на Bitcoin и мотивировали необходимость более гибкой платформы. Концепция децентрализованных автономных корпораций, исследованная в Bitcoin Magazine, предоставила теоретические основы для организационного управления через смарт-контракты.
Ключевые технические компоненты включают упрощённую верификацию платежей (SPV) для лёгких клиентов, деревья Меркла для эффективной верификации данных и деревья Патриции для представления состояния Ethereum. Протокол GHOST (Greedy Heaviest Observed Subtree), описанный в криптографической статье 2013 года, решает проблемы безопасности, возникающие при быстром времени создания блоков, и формирует основу механизма консенсуса Ethereum. Эти ссылки представляют интеллектуальный фундамент, на котором был построен Ethereum, сочетая знания из криптовалют, распределённых систем, криптографии и теории игр для создания универсальной блокчейн-платформы.