Ethereum: Platform Kontrak Cerdas dan Aplikasi Terdesentralisasi Generasi Berikutnya

Автор Vitalik Buterin · 2013

Abstract

Ethereum — это платформа криптовалюты и децентрализованных приложений следующего поколения, которая представляет блокчейн со встроенным Тьюринг-полным языком программирования. Это позволяет любому писать смарт-контракты и децентрализованные приложения, в которых можно создавать собственные произвольные правила владения, форматы транзакций и функции перехода состояний.

Фундаментальная инновация Ethereum заключается в сочетании блокчейн-технологии, впервые разработанной Bitcoin, с универсальной средой программирования. В то время как Bitcoin предоставляет простую систему перехода состояний для перемещения валюты с одного счёта на другой, Ethereum предоставляет платформу, на которой разработчики могут создавать любые децентрализованные приложения, какие только могут себе представить, от альтернативных валют и финансовых инструментов до систем регистрации доменных имён и децентрализованных организаций.

Ethereum достигает этого, создавая по сути окончательный абстрактный фундаментальный слой: блокчейн со встроенным Тьюринг-полным языком программирования, позволяющим любому писать смарт-контракты и децентрализованные приложения, в которых можно создавать собственные произвольные правила владения, форматы транзакций и функции перехода состояний. Минимальная версия Namecoin может быть написана в двух строках кода, а другие протоколы, такие как валюты и системы репутации, могут быть построены менее чем в двадцати.

Abstract

Ethereum adalah platform cryptocurrency dan aplikasi terdesentralisasi generasi berikutnya yang memperkenalkan blockchain dengan bahasa pemrograman Turing-complete bawaan. Hal ini memungkinkan siapa saja untuk menulis smart contract dan aplikasi terdesentralisasi di mana mereka dapat membuat aturan sewenang-wenang mereka sendiri untuk kepemilikan, format transaksi, dan state transition function.

Inovasi fundamental Ethereum adalah menggabungkan teknologi blockchain yang dipelopori oleh Bitcoin dengan lingkungan pemrograman serbaguna. Sementara Bitcoin menyediakan sistem state transition sederhana untuk memindahkan mata uang dari satu akun ke akun lain, Ethereum menyediakan platform di mana pengembang dapat membangun segala jenis aplikasi terdesentralisasi yang dapat mereka bayangkan, dari mata uang alternatif dan instrumen keuangan hingga sistem pendaftaran domain dan organisasi terdesentralisasi.

Ethereum mencapai hal ini dengan membangun apa yang pada dasarnya adalah lapisan fondasi abstrak tertinggi: sebuah blockchain dengan bahasa pemrograman Turing-complete bawaan, yang memungkinkan siapa saja menulis smart contract dan aplikasi terdesentralisasi di mana mereka dapat membuat aturan sewenang-wenang mereka sendiri untuk kepemilikan, format transaksi, dan state transition function. Versi dasar Namecoin dapat ditulis dalam dua baris kode, dan protokol lain seperti mata uang dan sistem reputasi dapat dibangun dalam kurang dari dua puluh baris.

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 намеревается предоставить — это блокчейн со встроенным полноценным Тьюринг-полным языком программирования, который может использоваться для создания «контрактов», способных кодировать произвольные функции перехода состояний, позволяя пользователям создавать любую из описанных выше систем, а также многие другие, которые мы ещё не представили, просто записывая логику в нескольких строках кода.

Introduction and Existing Concepts

Konsep mata uang digital terdesentralisasi, serta aplikasi alternatif seperti pencatatan properti, telah ada selama beberapa dekade. Protokol e-cash anonim pada tahun 1980an dan 1990an, sebagian besar bergantung pada kriptografi primitif yang dikenal sebagai Chaumian blinding, menyediakan mata uang dengan tingkat privasi yang tinggi, namun sebagian besar protokol tersebut gagal mendapatkan daya tarik karena ketergantungan mereka pada perantara terpusat. Pada tahun 1998, b-money Wei Dai menjadi proposal pertama yang memperkenalkan gagasan menciptakan uang melalui pemecahan teka-teki komputasi serta konsensus desentralisasi, namun proposal tersebut tidak memberikan rincian tentang bagaimana konsensus desentralisasi sebenarnya dapat diterapkan.

Pada tahun 2009, mata uang terdesentralisasi untuk pertama kalinya diterapkan dalam praktiknya oleh Satoshi Nakamoto, menggabungkan cara primitif yang sudah mapan untuk mengelola kepemilikan melalui kriptografi kunci publik dengan algoritma konsensus untuk melacak siapa yang memiliki koin, yang dikenal sebagai "bukti kerja". Mekanisme di balik bukti kerja merupakan terobosan karena memecahkan dua masalah secara bersamaan. Pertama, ini memberikan algoritma konsensus yang sederhana dan cukup efektif, yang memungkinkan node dalam jaringan untuk secara kolektif menyetujui serangkaian pembaruan kanonik terhadap status Bitcoin ledger. Kedua, hal ini memberikan mekanisme yang memungkinkan masuknya secara bebas ke dalam proses konsensus, memecahkan masalah politik dalam memutuskan siapa yang dapat mempengaruhi konsensus, sekaligus mencegah serangan sibil.

Blockchain Bitcoin telah terbukti sangat kuat selama bertahun-tahun beroperasi, namun pada dasarnya terbatas. Bahasa skrip Bitcoin sengaja dirancang untuk membatasi dan tidak lengkap Turing, tidak memiliki loop dan banyak fitur lain yang diperlukan untuk membangun aplikasi yang lebih kompleks. Batasan ini ada untuk mencegah loop tak terbatas dan bentuk serangan komputasi lainnya, namun sangat membatasi apa yang dapat dibangun di atas Bitcoin.

Selama lima tahun terakhir, ada sejumlah upaya untuk memperluas fungsionalitas Bitcoin. Koin berwarna berupaya menggunakan blockchain Bitcoin untuk melacak kepemilikan aset alternatif, Namecoin berupaya membuat basis data pendaftaran nama yang terdesentralisasi, dan berbagai protokol metacoin bertujuan untuk membangun lapisan tambahan di atas Bitcoin. Meskipun pendekatan ini menjanjikan, pendekatan ini pada akhirnya dibatasi oleh kemampuan skrip Bitcoin dan ketidakmampuan untuk mengakses data blockchain dari dalam skrip.

Apa yang Ethereum ingin sediakan adalah blockchain dengan bahasa pemrograman lengkap Turing yang terintegrasi dan lengkap yang dapat digunakan untuk membuat "kontrak" yang dapat digunakan untuk mengkodekan fungsi transisi keadaan sewenang-wenang, memungkinkan pengguna untuk membuat salah satu sistem yang dijelaskan di atas, serta banyak sistem lain yang belum kita bayangkan, hanya dengan menulis logika dalam beberapa baris kode.

Bitcoin As A State Transition System

С технической точки зрения реестр криптовалюты, такой как Bitcoin, можно рассматривать как систему перехода состояний, где есть «состояние», состоящее из статуса владения всеми существующими биткойнами, и «функция перехода состояний», которая принимает состояние и транзакцию и выдаёт новое состояние как результат. В стандартной банковской системе, например, состояние — это балансовый отчёт, транзакция — это запрос на перевод \(X от A к B, и функция перехода состояний уменьшает значение на счёте A на \)X и увеличивает значение на счёте B на \(X. Если на счёте A изначально менее \)X, функция перехода состояний возвращает ошибку.

Ethereum state transition diagram showing how transactions transform blockchain state

«Состояние» в Bitcoin — это совокупность всех монет (технически, «неизрасходованных выходов транзакций» или UTXO), которые были выпущены и ещё не потрачены, при этом каждый UTXO имеет номинал и владельца (определяемого 20-байтовым адресом, который по сути является криптографическим открытым ключом). Транзакция содержит один или более входов, где каждый вход содержит ссылку на существующий UTXO и криптографическую подпись, созданную закрытым ключом, связанным с адресом владельца, и один или более выходов, где каждый выход содержит новый UTXO, который будет добавлен в состояние.

Функция перехода состояний APPLY(S,TX) - S' может быть приблизительно определена следующим образом:

  1. Для каждого входа в TX, если указанный UTXO отсутствует в S, вернуть ошибку.
  2. Если предоставленная подпись не соответствует владельцу UTXO, вернуть ошибку.
  3. Если сумма номиналов всех входных UTXO меньше суммы номиналов всех выходных UTXO, вернуть ошибку.
  4. Вернуть S со всеми входными UTXO удалёнными и всеми выходными UTXO добавленными.

Первая половина первого шага предотвращает трату монет, которые не существуют, вторая половина первого шага предотвращает трату чужих монет, а второй шаг обеспечивает сохранение стоимости. Чтобы использовать это для платежа, протокол следующий: предположим, Алиса хочет отправить 11,7 BTC Бобу. Сначала Алиса ищет набор доступных UTXO, которыми она владеет, в сумме составляющих не менее 11,7 BTC. Реалистично, Алиса не сможет получить ровно 11,7 BTC; допустим, наименьшее, что она может получить — это 6+4+2=12. Затем она создаёт транзакцию с тремя входами и двумя выходами. Первый выход составит 11,7 BTC с адресом Боба в качестве владельца, а второй выход будет оставшейся «сдачей» в 0,3 BTC, владельцем которой является сама Алиса.

Bitcoin As A State Transition System

Dari sudut pandang teknis, ledger dari mata uang kripto seperti Bitcoin dapat dianggap sebagai sistem transisi keadaan, di mana terdapat "keadaan" yang terdiri dari status kepemilikan semua bitcoin yang ada dan "fungsi transisi keadaan" yang mengambil keadaan dan transaksi dan menghasilkan keadaan baru yang merupakan hasilnya. Dalam sistem perbankan standar, misalnya, keadaan adalah neraca, transaksi adalah permintaan untuk memindahkan \(X dari A ke B, dan fungsi transisi keadaan mengurangi nilai dalam rekening A sebesar \)X dan meningkatkan nilai dalam rekening B sebesar \(X. Jika akun A memiliki kurang dari \)X, fungsi transisi keadaan akan mengembalikan kesalahan.

Ethereum state transition diagram showing how transactions transform blockchain state

"Negara" di Bitcoin adalah kumpulan semua koin (secara teknis, "keluaran transaksi yang belum terpakai" atau UTXO) yang telah dicetak dan belum dibelanjakan, dengan setiap UTXO memiliki denominasi dan pemilik (ditentukan oleh alamat 20-byte yang pada dasarnya merupakan kunci publik kriptografi). Suatu transaksi berisi satu atau lebih masukan, dengan setiap masukan berisi referensi ke UTXO yang ada dan tanda tangan kriptografi yang dihasilkan oleh kunci pribadi yang terkait dengan alamat pemilik, dan satu atau lebih keluaran, dengan setiap keluaran berisi UTXO baru untuk ditambahkan ke negara.

Fungsi transisi keadaan APPLY(S,TX) - S' dapat didefinisikan secara kasar sebagai berikut:

  1. Untuk setiap masukan di TX, jika UTXO yang direferensikan tidak ada di S, kembalikan kesalahan.
  2. Jika tanda tangan yang diberikan tidak cocok dengan pemilik UTXO, kembalikan kesalahan.
  3. Jika jumlah denominasi semua input UTXO lebih kecil dari jumlah denominasi semua output UTXO, kembalikan kesalahan.
  4. Kembalikan S dengan semua input UTXO dihapus dan semua output UTXO ditambahkan.

Paruh pertama dari langkah pertama mencegah pengirim transaksi membelanjakan koin yang tidak ada, paruh kedua dari langkah pertama mencegah pengirim transaksi membelanjakan koin orang lain, dan langkah kedua menerapkan konservasi nilai. Untuk menggunakan ini sebagai pembayaran, protokolnya adalah sebagai berikut: misalkan Alice ingin mengirim 11,7 BTC ke Bob. Pertama, Alice akan mencari satu set UTXO yang dia miliki yang totalnya mencapai setidaknya 11,7 BTC. Secara realistis, Alice tidak akan bisa mendapatkan tepat 11,7 BTC; katakanlah bilangan terkecil yang dapat diperolehnya adalah 6+4+2=12. Dia kemudian membuat transaksi dengan tiga input dan dua output tersebut. Output pertama akan menjadi 11,7 BTC dengan alamat Bob sebagai pemiliknya, dan output kedua akan menjadi sisa 0,3 BTC "perubahan", dengan pemiliknya adalah Alice sendiri.

Mining

Если бы у нас был доступ к надёжному централизованному сервису, эту систему было бы тривиально реализовать; её можно было бы просто запрограммировать точно так, как описано, используя жёсткий диск централизованного сервера для отслеживания состояния. Однако с Bitcoin мы пытаемся построить децентрализованную валютную систему, поэтому нам нужно будет объединить систему транзакций состояния с системой консенсуса, чтобы обеспечить согласие всех относительно порядка транзакций. Децентрализованный процесс консенсуса Bitcoin требует, чтобы узлы в сети непрерывно пытались создавать пакеты транзакций, называемые «блоками». Сеть предназначена для производства примерно одного блока каждые десять минут, при этом каждый блок содержит метку времени, nonce, ссылку на (т.е. хеш) предыдущий блок и список всех транзакций, произошедших с момента предыдущего блока.

Ethereum block structure showing linked blocks with timestamps nonces and transactions

Со временем это создаёт постоянную, непрерывно растущую «блокчейн», которая постоянно обновляется, чтобы отражать последнее состояние реестра Bitcoin. Алгоритм проверки валидности блока, выраженный в этой парадигме, выглядит следующим образом:

  1. Проверить, существует ли предыдущий блок, на который ссылается блок, и является ли он валидным.
  2. Проверить, что метка времени блока больше метки времени предыдущего блока и менее чем на 2 часа опережает текущее время.
  3. Проверить, что доказательство работы блока валидно.
  4. Пусть S — состояние в конце предыдущего блока.
  5. Предположим, TX — это список транзакций блока с n транзакциями. Для всех i в 0...n-1 установить S = APPLY(S,TX[i]). Если какое-либо применение возвращает ошибку, выйти и вернуть ложь.
  6. Вернуть истину и зарегистрировать S как состояние в конце этого блока.

По сути, каждая транзакция в блоке должна обеспечивать валидный переход состояния от того, что было каноническим состоянием до выполнения транзакции, к некоторому новому состоянию. Обратите внимание, что состояние никак не закодировано в блоке; это чисто абстракция, которую должен помнить проверяющий узел, и которая может быть (безопасно) вычислена для любого блока только начиная с генезис-состояния и последовательно применяя каждую транзакцию в каждом блоке.

Майнер вознаграждается за свою вычислительную работу вновь созданными биткойнами плюс комиссиями за транзакции. Процесс майнинга работает следующим образом: майнеры берут заголовок блока и многократно хешируют его с различными значениями nonce, пока не найдут хеш, который ниже определённого целевого значения сложности. Когда майнер находит такой хеш, он транслирует блок в сеть, и другие узлы проверяют, что хеш валиден и что все транзакции в блоке валидны. Целевое значение сложности автоматически корректируется протоколом каждые 2016 блоков (приблизительно две недели), чтобы обеспечить производство блоков с примерно постоянной скоростью.

Обратите внимание, что в долгосрочной перспективе безопасность блокчейна зависит от того, имеют ли майнеры финансовый стимул вести себя честно. Если злоумышленник контролирует более 50% вычислительной мощности сети, он потенциально может выполнить «атаку 51%», создав альтернативный блокчейн, который растёт быстрее, чем честная цепочка. Однако такая атака потребовала бы огромных вычислительных ресурсов и, вероятно, привела бы к тому, что вознаграждения за майнинг атакующего стали бы бесполезными, поскольку сеть потеряла бы доверие к целостности блокчейна.

Mining

Jika kita mempunyai akses terhadap layanan terpusat yang dapat dipercaya, sistem ini akan mudah diterapkan; itu bisa saja diberi kode persis seperti yang dijelaskan, menggunakan hard drive server terpusat untuk melacak keadaan. Namun, dengan Bitcoin kami mencoba membangun sistem mata uang yang terdesentralisasi, jadi kami perlu menggabungkan sistem transaksi negara dengan sistem konsensus untuk memastikan bahwa semua orang menyetujui urutan transaksi. Proses konsensus terdesentralisasi Bitcoin mengharuskan node di jaringan untuk terus berupaya menghasilkan paket transaksi yang disebut "blok". Jaringan ini dimaksudkan untuk menghasilkan kira-kira satu blok setiap sepuluh menit, dengan setiap blok berisi stempel waktu, nonce, referensi ke (yaitu hash dari) blok sebelumnya dan daftar semua transaksi yang telah terjadi sejak blok sebelumnya.

Ethereum block structure showing linked blocks with timestamps nonces and transactions

Seiring waktu, hal ini menciptakan "blockchain" yang terus-menerus dan terus berkembang yang terus diperbarui untuk mewakili keadaan terbaru dari Bitcoin ledger. Algoritma untuk memeriksa apakah suatu blok valid, dinyatakan dalam paradigma ini, adalah sebagai berikut:

  1. Periksa apakah blok sebelumnya yang direferensikan oleh blok tersebut ada dan valid.
  2. Periksa apakah stempel waktu blok lebih besar dari blok sebelumnya dan kurang dari 2 jam ke depan.
  3. Periksa apakah bukti kerja pada blok tersebut valid.
  4. Misalkan S adalah keadaan pada akhir blok sebelumnya.
  5. Misalkan TX adalah daftar transaksi blok dengan n transaksi. Untuk semua i di 0...n-1, setel S = APPLY(S,TX[i]). Jika ada aplikasi yang mengembalikan kesalahan, keluar dan kembalikan false.
  6. Kembalikan nilai true, dan daftarkan S sebagai keadaan di akhir blok ini.

Pada dasarnya, setiap transaksi dalam blok harus menyediakan transisi keadaan yang valid dari keadaan kanonik sebelum transaksi dieksekusi ke keadaan baru. Perhatikan bahwa negara bagian tidak dikodekan dalam blok dengan cara apa pun; ini murni sebuah abstraksi untuk diingat oleh node yang memvalidasi dan hanya dapat (secara aman) dihitung untuk blok mana pun dengan memulai dari keadaan asal dan secara berurutan menerapkan setiap transaksi di setiap blok.

Penambang diberi imbalan atas pekerjaan komputasi mereka dengan bitcoin yang baru dibuat ditambah biaya transaksi. Proses penambangan bekerja sebagai berikut: penambang mengambil header blok dan berulang kali melakukan hash dengan nilai nonce yang berbeda hingga mereka menemukan hash yang berada di bawah target kesulitan tertentu. Ketika seorang penambang menemukan hash tersebut, mereka menyiarkan blok tersebut ke jaringan, dan node lain memverifikasi bahwa hash tersebut valid dan bahwa semua transaksi di blok tersebut valid. Target kesulitan secara otomatis disesuaikan oleh protokol setiap blok tahun 2016 (kira-kira dua minggu) untuk memastikan bahwa blok diproduksi pada tingkat yang kira-kira konstan.

Perlu diingat bahwa dalam jangka panjang, keamanan blockchain bergantung pada insentif finansial yang dimiliki penambang untuk berperilaku jujur. Jika penyerang mengendalikan lebih dari 50% kekuatan penambangan jaringan, mereka berpotensi melakukan "serangan 51%" dengan menciptakan blockchain alternatif yang tumbuh lebih cepat daripada rantai jujur. Namun, serangan seperti itu akan memerlukan sumber daya komputasi yang sangat besar dan kemungkinan besar akan mengakibatkan imbalan penambangan penyerang menjadi tidak berharga karena jaringan kehilangan kepercayaan terhadap integritas blockchain.

Merkle Trees

Деревья Меркла являются фундаментальной структурой данных, используемой в блоках Bitcoin для обеспечения эффективной и безопасной верификации включения транзакций. Дерево Меркла представляет собой бинарное дерево хешей, где листовые узлы содержат хеши отдельных транзакций, а каждый внутренний узел содержит хеш своих двух потомков, рекурсивно формируя единственный корневой хеш, который хранится в заголовке блока. Эта иерархическая структура позволяет любому проверить, что конкретная транзакция включена в блок, загрузив лишь ветвь Меркла — цепочку хешей от транзакции до корня — вместо загрузки всех транзакций в блоке.

Simplified Payment Verification using Merkle tree branch proofs for transaction verification

Выигрыш в эффективности существенен: в то время как полный узел Bitcoin должен хранить всю цепочку блоков (приблизительно 15 ГБ по состоянию на 2013 год), узел упрощённой верификации платежей (SPV) должен загрузить только заголовки блоков, содержащие корни Меркла, что требует всего 4 МБ данных. Для верификации транзакции узел SPV запрашивает ветвь Меркла у полных узлов, что требует лишь O(log n) данных, где n — количество транзакций в блоке. Такое логарифмическое масштабирование делает возможным запуск лёгких клиентов на мобильных устройствах и в средах с ограниченными ресурсами.

Использование деревьев Меркла в Bitcoin демонстрирует ключевой принцип: криптографические структуры могут значительно снизить требования к доверию и ресурсам для участия в децентрализованной сети. Этот же принцип лежит в основе архитектуры Ethereum, где деревья Меркла используются не только для транзакций, но и для хранения состояния и квитанций, что позволяет создавать ещё более сложные протоколы для лёгких клиентов.

Merkle Trees

Pohon Merkle adalah struktur data mendasar yang digunakan di blok Bitcoin untuk memungkinkan verifikasi penyertaan transaksi yang efisien dan aman. Pohon Merkle adalah pohon biner hash di mana node daun berisi hash dari transaksi individual, dan setiap node interior berisi hash dari dua anaknya, yang secara rekursif membangun hingga satu hash root yang disimpan di header blok. Struktur hierarki ini memungkinkan siapa pun untuk memverifikasi bahwa transaksi tertentu termasuk dalam blok dengan hanya mengunduh cabang Merkle—rantai hash dari transaksi hingga ke akar—daripada mengunduh semua transaksi di blok.

Simplified Payment Verification using Merkle tree branch proofs for transaction verification

Peningkatan efisiensinya sangat besar: meskipun node Bitcoin penuh harus menyimpan seluruh blockchain (sekitar 15 GB pada tahun 2013), node verifikasi pembayaran (SPV) yang disederhanakan hanya perlu mengunduh header blok yang berisi akar Merkle, yang hanya memerlukan data sebesar 4 MB. Untuk memverifikasi suatu transaksi, node SPV meminta cabang Merkle dari node penuh, yang hanya memerlukan data O(log n) di mana n adalah jumlah transaksi dalam satu blok. Penskalaan logaritmik ini memungkinkan untuk menjalankan klien ringan di perangkat seluler dan lingkungan dengan sumber daya rendah.

Penggunaan pohon Merkle oleh Bitcoin menunjukkan prinsip utama: struktur kriptografi dapat secara signifikan mengurangi kepercayaan dan kebutuhan sumber daya untuk berpartisipasi dalam jaringan terdesentralisasi. Prinsip yang sama mendasari desain Ethereum, di mana pohon Merkle digunakan tidak hanya untuk transaksi tetapi juga untuk penyimpanan negara dan tanda terima, sehingga memungkinkan protokol klien ringan yang lebih canggih.

Alternative Blockchain Applications

Успех блокчейна Bitcoin вдохновил многочисленные попытки расширить эту концепцию за пределы простой валюты. Namecoin, запущенный в 2010 году, был одним из первых примеров — децентрализованная база данных регистрации имён, построенная на блокчейне, позволяющая пользователям регистрировать имена в распределённом пространстве имён, которое ни одна центральная власть не могла цензурировать или отозвать. Colored coins появились как способ представления альтернативных активов на блокчейне Bitcoin путём «маркировки» определённых выходов транзакций для обозначения владения реальными активами, акциями компаний или другими криптовалютами. Метакоины и мета-протоколы, такие как Mastercoin (позднее Omni), добавляли дополнительную функциональность поверх Bitcoin, кодируя дополнительные данные в транзакциях Bitcoin и строя отдельные правила протокола поверх них.

Однако все эти подходы страдали от фундаментальных ограничений, налагаемых архитектурой Bitcoin. Язык скриптов Bitcoin намеренно ограничен — он не может получить доступ к состоянию блокчейна, не имеет циклов и сложного управления потоком выполнения, а также предоставляет ограниченную интроспекцию значений транзакций. Создание сложных приложений требовало неуклюжих обходных решений: кодирования метаданных в полях транзакций, никогда не предназначавшихся для этого, зависимости от внецепочечной инфраструктуры для сложной логики или принятия серьёзных ограничений на то, что протокол мог реализовать.

Эти ограничения мотивировали поиск более универсальной блокчейн-платформы. Вместо создания ещё одного специализированного протокола поверх ограниченного фундамента Bitcoin, Ethereum использует другой подход: предоставление блокчейна со встроенным Тьюринг-полным языком программирования, позволяющим любому создавать смарт-контракты и децентрализованные приложения с произвольными правилами владения, форматами транзакций и функциями перехода состояний.

Alternative Blockchain Applications

Keberhasilan blockchain Bitcoin menginspirasi banyak upaya untuk memperluas konsep ini lebih dari sekadar mata uang sederhana. Namecoin, diluncurkan pada tahun 2010, adalah salah satu contoh paling awal—database pendaftaran nama terdesentralisasi yang dibangun di atas blockchain, memungkinkan pengguna untuk mendaftarkan nama dalam namespace terdistribusi yang tidak dapat disensor atau dicabut oleh otoritas pusat. Koin berwarna muncul sebagai cara untuk mewakili aset alternatif di blockchain Bitcoin dengan "menandai" keluaran transaksi tertentu untuk mewakili kepemilikan aset dunia nyata, saham perusahaan, atau mata uang kripto lainnya. Metacoin dan meta-protokol seperti Mastercoin (kemudian Omni) melapisi fungsionalitas tambahan di atas Bitcoin dengan menyandikan data tambahan dalam transaksi Bitcoin dan membangun aturan protokol terpisah di atasnya.

Namun, semua pendekatan ini mengalami keterbatasan mendasar yang disebabkan oleh arsitektur Bitcoin. Bahasa skrip Bitcoin sengaja dibatasi—tidak dapat mengakses status blockchain, tidak memiliki loop dan aliran kontrol yang kompleks, dan memberikan introspeksi terbatas ke dalam nilai transaksi. Membangun aplikasi yang canggih memerlukan solusi yang sulit: mengkodekan metadata dalam bidang transaksi yang tidak pernah dimaksudkan untuk tujuan tersebut, mengandalkan infrastruktur off-chain untuk logika yang kompleks, atau menerima batasan ketat pada apa yang dapat dicapai oleh protokol.

Kendala ini memotivasi pencarian platform blockchain yang lebih bertujuan umum. Daripada membangun protokol tujuan khusus lainnya di atas fondasi terbatas Bitcoin, Ethereum mengambil pendekatan yang berbeda: menyediakan blockchain dengan bahasa pemrograman lengkap Turing bawaan, memungkinkan siapa pun untuk menulis kontrak pintar dan aplikasi terdesentralisasi dengan aturan sewenang-wenang untuk kepemilikan, format transaksi, dan fungsi transisi keadaan.

Scripting

Bitcoin Script, язык, используемый для определения условий расходования транзакций Bitcoin, намеренно спроектирован с серьёзными ограничениями. Он не является Тьюринг-полным — в первую очередь, в нём отсутствуют циклы и сложные структуры управления потоком выполнения. Язык работает как простая стековая среда исполнения, где операции помещают и извлекают значения, оценивают криптографические условия и в конечном итоге возвращают истину или ложь, определяя, является ли транзакция допустимой. Хотя эта простота обеспечивает преимущества безопасности и упрощает формальный анализ, она также делает невозможной реализацию многих типов приложений.

Эти ограничения делятся на три основные категории. Во-первых, отсутствие Тьюринг-полноты не позволяет реализовать сложные конечные автоматы, деревья решений или любой алгоритм, требующий итерации. Во-вторых, «слепота к значениям» означает, что скрипты не могут определять детальный контроль над суммами снятия — UTXO может быть потрачен только целиком, а сдача отправляется на новый выход. Скрипт не может, например, ограничить снятие максимумом X в день, оставив остаток заблокированным. В-третьих, отсутствие осведомлённости о состоянии блокчейна означает, что UTXO либо потрачены, либо не потрачены, без промежуточных состояний, что делает невозможной реализацию многоэтапных контрактов исключительно в цепочке.

Эти ограничения делают такие сложные приложения, как децентрализованные автономные организации, сберегательные кошельки с лимитами снятия, децентрализованные биржи или рынки предсказаний, либо невозможными, либо требующими неуклюжих внецепочечных механизмов. Продвинутый финансовый контракт может потребовать доступа к рыночным данным, способности поддерживать внутреннее состояние между несколькими транзакциями и сложной условной логики — ничего из этого Bitcoin Script обеспечить не может. Ethereum устраняет эти ограничения, предоставляя Тьюринг-полный язык с полным доступом к состоянию блокчейна.

Scripting

Bitcoin Script, bahasa yang digunakan untuk menentukan kondisi pengeluaran untuk transaksi Bitcoin, sengaja dirancang dengan keterbatasan yang parah. Ini bukan Turing yang lengkap—terutama, ia tidak memiliki loop dan struktur aliran kontrol yang kompleks. Bahasa ini beroperasi sebagai lingkungan eksekusi berbasis tumpukan sederhana di mana operasi mendorong dan memunculkan nilai, mengevaluasi kondisi kriptografi, dan pada akhirnya mengembalikan nilai benar atau salah untuk menentukan apakah suatu transaksi valid. Meskipun kesederhanaan ini memberikan manfaat keamanan dan membuat analisis formal lebih mudah, hal ini juga membuat banyak jenis aplikasi menjadi tidak mungkin untuk diimplementasikan.

Keterbatasan ini terbagi dalam tiga kategori utama. Pertama, kurangnya kelengkapan Turing menghalangi penerapan mesin negara yang kompleks, pohon keputusan, atau algoritma apa pun yang memerlukan iterasi. Kedua, kebutaan nilai berarti bahwa skrip tidak dapat menentukan kontrol menyeluruh atas jumlah penarikan—UTXO hanya dapat dibelanjakan secara keseluruhan, dengan perubahan dikirim ke keluaran baru. Sebuah skrip tidak dapat, misalnya, membatasi penarikan hingga maksimum X per hari dan membiarkan sisanya terkunci. Ketiga, kurangnya kesadaran akan status blockchain berarti bahwa UTXO sudah terpakai atau tidak terpakai tanpa status perantara, membuat kontrak multi-tahap tidak mungkin diterapkan secara on-chain.

Kendala-kendala ini membuat aplikasi canggih seperti organisasi otonom terdesentralisasi, dompet tabungan dengan batas penarikan, pertukaran terdesentralisasi, atau pasar prediksi menjadi tidak mungkin atau memerlukan mekanisme off-chain yang canggung. Kontrak keuangan tingkat lanjut mungkin memerlukan akses ke data pasar, kemampuan untuk mempertahankan keadaan internal di berbagai transaksi, dan logika kondisional yang kompleks—tidak ada satupun yang dapat disediakan oleh Skrip Bitcoin. Ethereum menghilangkan batasan ini dengan menyediakan bahasa lengkap Turing dengan akses penuh ke status blockchain.

Ethereum

Фундаментальная цель Ethereum — предоставить блокчейн со встроенным Тьюринг-полным языком программирования, который позволяет любому писать смарт-контракты и децентрализованные приложения, в которых можно создавать собственные произвольные правила владения, форматы транзакций и функции перехода состояний. Вместо разработки протокола для конкретных приложений, таких как валюта, регистрация имён или торговля активами, Ethereum предоставляет фундаментальный слой — платформу распределённых вычислений на основе блокчейна, которую разработчики могут использовать для создания любого приложения, которое они могут себе представить.

Архитектура фундаментально отличается от модели UTXO Bitcoin. Ethereum использует систему на основе счетов, где состояние блокчейна представляет собой отображение адресов в объекты счетов. Каждый счёт имеет баланс, счётчик транзакций (nonce), а для контрактных счетов — связанный код и хранилище. Платформа включает встроенный Тьюринг-полный язык программирования для написания кода контрактов, который выполняется в виртуальной машине Ethereum (EVM) — стековой среде исполнения, обрабатывающей транзакции и переходы состояний.

Эта универсальность позволяет создавать обширный спектр приложений: альтернативные криптовалюты с пользовательскими правилами эмиссии, финансовые деривативы и стейблкоины, системы идентификации и репутации, децентрализованное файловое хранилище, децентрализованные автономные организации (DAO) и многое другое. Whitepaper подчёркивает, что Ethereum не оптимизирован для какого-либо конкретного варианта использования, а предоставляет фундаментальные строительные блоки — счета, транзакции, Тьюринг-полный язык и исполнение с измерением газа — которые разработчики могут комбинировать для создания приложений, востребованных экосистемой.

Ethereum

Tujuan mendasar Ethereum adalah untuk menyediakan blockchain dengan bahasa pemrograman lengkap Turing yang memungkinkan siapa saja untuk menulis kontrak pintar dan aplikasi terdesentralisasi di mana mereka dapat membuat aturan sewenang-wenang mereka sendiri untuk kepemilikan, format transaksi, dan fungsi transisi negara. Daripada merancang protokol untuk aplikasi spesifik seperti mata uang, pendaftaran nama, atau perdagangan aset, Ethereum menyediakan lapisan dasar—platform komputasi terdistribusi berbasis blockchain yang dapat digunakan pengembang untuk membangun aplikasi apa pun yang dapat mereka bayangkan.

Arsitekturnya berbeda secara mendasar dari model UTXO Bitcoin. Ethereum menggunakan sistem berbasis akun dimana status blockchain terdiri dari pemetaan dari alamat ke objek akun. Setiap akun memiliki saldo, penghitung transaksi (nonce), dan untuk akun kontrak, kode dan penyimpanan terkait. Platform ini mencakup bahasa pemrograman lengkap Turing bawaan untuk menulis kode kontrak yang dijalankan di Mesin Virtual Ethereum (EVM), lingkungan eksekusi berbasis tumpukan yang memproses transaksi dan transisi status.

Sifat umum ini memungkinkan beragam penerapan: mata uang kripto alternatif dengan aturan penerbitan khusus, derivatif keuangan dan stablecoin, sistem identitas dan reputasi, penyimpanan file terdesentralisasi, organisasi otonom terdesentralisasi (DAO), dan banyak lagi. Whitepaper tersebut menekankan bahwa Ethereum tidak dioptimalkan untuk kasus penggunaan tertentu, melainkan menyediakan blok bangunan dasar—akun, transaksi, bahasa Turing-lengkap, dan eksekusi gas-metered—yang dapat digabungkan oleh pengembang untuk menciptakan aplikasi apa pun yang dibutuhkan ekosistem.

Ethereum Accounts

В Ethereum состояние формируется из счетов, и существуют два фундаментальных типа. Внешние счета (EOA) контролируются закрытыми ключами и не имеют связанного кода — они представляют пользователей-людей или внешние сущности, взаимодействующие с блокчейном. Контрактные счета контролируются своим кодом контракта и активируются при получении сообщения или транзакции. Оба типа имеют общую структуру: каждый счёт имеет nonce (счётчик, обеспечивающий однократную обработку каждой транзакции), баланс в эфире, а для контрактов — код контракта и постоянное хранилище.

Эфир (ether) является основной внутренней криптовалютой Ethereum, служащей одновременно средством передачи стоимости и фундаментальной единицей для оплаты комиссий за транзакции (газ). В отличие от модели UTXO Bitcoin, где стоимость распределена между несколькими неизрасходованными выходами, счета Ethereum поддерживают простой баланс, который увеличивается при получении эфира и уменьшается при его отправке. Эта модель на основе счетов упрощает многие типы приложений, особенно требующие постоянного состояния или сложного контроля доступа, хотя и вводит другие соображения безопасности по сравнению с подходом Bitcoin.

Различие между EOA и контрактными счетами имеет решающее значение для понимания работы Ethereum. EOA могут инициировать транзакции, создавая и подписывая сообщения своими закрытыми ключами, оплачивая комиссии в газе за включение транзакций в блоки. Контрактные счета не могут инициировать транзакции самостоятельно, но могут отправлять сообщения другим контрактам в ответ на полученную транзакцию или сообщение, обеспечивая сложные цепочки выполнения, где одна внешняя транзакция запускает множественные взаимодействия между контрактами.

Ethereum Accounts

Di Ethereum, negara bagian terdiri dari akun-akun, dan ada dua tipe dasar. Akun yang dimiliki secara eksternal (EOA) dikendalikan oleh kunci pribadi dan tidak memiliki kode terkait—mereka mewakili pengguna manusia atau entitas eksternal yang berinteraksi dengan blockchain. Akun kontrak dikendalikan oleh kode kontraknya dan diaktifkan ketika mereka menerima pesan atau transaksi. Kedua jenis ini memiliki struktur yang sama: setiap akun memiliki nonce (penghitung yang digunakan untuk memastikan setiap transaksi hanya dapat diproses satu kali), saldo eter, dan untuk kontrak khususnya, kode kontrak dan penyimpanan persisten.

Ether adalah mata uang kripto internal utama Ethereum, yang berfungsi sebagai media transfer nilai dan unit dasar untuk membayar biaya transaksi (gas). Tidak seperti model UTXO Bitcoin di mana nilai didistribusikan ke beberapa keluaran yang tidak terpakai, akun Ethereum mempertahankan saldo sederhana yang bertambah saat mereka menerima eter dan menurun saat mereka mengirimkannya. Model berbasis akun ini menyederhanakan banyak jenis aplikasi, terutama yang memerlukan keadaan persisten atau kontrol akses yang kompleks, meskipun model ini memperkenalkan pertimbangan keamanan yang berbeda dibandingkan dengan pendekatan Bitcoin.

Perbedaan antara EOA dan akun kontrak sangat penting untuk memahami pengoperasian Ethereum. EOA dapat memulai transaksi dengan membuat dan menandatangani pesan dengan kunci pribadi mereka, membayar biaya bahan bakar agar transaksi mereka dimasukkan dalam blok. Akun kontrak tidak dapat memulai transaksi sendiri tetapi dapat mengirim pesan ke kontrak lain sebagai respons terhadap penerimaan transaksi atau pesan, sehingga memungkinkan rantai eksekusi yang kompleks di mana satu transaksi eksternal memicu beberapa interaksi kontrak-ke-kontrak.

Messages and Transactions

Транзакции в Ethereum представляют собой подписанные пакеты данных, создаваемые внешними счетами и транслируемые по сети. Транзакция содержит адрес получателя, криптографическую подпись, подтверждающую личность отправителя, количество эфира для перевода, необязательное поле данных (критически важное для взаимодействия с контрактами), STARTGAS (максимальное количество вычислительных шагов, которое транзакция может совершить) и GASPRICE (комиссия за вычислительный шаг, которую отправитель готов заплатить). Майнеры собирают эти транзакции, проверяют их, исполняют и включают в блоки, получая комиссии в газе в качестве вознаграждения.

Сообщения концептуально аналогичны транзакциям, но создаются контрактами, а не внешними участниками. Когда код контракта исполняется, он может отправлять сообщения другим контрактам — эти внутренние сообщения содержат отправителя (адрес контракта), получателя, количество эфира для перевода, необязательную полезную нагрузку данных и лимит STARTGAS. Сообщения обеспечивают коммуникацию между контрактами, позволяя строить сложные приложения из множества взаимодействующих контрактов, а не из монолитных программ.

Механизм газа критически важен для предотвращения злоупотреблений: каждый вычислительный шаг, операция хранения и байт данных в транзакции потребляет газ. Если транзакция исчерпывает газ до завершения, все изменения состояния откатываются (за исключением оплаты газа майнеру), предотвращая бесконечные циклы или чрезмерные вычисления, способные парализовать сеть. Отправитель указывает как общий бюджет газа (STARTGAS), так и цену, которую он готов платить за единицу (GASPRICE), а неиспользованный газ возвращается после завершения исполнения.

Messages and Transactions

Transaksi di Ethereum adalah paket data bertanda tangan yang dibuat oleh akun milik eksternal dan disiarkan ke jaringan. Sebuah transaksi berisi alamat penerima, tanda tangan kriptografi yang membuktikan identitas pengirim, jumlah eter yang akan ditransfer, bidang data opsional (penting untuk berinteraksi dengan kontrak), STARTGAS (jumlah maksimum langkah komputasi yang boleh dilakukan transaksi), dan GASPRICE (biaya per langkah komputasi yang bersedia dibayar oleh pengirim). Penambang mengumpulkan transaksi ini, memvalidasinya, mengeksekusinya, dan memasukkannya ke dalam blok, menerima biaya bahan bakar sebagai kompensasinya.

Pesan secara konseptual mirip dengan transaksi tetapi dihasilkan oleh kontrak dan bukan oleh aktor eksternal. Ketika kode kontrak dijalankan, ia dapat mengirim pesan ke kontrak lain—pesan internal ini berisi pengirim (alamat kontrak), penerima, jumlah eter yang akan ditransfer, muatan data opsional, dan batas STARTGAS. Pesan memungkinkan komunikasi kontrak-ke-kontrak, memungkinkan aplikasi kompleks dibangun dari beberapa kontrak yang saling berinteraksi, bukan program monolitik.

Mekanisme gas sangat penting untuk mencegah penyalahgunaan: setiap langkah komputasi, operasi penyimpanan, dan byte data dalam suatu transaksi menggunakan gas. Jika transaksi kehabisan bahan bakar sebelum diselesaikan, semua perubahan status akan dikembalikan (kecuali pembayaran bahan bakar ke penambang), sehingga mencegah loop tak terbatas atau perhitungan berlebihan yang menghentikan jaringan hingga terhenti. Pengirim menentukan total anggaran gas (STARTGAS) dan harga yang bersedia mereka bayarkan per unit (GASPRICE), dan setiap gas yang tidak terpakai akan dikembalikan setelah eksekusi selesai.

Ethereum State Transition Function

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

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

Далее система переводит указанную сумму эфира от отправителя получателю. Если получатель является внешним счётом, на этом транзакция завершается. Если получатель является контрактным счётом, код контракта запускается в виртуальной машине Ethereum, потребляя газ за каждую операцию до тех пор, пока код не завершится успешно, явно не остановится или газ не будет исчерпан. Во время исполнения контракт может читать и изменять своё хранилище, отправлять сообщения другим контрактам и создавать новые контракты.

Наконец, если перевод средств не удался (недостаточный баланс) или исполнение кода завершилось неудачей (исчерпание газа или ошибка), все изменения состояния откатываются — за исключением того, что отправитель всё равно оплачивает газ майнеру за выполненные вычисления. При успешном исполнении оставшийся газ возвращается отправителю, а потреблённый газ отправляется майнеру в качестве комиссии. Этот механизм гарантирует, что майнеры получают компенсацию за вычисления, одновременно предотвращая неконтролируемое исполнение, потребляющее неограниченные ресурсы.

Ethereum State Transition Function

Fungsi transisi keadaan Ethereum APPLY(S,TX) - S' mendefinisikan bagaimana suatu transaksi mengubah keadaan blockchain, dan mengikuti urutan langkah yang tepat. Pertama, sistem memeriksa validitas transaksi: memverifikasi kebenaran tanda tangan, mengonfirmasi bahwa nonce cocok dengan nonce akun pengirim, dan memastikan pengirim memiliki saldo yang cukup untuk membayar biaya di muka (STARTGAS × GASPRICE ditambah nilai yang dikirim). Jika ada pemeriksaan yang gagal, transaksi ditolak sebelum eksekusi dimulai. Jika valid, biaya transaksi dipotong dari rekening pengirim, nonce pengirim bertambah, dan penghitung bahan bakar awal diatur ke STARTGAS dikurangi biaya per byte untuk data transaksi.

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

Selanjutnya, sistem mentransfer nilai eter yang ditentukan dari pengirim ke penerima. Jika penerima adalah akun milik eksternal, transaksi selesai. Jika penerimanya adalah akun kontrak, kode kontrak akan berjalan di Mesin Virtual Ethereum, menggunakan bahan bakar untuk setiap operasi hingga kode berhasil diselesaikan, kode dihentikan secara eksplisit, atau bahan bakar habis. Selama eksekusi, kontrak dapat membaca dan mengubah penyimpanannya, mengirim pesan ke kontrak lain, dan membuat kontrak baru.

Terakhir, jika transfer nilai gagal (saldo tidak mencukupi) atau eksekusi kode gagal (kehabisan bahan bakar atau terjadi kesalahan), semua perubahan status akan dikembalikan—kecuali pengirim masih membayar biaya bahan bakar kepada penambang untuk perhitungan yang dilakukan. Jika eksekusi berhasil, sisa gas dikembalikan ke pengirim, dan gas yang telah dikonsumsi dikirim ke penambang sebagai biaya. Mekanisme ini memastikan bahwa penambang mendapat kompensasi untuk komputasi sekaligus mencegah eksekusi yang tidak terkendali memakan sumber daya yang tidak terbatas.

Code Execution

Виртуальная машина Ethereum (EVM) — это среда исполнения, в которой выполняется код контрактов — низкоуровневая стековая виртуальная машина, концептуально схожая с виртуальной машиной Java или WebAssembly. Код контракта хранится в виде последовательности байтов, где каждый байт представляет операцию (opcode), которую EVM может выполнить. Модель исполнения намеренно проста и детерминистична: каждый узел, исполняющий EVM с одинаковым входным состоянием и транзакцией, должен прийти к одинаковому выходному состоянию, обеспечивая консенсус в сети.

EVM предоставляет три различных типа хранения для вычислений. Стек — это структура «последним вошёл, первым вышел» (LIFO), ограниченная 1024 элементами и используемая для непосредственных значений операций. Память — это бесконечно расширяемый массив байтов, существующий только в течение одного вызова сообщения и сбрасываемый между исполнениями. Хранилище — это постоянное хранилище «ключ-значение», навсегда связанное с каждым контрактным счётом, где контракты поддерживают своё долгосрочное состояние между транзакциями. Эти типы хранения тарифицируются по-разному в газе — операции со стеком и памятью дешёвые, тогда как операции с хранилищем дорогие для предотвращения раздувания блокчейна.

Во время исполнения код контракта имеет доступ к важному контексту: он может читать адрес отправителя сообщения, сумму отправленного эфира, полезную нагрузку данных, предоставленную вызывающей стороной, и свойства уровня блока, такие как текущий номер блока, метка времени и адрес майнера. Код может возвращать выходной массив байтов вызывающей стороне и может отправлять сообщения другим контрактам или создавать новые контракты. Эта модель исполнения является Тьюринг-полной — циклы и сложное управление потоком возможны — но механизм газа гарантирует, что все вычисления завершаются за ограниченное время, решая проблему останова экономически, а не через языковые ограничения.

Code Execution

Mesin Virtual Ethereum (EVM) adalah lingkungan runtime tempat kode kontrak dijalankan—mesin virtual tingkat rendah berbasis tumpukan yang konsepnya serupa dengan Mesin Virtual Java atau WebAssembly. Kode kontrak disimpan sebagai urutan byte, di mana setiap byte mewakili operasi (opcode) yang dapat dijalankan oleh EVM. Model eksekusi sengaja dibuat sederhana dan deterministik: setiap node yang menjalankan EVM dengan status input dan transaksi yang sama harus mencapai status output yang sama, sehingga memastikan konsensus di seluruh jaringan.

EVM menyediakan tiga jenis penyimpanan berbeda untuk komputasi. Tumpukan adalah struktur masuk terakhir keluar pertama (LIFO) yang dibatasi hingga 1024 elemen, digunakan untuk nilai operasi langsung. Memori adalah array byte yang dapat diperluas tanpa batas yang hanya bertahan selama satu panggilan pesan dan diatur ulang di antara eksekusi. Penyimpanan adalah penyimpanan nilai kunci persisten yang dikaitkan secara permanen dengan setiap akun kontrak, tempat kontrak mempertahankan status jangka panjangnya di seluruh transaksi. Jenis penyimpanan ini memiliki harga yang berbeda dalam hal gas—operasi tumpukan dan memori murah, sedangkan operasi penyimpanan mahal untuk mencegah pembengkakan blockchain.

Selama eksekusi, kode kontrak memiliki akses ke konteks penting: kode tersebut dapat membaca alamat pengirim pesan, jumlah eter yang dikirim, muatan data yang disediakan oleh pemanggil, dan properti tingkat blok seperti nomor blok saat ini, stempel waktu, dan alamat penambang. Kode ini dapat mengembalikan array byte keluaran ke pemanggil dan dapat mengirim pesan ke kontrak lain atau membuat kontrak baru. Model eksekusi ini adalah Turing-complete—loop dan aliran kontrol yang kompleks dimungkinkan—tetapi mekanisme gas memastikan bahwa semua komputasi berakhir dalam waktu yang terbatas, memecahkan masalah penghentian secara ekonomis dibandingkan melalui batasan bahasa.

Blockchain and Mining

Блокчейн Ethereum фундаментально подобен блокчейну Bitcoin, служа базой данных, содержащей каждую когда-либо исполненную транзакцию. Однако, в то время как Bitcoin хранит только список транзакций, Ethereum хранит как список транзакций, так и актуальное состояние. Каждый блок в Ethereum содержит хеш предыдущего блока, корень состояния (корневой хеш дерева Меркла-Патриции, представляющего полное состояние), корень транзакций, корень квитанций (хранящий данные исполнения транзакций), а также значения сложности, метки времени и nonce. Само состояние представляет собой большое дерево Меркла-Патриции, отображающее адреса в объекты счетов, где каждый счёт имеет баланс, nonce, код (при наличии) и хранилище.

Ethereum APPLY BLOCK function processing transactions and updating state

Ethereum использует модифицированную версию протокола GHOST (Greedy Heaviest Observed Subtree) для решения проблем безопасности, возникающих при быстром времени создания блоков. В традиционных протоколах с самой длинной цепью быстрые блоки приводят к высокой доле устаревших блоков, снижая безопасность сети и увеличивая риски централизации, поскольку крупные майнеры теряют меньше вычислений на устаревших блоках. GHOST включает устаревшие блоки (называемые «дядями» в Ethereum) в расчёт того, какая цепь является самой длинной, и предоставляет частичные вознаграждения блокам-дядям, стимулируя майнеров ссылаться на них. Это позволяет Ethereum поддерживать целевое время блока приблизительно в 12 секунд, сохраняя при этом безопасность сети.

Алгоритм майнинга работает аналогично доказательству работы Bitcoin, требуя от майнеров найти nonce, при котором хеш блока оказывается ниже определённого целевого значения сложности. Однако алгоритм майнинга с высоким потреблением памяти (Ethash) спроектирован для устойчивости к ASIC, способствуя более децентрализованной экосистеме майнинга. Сложность динамически корректируется на основе времени создания блоков для поддержания цели в ~12 секунд, обеспечивая стабильное производство блоков, в то время как протокол GHOST предоставляет гарантии безопасности, несмотря на более быстрое время блоков по сравнению со средним показателем Bitcoin в 10 минут.

Blockchain and Mining

Blockchain Ethereum pada dasarnya mirip dengan Bitcoin, berfungsi sebagai database yang berisi setiap transaksi yang pernah dieksekusi. Namun, meskipun Bitcoin hanya menyimpan daftar transaksi, Ethereum menyimpan daftar transaksi dan status terkini. Setiap blok di Ethereum berisi hash blok sebelumnya, root status (hash root dari percobaan Merkle Patricia yang mewakili seluruh status), root transaksi, root penerimaan (menyimpan data dari eksekusi transaksi), beserta nilai kesulitan, stempel waktu, dan nonce. Negara bagian itu sendiri adalah alamat pemetaan Merkle Patricia trie yang besar ke objek akun, di mana setiap akun memiliki saldo, nonce, kode (jika ada), dan penyimpanan.

Ethereum APPLY BLOCK function processing transactions and updating state

Ethereum menggunakan versi modifikasi dari protokol GHOST (Greedy Heaviest Observed Subtree) untuk mengatasi masalah keamanan yang timbul dari waktu blok yang cepat. Dalam protokol rantai terpanjang tradisional, blok cepat menyebabkan tingkat stale yang tinggi, mengurangi keamanan jaringan dan meningkatkan risiko sentralisasi karena penambang besar membuang lebih sedikit komputasi pada stales. GHOST menyertakan blok lama (disebut "paman" di Ethereum) dalam perhitungan rantai mana yang terpanjang, dan memberikan sebagian imbalan kepada blok paman, sehingga memberi insentif kepada penambang untuk mereferensikannya. Hal ini memungkinkan Ethereum mempertahankan waktu blok target sekitar 12 detik sambil menjaga keamanan jaringan.

Algoritme penambangan bekerja mirip dengan proof-of-work Bitcoin, mengharuskan penambang untuk menemukan nonce sehingga hash blok berada di bawah target kesulitan tertentu. Namun, algoritme penambangan memori keras (Ethash) Ethereum dirancang agar tahan terhadap ASIC, sehingga mendorong ekosistem penambangan yang lebih terdesentralisasi. Tingkat kesulitannya disesuaikan secara dinamis berdasarkan waktu blok untuk mempertahankan target ~12 detik, memastikan produksi blok yang konsisten sementara protokol GHOST memberikan jaminan keamanan meskipun waktu blok lebih cepat dibandingkan dengan rata-rata 10 menit Bitcoin.

Applications

Приложения, которые можно создать на Ethereum, делятся на три широкие категории. Первая категория — финансовые приложения, предоставляющие пользователям более мощные способы управления деньгами и заключения контрактов с их участием. Сюда входят суб-валюты, финансовые деривативы, контракты хеджирования, сберегательные кошельки с лимитами снятия, завещания, автоматически распределяющие средства, и даже трудовые контракты, рассчитывающие оплату на основе подтверждённого выполнения работы. Эти приложения используют программируемость Ethereum для создания сложных финансовых инструментов, которые были бы невозможны или чрезвычайно сложны для реализации в традиционных системах или даже на Bitcoin.

Вторая категория — полуфинансовые приложения, где деньги задействованы, но присутствует также существенная неденежная составляющая. Идеальный пример — самоисполняющиеся вознаграждения за решения вычислительных задач. Кто-то мог бы опубликовать вычислительную задачу вместе с наградой, и контракт мог бы автоматически проверять представленные решения и выплачивать вознаграждение за первый правильный ответ. Эта категория связывает чистые финансы с другими областями, используя экономические стимулы для решения задач или координации поведения.

Третья категория — приложения, вообще не связанные с деньгами, такие как онлайн-голосование и системы децентрализованного управления. Эти нефинансовые приложения демонстрируют гибкость Ethereum как универсальной платформы. Примеры включают децентрализованные системы доменных имён наподобие Namecoin, системы репутации, децентрализованное файловое хранилище и инструменты организационного управления. Среди всех этих типов приложений токен-системы стали наиболее распространёнными и фундаментальными, служа строительными блоками для многих других приложений.

Applications

Aplikasi yang dapat dibangun di Ethereum terbagi dalam tiga kategori besar. Kategori pertama adalah aplikasi keuangan, yang memberikan pengguna cara yang lebih canggih untuk mengelola dan menandatangani kontrak yang melibatkan uang mereka. Ini termasuk sub-mata uang, derivatif keuangan, kontrak lindung nilai, dompet tabungan dengan batas penarikan, surat wasiat yang mendistribusikan dana secara otomatis, dan bahkan kontrak kerja yang menghitung pembayaran berdasarkan penyelesaian pekerjaan yang diverifikasi. Aplikasi ini memanfaatkan kemampuan program Ethereum untuk menciptakan instrumen keuangan kompleks yang tidak mungkin atau sangat sulit diterapkan dalam sistem tradisional atau bahkan pada Bitcoin.

Kategori kedua adalah aplikasi semi-keuangan, yang melibatkan uang namun ada juga komponen non-moneter yang substansial dalam apa yang dilakukan. Contoh sempurna adalah pemberian hadiah yang dipaksakan sendiri untuk solusi masalah komputasi. Seseorang dapat memposting masalah komputasi bersama dengan hadiahnya, dan kontrak dapat secara otomatis memverifikasi solusi yang diajukan dan membayar hadiah untuk jawaban pertama yang benar. Kategori ini menjembatani keuangan murni dan domain lainnya, menggunakan insentif ekonomi untuk memecahkan masalah atau mengoordinasikan perilaku.

Kategori ketiga adalah aplikasi yang tidak ada kaitannya sama sekali dengan uang, seperti pemungutan suara online dan sistem pemerintahan yang terdesentralisasi. Aplikasi non-keuangan ini menunjukkan fleksibilitas Ethereum sebagai platform tujuan umum. Contohnya termasuk sistem nama domain terdesentralisasi seperti Namecoin, sistem reputasi, penyimpanan file terdesentralisasi, dan alat tata kelola organisasi. Dari semua jenis aplikasi ini, sistem token muncul sebagai yang paling umum dan mendasar, berfungsi sebagai landasan bagi banyak aplikasi lainnya.

Token Systems

Токен-системы удивительно просты в реализации на Ethereum, несмотря на то что являются одним из самых мощных и распространённых приложений. По своей сути токен-системы — это просто база данных с одной операцией: вычесть X единиц со счёта A и добавить X единиц на счёт B при условии, что у A было как минимум X единиц до транзакции и транзакция авторизована A. Реализация требует поддержания отображения адресов в балансы и предоставления функции перевода, которая выполняет соответствующие проверки перед перемещением токенов между счетами.

Код контракта для базовой токен-системы замечательно прост и может быть написан всего в нескольких строках. Он состоит из структуры данных, отображающей адреса в балансы, функции инициализации, назначающей начальное предложение токенов, и функции перевода, проверяющей баланс и авторизацию отправителя перед выполнением перевода. Эта простота разительно контрастирует со сложностью, необходимой для реализации аналогичных систем на Bitcoin, которая потребовала бы значительных обходных решений и ограничений из-за ограниченных возможностей скриптов Bitcoin.

Токены на Ethereum могут представлять практически всё, что имеет ценность. Они могут представлять суб-валюты с собственной денежно-кредитной политикой, финансовые деривативы, отслеживающие внешние активы, акции компаний с правами на дивиденды, баллы лояльности в клиентских программах, товары, такие как золото или нефть, или даже представления физической собственности. Программируемость Ethereum позволяет этим токенам иметь произвольные правила, управляющие их поведением, такие как ограничения на переводы, механизмы автоматического сжигания, распределение дивидендов или права управления. Эта гибкость сделала токен-системы фундаментальным строительным блоком значительной части экосистемы Ethereum.

Token Systems

Sistem token ternyata sangat mudah diterapkan di Ethereum, meskipun merupakan salah satu aplikasi yang paling kuat dan umum. Pada intinya, sistem token hanyalah sebuah database dengan satu operasi: kurangi X unit dari akun A dan tambahkan X unit ke akun B, dengan syarat A memiliki setidaknya X unit sebelum transaksi dan transaksi tersebut disahkan oleh A. Implementasinya memerlukan pemeliharaan pemetaan alamat ke saldo dan menyediakan fungsi transfer yang melakukan pemeriksaan yang sesuai sebelum memindahkan token antar akun.

Kode kontrak untuk sistem token dasar sangat sederhana dan dapat ditulis hanya dalam beberapa baris. Ini terdiri dari struktur data yang memetakan alamat ke saldo, fungsi inisialisasi yang menetapkan pasokan token awal, dan fungsi transfer yang memeriksa saldo dan otorisasi pengirim sebelum melakukan transfer. Kesederhanaan ini sangat kontras dengan kompleksitas yang diperlukan untuk mengimplementasikan sistem serupa di Bitcoin, yang memerlukan solusi dan batasan yang signifikan karena kemampuan skrip Bitcoin yang terbatas.

Token di Ethereum dapat mewakili hampir semua hal yang bernilai. Mereka mungkin mewakili sub-mata uang dengan kebijakan moneter mereka sendiri, derivatif keuangan yang melacak aset eksternal, saham perusahaan dengan hak dividen, poin loyalitas dalam program pelanggan, komoditas seperti emas atau minyak, atau bahkan representasi properti fisik. Kemampuan program Ethereum memungkinkan token ini memiliki aturan sewenang-wenang yang mengatur perilakunya, seperti pembatasan transfer, mekanisme pembakaran otomatis, distribusi dividen, atau hak tata kelola. Fleksibilitas ini menjadikan sistem token sebagai landasan dasar bagi sebagian besar ekosistem Ethereum.

Financial Derivatives and Stable-Value Currencies

Финансовые деривативы представляют одно из наиболее фундаментальных и важных применений смарт-контрактов Ethereum. Простой контракт хеджирования демонстрирует базовый механизм: сторона A вносит определённое количество эфира стоимостью 1000 \(, сторона B вносит эквивалентную сумму, и контракт записывает стоимость эфира в USD на этот момент, используя поток данных. Через 30 дней контракт пересчитывает стоимость и отправляет эфир на сумму 1000 \) стороне A, а остаток — стороне B. Если цена эфира выросла, A получает меньше эфира, но сохраняет стоимость в 1000 $; если упала — A получает больше эфира для поддержания этой стоимости. Это позволяет A хеджировать волатильность, в то время как B спекулирует на ценовых движениях.

Реализация таких контрактов требует доступа к внешним данным через контракты-оракулы или потоки данных. Эти оракулы предоставляют информацию о ценах, погодные данные или другую информацию из реального мира, необходимую контрактам для корректного исполнения. Хотя оракулы вводят зависимость от доверия, они могут быть спроектированы с резервированием и криптоэкономическими стимулами для предоставления надёжных данных. Сам контракт просто запрашивает оракул, выполняет вычисления на основе этих данных и распределяет средства в соответствии со своей запрограммированной логикой.

Стейблкоины и более сложные финансовые инструменты могут быть построены с использованием аналогичных механизмов. Контракт стейблкоина может поддерживать резерв эфира и выпускать токены, привязанные к фиатной валюте, автоматически корректируя предложение или требования к обеспечению на основе ценовых потоков. Опционные контракты, фьючерсы, свопы и другие деривативы, которые обычно требуют сложных юридических структур и доверенных посредников, могут быть закодированы как самоисполняющиеся смарт-контракты. Эта инфраструктура программируемых финансов обеспечивает сложный финансовый инжиниринг, сохраняя при этом гарантии прозрачности и безопасности блокчейн-технологии.

Financial Derivatives and Stable-Value Currencies

Derivatif keuangan mewakili salah satu aplikasi kontrak pintar Ethereum yang paling mendasar dan penting. Kontrak lindung nilai sederhana menunjukkan mekanisme dasar: pihak A menyetor sejumlah eter senilai \(1000, pihak B menyetor jumlah yang setara, dan kontrak mencatat nilai eter USD pada saat itu menggunakan umpan data. Setelah 30 hari, kontrak menghitung ulang nilainya dan mengirimkan eter senilai \)1000 ke A dan sisanya ke B. Jika harga eter naik, A menerima lebih sedikit eter tetapi mempertahankan nilai $1000; jika jatuh, A menerima lebih banyak eter untuk mempertahankan nilainya. Hal ini memungkinkan A melakukan lindung nilai terhadap volatilitas sementara B berspekulasi mengenai pergerakan harga.

Implementasi kontrak tersebut memerlukan akses ke data eksternal melalui kontrak oracle atau data feed. Oracle ini memberikan informasi harga, data cuaca, atau informasi dunia nyata lainnya yang perlu dilaksanakan oleh kontrak dengan benar. Meskipun oracle memperkenalkan ketergantungan kepercayaan, mereka dapat dirancang dengan redundansi dan insentif ekonomi kripto untuk menyediakan data yang andal. Kontrak itu sendiri hanya menanyakan oracle, melakukan penghitungan berdasarkan data tersebut, dan mendistribusikan dana sesuai dengan logika terprogramnya.

Stablecoin dan instrumen keuangan yang lebih kompleks dapat dibangun menggunakan mekanisme serupa. Kontrak stablecoin mungkin mempertahankan cadangan eter dan menerbitkan token yang dipatok ke mata uang fiat, secara otomatis menyesuaikan persyaratan pasokan atau jaminan berdasarkan harga. Kontrak opsi, kontrak berjangka, swap, dan turunan lainnya yang biasanya memerlukan kerangka hukum yang rumit dan perantara tepercaya dapat dikodekan sebagai kontrak pintar yang dapat dijalankan sendiri. Infrastruktur keuangan yang dapat diprogram ini memungkinkan rekayasa keuangan yang canggih dengan tetap menjaga transparansi dan jaminan keamanan teknologi blockchain.

Identity and Reputation Systems

Система регистрации имён, аналогичная Namecoin, тривиально реализуема на Ethereum и служит простейшим примером системы идентификации. Контракт поддерживает базу данных с таблицей «ключ-значение», отображающей имена в связанные данные (такие как IP-адреса, открытые ключи или другую информацию). Любой может зарегистрировать имя, отправив транзакцию контракту вместе с небольшой регистрационной комиссией, при условии что это имя ещё не занято. Владелец может обновить связанные данные в любое время, а имена могут быть сделаны передаваемыми или постоянными в соответствии с правилами, закодированными в контракте.

Более продвинутые системы идентификации могут быть построены на этой основе, включая оценки репутации, отношения сети доверия и децентрализованную верификацию личности. Например, контракт мог бы поддерживать оценки репутации на основе подтверждённых транзакций, оценок коллег или выполнения задач. Эти оценки были бы публично видимыми и криптографически привязанными к конкретным адресам, создавая портативную репутацию, которая следует за пользователями через приложения. Системы сети доверия могли бы позволять пользователям поручаться за личность других, выстраивая социальные графы, помогающие отличить легитимных пользователей от злоумышленников.

Такие системы идентификации и репутации становятся особенно мощными при интеграции с другими приложениями. Маркетплейс мог бы требовать минимальные оценки репутации для продавцов, кредитная платформа — корректировать процентные ставки на основе репутации заёмщика, а социальная сеть — использовать сеть доверия для фильтрации спама и мошеннического контента. Предоставляя общую инфраструктуру для идентификации, которую может запрашивать любое приложение, Ethereum позволяет создать новый класс приложений, основанных на доверии, не зависящих от централизованных провайдеров идентификации или проприетарных систем репутации.

Identity and Reputation Systems

Sistem registrasi nama yang mirip dengan Namecoin dapat diterapkan dengan mudah di Ethereum dan berfungsi sebagai contoh paling sederhana dari sistem identitas. Kontrak memelihara database dengan nama pemetaan tabel nilai kunci ke data terkait (seperti alamat IP, kunci publik, atau informasi lainnya). Siapa pun dapat mendaftarkan nama dengan mengirimkan transaksi ke kontrak dengan sedikit biaya pendaftaran, dengan syarat nama tersebut belum diambil. Pemilik dapat memperbarui data terkait kapan saja, dan nama dapat dibuat dapat dialihkan atau permanen sesuai dengan aturan yang tercantum dalam kontrak.

Sistem identitas yang lebih canggih dapat dibangun di atas landasan ini untuk mencakup skor reputasi, jaringan hubungan kepercayaan, dan verifikasi identitas yang terdesentralisasi. Misalnya, sebuah kontrak dapat mempertahankan skor reputasi berdasarkan transaksi terverifikasi, peringkat rekan, atau penyelesaian tugas. Skor ini akan terlihat secara publik dan secara kriptografis dikaitkan dengan alamat tertentu, sehingga menciptakan reputasi portabel yang dapat mengikuti pengguna di seluruh aplikasi. Sistem jaringan kepercayaan dapat memungkinkan pengguna untuk menjamin identitas orang lain, membangun grafik sosial yang membantu membedakan pengguna yang sah dari pelaku kejahatan.

Sistem identitas dan reputasi tersebut menjadi sangat kuat ketika terintegrasi dengan aplikasi lain. Pasar mungkin memerlukan skor reputasi minimum untuk penjual, platform pinjaman dapat menyesuaikan suku bunga berdasarkan reputasi peminjam, atau jaringan sosial dapat menggunakan web kepercayaan untuk memfilter spam dan konten penipuan. Dengan menyediakan infrastruktur bersama untuk identitas yang dapat ditanyakan oleh aplikasi apa pun, Ethereum memungkinkan kelas baru aplikasi berbasis kepercayaan yang tidak bergantung pada penyedia identitas terpusat atau sistem reputasi kepemilikan.

Decentralized File Storage

Децентрализованное файловое хранилище может быть реализовано через контракты Ethereum, координирующие взаимодействие между пользователями, нуждающимися в хранении, и провайдерами, которые его предоставляют. В модели «децентрализованного Dropbox» пользователи платили бы ежемесячную плату за загрузку файлов, а контракт распределял бы платежи провайдерам хранения, которые доказывают, что действительно хранят данные. Механизм доказательства работает через периодические криптографические испытания: контракт случайным образом выбирает фрагменты файлов и просит провайдеров предоставить доказательства на основе дерева Меркла, демонстрирующие, что они обладают этими данными. Провайдеры, не прошедшие испытания или ушедшие в оффлайн, теряли бы свои депозиты и будущий поток платежей.

Этот подход предлагает несколько преимуществ по сравнению с централизованным хранением. Доказательства на основе дерева Меркла обеспечивают эффективную верификацию — пользователи и контракт могут подтвердить доступность файлов без загрузки целых файлов. Система естественно распределяет файлы между несколькими независимыми провайдерами, создавая избыточность без необходимости в явных протоколах репликации. Экономические стимулы согласуют поведение провайдеров с потребностями пользователей: провайдеры зарабатывают деньги, надёжно храня данные, и теряют деньги, если этого не делают. Это устраняет требование доверия, присущее централизованным решениям хранения.

Стоимость хранения в такой системе потенциально может быть ниже, чем у централизованных альтернатив, по нескольким причинам. Устранение монопольного ценообразования позволяет рыночной конкуренции снизить стоимость до уровня, близкого к фактической стоимости хранения. Неявная избыточность от нескольких пользователей, хранящих похожие файлы, может уменьшить общие потребности в хранении. Нет необходимости в дорогостоящей инфраструктуре центров обработки данных или корпоративных накладных расходах. Тем не менее остаются проблемы с механизмами оплаты, обеспечением достаточного участия провайдеров и управлением компромиссом между избыточностью и стоимостью. Несмотря на эти проблемы, децентрализованное хранилище демонстрирует, как Ethereum может координировать сложные многосторонние взаимодействия исключительно через экономические стимулы.

Decentralized File Storage

Penyimpanan file terdesentralisasi dapat diterapkan melalui kontrak Ethereum yang berkoordinasi antara pengguna yang membutuhkan penyimpanan dan penyedia yang menawarkannya. Dalam model "Dropbox terdesentralisasi", pengguna akan membayar biaya bulanan untuk mengunggah file, dengan kontrak yang mendistribusikan pembayaran ke penyedia penyimpanan yang membuktikan bahwa mereka benar-benar menyimpan data. Mekanisme pembuktian bekerja melalui tantangan kriptografi berkala: kontrak secara acak memilih bagian file dan meminta penyedia untuk memberikan bukti pohon Merkle yang menunjukkan bahwa mereka memiliki data tersebut. Penyedia yang gagal dalam tantangan atau offline akan kehilangan simpanan dan aliran pembayaran di masa mendatang.

Pendekatan ini menawarkan beberapa keunggulan dibandingkan penyimpanan terpusat. Bukti pohon Merkle memungkinkan verifikasi yang efisien—pengguna dan kontrak dapat mengonfirmasi ketersediaan file tanpa mengunduh seluruh file. Sistem secara alami mendistribusikan file ke beberapa penyedia independen, menciptakan redundansi tanpa memerlukan protokol replikasi yang eksplisit. Insentif ekonomi menyelaraskan perilaku penyedia layanan dengan kebutuhan pengguna: penyedia layanan mendapatkan uang dengan menyimpan data secara andal dan kehilangan uang jika mereka gagal melakukannya. Hal ini menghilangkan persyaratan kepercayaan yang melekat pada solusi penyimpanan terpusat.

Biaya penyimpanan dalam sistem seperti itu berpotensi lebih rendah dibandingkan alternatif terpusat karena beberapa alasan. Penghapusan harga monopoli memungkinkan persaingan pasar menurunkan biaya hingga mendekati biaya penyimpanan sebenarnya. Redundansi implisit dari beberapa pengguna yang menyimpan file serupa dapat mengurangi total kebutuhan penyimpanan. Tidak diperlukan infrastruktur pusat data yang mahal atau biaya overhead perusahaan. Namun, masih terdapat tantangan seputar mekanisme pembayaran, memastikan partisipasi penyedia layanan yang memadai, dan mengelola trade-off antara redundansi dan biaya. Terlepas dari tantangan-tantangan ini, penyimpanan terdesentralisasi menunjukkan bagaimana Ethereum dapat mengoordinasikan interaksi multi-pihak yang kompleks melalui insentif ekonomi saja.

Decentralized Autonomous Organizations

Децентрализованная автономная организация (DAO) — это виртуальная сущность, имеющая набор участников или акционеров, которые коллективно обладают правом расходовать средства организации и изменять её код. Типичная DAO работает по простому правилу: 67% участников необходимы для принятия решений о расходовании средств или изменения кода организации. Участники могут подавать предложения, голосовать по ним, и если предложение получает достаточную поддержку, контракт автоматически исполняет решение. Доли участников могут быть передаваемыми, обеспечивая ликвидный рынок для участия в DAO, а различные классы долей могут иметь различные права голоса или экономические требования.

Простейшая конструкция DAO — это самомодифицирующийся контракт, поддерживающий список участников и требующий голосования с большинством 2/3 для изменения любого аспекта контракта, включая его собственные правила голосования. Участники подавали бы изменения кода в виде транзакций, другие участники голосовали бы, и по достижении порога контракт обновлял бы себя. Более сложные конструкции могут включать системы делегированного голосования, где участники могут передавать свои полномочия голосования представителям, или ликвидную демократию, где голоса могут быть делегированы, но в любой момент возвращены для важных решений.

DAO могут служить различным целям помимо простого управления фондами. DAO может функционировать как децентрализованная корпорация, нанимая подрядчиков, приобретая услуги и распределяя прибыль между акционерами — всё это управляется кодом смарт-контракта, а не традиционными юридическими структурами. Она может действовать как децентрализованный инвестиционный фонд, где участники голосуют за то, какие проекты финансировать. Она может управлять общим ресурсом, где заинтересованные стороны голосуют за правила распределения. Ключевое понимание заключается в том, что, кодируя правила управления в прозрачном, неизменяемом коде и привязывая их к экономической ставке, DAO могут координировать групповые решения без необходимости в традиционном иерархическом управлении или юридическом принуждении.

Decentralized Autonomous Organizations

Organisasi Otonomi Terdesentralisasi (DAO) adalah entitas virtual yang memiliki sekumpulan anggota atau pemegang saham yang secara kolektif memiliki hak untuk membelanjakan dana entitas dan mengubah kodenya. DAO tipikal beroperasi dengan aturan sederhana: 67% anggota diperlukan untuk membuat keputusan pengeluaran atau mengubah kode organisasi. Anggota dapat mengajukan proposal, memberikan suaranya, dan jika sebuah proposal mendapat dukungan yang memadai, kontrak secara otomatis melaksanakan keputusannya. Saham keanggotaan dapat dialihkan, memungkinkan pasar yang likuid untuk partisipasi DAO, dan kelas saham yang berbeda dapat memiliki hak suara atau klaim ekonomi yang berbeda.

Desain DAO yang paling sederhana adalah kontrak yang dapat dimodifikasi sendiri yang mempertahankan daftar anggota dan memerlukan 2/3 suara mayoritas untuk mengubah segala aspek kontrak, termasuk aturan pemungutan suara sendiri. Anggota akan mengirimkan perubahan kode saat transaksi, anggota lain akan memilih, dan setelah mencapai ambang batas, kontrak akan diperbarui sendiri. Desain yang lebih canggih mungkin mencakup sistem pemungutan suara yang didelegasikan di mana anggota dapat menyerahkan hak suara mereka kepada perwakilan, atau demokrasi cair di mana suara dapat didelegasikan tetapi dapat diambil kembali kapan saja untuk pengambilan keputusan penting.

DAO dapat melayani berbagai tujuan di luar pengelolaan dana sederhana. DAO dapat berfungsi sebagai perusahaan terdesentralisasi, mempekerjakan kontraktor, membeli layanan, dan mendistribusikan keuntungan kepada pemegang saham—semuanya diatur oleh kode kontrak pintar dan bukan struktur hukum tradisional. Ini dapat beroperasi sebagai dana investasi terdesentralisasi, dengan anggota memberikan suara pada proyek mana yang akan didanai. Pemerintah dapat mengelola sumber daya milik bersama, dengan para pemangku kepentingan memberikan suara mengenai aturan alokasi. Wawasan utamanya adalah dengan mengkodekan peraturan tata kelola dalam kode yang transparan dan tidak dapat diubah serta mengaitkannya dengan kepentingan ekonomi, DAO dapat mengoordinasikan keputusan kelompok tanpa memerlukan manajemen hierarki tradisional atau penegakan hukum.

Further Applications

Помимо уже рассмотренных основных категорий, Ethereum позволяет создавать многочисленные другие приложения. Сберегательные кошельки с продвинутыми функциями безопасности могут устанавливать ежедневные лимиты снятия, предоставляя при этом экстренные ключи для восстановления, защищая пользователей от кражи и сохраняя полный контроль. Контракты страхования урожая могут автоматически выплачивать фермерам на основе потоков метеорологических данных, устраняя обработку претензий и снижая административные расходы. Приложения для одноранговых азартных игр могут работать без каких-либо доверенных посредников, при этом смарт-контракты удерживают ставки и автоматически выплачивают выигрыши на основе верифицируемых случайных чисел или данных о реальных событиях.

Ончейн-рынки предсказаний позволяют пользователям делать ставки на будущие события, создавая мощные механизмы прогнозирования через мудрость толпы. Они могут быть дополнены протоколами типа SchellingCoin для создания децентрализованных оракулов: участники независимо сообщают данные (такие как результаты выборов или погодные условия), и те, чьи отчёты совпадают с большинством, получают вознаграждения, тогда как отклоняющиеся штрафуются. Этот криптоэкономический подход стимулирует честное сообщение данных и может предоставлять надёжные данные реального мира другим контрактам без необходимости доверять какому-либо единственному провайдеру оракула.

Мультиподписные кошельки представляют ещё одно важное приложение, обеспечивающее совместный контроль средств несколькими сторонами. Мультиподписной кошелёк 2-из-3 может требовать одобрения транзакции двумя из трёх назначенных сторон до того, как средства могут быть потрачены, что полезно для эскроу-соглашений, корпоративных казначейств или личной безопасности. Децентрализованные маркетплейсы могут сочетать системы идентификации, оценки репутации, эскроу-контракты и механизмы разрешения споров для обеспечения одноранговой торговли без централизованных платформ. Каждое из этих приложений демонстрирует, как программируемость Ethereum позволяет создавать новые модели доверия и организационные структуры.

Further Applications

Di luar kategori utama yang telah dibahas, Ethereum memungkinkan banyak aplikasi lainnya. Dompet tabungan dengan fitur keamanan canggih dapat menerapkan batas penarikan harian sambil memberikan kunci darurat untuk pemulihan, melindungi pengguna dari pencurian sambil mempertahankan kendali penuh. Kontrak asuransi tanaman dapat secara otomatis membayar petani berdasarkan data cuaca, menghilangkan pemrosesan klaim dan mengurangi biaya administrasi. Aplikasi perjudian peer-to-peer dapat beroperasi tanpa perantara tepercaya, dengan kontrak pintar yang memegang taruhan dan secara otomatis membayar pemenang berdasarkan nomor acak yang dapat diverifikasi atau data peristiwa dunia nyata.

Pasar prediksi on-chain memungkinkan pengguna untuk bertaruh pada kejadian di masa depan, menciptakan mekanisme perkiraan yang kuat melalui kebijaksanaan orang banyak. Hal ini dapat ditambah dengan protokol gaya SchellingCoin untuk menciptakan oracle yang terdesentralisasi: peserta secara independen melaporkan data (seperti hasil pemilu atau kondisi cuaca), dan peserta yang laporannya cocok dengan mayoritas akan menerima hadiah sementara yang outlier akan dikenakan sanksi. Pendekatan ekonomi kripto ini memberi insentif pada pelaporan yang jujur ​​dan dapat memberikan data dunia nyata yang dapat diandalkan untuk kontrak lain tanpa memerlukan kepercayaan pada penyedia oracle mana pun.

Dompet multi-tanda tangan mewakili aplikasi penting lainnya, memungkinkan kontrol dana bersama antara banyak pihak. Dompet multi-tanda 2 dari 3 mungkin memerlukan dua dari tiga pihak yang ditunjuk untuk menyetujui transaksi sebelum dana dapat dibelanjakan, berguna untuk pengaturan escrow, perbendaharaan perusahaan, atau keamanan pribadi. Pasar yang terdesentralisasi dapat menggabungkan sistem identitas, skor reputasi, kontrak escrow, dan mekanisme penyelesaian sengketa untuk memungkinkan perdagangan peer-to-peer tanpa platform terpusat. Masing-masing aplikasi ini menunjukkan bagaimana kemampuan program Ethereum memungkinkan model kepercayaan dan struktur organisasi baru.

Miscellanea And Concerns

Реализация модифицированного протокола GHOST в Ethereum включает специфические правила для включения и вознаграждения дядей. Дяди должны быть прямыми потомками предка текущего блока (от 2 до 7 поколений назад), должны быть валидными заголовками блоков, должны быть отличны от предыдущих дядей и не должны быть прямыми предками текущего блока. Блоки-дяди получают 87,5% стандартного вознаграждения за блок, а включающий блок получает дополнительные 3,125% за каждого включённого дядю (до двух дядей). Эта структура стимулов побуждает майнеров ссылаться на устаревшие блоки, которые они наблюдают, укрепляя безопасность сети и одновременно вознаграждая майнеров, которым временно не повезло с распространением по сети.

Система комиссий основана на концепции «газа», где каждая вычислительная операция имеет фиксированную стоимость в газе. Например, операция умножения стоит 5 газа, хеш SHA256 стоит 20 газа, а каждая транзакция имеет базовую стоимость 21 000 газа. Пользователи указывают как лимит газа (максимум газа, который они готовы потребить), так и цену газа (сколько эфира они заплатят за единицу газа). Эта система служит нескольким целям: она предотвращает бесконечные циклы и атаки типа «отказ в обслуживании», гарантируя оплату всех вычислений, создаёт рынок блочного пространства, где пользователи делают ставки через цены газа, и позволяет майнерам устанавливать минимальную цену газа, которую они готовы принять, защищая ресурсы сети.

Ethereum supply growth rate comparing linear issuance to Bitcoin decreasing growth

Масштабируемость остаётся серьёзной проблемой, поскольку каждый полный узел должен обработать каждую транзакцию для верификации состояния. Текущие архитектуры блокчейна с трудом могут сравниться с пропускной способностью транзакций централизованных систем. Потенциальные решения включают шардинг состояния, где различные узлы обрабатывают различные подмножества транзакций, и переход от доказательства работы к консенсусу на основе доказательства доли, который мог бы обеспечить более эффективное производство блоков. Лёгкие клиенты, использующие доказательства Меркла, могут верифицировать транзакции без обработки всех блоков, но кто-то всё равно должен всё обработать. Эти проблемы масштабируемости представляют активные области исследований и разработок, критически важные для долгосрочной жизнеспособности Ethereum.

Miscellanea And Concerns

Implementasi Ethereum terhadap protokol GHOST yang dimodifikasi mencakup aturan khusus untuk penyertaan dan penghargaan paman. Paman harus merupakan anak langsung dari nenek moyang blok saat ini (antara 2 dan 7 generasi ke belakang), harus merupakan header blok yang valid, harus berbeda dari paman sebelumnya, dan tidak boleh merupakan nenek moyang langsung dari blok saat ini. Blok paman menerima 87,5% dari hadiah blok standar, sedangkan blok yang menyertakan menerima tambahan 3,125% per paman yang disertakan (hingga dua paman). Struktur insentif ini mendorong para penambang untuk mereferensikan blok-blok usang yang mereka amati, memperkuat keamanan jaringan sekaligus memberikan penghargaan kepada para penambang yang mengalami nasib buruk sementara dalam propagasi jaringan.

Sistem biaya ini didasarkan pada konsep "gas", di mana setiap operasi komputasi memiliki biaya gas yang tetap. Misalnya, operasi perkalian memerlukan biaya 5 gas, hash SHA256 memerlukan biaya 20 gas, dan setiap transaksi memiliki biaya dasar sebesar 21.000 gas. Pengguna menentukan batas gas (gas maksimum yang ingin mereka konsumsi) dan harga gas (berapa banyak ether yang akan mereka bayarkan per unit gas). Sistem ini memiliki banyak tujuan: mencegah loop tak terbatas dan serangan penolakan layanan dengan memastikan semua komputasi dibayar, menciptakan pasar untuk ruang blok tempat pengguna menawar melalui harga gas, dan memungkinkan penambang menetapkan harga gas minimum yang bersedia mereka terima, sehingga melindungi sumber daya jaringan.

Ethereum supply growth rate comparing linear issuance to Bitcoin decreasing growth

Skalabilitas tetap menjadi perhatian yang signifikan, karena setiap node penuh harus memproses setiap transaksi untuk memverifikasi status. Arsitektur blockchain saat ini kesulitan untuk menyamai throughput transaksi sistem terpusat. Solusi potensial mencakup state sharding, di mana node yang berbeda memproses subset transaksi yang berbeda, dan transisi dari proof-of-work ke konsensus bukti kepemilikan, yang memungkinkan produksi blok lebih efisien. Klien ringan yang menggunakan bukti Merkle dapat memverifikasi transaksi tanpa memproses semua blok, namun seseorang tetap harus memproses semuanya. Tantangan skalabilitas ini mewakili bidang penelitian dan pengembangan aktif yang penting bagi kelangsungan jangka panjang Ethereum.

Conclusion

Протокол Ethereum изначально был задуман как улучшенная версия криптовалюты, предоставляющая продвинутые функции, такие как ончейн-эскроу, лимиты снятия и финансовые контракты через высокообобщённый язык программирования. Однако протокол Ethereum выходит далеко за рамки простой валюты. Протоколы децентрализованного файлового хранилища, децентрализованных вычислений и децентрализованных рынков предсказаний, среди десятков других концепций, обладают потенциалом для существенного повышения эффективности вычислительной индустрии и массового развития других одноранговых протоколов, впервые добавляя экономический слой.

Вместо предоставления ограниченного набора операций, предназначенных для конкретных сценариев использования, Ethereum предоставляет Тьюринг-полный язык программирования, позволяющий разработчикам создавать любое приложение, которое они могут спроектировать. Хотите изобрести собственный финансовый дериватив? Создать собственную валюту? Основать правительство на блокчейне? Всё это тривиально реализуемо с помощью скриптовой системы Ethereum. Мощь платформы заключается не в предсказании того, какие приложения будут построены, а в предоставлении фундаментальной инфраструктуры, делающей их создание лёгким.

Концепция произвольной функции перехода состояний, реализованная протоколом Ethereum, предоставляет платформу с уникальным потенциалом. Вместо того чтобы быть закрытым протоколом единственного назначения для конкретных приложений в хранении данных, азартных играх или финансах, Ethereum открыт по замыслу, и мы считаем, что он чрезвычайно хорошо подходит для того, чтобы служить фундаментальным слоем для большого количества как финансовых, так и нефинансовых протоколов в ближайшие годы. Приложения, которые будут построены на Ethereum в будущем, могут оказаться теми, которые мы не можем даже вообразить сегодня, и эта открытая возможность представляет собой истинное обещание платформы.

Conclusion

Protokol Ethereum pada awalnya dipahami sebagai versi mata uang kripto yang ditingkatkan, menyediakan fitur-fitur canggih seperti escrow di blockchain, batas penarikan, dan kontrak keuangan melalui bahasa pemrograman yang sangat umum. Namun, protokol Ethereum tidak hanya sekedar mata uang. Protokol seputar penyimpanan file terdesentralisasi, komputasi terdesentralisasi, dan pasar prediksi terdesentralisasi, di antara lusinan konsep lainnya, memiliki potensi untuk meningkatkan efisiensi industri komputasi secara signifikan dan memberikan dorongan besar pada protokol peer-to-peer lainnya dengan menambahkan lapisan ekonomi untuk pertama kalinya.

Daripada menyediakan serangkaian operasi terbatas yang dirancang untuk kasus penggunaan tertentu, Ethereum menyediakan bahasa pemrograman lengkap Turing yang memungkinkan pengembang membangun aplikasi apa pun yang dapat mereka desain. Ingin menciptakan derivatif keuangan Anda sendiri? Buat mata uang Anda sendiri? Membentuk pemerintahan di blockchain? Ini semua dapat diimplementasikan dengan mudah dengan sistem skrip Ethereum. Kekuatan platform tidak terletak pada prediksi aplikasi apa yang akan dibangun, namun pada penyediaan infrastruktur dasar yang memudahkan pembuatannya.

Konsep fungsi transisi keadaan sewenang-wenang seperti yang diterapkan oleh protokol Ethereum menyediakan platform dengan potensi unik. Daripada menjadi protokol tertutup dan bertujuan tunggal yang ditujukan untuk aplikasi spesifik dalam penyimpanan data, perjudian, atau keuangan, Ethereum dirancang dengan tujuan terbuka, dan kami yakin ini sangat cocok untuk berfungsi sebagai lapisan dasar bagi sejumlah besar protokol keuangan dan non-keuangan di tahun-tahun mendatang. Aplikasi yang akan dibangun pada Ethereum di masa depan mungkin merupakan aplikasi yang bahkan tidak dapat kita bayangkan saat ini, dan kemungkinan terbuka tersebut mewakili janji sebenarnya dari platform tersebut.

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, сочетая знания из криптовалют, распределённых систем, криптографии и теории игр для создания универсальной блокчейн-платформы.

References and Further Reading

Whitepaper Ethereum dibuat berdasarkan penelitian ekstensif sebelumnya mengenai mata uang kripto dan penelitian sistem terdistribusi. Protokol dasar Bitcoin dijelaskan dalam makalah asli Satoshi Nakamoto tahun 2008 "Bitcoin: Sistem Uang Elektronik Peer-to-Peer," yang memperkenalkan konsep mata uang digital berbasis blockchain. Upaya awal untuk memperluas fungsionalitas Bitcoin mencakup Namecoin, sistem registrasi nama terdesentralisasi yang menunjukkan aplikasi blockchain di luar mata uang, meskipun dibatasi oleh kemampuan skrip Bitcoin yang terbatas.

Whitepaper koin berwarna mengusulkan metode untuk merepresentasikan aset alternatif pada blockchain Bitcoin dengan "mewarnai" bitcoin tertentu untuk mewakili aset lain, sementara Mastercoin berupaya membuat lapisan protokol di atas Bitcoin untuk instrumen keuangan yang lebih kompleks. Keduanya menyoroti keterbatasan pengembangan Bitcoin dan memotivasi perlunya platform yang lebih fleksibel. Konsep perusahaan otonom yang terdesentralisasi, yang dieksplorasi dalam Majalah Bitcoin, memberikan landasan teoretis bagi tata kelola organisasi melalui kontrak pintar.

Komponen teknis utama mencakup verifikasi pembayaran yang disederhanakan (SPV) untuk klien ringan, pohon Merkle untuk verifikasi data yang efisien, dan Patricia mencoba mewakili negara bagian Ethereum. Protokol GHOST (Greedy Heaviest Observed Subtree), yang dijelaskan dalam makalah kriptografi tahun 2013, mengatasi masalah keamanan yang timbul dari waktu blok yang cepat dan menjadi dasar mekanisme konsensus Ethereum. Referensi ini mewakili landasan intelektual di mana Ethereum dibangun, menggabungkan wawasan dari mata uang kripto, sistem terdistribusi, kriptografi, dan teori permainan untuk menciptakan platform blockchain tujuan umum.