Эфириум: Платформа смарт-контрактов и децентрализованных приложений нового поколения
Abstract
Ethereum es una plataforma de criptomonedas y aplicaciones descentralizadas de nueva generacion que introduce una blockchain con un lenguaje de programacion Turing-completo incorporado. Esto permite a cualquier persona escribir smart contracts y aplicaciones descentralizadas donde pueden crear sus propias reglas arbitrarias para la propiedad, los formatos de transaccion y las funciones de transicion de estado.
La innovacion fundamental de Ethereum es combinar la tecnologia blockchain pionera de Bitcoin con un entorno de programacion de proposito general. Mientras que Bitcoin proporciona un sistema simple de transicion de estado para mover moneda de una cuenta a otra, Ethereum proporciona una plataforma donde los desarrolladores pueden construir cualquier tipo de aplicacion descentralizada que puedan imaginar, desde monedas alternativas e instrumentos financieros hasta sistemas de registro de dominios y organizaciones descentralizadas.
Ethereum logra esto construyendo lo que es esencialmente la capa fundacional abstracta definitiva: una blockchain con un lenguaje de programacion Turing-completo incorporado, que permite a cualquier persona escribir smart contracts y aplicaciones descentralizadas donde pueden crear sus propias reglas arbitrarias para la propiedad, los formatos de transaccion y las funciones de transicion de estado. Una version basica de Namecoin puede escribirse en dos lineas de codigo, y otros protocolos como monedas y sistemas de reputacion pueden construirse en menos de veinte.
Abstract
Ethereum — это платформа криптовалюты и децентрализованных приложений следующего поколения, которая представляет блокчейн со встроенным Тьюринг-полным языком программирования. Это позволяет любому писать смарт-контракты и децентрализованные приложения, в которых можно создавать собственные произвольные правила владения, форматы транзакций и функции перехода состояний.
Фундаментальная инновация Ethereum заключается в сочетании блокчейн-технологии, впервые разработанной Bitcoin, с универсальной средой программирования. В то время как Bitcoin предоставляет простую систему перехода состояний для перемещения валюты с одного счёта на другой, Ethereum предоставляет платформу, на которой разработчики могут создавать любые децентрализованные приложения, какие только могут себе представить, от альтернативных валют и финансовых инструментов до систем регистрации доменных имён и децентрализованных организаций.
Ethereum достигает этого, создавая по сути окончательный абстрактный фундаментальный слой: блокчейн со встроенным Тьюринг-полным языком программирования, позволяющим любому писать смарт-контракты и децентрализованные приложения, в которых можно создавать собственные произвольные правила владения, форматы транзакций и функции перехода состояний. Минимальная версия Namecoin может быть написана в двух строках кода, а другие протоколы, такие как валюты и системы репутации, могут быть построены менее чем в двадцати.
Introduction and Existing Concepts
El concepto de moneda digital descentralizada, asi como aplicaciones alternativas como registros de propiedad, existe desde hace decadas. Los protocolos anonimos de dinero electronico de las decadas de 1980 y 1990, en su mayoria dependientes de una primitiva criptografica conocida como cegamiento de Chaum, proporcionaban una moneda con un alto grado de privacidad, pero los protocolos en gran medida no lograron ganar traccion debido a su dependencia de un intermediario centralizado. En 1998, el b-money de Wei Dai se convirtio en la primera propuesta en introducir la idea de crear dinero mediante la resolucion de rompecabezas computacionales asi como el consenso descentralizado, pero la propuesta era escasa en detalles sobre como el consenso descentralizado podria realmente implementarse.
En 2009, una moneda descentralizada fue implementada en la practica por primera vez por Satoshi Nakamoto, combinando primitivas establecidas para gestionar la propiedad a traves de criptografia de clave publica con un algoritmo de consenso para rastrear quien posee las monedas, conocido como "proof of work". El mecanismo detras del proof of work fue un avance en el campo porque resolvio simultaneamente dos problemas. Primero, proporciono un algoritmo de consenso simple y moderadamente efectivo, permitiendo a los nodos de la red acordar colectivamente un conjunto de actualizaciones canonicas al estado del libro mayor de Bitcoin. Segundo, proporciono un mecanismo para permitir la entrada libre al proceso de consenso, resolviendo el problema politico de decidir quien puede influir en el consenso, mientras simultaneamente prevenia ataques sybil.
La blockchain de Bitcoin ha demostrado ser notablemente robusta a lo largo de sus anos de operacion, pero es inherentemente limitada. El lenguaje de scripting de Bitcoin esta intencionalmente disenado para ser restrictivo y no Turing-completo, careciendo de bucles y muchas otras caracteristicas que serian necesarias para construir aplicaciones mas complejas. Esta limitacion existe para prevenir bucles infinitos y otras formas de ataques computacionales, pero restringe severamente lo que puede construirse sobre Bitcoin.
Durante los ultimos cinco anos, ha habido varios intentos de extender la funcionalidad de Bitcoin. Los colored coins buscaron usar la blockchain de Bitcoin para rastrear la propiedad de activos alternativos, Namecoin intento crear una base de datos descentralizada de registro de nombres, y varios protocolos metacoin buscaron construir capas adicionales sobre Bitcoin. Aunque estos enfoques mostraron promesa, finalmente estaban limitados por las capacidades de scripting de Bitcoin y la incapacidad de acceder a datos de la blockchain desde dentro de los scripts.
Lo que Ethereum pretende proporcionar es una blockchain con un lenguaje de programacion Turing-completo completamente desarrollado que puede usarse para crear "contratos" que pueden usarse para codificar funciones de transicion de estado arbitrarias, permitiendo a los usuarios crear cualquiera de los sistemas descritos anteriormente, asi como muchos otros que aun no hemos imaginado, simplemente escribiendo la logica en unas pocas lineas de codigo.
Introduction and Existing Concepts
Концепция децентрализованной цифровой валюты, а также альтернативных приложений, таких как реестры собственности, существует уже несколько десятилетий. Анонимные протоколы электронных денег 1980-х и 1990-х годов, в основном основанные на криптографическом примитиве, известном как слепая подпись Чаума, обеспечивали валюту с высокой степенью конфиденциальности, но эти протоколы в значительной степени не смогли получить распространение из-за их зависимости от централизованного посредника. В 1998 году b-money Вэй Дая стал первым предложением, представившим идею создания денег путём решения вычислительных задач, а также децентрализованного консенсуса, однако предложение содержало мало деталей о том, как децентрализованный консенсус может быть реально реализован.
В 2009 году децентрализованная валюта была впервые реализована на практике Сатоши Накамото, объединившим устоявшиеся примитивы управления собственностью через криптографию с открытым ключом с алгоритмом консенсуса для отслеживания владения монетами, известным как «доказательство работы» (proof of work). Механизм, лежащий в основе доказательства работы, стал прорывом в этой области, поскольку он одновременно решал две проблемы. Во-первых, он предоставил простой и умеренно эффективный алгоритм консенсуса, позволяющий узлам сети коллективно согласовывать набор канонических обновлений состояния реестра Bitcoin. Во-вторых, он предоставил механизм свободного входа в процесс консенсуса, решая политическую проблему определения того, кто может влиять на консенсус, одновременно предотвращая атаки Сибила.
Блокчейн Bitcoin доказал свою замечательную устойчивость за годы работы, но он по своей природе ограничен. Скриптовый язык Bitcoin намеренно разработан как ограничительный и не-Тьюринг-полный, лишённый циклов и многих других возможностей, которые были бы необходимы для создания более сложных приложений. Это ограничение существует для предотвращения бесконечных циклов и других форм вычислительных атак, но оно серьёзно ограничивает то, что может быть построено поверх Bitcoin.
За последние пять лет было предпринято множество попыток расширить функциональность Bitcoin. Colored coins стремились использовать блокчейн Bitcoin для отслеживания владения альтернативными активами, Namecoin пытался создать децентрализованную базу данных регистрации имён, а различные протоколы metacoin были направлены на создание дополнительных слоёв поверх Bitcoin. Хотя эти подходы показали перспективность, они были в конечном счёте ограничены скриптовыми возможностями Bitcoin и невозможностью доступа к данным блокчейна из скриптов.
То, что Ethereum намеревается предоставить — это блокчейн со встроенным полноценным Тьюринг-полным языком программирования, который может использоваться для создания «контрактов», способных кодировать произвольные функции перехода состояний, позволяя пользователям создавать любую из описанных выше систем, а также многие другие, которые мы ещё не представили, просто записывая логику в нескольких строках кода.
Bitcoin As A State Transition System
Desde un punto de vista tecnico, el libro mayor de una criptomoneda como Bitcoin puede considerarse como un sistema de transicion de estado, donde hay un "estado" que consiste en el estatus de propiedad de todos los bitcoins existentes y una "funcion de transicion de estado" que toma un estado y una transaccion y produce un nuevo estado que es el resultado. En un sistema bancario estandar, por ejemplo, el estado es un balance general, una transaccion es una solicitud para mover \(X de A a B, y la funcion de transicion de estado reduce el valor en la cuenta de A en \)X y aumenta el valor en la cuenta de B en \(X. Si la cuenta de A tiene menos de \)X en primer lugar, la funcion de transicion de estado devuelve un error.

El "estado" en Bitcoin es la coleccion de todas las monedas (tecnicamente, "salidas de transaccion no gastadas" o UTXO) que han sido acunadas y aun no gastadas, donde cada UTXO tiene una denominacion y un propietario (definido por una direccion de 20 bytes que es esencialmente una clave publica criptografica). Una transaccion contiene una o mas entradas, donde cada entrada contiene una referencia a un UTXO existente y una firma criptografica producida por la clave privada asociada con la direccion del propietario, y una o mas salidas, donde cada salida contiene un nuevo UTXO para ser anadido al estado.
La funcion de transicion de estado APPLY(S,TX) - S' puede definirse aproximadamente de la siguiente manera:
- Para cada entrada en TX, si el UTXO referenciado no esta en S, devolver un error.
- Si la firma proporcionada no coincide con el propietario del UTXO, devolver un error.
- Si la suma de las denominaciones de todos los UTXO de entrada es menor que la suma de las denominaciones de todos los UTXO de salida, devolver un error.
- Devolver S con todos los UTXO de entrada eliminados y todos los UTXO de salida anadidos.
La primera mitad del primer paso previene que los remitentes de transacciones gasten monedas que no existen, la segunda mitad del primer paso previene que los remitentes gasten monedas de otras personas, y el segundo paso asegura la conservacion de valor. Para usar esto para pagos, el protocolo es el siguiente: supongamos que Alice quiere enviar 11.7 BTC a Bob. Primero, Alice buscara un conjunto de UTXO disponibles que posee y que sumen al menos 11.7 BTC. De manera realista, Alice no podra obtener exactamente 11.7 BTC; digamos que lo minimo que puede obtener es 6+4+2=12. Entonces crea una transaccion con esas tres entradas y dos salidas. La primera salida sera 11.7 BTC con la direccion de Bob como propietario, y la segunda salida sera el "cambio" restante de 0.3 BTC, siendo la propietaria la propia Alice.
Bitcoin As A State Transition System
С технической точки зрения реестр криптовалюты, такой как Bitcoin, можно рассматривать как систему перехода состояний, где есть «состояние», состоящее из статуса владения всеми существующими биткойнами, и «функция перехода состояний», которая принимает состояние и транзакцию и выдаёт новое состояние как результат. В стандартной банковской системе, например, состояние — это балансовый отчёт, транзакция — это запрос на перевод \(X от A к B, и функция перехода состояний уменьшает значение на счёте A на \)X и увеличивает значение на счёте B на \(X. Если на счёте A изначально менее \)X, функция перехода состояний возвращает ошибку.

«Состояние» в Bitcoin — это совокупность всех монет (технически, «неизрасходованных выходов транзакций» или UTXO), которые были выпущены и ещё не потрачены, при этом каждый UTXO имеет номинал и владельца (определяемого 20-байтовым адресом, который по сути является криптографическим открытым ключом). Транзакция содержит один или более входов, где каждый вход содержит ссылку на существующий UTXO и криптографическую подпись, созданную закрытым ключом, связанным с адресом владельца, и один или более выходов, где каждый выход содержит новый UTXO, который будет добавлен в состояние.
Функция перехода состояний APPLY(S,TX) - S' может быть приблизительно определена следующим образом:
- Для каждого входа в TX, если указанный UTXO отсутствует в S, вернуть ошибку.
- Если предоставленная подпись не соответствует владельцу UTXO, вернуть ошибку.
- Если сумма номиналов всех входных UTXO меньше суммы номиналов всех выходных UTXO, вернуть ошибку.
- Вернуть S со всеми входными UTXO удалёнными и всеми выходными UTXO добавленными.
Первая половина первого шага предотвращает трату монет, которые не существуют, вторая половина первого шага предотвращает трату чужих монет, а второй шаг обеспечивает сохранение стоимости. Чтобы использовать это для платежа, протокол следующий: предположим, Алиса хочет отправить 11,7 BTC Бобу. Сначала Алиса ищет набор доступных UTXO, которыми она владеет, в сумме составляющих не менее 11,7 BTC. Реалистично, Алиса не сможет получить ровно 11,7 BTC; допустим, наименьшее, что она может получить — это 6+4+2=12. Затем она создаёт транзакцию с тремя входами и двумя выходами. Первый выход составит 11,7 BTC с адресом Боба в качестве владельца, а второй выход будет оставшейся «сдачей» в 0,3 BTC, владельцем которой является сама Алиса.
Mining
Si tuvieramos acceso a un servicio centralizado confiable, este sistema seria trivial de implementar; simplemente podria codificarse exactamente como se describe, usando el disco duro de un servidor centralizado para rastrear el estado. Sin embargo, con Bitcoin estamos tratando de construir un sistema de moneda descentralizado, por lo que necesitaremos combinar el sistema de transicion de estado con un sistema de consenso para asegurar que todos esten de acuerdo en el orden de las transacciones. El proceso de consenso descentralizado de Bitcoin requiere que los nodos en la red intenten continuamente producir paquetes de transacciones llamados "bloques". La red esta disenada para producir aproximadamente un bloque cada diez minutos, con cada bloque conteniendo una marca de tiempo, un nonce, una referencia al (es decir, hash del) bloque anterior y una lista de todas las transacciones que han tenido lugar desde el bloque anterior.

Con el tiempo, esto crea una "blockchain" persistente y en constante crecimiento que se actualiza constantemente para representar el estado mas reciente del libro mayor de Bitcoin. El algoritmo para verificar si un bloque es valido, expresado en este paradigma, es el siguiente:
- Verificar si el bloque anterior referenciado por el bloque existe y es valido.
- Verificar que la marca de tiempo del bloque es mayor que la del bloque anterior y menor a 2 horas en el futuro.
- Verificar que el proof of work del bloque es valido.
- Sea S el estado al final del bloque anterior.
- Supongamos que TX es la lista de transacciones del bloque con n transacciones. Para todo i en 0...n-1, establecer S = APPLY(S,TX[i]). Si alguna aplicacion devuelve un error, salir y devolver falso.
- Devolver verdadero y registrar S como el estado al final de este bloque.
Esencialmente, cada transaccion en el bloque debe proporcionar una transicion de estado valida desde lo que era el estado canonico antes de que la transaccion se ejecutara hasta algun nuevo estado. Hay que notar que el estado no esta codificado en el bloque de ninguna manera; es puramente una abstraccion que debe ser recordada por el nodo validador y solo puede ser calculada (de forma segura) para cualquier bloque comenzando desde el estado genesis y aplicando secuencialmente cada transaccion en cada bloque.
El minero es recompensado por su trabajo computacional con bitcoins recien creados mas las comisiones de transaccion. El proceso de mineria funciona de la siguiente manera: los mineros toman la cabecera del bloque y la hashean repetidamente con diferentes valores de nonce hasta encontrar un hash que este por debajo de un cierto objetivo de dificultad. Cuando un minero encuentra dicho hash, transmite el bloque a la red, y otros nodos verifican que el hash es valido y que todas las transacciones en el bloque son validas. El objetivo de dificultad se ajusta automaticamente por el protocolo cada 2016 bloques (aproximadamente dos semanas) para asegurar que los bloques se produzcan a un ritmo aproximadamente constante.
Hay que notar que a largo plazo, la seguridad de la blockchain depende de que los mineros tengan un incentivo financiero para comportarse honestamente. Si un atacante controla mas del 50% del poder de mineria de la red, potencialmente podria ejecutar un "ataque del 51%" creando una blockchain alternativa que crezca mas rapido que la cadena honesta. Sin embargo, tal ataque requeriria enormes recursos computacionales y probablemente resultaria en que las recompensas de mineria del atacante perdieran su valor a medida que la red perdiera confianza en la integridad de la blockchain.
Mining
Если бы у нас был доступ к надёжному централизованному сервису, эту систему было бы тривиально реализовать; её можно было бы просто запрограммировать точно так, как описано, используя жёсткий диск централизованного сервера для отслеживания состояния. Однако с Bitcoin мы пытаемся построить децентрализованную валютную систему, поэтому нам нужно будет объединить систему транзакций состояния с системой консенсуса, чтобы обеспечить согласие всех относительно порядка транзакций. Децентрализованный процесс консенсуса Bitcoin требует, чтобы узлы в сети непрерывно пытались создавать пакеты транзакций, называемые «блоками». Сеть предназначена для производства примерно одного блока каждые десять минут, при этом каждый блок содержит метку времени, nonce, ссылку на (т.е. хеш) предыдущий блок и список всех транзакций, произошедших с момента предыдущего блока.

Со временем это создаёт постоянную, непрерывно растущую «блокчейн», которая постоянно обновляется, чтобы отражать последнее состояние реестра Bitcoin. Алгоритм проверки валидности блока, выраженный в этой парадигме, выглядит следующим образом:
- Проверить, существует ли предыдущий блок, на который ссылается блок, и является ли он валидным.
- Проверить, что метка времени блока больше метки времени предыдущего блока и менее чем на 2 часа опережает текущее время.
- Проверить, что доказательство работы блока валидно.
- Пусть S — состояние в конце предыдущего блока.
- Предположим, TX — это список транзакций блока с n транзакциями. Для всех i в 0...n-1 установить S = APPLY(S,TX[i]). Если какое-либо применение возвращает ошибку, выйти и вернуть ложь.
- Вернуть истину и зарегистрировать S как состояние в конце этого блока.
По сути, каждая транзакция в блоке должна обеспечивать валидный переход состояния от того, что было каноническим состоянием до выполнения транзакции, к некоторому новому состоянию. Обратите внимание, что состояние никак не закодировано в блоке; это чисто абстракция, которую должен помнить проверяющий узел, и которая может быть (безопасно) вычислена для любого блока только начиная с генезис-состояния и последовательно применяя каждую транзакцию в каждом блоке.
Майнер вознаграждается за свою вычислительную работу вновь созданными биткойнами плюс комиссиями за транзакции. Процесс майнинга работает следующим образом: майнеры берут заголовок блока и многократно хешируют его с различными значениями nonce, пока не найдут хеш, который ниже определённого целевого значения сложности. Когда майнер находит такой хеш, он транслирует блок в сеть, и другие узлы проверяют, что хеш валиден и что все транзакции в блоке валидны. Целевое значение сложности автоматически корректируется протоколом каждые 2016 блоков (приблизительно две недели), чтобы обеспечить производство блоков с примерно постоянной скоростью.
Обратите внимание, что в долгосрочной перспективе безопасность блокчейна зависит от того, имеют ли майнеры финансовый стимул вести себя честно. Если злоумышленник контролирует более 50% вычислительной мощности сети, он потенциально может выполнить «атаку 51%», создав альтернативный блокчейн, который растёт быстрее, чем честная цепочка. Однако такая атака потребовала бы огромных вычислительных ресурсов и, вероятно, привела бы к тому, что вознаграждения за майнинг атакующего стали бы бесполезными, поскольку сеть потеряла бы доверие к целостности блокчейна.
Merkle Trees
Los Merkle trees son una estructura de datos fundamental utilizada en los bloques de Bitcoin para permitir la verificacion eficiente y segura de la inclusion de transacciones. Un Merkle tree es un arbol binario de hashes donde los nodos hoja contienen hashes de transacciones individuales, y cada nodo interior contiene el hash de sus dos hijos, construyendose recursivamente hasta un unico hash raiz que se almacena en la cabecera del bloque. Esta estructura jerarquica permite a cualquiera verificar que una transaccion especifica esta incluida en un bloque descargando solo la rama del Merkle tree, la cadena de hashes desde la transaccion hasta la raiz, en lugar de descargar todas las transacciones del bloque.

Las ganancias en eficiencia son sustanciales: mientras que un nodo completo de Bitcoin debe almacenar toda la blockchain (aproximadamente 15GB en 2013), un nodo de verificacion de pagos simplificada (SPV) solo necesita descargar las cabeceras de los bloques que contienen las raices del Merkle tree, requiriendo solo 4MB de datos. Para verificar una transaccion, un nodo SPV solicita la rama del Merkle tree a los nodos completos, lo que requiere solo O(log n) datos donde n es el numero de transacciones en un bloque. Esta escalabilidad logaritmica hace factible ejecutar clientes ligeros en dispositivos moviles y entornos con recursos limitados.
El uso de Merkle trees por parte de Bitcoin demuestra un principio clave: las estructuras criptograficas pueden reducir dramaticamente los requisitos de confianza y recursos para participar en una red descentralizada. Este mismo principio subyace en el diseno de Ethereum, donde los Merkle trees se utilizan no solo para transacciones sino tambien para el almacenamiento de estado y recibos, permitiendo protocolos de clientes ligeros aun mas sofisticados.
Merkle Trees
Деревья Меркла являются фундаментальной структурой данных, используемой в блоках Bitcoin для обеспечения эффективной и безопасной верификации включения транзакций. Дерево Меркла представляет собой бинарное дерево хешей, где листовые узлы содержат хеши отдельных транзакций, а каждый внутренний узел содержит хеш своих двух потомков, рекурсивно формируя единственный корневой хеш, который хранится в заголовке блока. Эта иерархическая структура позволяет любому проверить, что конкретная транзакция включена в блок, загрузив лишь ветвь Меркла — цепочку хешей от транзакции до корня — вместо загрузки всех транзакций в блоке.

Выигрыш в эффективности существенен: в то время как полный узел Bitcoin должен хранить всю цепочку блоков (приблизительно 15 ГБ по состоянию на 2013 год), узел упрощённой верификации платежей (SPV) должен загрузить только заголовки блоков, содержащие корни Меркла, что требует всего 4 МБ данных. Для верификации транзакции узел SPV запрашивает ветвь Меркла у полных узлов, что требует лишь O(log n) данных, где n — количество транзакций в блоке. Такое логарифмическое масштабирование делает возможным запуск лёгких клиентов на мобильных устройствах и в средах с ограниченными ресурсами.
Использование деревьев Меркла в Bitcoin демонстрирует ключевой принцип: криптографические структуры могут значительно снизить требования к доверию и ресурсам для участия в децентрализованной сети. Этот же принцип лежит в основе архитектуры Ethereum, где деревья Меркла используются не только для транзакций, но и для хранения состояния и квитанций, что позволяет создавать ещё более сложные протоколы для лёгких клиентов.
Alternative Blockchain Applications
El exito de la blockchain de Bitcoin inspiro numerosos intentos de extender el concepto mas alla de la simple moneda. Namecoin, lanzado en 2010, fue uno de los primeros ejemplos: una base de datos descentralizada de registro de nombres construida sobre una blockchain, que permitia a los usuarios registrar nombres en un espacio de nombres distribuido que ninguna autoridad central podia censurar o revocar. Los colored coins surgieron como una forma de representar activos alternativos en la blockchain de Bitcoin "etiquetando" salidas de transaccion especificas para representar la propiedad de activos del mundo real, acciones de empresas u otras criptomonedas. Los metacoins y metaprotocolos como Mastercoin (posteriormente Omni) anadieron funcionalidad adicional sobre Bitcoin codificando datos extra en las transacciones de Bitcoin y construyendo reglas de protocolo separadas encima.
Sin embargo, todos estos enfoques sufrian de limitaciones fundamentales impuestas por la arquitectura de Bitcoin. El lenguaje de scripting de Bitcoin esta intencionalmente restringido: no puede acceder al estado de la blockchain, carece de bucles y flujo de control complejo, y proporciona introspeccion limitada sobre los valores de las transacciones. Construir aplicaciones sofisticadas requeria soluciones alternativas incomodas: codificar metadatos en campos de transaccion que nunca fueron destinados para ese proposito, depender de infraestructura fuera de la cadena para logica compleja, o aceptar limitaciones severas en lo que el protocolo podia lograr.
Estas restricciones motivaron la busqueda de una plataforma blockchain de proposito mas general. En lugar de construir otro protocolo de proposito especial sobre la base limitada de Bitcoin, Ethereum toma un enfoque diferente: proporcionar una blockchain con un lenguaje de programacion Turing-completo incorporado, permitiendo a cualquier persona escribir smart contracts y aplicaciones descentralizadas con reglas arbitrarias para la propiedad, los formatos de transaccion y las funciones de transicion de estado.
Alternative Blockchain Applications
Успех блокчейна Bitcoin вдохновил многочисленные попытки расширить эту концепцию за пределы простой валюты. Namecoin, запущенный в 2010 году, был одним из первых примеров — децентрализованная база данных регистрации имён, построенная на блокчейне, позволяющая пользователям регистрировать имена в распределённом пространстве имён, которое ни одна центральная власть не могла цензурировать или отозвать. Colored coins появились как способ представления альтернативных активов на блокчейне Bitcoin путём «маркировки» определённых выходов транзакций для обозначения владения реальными активами, акциями компаний или другими криптовалютами. Метакоины и мета-протоколы, такие как Mastercoin (позднее Omni), добавляли дополнительную функциональность поверх Bitcoin, кодируя дополнительные данные в транзакциях Bitcoin и строя отдельные правила протокола поверх них.
Однако все эти подходы страдали от фундаментальных ограничений, налагаемых архитектурой Bitcoin. Язык скриптов Bitcoin намеренно ограничен — он не может получить доступ к состоянию блокчейна, не имеет циклов и сложного управления потоком выполнения, а также предоставляет ограниченную интроспекцию значений транзакций. Создание сложных приложений требовало неуклюжих обходных решений: кодирования метаданных в полях транзакций, никогда не предназначавшихся для этого, зависимости от внецепочечной инфраструктуры для сложной логики или принятия серьёзных ограничений на то, что протокол мог реализовать.
Эти ограничения мотивировали поиск более универсальной блокчейн-платформы. Вместо создания ещё одного специализированного протокола поверх ограниченного фундамента Bitcoin, Ethereum использует другой подход: предоставление блокчейна со встроенным Тьюринг-полным языком программирования, позволяющим любому создавать смарт-контракты и децентрализованные приложения с произвольными правилами владения, форматами транзакций и функциями перехода состояний.
Scripting
Bitcoin Script, el lenguaje utilizado para definir las condiciones de gasto de las transacciones de Bitcoin, esta intencionalmente disenado con severas limitaciones. No es Turing-completo — notablemente, carece de bucles y estructuras complejas de flujo de control. El lenguaje opera como un entorno de ejecucion simple basado en pila donde las operaciones empujan y extraen valores, evaluan condiciones criptograficas y finalmente devuelven verdadero o falso para determinar si una transaccion es valida. Aunque esta simplicidad proporciona beneficios de seguridad y facilita el analisis formal, tambien hace imposible implementar muchos tipos de aplicaciones.
Estas limitaciones se dividen en tres categorias principales. Primero, la falta de completitud de Turing impide implementar maquinas de estado complejas, arboles de decision o cualquier algoritmo que requiera iteracion. Segundo, la ceguera de valor significa que los scripts no pueden especificar un control detallado sobre las cantidades de retiro — un UTXO solo puede gastarse en su totalidad, con el cambio enviado a una nueva salida. Un script no puede, por ejemplo, limitar los retiros a un maximo de X por dia mientras deja el resto bloqueado. Tercero, la falta de conciencia del estado de la blockchain significa que los UTXO estan gastados o no gastados sin estados intermedios, haciendo imposible implementar contratos de multiples etapas puramente en la cadena.
Estas restricciones hacen que aplicaciones sofisticadas como organizaciones autonomas descentralizadas, carteras de ahorro con limites de retiro, exchanges descentralizados o mercados de prediccion sean imposibles o requieran mecanismos incomodos fuera de la cadena. Un contrato financiero avanzado podria requerir acceso a datos del mercado, la capacidad de mantener un estado interno a traves de multiples transacciones y logica condicional compleja — nada de lo cual Bitcoin Script puede proporcionar. Ethereum elimina estas limitaciones proporcionando un lenguaje Turing-completo con acceso completo al estado de la blockchain.
Scripting
Bitcoin Script, язык, используемый для определения условий расходования транзакций Bitcoin, намеренно спроектирован с серьёзными ограничениями. Он не является Тьюринг-полным — в первую очередь, в нём отсутствуют циклы и сложные структуры управления потоком выполнения. Язык работает как простая стековая среда исполнения, где операции помещают и извлекают значения, оценивают криптографические условия и в конечном итоге возвращают истину или ложь, определяя, является ли транзакция допустимой. Хотя эта простота обеспечивает преимущества безопасности и упрощает формальный анализ, она также делает невозможной реализацию многих типов приложений.
Эти ограничения делятся на три основные категории. Во-первых, отсутствие Тьюринг-полноты не позволяет реализовать сложные конечные автоматы, деревья решений или любой алгоритм, требующий итерации. Во-вторых, «слепота к значениям» означает, что скрипты не могут определять детальный контроль над суммами снятия — UTXO может быть потрачен только целиком, а сдача отправляется на новый выход. Скрипт не может, например, ограничить снятие максимумом X в день, оставив остаток заблокированным. В-третьих, отсутствие осведомлённости о состоянии блокчейна означает, что UTXO либо потрачены, либо не потрачены, без промежуточных состояний, что делает невозможной реализацию многоэтапных контрактов исключительно в цепочке.
Эти ограничения делают такие сложные приложения, как децентрализованные автономные организации, сберегательные кошельки с лимитами снятия, децентрализованные биржи или рынки предсказаний, либо невозможными, либо требующими неуклюжих внецепочечных механизмов. Продвинутый финансовый контракт может потребовать доступа к рыночным данным, способности поддерживать внутреннее состояние между несколькими транзакциями и сложной условной логики — ничего из этого Bitcoin Script обеспечить не может. Ethereum устраняет эти ограничения, предоставляя Тьюринг-полный язык с полным доступом к состоянию блокчейна.
Ethereum
El objetivo fundamental de Ethereum es proporcionar una blockchain con un lenguaje de programacion Turing-completo incorporado que permita a cualquier persona escribir smart contracts y aplicaciones descentralizadas donde puedan crear sus propias reglas arbitrarias para la propiedad, los formatos de transaccion y las funciones de transicion de estado. En lugar de disenar un protocolo para aplicaciones especificas como moneda, registro de nombres o comercio de activos, Ethereum proporciona una capa fundacional: una plataforma de computacion distribuida basada en blockchain que los desarrolladores pueden usar para construir cualquier aplicacion que puedan imaginar.
La arquitectura difiere fundamentalmente del modelo UTXO de Bitcoin. Ethereum utiliza un sistema basado en cuentas donde el estado de la blockchain consiste en un mapeo de direcciones a objetos de cuenta. Cada cuenta tiene un saldo, un contador de transacciones (nonce), y para las cuentas de contrato, codigo asociado y almacenamiento. La plataforma incluye un lenguaje de programacion Turing-completo incorporado para escribir codigo de contrato que se ejecuta en la Maquina Virtual de Ethereum (EVM), un entorno de ejecucion basado en pila que procesa transacciones y transiciones de estado.
Esta generalidad permite una vasta gama de aplicaciones: criptomonedas alternativas con reglas de emision personalizadas, derivados financieros y stablecoins, sistemas de identidad y reputacion, almacenamiento de archivos descentralizado, organizaciones autonomas descentralizadas (DAOs), y mucho mas. El whitepaper enfatiza que Ethereum no esta optimizado para ningun caso de uso en particular, sino que proporciona los bloques de construccion fundamentales — cuentas, transacciones, un lenguaje Turing-completo y ejecucion medida por gas — que los desarrolladores pueden combinar para crear cualquier aplicacion que el ecosistema demande.
Ethereum
Фундаментальная цель Ethereum — предоставить блокчейн со встроенным Тьюринг-полным языком программирования, который позволяет любому писать смарт-контракты и децентрализованные приложения, в которых можно создавать собственные произвольные правила владения, форматы транзакций и функции перехода состояний. Вместо разработки протокола для конкретных приложений, таких как валюта, регистрация имён или торговля активами, Ethereum предоставляет фундаментальный слой — платформу распределённых вычислений на основе блокчейна, которую разработчики могут использовать для создания любого приложения, которое они могут себе представить.
Архитектура фундаментально отличается от модели UTXO Bitcoin. Ethereum использует систему на основе счетов, где состояние блокчейна представляет собой отображение адресов в объекты счетов. Каждый счёт имеет баланс, счётчик транзакций (nonce), а для контрактных счетов — связанный код и хранилище. Платформа включает встроенный Тьюринг-полный язык программирования для написания кода контрактов, который выполняется в виртуальной машине Ethereum (EVM) — стековой среде исполнения, обрабатывающей транзакции и переходы состояний.
Эта универсальность позволяет создавать обширный спектр приложений: альтернативные криптовалюты с пользовательскими правилами эмиссии, финансовые деривативы и стейблкоины, системы идентификации и репутации, децентрализованное файловое хранилище, децентрализованные автономные организации (DAO) и многое другое. Whitepaper подчёркивает, что Ethereum не оптимизирован для какого-либо конкретного варианта использования, а предоставляет фундаментальные строительные блоки — счета, транзакции, Тьюринг-полный язык и исполнение с измерением газа — которые разработчики могут комбинировать для создания приложений, востребованных экосистемой.
Ethereum Accounts
En Ethereum, el estado esta compuesto por cuentas, y hay dos tipos fundamentales. Las cuentas de propiedad externa (EOAs) estan controladas por claves privadas y no tienen codigo asociado — representan usuarios humanos o entidades externas que interactuan con la blockchain. Las cuentas de contrato estan controladas por su codigo de contrato y se activan cuando reciben un mensaje o transaccion. Ambos tipos comparten una estructura comun: cada cuenta tiene un nonce (un contador utilizado para asegurar que cada transaccion solo pueda procesarse una vez), un saldo de ether, y para los contratos especificamente, codigo de contrato y almacenamiento persistente.
Ether es la criptomoneda interna principal de Ethereum, sirviendo tanto como medio de transferencia de valor como la unidad fundamental para pagar comisiones de transaccion (gas). A diferencia del modelo UTXO de Bitcoin donde el valor esta distribuido entre multiples salidas no gastadas, las cuentas de Ethereum mantienen un saldo simple que aumenta cuando reciben ether y disminuye cuando lo envian. Este modelo basado en cuentas simplifica muchos tipos de aplicaciones, particularmente aquellas que requieren estado persistente o control de acceso complejo, aunque introduce diferentes consideraciones de seguridad comparado con el enfoque de Bitcoin.
La distincion entre EOAs y cuentas de contrato es crucial para entender el funcionamiento de Ethereum. Las EOAs pueden iniciar transacciones creando y firmando mensajes con sus claves privadas, pagando comisiones de gas para que sus transacciones sean incluidas en bloques. Las cuentas de contrato no pueden iniciar transacciones por si mismas, pero pueden enviar mensajes a otros contratos en respuesta a recibir una transaccion o mensaje, permitiendo cadenas complejas de ejecucion donde una unica transaccion externa desencadena multiples interacciones de contrato a contrato.
Ethereum Accounts
В Ethereum состояние формируется из счетов, и существуют два фундаментальных типа. Внешние счета (EOA) контролируются закрытыми ключами и не имеют связанного кода — они представляют пользователей-людей или внешние сущности, взаимодействующие с блокчейном. Контрактные счета контролируются своим кодом контракта и активируются при получении сообщения или транзакции. Оба типа имеют общую структуру: каждый счёт имеет nonce (счётчик, обеспечивающий однократную обработку каждой транзакции), баланс в эфире, а для контрактов — код контракта и постоянное хранилище.
Эфир (ether) является основной внутренней криптовалютой Ethereum, служащей одновременно средством передачи стоимости и фундаментальной единицей для оплаты комиссий за транзакции (газ). В отличие от модели UTXO Bitcoin, где стоимость распределена между несколькими неизрасходованными выходами, счета Ethereum поддерживают простой баланс, который увеличивается при получении эфира и уменьшается при его отправке. Эта модель на основе счетов упрощает многие типы приложений, особенно требующие постоянного состояния или сложного контроля доступа, хотя и вводит другие соображения безопасности по сравнению с подходом Bitcoin.
Различие между EOA и контрактными счетами имеет решающее значение для понимания работы Ethereum. EOA могут инициировать транзакции, создавая и подписывая сообщения своими закрытыми ключами, оплачивая комиссии в газе за включение транзакций в блоки. Контрактные счета не могут инициировать транзакции самостоятельно, но могут отправлять сообщения другим контрактам в ответ на полученную транзакцию или сообщение, обеспечивая сложные цепочки выполнения, где одна внешняя транзакция запускает множественные взаимодействия между контрактами.
Messages and Transactions
Las transacciones en Ethereum son paquetes de datos firmados creados por cuentas de propiedad externa y transmitidos a la red. Una transaccion contiene la direccion del destinatario, una firma criptografica que prueba la identidad del remitente, la cantidad de ether a transferir, un campo de datos opcional (crucial para interactuar con contratos), STARTGAS (el numero maximo de pasos computacionales que la transaccion puede realizar) y GASPRICE (la comision por paso computacional que el remitente esta dispuesto a pagar). Los mineros recopilan estas transacciones, las validan, las ejecutan y las incluyen en bloques, recibiendo las comisiones de gas como compensacion.
Los mensajes son conceptualmente similares a las transacciones pero son producidos por contratos en lugar de actores externos. Cuando el codigo de un contrato se ejecuta, puede enviar mensajes a otros contratos — estos mensajes internos contienen el remitente (la direccion del contrato), el destinatario, una cantidad de ether a transferir, una carga de datos opcional y un limite de STARTGAS. Los mensajes permiten la comunicacion de contrato a contrato, permitiendo que aplicaciones complejas se construyan a partir de multiples contratos interactuantes en lugar de programas monoliticos.
El mecanismo de gas es crucial para prevenir abusos: cada paso computacional, operacion de almacenamiento y byte de datos en una transaccion consume gas. Si una transaccion se queda sin gas antes de completarse, todos los cambios de estado se revierten (excepto el pago de gas al minero), previniendo que bucles infinitos o computacion excesiva paralicen la red. El remitente especifica tanto el presupuesto total de gas (STARTGAS) como el precio que esta dispuesto a pagar por unidad (GASPRICE), y cualquier gas no utilizado se reembolsa despues de que la ejecucion se completa.
Messages and Transactions
Транзакции в Ethereum представляют собой подписанные пакеты данных, создаваемые внешними счетами и транслируемые по сети. Транзакция содержит адрес получателя, криптографическую подпись, подтверждающую личность отправителя, количество эфира для перевода, необязательное поле данных (критически важное для взаимодействия с контрактами), STARTGAS (максимальное количество вычислительных шагов, которое транзакция может совершить) и GASPRICE (комиссия за вычислительный шаг, которую отправитель готов заплатить). Майнеры собирают эти транзакции, проверяют их, исполняют и включают в блоки, получая комиссии в газе в качестве вознаграждения.
Сообщения концептуально аналогичны транзакциям, но создаются контрактами, а не внешними участниками. Когда код контракта исполняется, он может отправлять сообщения другим контрактам — эти внутренние сообщения содержат отправителя (адрес контракта), получателя, количество эфира для перевода, необязательную полезную нагрузку данных и лимит STARTGAS. Сообщения обеспечивают коммуникацию между контрактами, позволяя строить сложные приложения из множества взаимодействующих контрактов, а не из монолитных программ.
Механизм газа критически важен для предотвращения злоупотреблений: каждый вычислительный шаг, операция хранения и байт данных в транзакции потребляет газ. Если транзакция исчерпывает газ до завершения, все изменения состояния откатываются (за исключением оплаты газа майнеру), предотвращая бесконечные циклы или чрезмерные вычисления, способные парализовать сеть. Отправитель указывает как общий бюджет газа (STARTGAS), так и цену, которую он готов платить за единицу (GASPRICE), а неиспользованный газ возвращается после завершения исполнения.
Ethereum State Transition Function
La funcion de transicion de estado de Ethereum APPLY(S,TX) - S' define como una transaccion transforma el estado de la blockchain, y sigue una secuencia precisa de pasos. Primero, el sistema verifica la validez de la transaccion: verificando que la firma sea correcta, confirmando que el nonce coincide con el nonce de la cuenta del remitente, y asegurando que el remitente tiene saldo suficiente para pagar el costo inicial (STARTGAS x GASPRICE mas el valor enviado). Si alguna verificacion falla, la transaccion es rechazada antes de que comience la ejecucion. Si es valida, la comision de transaccion se deduce de la cuenta del remitente, el nonce del remitente se incrementa, y se establece un contador de gas inicial a STARTGAS menos una tarifa por byte para los datos de la transaccion.

A continuacion, el sistema transfiere el valor de ether especificado del remitente al destinatario. Si el destinatario es una cuenta de propiedad externa, esto completa la transaccion. Si el destinatario es una cuenta de contrato, el codigo del contrato se ejecuta en la Maquina Virtual de Ethereum, consumiendo gas por cada operacion hasta que el codigo se completa exitosamente, el codigo se detiene explicitamente, o el gas se agota. Durante la ejecucion, el contrato puede leer y modificar su almacenamiento, enviar mensajes a otros contratos y crear nuevos contratos.
Finalmente, si la transferencia de valor fallo (saldo insuficiente) o la ejecucion del codigo fallo (quedarse sin gas o encontrar un error), todos los cambios de estado se revierten — excepto que el remitente aun paga las comisiones de gas al minero por la computacion realizada. Si la ejecucion fue exitosa, el gas restante se reembolsa al remitente, y el gas consumido se envia al minero como comision. Este mecanismo asegura que los mineros sean compensados por la computacion mientras previene que la ejecucion descontrolada consuma recursos ilimitados.
Ethereum State Transition Function
Функция перехода состояний Ethereum APPLY(S,TX) - S' определяет, как транзакция преобразует состояние блокчейна, и следует точной последовательности шагов. Сначала система проверяет допустимость транзакции: верифицирует правильность подписи, подтверждает соответствие nonce значению nonce счёта отправителя и обеспечивает наличие у отправителя достаточного баланса для оплаты авансовой стоимости (STARTGAS x GASPRICE плюс отправляемая сумма). Если любая проверка не проходит, транзакция отклоняется до начала исполнения. При успешной проверке комиссия за транзакцию вычитается со счёта отправителя, nonce отправителя увеличивается, и начальный счётчик газа устанавливается равным STARTGAS за вычетом побайтовой комиссии за данные транзакции.

Далее система переводит указанную сумму эфира от отправителя получателю. Если получатель является внешним счётом, на этом транзакция завершается. Если получатель является контрактным счётом, код контракта запускается в виртуальной машине Ethereum, потребляя газ за каждую операцию до тех пор, пока код не завершится успешно, явно не остановится или газ не будет исчерпан. Во время исполнения контракт может читать и изменять своё хранилище, отправлять сообщения другим контрактам и создавать новые контракты.
Наконец, если перевод средств не удался (недостаточный баланс) или исполнение кода завершилось неудачей (исчерпание газа или ошибка), все изменения состояния откатываются — за исключением того, что отправитель всё равно оплачивает газ майнеру за выполненные вычисления. При успешном исполнении оставшийся газ возвращается отправителю, а потреблённый газ отправляется майнеру в качестве комиссии. Этот механизм гарантирует, что майнеры получают компенсацию за вычисления, одновременно предотвращая неконтролируемое исполнение, потребляющее неограниченные ресурсы.
Code Execution
La Maquina Virtual de Ethereum (EVM) es el entorno de ejecucion donde se ejecuta el codigo de los contratos — una maquina virtual de bajo nivel basada en pila, similar en concepto a la Maquina Virtual de Java o WebAssembly. El codigo del contrato se almacena como una secuencia de bytes, donde cada byte representa una operacion (opcode) que la EVM puede ejecutar. El modelo de ejecucion es deliberadamente simple y determinista: cada nodo que ejecute la EVM con el mismo estado de entrada y transaccion debe llegar al mismo estado de salida, asegurando el consenso a traves de la red.
La EVM proporciona tres tipos distintos de almacenamiento para la computacion. La pila (stack) es una estructura de ultimo en entrar, primero en salir (LIFO) limitada a 1024 elementos, utilizada para valores de operacion inmediatos. La memoria (memory) es un arreglo de bytes infinitamente expandible que persiste solo durante la duracion de una unica llamada de mensaje y se reinicia entre ejecuciones. El almacenamiento (storage) es el almacen persistente de clave-valor permanentemente asociado con cada cuenta de contrato, donde los contratos mantienen su estado a largo plazo entre transacciones. Estos tipos de almacenamiento tienen precios diferentes en gas — las operaciones de pila y memoria son baratas, mientras que las operaciones de almacenamiento son costosas para prevenir la inflacion de la blockchain.
Durante la ejecucion, el codigo del contrato tiene acceso a contexto crucial: puede leer la direccion del remitente del mensaje, la cantidad de ether enviada, la carga de datos proporcionada por el invocador, y propiedades a nivel de bloque como el numero de bloque actual, la marca de tiempo y la direccion del minero. El codigo puede devolver un arreglo de bytes de salida al invocador y puede enviar mensajes a otros contratos o crear nuevos contratos. Este modelo de ejecucion es Turing-completo — los bucles y el flujo de control complejo son posibles — pero el mecanismo de gas asegura que toda la computacion termine en un tiempo limitado, resolviendo el problema de la detencion de manera economica en lugar de a traves de restricciones del lenguaje.
Code Execution
Виртуальная машина Ethereum (EVM) — это среда исполнения, в которой выполняется код контрактов — низкоуровневая стековая виртуальная машина, концептуально схожая с виртуальной машиной Java или WebAssembly. Код контракта хранится в виде последовательности байтов, где каждый байт представляет операцию (opcode), которую EVM может выполнить. Модель исполнения намеренно проста и детерминистична: каждый узел, исполняющий EVM с одинаковым входным состоянием и транзакцией, должен прийти к одинаковому выходному состоянию, обеспечивая консенсус в сети.
EVM предоставляет три различных типа хранения для вычислений. Стек — это структура «последним вошёл, первым вышел» (LIFO), ограниченная 1024 элементами и используемая для непосредственных значений операций. Память — это бесконечно расширяемый массив байтов, существующий только в течение одного вызова сообщения и сбрасываемый между исполнениями. Хранилище — это постоянное хранилище «ключ-значение», навсегда связанное с каждым контрактным счётом, где контракты поддерживают своё долгосрочное состояние между транзакциями. Эти типы хранения тарифицируются по-разному в газе — операции со стеком и памятью дешёвые, тогда как операции с хранилищем дорогие для предотвращения раздувания блокчейна.
Во время исполнения код контракта имеет доступ к важному контексту: он может читать адрес отправителя сообщения, сумму отправленного эфира, полезную нагрузку данных, предоставленную вызывающей стороной, и свойства уровня блока, такие как текущий номер блока, метка времени и адрес майнера. Код может возвращать выходной массив байтов вызывающей стороне и может отправлять сообщения другим контрактам или создавать новые контракты. Эта модель исполнения является Тьюринг-полной — циклы и сложное управление потоком возможны — но механизм газа гарантирует, что все вычисления завершаются за ограниченное время, решая проблему останова экономически, а не через языковые ограничения.
Blockchain and Mining
La blockchain de Ethereum es fundamentalmente similar a la de Bitcoin, sirviendo como una base de datos que contiene cada transaccion jamas ejecutada. Sin embargo, mientras que Bitcoin almacena solo una lista de transacciones, Ethereum almacena tanto la lista de transacciones como el estado mas reciente. Cada bloque en Ethereum contiene el hash del bloque anterior, una raiz de estado (el hash raiz del Merkle Patricia trie que representa el estado completo), una raiz de transacciones, una raiz de recibos (que almacena datos de la ejecucion de transacciones), junto con valores de dificultad, marca de tiempo y nonce. El estado en si es un gran Merkle Patricia trie que mapea direcciones a objetos de cuenta, donde cada cuenta tiene un saldo, nonce, codigo (si esta presente) y almacenamiento.

Ethereum utiliza una version modificada del protocolo GHOST (Greedy Heaviest Observed Subtree) para abordar problemas de seguridad que surgen de tiempos de bloque rapidos. En los protocolos tradicionales de cadena mas larga, los bloques rapidos conducen a altas tasas de obsolescencia, reduciendo la seguridad de la red y aumentando los riesgos de centralizacion ya que los grandes mineros desperdician menos computacion en bloques obsoletos. GHOST incluye bloques obsoletos (llamados "tios" en Ethereum) en el calculo de cual cadena es mas larga, y proporciona recompensas parciales a los bloques tio, incentivando a los mineros a referenciarlos. Esto permite a Ethereum mantener un tiempo de bloque objetivo de aproximadamente 12 segundos mientras preserva la seguridad de la red.
El algoritmo de mineria funciona de manera similar al proof of work de Bitcoin, requiriendo que los mineros encuentren un nonce tal que el hash del bloque este por debajo de un cierto objetivo de dificultad. Sin embargo, el algoritmo de mineria de uso intensivo de memoria de Ethereum (Ethash) esta disenado para ser resistente a ASIC, promoviendo un ecosistema de mineria mas descentralizado. La dificultad se ajusta dinamicamente basandose en los tiempos de bloque para mantener el objetivo de ~12 segundos, asegurando una produccion de bloques consistente mientras el protocolo GHOST proporciona garantias de seguridad a pesar de los tiempos de bloque mas rapidos comparados con el promedio de 10 minutos de Bitcoin.
Blockchain and Mining
Блокчейн Ethereum фундаментально подобен блокчейну Bitcoin, служа базой данных, содержащей каждую когда-либо исполненную транзакцию. Однако, в то время как Bitcoin хранит только список транзакций, Ethereum хранит как список транзакций, так и актуальное состояние. Каждый блок в Ethereum содержит хеш предыдущего блока, корень состояния (корневой хеш дерева Меркла-Патриции, представляющего полное состояние), корень транзакций, корень квитанций (хранящий данные исполнения транзакций), а также значения сложности, метки времени и nonce. Само состояние представляет собой большое дерево Меркла-Патриции, отображающее адреса в объекты счетов, где каждый счёт имеет баланс, nonce, код (при наличии) и хранилище.

Ethereum использует модифицированную версию протокола GHOST (Greedy Heaviest Observed Subtree) для решения проблем безопасности, возникающих при быстром времени создания блоков. В традиционных протоколах с самой длинной цепью быстрые блоки приводят к высокой доле устаревших блоков, снижая безопасность сети и увеличивая риски централизации, поскольку крупные майнеры теряют меньше вычислений на устаревших блоках. GHOST включает устаревшие блоки (называемые «дядями» в Ethereum) в расчёт того, какая цепь является самой длинной, и предоставляет частичные вознаграждения блокам-дядям, стимулируя майнеров ссылаться на них. Это позволяет Ethereum поддерживать целевое время блока приблизительно в 12 секунд, сохраняя при этом безопасность сети.
Алгоритм майнинга работает аналогично доказательству работы Bitcoin, требуя от майнеров найти nonce, при котором хеш блока оказывается ниже определённого целевого значения сложности. Однако алгоритм майнинга с высоким потреблением памяти (Ethash) спроектирован для устойчивости к ASIC, способствуя более децентрализованной экосистеме майнинга. Сложность динамически корректируется на основе времени создания блоков для поддержания цели в ~12 секунд, обеспечивая стабильное производство блоков, в то время как протокол GHOST предоставляет гарантии безопасности, несмотря на более быстрое время блоков по сравнению со средним показателем Bitcoin в 10 минут.
Applications
Las aplicaciones que pueden construirse sobre Ethereum se dividen en tres amplias categorias. La primera categoria son las aplicaciones financieras, que proporcionan a los usuarios formas mas poderosas de gestionar y participar en contratos que involucran su dinero. Esto incluye sub-monedas, derivados financieros, contratos de cobertura, carteras de ahorro con limites de retiro, testamentos que distribuyen fondos automaticamente, e incluso contratos de empleo que calculan pagos basandose en la verificacion de trabajo completado. Estas aplicaciones aprovechan la programabilidad de Ethereum para crear instrumentos financieros complejos que serian imposibles o extremadamente dificiles de implementar en sistemas tradicionales o incluso en Bitcoin.
La segunda categoria son las aplicaciones semi-financieras, donde el dinero esta involucrado pero tambien hay un componente no monetario sustancial en lo que se esta haciendo. Un ejemplo perfecto son las recompensas auto-ejecutables para soluciones a problemas computacionales. Alguien podria publicar un problema computacional junto con una recompensa, y el contrato podria verificar automaticamente las soluciones enviadas y pagar la recompensa a la primera respuesta correcta. Esta categoria tiende un puente entre las finanzas puras y otros dominios, utilizando incentivos economicos para resolver problemas o coordinar comportamiento.
La tercera categoria son las aplicaciones que no tienen nada que ver con el dinero, como los sistemas de votacion en linea y gobernanza descentralizada. Estas aplicaciones no financieras demuestran la flexibilidad de Ethereum como plataforma de proposito general. Los ejemplos incluyen sistemas de nombres de dominio descentralizados como Namecoin, sistemas de reputacion, almacenamiento de archivos descentralizado y herramientas de gobernanza organizacional. De todos estos tipos de aplicaciones, los sistemas de tokens han surgido como los mas comunes y fundamentales, sirviendo como bloques de construccion para muchas otras aplicaciones.
Applications
Приложения, которые можно создать на Ethereum, делятся на три широкие категории. Первая категория — финансовые приложения, предоставляющие пользователям более мощные способы управления деньгами и заключения контрактов с их участием. Сюда входят суб-валюты, финансовые деривативы, контракты хеджирования, сберегательные кошельки с лимитами снятия, завещания, автоматически распределяющие средства, и даже трудовые контракты, рассчитывающие оплату на основе подтверждённого выполнения работы. Эти приложения используют программируемость Ethereum для создания сложных финансовых инструментов, которые были бы невозможны или чрезвычайно сложны для реализации в традиционных системах или даже на Bitcoin.
Вторая категория — полуфинансовые приложения, где деньги задействованы, но присутствует также существенная неденежная составляющая. Идеальный пример — самоисполняющиеся вознаграждения за решения вычислительных задач. Кто-то мог бы опубликовать вычислительную задачу вместе с наградой, и контракт мог бы автоматически проверять представленные решения и выплачивать вознаграждение за первый правильный ответ. Эта категория связывает чистые финансы с другими областями, используя экономические стимулы для решения задач или координации поведения.
Третья категория — приложения, вообще не связанные с деньгами, такие как онлайн-голосование и системы децентрализованного управления. Эти нефинансовые приложения демонстрируют гибкость Ethereum как универсальной платформы. Примеры включают децентрализованные системы доменных имён наподобие Namecoin, системы репутации, децентрализованное файловое хранилище и инструменты организационного управления. Среди всех этих типов приложений токен-системы стали наиболее распространёнными и фундаментальными, служа строительными блоками для многих других приложений.
Token Systems
Los sistemas de tokens son sorprendentemente sencillos de implementar en Ethereum, a pesar de ser una de las aplicaciones mas poderosas y comunes. En esencia, los sistemas de tokens son simplemente una base de datos con una unica operacion: restar X unidades de la cuenta A y agregar X unidades a la cuenta B, con la condicion de que A tenia al menos X unidades antes de la transaccion y la transaccion esta autorizada por A. La implementacion requiere mantener un mapeo de direcciones a saldos y proporcionar una funcion de transferencia que realice las verificaciones apropiadas antes de mover tokens entre cuentas.
El codigo del contrato para un sistema de tokens basico es notablemente simple y puede escribirse en solo unas pocas lineas. Consiste en una estructura de datos que mapea direcciones a saldos, una funcion de inicializacion que asigna el suministro inicial de tokens, y una funcion de transferencia que verifica el saldo y la autorizacion del remitente antes de ejecutar la transferencia. Esta simplicidad contrasta fuertemente con la complejidad requerida para implementar sistemas similares en Bitcoin, que requeriria soluciones alternativas significativas y limitaciones debido a las capacidades restringidas de scripting de Bitcoin.
Los tokens en Ethereum pueden representar virtualmente cualquier cosa de valor. Pueden representar sub-monedas con sus propias politicas monetarias, derivados financieros que rastrean activos externos, acciones de empresas con derechos a dividendos, puntos de fidelidad en programas de clientes, materias primas como oro o petroleo, o incluso representaciones de propiedad fisica. La programabilidad de Ethereum permite que estos tokens tengan reglas arbitrarias que gobiernen su comportamiento, como restricciones de transferencia, mecanismos de quema automatica, distribuciones de dividendos o derechos de gobernanza. Esta flexibilidad ha hecho de los sistemas de tokens el bloque de construccion fundamental para gran parte del ecosistema de Ethereum.
Token Systems
Токен-системы удивительно просты в реализации на Ethereum, несмотря на то что являются одним из самых мощных и распространённых приложений. По своей сути токен-системы — это просто база данных с одной операцией: вычесть X единиц со счёта A и добавить X единиц на счёт B при условии, что у A было как минимум X единиц до транзакции и транзакция авторизована A. Реализация требует поддержания отображения адресов в балансы и предоставления функции перевода, которая выполняет соответствующие проверки перед перемещением токенов между счетами.
Код контракта для базовой токен-системы замечательно прост и может быть написан всего в нескольких строках. Он состоит из структуры данных, отображающей адреса в балансы, функции инициализации, назначающей начальное предложение токенов, и функции перевода, проверяющей баланс и авторизацию отправителя перед выполнением перевода. Эта простота разительно контрастирует со сложностью, необходимой для реализации аналогичных систем на Bitcoin, которая потребовала бы значительных обходных решений и ограничений из-за ограниченных возможностей скриптов Bitcoin.
Токены на Ethereum могут представлять практически всё, что имеет ценность. Они могут представлять суб-валюты с собственной денежно-кредитной политикой, финансовые деривативы, отслеживающие внешние активы, акции компаний с правами на дивиденды, баллы лояльности в клиентских программах, товары, такие как золото или нефть, или даже представления физической собственности. Программируемость Ethereum позволяет этим токенам иметь произвольные правила, управляющие их поведением, такие как ограничения на переводы, механизмы автоматического сжигания, распределение дивидендов или права управления. Эта гибкость сделала токен-системы фундаментальным строительным блоком значительной части экосистемы Ethereum.
Financial Derivatives and Stable-Value Currencies
Los derivados financieros representan una de las aplicaciones mas fundamentales e importantes de los smart contracts de Ethereum. Un simple contrato de cobertura demuestra el mecanismo basico: la parte A deposita una cierta cantidad de ether con valor de \(1000, la parte B deposita una cantidad equivalente, y el contrato registra el valor en USD del ether en ese momento usando un feed de datos. Despues de 30 dias, el contrato recalcula el valor y envia ether por valor de \)1000 a A y el resto a B. Si el precio del ether ha subido, A recibe menos ether pero mantiene el valor de $1000; si ha bajado, A recibe mas ether para mantener ese valor. Esto permite a A cubrirse contra la volatilidad mientras B especula sobre los movimientos de precio.
La implementacion de tales contratos requiere acceso a datos externos a traves de contratos oraculo o feeds de datos. Estos oraculos proporcionan informacion de precios, datos meteorologicos u otra informacion del mundo real que los contratos necesitan para ejecutarse correctamente. Aunque los oraculos introducen una dependencia de confianza, pueden disenarse con redundancia e incentivos criptoeconomicos para proporcionar datos confiables. El contrato en si simplemente consulta al oraculo, realiza calculos basados en esos datos y distribuye fondos de acuerdo con su logica programada.
Las stablecoins y instrumentos financieros mas complejos pueden construirse utilizando mecanismos similares. Un contrato de stablecoin podria mantener una reserva de ether y emitir tokens vinculados a una moneda fiduciaria, ajustando automaticamente el suministro o los requisitos de colateral basandose en feeds de precios. Los contratos de opciones, futuros, swaps y otros derivados que normalmente requeririan marcos legales complejos e intermediarios de confianza pueden en su lugar codificarse como smart contracts auto-ejecutables. Esta infraestructura de finanzas programables permite una ingenieria financiera sofisticada manteniendo las garantias de transparencia y seguridad de la tecnologia blockchain.
Financial Derivatives and Stable-Value Currencies
Финансовые деривативы представляют одно из наиболее фундаментальных и важных применений смарт-контрактов Ethereum. Простой контракт хеджирования демонстрирует базовый механизм: сторона A вносит определённое количество эфира стоимостью 1000 \(, сторона B вносит эквивалентную сумму, и контракт записывает стоимость эфира в USD на этот момент, используя поток данных. Через 30 дней контракт пересчитывает стоимость и отправляет эфир на сумму 1000 \) стороне A, а остаток — стороне B. Если цена эфира выросла, A получает меньше эфира, но сохраняет стоимость в 1000 $; если упала — A получает больше эфира для поддержания этой стоимости. Это позволяет A хеджировать волатильность, в то время как B спекулирует на ценовых движениях.
Реализация таких контрактов требует доступа к внешним данным через контракты-оракулы или потоки данных. Эти оракулы предоставляют информацию о ценах, погодные данные или другую информацию из реального мира, необходимую контрактам для корректного исполнения. Хотя оракулы вводят зависимость от доверия, они могут быть спроектированы с резервированием и криптоэкономическими стимулами для предоставления надёжных данных. Сам контракт просто запрашивает оракул, выполняет вычисления на основе этих данных и распределяет средства в соответствии со своей запрограммированной логикой.
Стейблкоины и более сложные финансовые инструменты могут быть построены с использованием аналогичных механизмов. Контракт стейблкоина может поддерживать резерв эфира и выпускать токены, привязанные к фиатной валюте, автоматически корректируя предложение или требования к обеспечению на основе ценовых потоков. Опционные контракты, фьючерсы, свопы и другие деривативы, которые обычно требуют сложных юридических структур и доверенных посредников, могут быть закодированы как самоисполняющиеся смарт-контракты. Эта инфраструктура программируемых финансов обеспечивает сложный финансовый инжиниринг, сохраняя при этом гарантии прозрачности и безопасности блокчейн-технологии.
Identity and Reputation Systems
Un sistema de registro de nombres similar a Namecoin es trivialmente implementable en Ethereum y sirve como el ejemplo mas simple de un sistema de identidad. El contrato mantiene una base de datos con una tabla clave-valor que mapea nombres a datos asociados (como direcciones IP, claves publicas u otra informacion). Cualquiera puede registrar un nombre enviando una transaccion al contrato junto con una pequena tarifa de registro, siempre que ese nombre no este ya tomado. El propietario puede actualizar los datos asociados en cualquier momento, y los nombres pueden hacerse transferibles o permanentes de acuerdo con las reglas codificadas en el contrato.
Sistemas de identidad mas avanzados pueden construirse sobre esta base para incluir puntuaciones de reputacion, relaciones de red de confianza y verificacion de identidad descentralizada. Por ejemplo, un contrato podria mantener puntuaciones de reputacion basadas en transacciones verificadas, calificaciones de pares o completacion de tareas. Estas puntuaciones serian publicamente visibles y criptograficamente vinculadas a direcciones especificas, creando una reputacion portatil que sigue a los usuarios a traves de las aplicaciones. Los sistemas de red de confianza podrian permitir a los usuarios avalar la identidad de otros, construyendo grafos sociales que ayudan a distinguir usuarios legitimos de actores maliciosos.
Tales sistemas de identidad y reputacion se vuelven particularmente poderosos cuando se integran con otras aplicaciones. Un mercado podria requerir puntuaciones minimas de reputacion para los vendedores, una plataforma de prestamos podria ajustar las tasas de interes basandose en la reputacion del prestatario, o una red social podria usar la red de confianza para filtrar spam y contenido fraudulento. Al proporcionar una infraestructura compartida de identidad que cualquier aplicacion puede consultar, Ethereum permite una nueva clase de aplicaciones basadas en la confianza que no dependen de proveedores de identidad centralizados o sistemas de reputacion propietarios.
Identity and Reputation Systems
Система регистрации имён, аналогичная Namecoin, тривиально реализуема на Ethereum и служит простейшим примером системы идентификации. Контракт поддерживает базу данных с таблицей «ключ-значение», отображающей имена в связанные данные (такие как IP-адреса, открытые ключи или другую информацию). Любой может зарегистрировать имя, отправив транзакцию контракту вместе с небольшой регистрационной комиссией, при условии что это имя ещё не занято. Владелец может обновить связанные данные в любое время, а имена могут быть сделаны передаваемыми или постоянными в соответствии с правилами, закодированными в контракте.
Более продвинутые системы идентификации могут быть построены на этой основе, включая оценки репутации, отношения сети доверия и децентрализованную верификацию личности. Например, контракт мог бы поддерживать оценки репутации на основе подтверждённых транзакций, оценок коллег или выполнения задач. Эти оценки были бы публично видимыми и криптографически привязанными к конкретным адресам, создавая портативную репутацию, которая следует за пользователями через приложения. Системы сети доверия могли бы позволять пользователям поручаться за личность других, выстраивая социальные графы, помогающие отличить легитимных пользователей от злоумышленников.
Такие системы идентификации и репутации становятся особенно мощными при интеграции с другими приложениями. Маркетплейс мог бы требовать минимальные оценки репутации для продавцов, кредитная платформа — корректировать процентные ставки на основе репутации заёмщика, а социальная сеть — использовать сеть доверия для фильтрации спама и мошеннического контента. Предоставляя общую инфраструктуру для идентификации, которую может запрашивать любое приложение, Ethereum позволяет создать новый класс приложений, основанных на доверии, не зависящих от централизованных провайдеров идентификации или проприетарных систем репутации.
Decentralized File Storage
El almacenamiento descentralizado de archivos puede implementarse a traves de contratos de Ethereum que coordinan entre usuarios que necesitan almacenamiento y proveedores que lo ofrecen. En un modelo de "Dropbox descentralizado", los usuarios pagarian una tarifa mensual para subir archivos, con el contrato distribuyendo pagos a los proveedores de almacenamiento que demuestren que realmente estan almacenando los datos. El mecanismo de prueba funciona a traves de desafios criptograficos periodicos: el contrato selecciona aleatoriamente porciones de archivos y pide a los proveedores que proporcionen pruebas de Merkle tree demostrando que poseen esos datos. Los proveedores que fallen en los desafios o se desconecten perderian sus depositos y flujo de pagos futuros.
Este enfoque ofrece varias ventajas sobre el almacenamiento centralizado. Las pruebas de Merkle tree permiten una verificacion eficiente — los usuarios y el contrato pueden confirmar la disponibilidad de archivos sin descargar archivos completos. El sistema distribuye naturalmente los archivos entre multiples proveedores independientes, creando redundancia sin requerir protocolos de replicacion explicitos. Los incentivos economicos alinean el comportamiento del proveedor con las necesidades del usuario: los proveedores ganan dinero almacenando datos de manera confiable y pierden dinero si no lo hacen. Esto elimina el requisito de confianza inherente en las soluciones de almacenamiento centralizado.
Los costos de almacenamiento en tal sistema pueden ser potencialmente mas bajos que las alternativas centralizadas por varias razones. La eliminacion de precios monopolicos permite que la competencia del mercado reduzca los costos cerca del costo real de almacenamiento. La redundancia implicita de multiples usuarios almacenando archivos similares puede reducir los requisitos totales de almacenamiento. No hay necesidad de infraestructura costosa de centros de datos o gastos generales corporativos. Sin embargo, persisten desafios en torno a los mecanismos de pago, asegurar una participacion adecuada de proveedores y gestionar el equilibrio entre redundancia y costo. A pesar de estos desafios, el almacenamiento descentralizado demuestra como Ethereum puede coordinar interacciones complejas de multiples partes solo a traves de incentivos economicos.
Decentralized File Storage
Децентрализованное файловое хранилище может быть реализовано через контракты Ethereum, координирующие взаимодействие между пользователями, нуждающимися в хранении, и провайдерами, которые его предоставляют. В модели «децентрализованного Dropbox» пользователи платили бы ежемесячную плату за загрузку файлов, а контракт распределял бы платежи провайдерам хранения, которые доказывают, что действительно хранят данные. Механизм доказательства работает через периодические криптографические испытания: контракт случайным образом выбирает фрагменты файлов и просит провайдеров предоставить доказательства на основе дерева Меркла, демонстрирующие, что они обладают этими данными. Провайдеры, не прошедшие испытания или ушедшие в оффлайн, теряли бы свои депозиты и будущий поток платежей.
Этот подход предлагает несколько преимуществ по сравнению с централизованным хранением. Доказательства на основе дерева Меркла обеспечивают эффективную верификацию — пользователи и контракт могут подтвердить доступность файлов без загрузки целых файлов. Система естественно распределяет файлы между несколькими независимыми провайдерами, создавая избыточность без необходимости в явных протоколах репликации. Экономические стимулы согласуют поведение провайдеров с потребностями пользователей: провайдеры зарабатывают деньги, надёжно храня данные, и теряют деньги, если этого не делают. Это устраняет требование доверия, присущее централизованным решениям хранения.
Стоимость хранения в такой системе потенциально может быть ниже, чем у централизованных альтернатив, по нескольким причинам. Устранение монопольного ценообразования позволяет рыночной конкуренции снизить стоимость до уровня, близкого к фактической стоимости хранения. Неявная избыточность от нескольких пользователей, хранящих похожие файлы, может уменьшить общие потребности в хранении. Нет необходимости в дорогостоящей инфраструктуре центров обработки данных или корпоративных накладных расходах. Тем не менее остаются проблемы с механизмами оплаты, обеспечением достаточного участия провайдеров и управлением компромиссом между избыточностью и стоимостью. Несмотря на эти проблемы, децентрализованное хранилище демонстрирует, как Ethereum может координировать сложные многосторонние взаимодействия исключительно через экономические стимулы.
Decentralized Autonomous Organizations
Una Organizacion Autonoma Descentralizada (DAO) es una entidad virtual que tiene un conjunto de miembros o accionistas que colectivamente tienen el derecho de gastar los fondos de la entidad y modificar su codigo. Una DAO tipica opera con una regla simple: el 67% de los miembros son necesarios para tomar decisiones de gasto o modificar el codigo de la organizacion. Los miembros pueden enviar propuestas, votar sobre ellas, y si una propuesta recibe suficiente apoyo, el contrato ejecuta automaticamente la decision. Las participaciones de membresia pueden ser transferibles, permitiendo un mercado liquido para la participacion en la DAO, y diferentes clases de participaciones pueden tener diferentes derechos de voto o reclamaciones economicas.
El diseno mas simple de una DAO es un contrato auto-modificable que mantiene una lista de miembros y requiere una mayoria de 2/3 de votos para cambiar cualquier aspecto del contrato, incluyendo sus propias reglas de votacion. Los miembros enviarian cambios de codigo como transacciones, otros miembros votarian, y al alcanzar el umbral, el contrato se actualizaria a si mismo. Disenos mas sofisticados podrian incluir sistemas de votacion delegada donde los miembros pueden asignar su poder de voto a representantes, o democracia liquida donde los votos pueden ser delegados pero reclamados en cualquier momento para decisiones importantes.
Las DAOs pueden servir a diversos propositos mas alla de la simple gestion de fondos. Una DAO podria funcionar como una corporacion descentralizada, contratando proveedores, comprando servicios y distribuyendo beneficios a los accionistas — todo gobernado por codigo de smart contract en lugar de estructuras legales tradicionales. Podria operar como un fondo de inversion descentralizado, con los miembros votando sobre que proyectos financiar. Podria gestionar un recurso comun, con los interesados votando sobre las reglas de asignacion. La idea clave es que al codificar las reglas de gobernanza en codigo transparente e inmutable y vincularlas a una participacion economica, las DAOs pueden coordinar decisiones de grupo sin requerir gestion jerarquica tradicional o aplicacion legal.
Decentralized Autonomous Organizations
Децентрализованная автономная организация (DAO) — это виртуальная сущность, имеющая набор участников или акционеров, которые коллективно обладают правом расходовать средства организации и изменять её код. Типичная DAO работает по простому правилу: 67% участников необходимы для принятия решений о расходовании средств или изменения кода организации. Участники могут подавать предложения, голосовать по ним, и если предложение получает достаточную поддержку, контракт автоматически исполняет решение. Доли участников могут быть передаваемыми, обеспечивая ликвидный рынок для участия в DAO, а различные классы долей могут иметь различные права голоса или экономические требования.
Простейшая конструкция DAO — это самомодифицирующийся контракт, поддерживающий список участников и требующий голосования с большинством 2/3 для изменения любого аспекта контракта, включая его собственные правила голосования. Участники подавали бы изменения кода в виде транзакций, другие участники голосовали бы, и по достижении порога контракт обновлял бы себя. Более сложные конструкции могут включать системы делегированного голосования, где участники могут передавать свои полномочия голосования представителям, или ликвидную демократию, где голоса могут быть делегированы, но в любой момент возвращены для важных решений.
DAO могут служить различным целям помимо простого управления фондами. DAO может функционировать как децентрализованная корпорация, нанимая подрядчиков, приобретая услуги и распределяя прибыль между акционерами — всё это управляется кодом смарт-контракта, а не традиционными юридическими структурами. Она может действовать как децентрализованный инвестиционный фонд, где участники голосуют за то, какие проекты финансировать. Она может управлять общим ресурсом, где заинтересованные стороны голосуют за правила распределения. Ключевое понимание заключается в том, что, кодируя правила управления в прозрачном, неизменяемом коде и привязывая их к экономической ставке, DAO могут координировать групповые решения без необходимости в традиционном иерархическом управлении или юридическом принуждении.
Further Applications
Mas alla de las categorias principales ya discutidas, Ethereum permite numerosas otras aplicaciones. Las carteras de ahorro con caracteristicas de seguridad sofisticadas pueden imponer limites de retiro diarios mientras proporcionan claves de emergencia para la recuperacion, protegiendo a los usuarios del robo mientras mantienen el control ultimo. Los contratos de seguro de cosechas pueden pagar automaticamente a los agricultores basandose en feeds de datos meteorologicos, eliminando el procesamiento de reclamaciones y reduciendo los gastos administrativos. Las aplicaciones de apuestas entre pares pueden operar sin ningun intermediario de confianza, con smart contracts manteniendo las apuestas y pagando automaticamente a los ganadores basandose en numeros aleatorios verificables o datos de eventos del mundo real.
Los mercados de prediccion en la cadena permiten a los usuarios apostar sobre eventos futuros, creando poderosos mecanismos de pronostico a traves de la sabiduria de las masas. Estos pueden aumentarse con protocolos tipo SchellingCoin para crear oraculos descentralizados: los participantes reportan datos independientemente (como resultados electorales o condiciones meteorologicas), y aquellos cuyos reportes coinciden con la mayoria reciben recompensas mientras los valores atipicos son penalizados. Este enfoque criptoeconomico incentiva el reporte honesto y puede proporcionar datos del mundo real confiables a otros contratos sin requerir confianza en ningun proveedor de oraculo individual.
Las carteras multifirma representan otra aplicacion importante, permitiendo el control compartido de fondos entre multiples partes. Una cartera multifirma 2-de-3 podria requerir que dos de tres partes designadas aprueben una transaccion antes de que los fondos puedan gastarse, util para acuerdos de deposito en garantia, tesorerias corporativas o seguridad personal. Los mercados descentralizados pueden combinar sistemas de identidad, puntuaciones de reputacion, contratos de deposito en garantia y mecanismos de resolucion de disputas para permitir el comercio entre pares sin plataformas centralizadas. Cada una de estas aplicaciones demuestra como la programabilidad de Ethereum permite nuevos modelos de confianza y estructuras organizacionales.
Further Applications
Помимо уже рассмотренных основных категорий, Ethereum позволяет создавать многочисленные другие приложения. Сберегательные кошельки с продвинутыми функциями безопасности могут устанавливать ежедневные лимиты снятия, предоставляя при этом экстренные ключи для восстановления, защищая пользователей от кражи и сохраняя полный контроль. Контракты страхования урожая могут автоматически выплачивать фермерам на основе потоков метеорологических данных, устраняя обработку претензий и снижая административные расходы. Приложения для одноранговых азартных игр могут работать без каких-либо доверенных посредников, при этом смарт-контракты удерживают ставки и автоматически выплачивают выигрыши на основе верифицируемых случайных чисел или данных о реальных событиях.
Ончейн-рынки предсказаний позволяют пользователям делать ставки на будущие события, создавая мощные механизмы прогнозирования через мудрость толпы. Они могут быть дополнены протоколами типа SchellingCoin для создания децентрализованных оракулов: участники независимо сообщают данные (такие как результаты выборов или погодные условия), и те, чьи отчёты совпадают с большинством, получают вознаграждения, тогда как отклоняющиеся штрафуются. Этот криптоэкономический подход стимулирует честное сообщение данных и может предоставлять надёжные данные реального мира другим контрактам без необходимости доверять какому-либо единственному провайдеру оракула.
Мультиподписные кошельки представляют ещё одно важное приложение, обеспечивающее совместный контроль средств несколькими сторонами. Мультиподписной кошелёк 2-из-3 может требовать одобрения транзакции двумя из трёх назначенных сторон до того, как средства могут быть потрачены, что полезно для эскроу-соглашений, корпоративных казначейств или личной безопасности. Децентрализованные маркетплейсы могут сочетать системы идентификации, оценки репутации, эскроу-контракты и механизмы разрешения споров для обеспечения одноранговой торговли без централизованных платформ. Каждое из этих приложений демонстрирует, как программируемость Ethereum позволяет создавать новые модели доверия и организационные структуры.
Miscellanea And Concerns
La implementacion de Ethereum del protocolo GHOST modificado incluye reglas especificas para la inclusion y recompensas de tios. Los tios deben ser hijos directos de un ancestro del bloque actual (entre 2 y 7 generaciones atras), deben ser cabeceras de bloque validas, deben ser distintos de tios anteriores y no deben ser ancestros directos del bloque actual. Los bloques tio reciben el 87.5% de la recompensa estandar de bloque, mientras que el bloque que los incluye recibe un 3.125% adicional por cada tio incluido (hasta dos tios). Esta estructura de incentivos anima a los mineros a referenciar bloques obsoletos que observan, fortaleciendo la seguridad de la red mientras recompensa a los mineros que experimentaron mala suerte temporal con la propagacion de la red.
El sistema de comisiones se basa en el concepto de "gas", donde cada operacion computacional tiene un costo fijo en gas. Por ejemplo, una operacion de multiplicacion cuesta 5 gas, un hash SHA256 cuesta 20 gas, y cada transaccion tiene un costo base de 21,000 gas. Los usuarios especifican tanto un limite de gas (maximo de gas que estan dispuestos a consumir) como un precio de gas (cuanto ether pagaran por unidad de gas). Este sistema sirve multiples propositos: previene bucles infinitos y ataques de denegacion de servicio al asegurar que toda la computacion se pague, crea un mercado para el espacio de bloques donde los usuarios pujan mediante precios de gas, y permite a los mineros establecer un precio minimo de gas que estan dispuestos a aceptar, protegiendo los recursos de la red.

La escalabilidad sigue siendo una preocupacion significativa, ya que cada nodo completo debe procesar cada transaccion para verificar el estado. Las arquitecturas blockchain actuales luchan por igualar el rendimiento de transacciones de los sistemas centralizados. Las soluciones potenciales incluyen el sharding de estado, donde diferentes nodos procesan diferentes subconjuntos de transacciones, y una transicion de proof of work a consenso proof of stake, que podria permitir una produccion de bloques mas eficiente. Los clientes ligeros que usan pruebas de Merkle pueden verificar transacciones sin procesar todos los bloques, pero alguien debe seguir procesando todo. Estos desafios de escalabilidad representan areas activas de investigacion y desarrollo criticas para la viabilidad a largo plazo de Ethereum.
Miscellanea And Concerns
Реализация модифицированного протокола GHOST в Ethereum включает специфические правила для включения и вознаграждения дядей. Дяди должны быть прямыми потомками предка текущего блока (от 2 до 7 поколений назад), должны быть валидными заголовками блоков, должны быть отличны от предыдущих дядей и не должны быть прямыми предками текущего блока. Блоки-дяди получают 87,5% стандартного вознаграждения за блок, а включающий блок получает дополнительные 3,125% за каждого включённого дядю (до двух дядей). Эта структура стимулов побуждает майнеров ссылаться на устаревшие блоки, которые они наблюдают, укрепляя безопасность сети и одновременно вознаграждая майнеров, которым временно не повезло с распространением по сети.
Система комиссий основана на концепции «газа», где каждая вычислительная операция имеет фиксированную стоимость в газе. Например, операция умножения стоит 5 газа, хеш SHA256 стоит 20 газа, а каждая транзакция имеет базовую стоимость 21 000 газа. Пользователи указывают как лимит газа (максимум газа, который они готовы потребить), так и цену газа (сколько эфира они заплатят за единицу газа). Эта система служит нескольким целям: она предотвращает бесконечные циклы и атаки типа «отказ в обслуживании», гарантируя оплату всех вычислений, создаёт рынок блочного пространства, где пользователи делают ставки через цены газа, и позволяет майнерам устанавливать минимальную цену газа, которую они готовы принять, защищая ресурсы сети.

Масштабируемость остаётся серьёзной проблемой, поскольку каждый полный узел должен обработать каждую транзакцию для верификации состояния. Текущие архитектуры блокчейна с трудом могут сравниться с пропускной способностью транзакций централизованных систем. Потенциальные решения включают шардинг состояния, где различные узлы обрабатывают различные подмножества транзакций, и переход от доказательства работы к консенсусу на основе доказательства доли, который мог бы обеспечить более эффективное производство блоков. Лёгкие клиенты, использующие доказательства Меркла, могут верифицировать транзакции без обработки всех блоков, но кто-то всё равно должен всё обработать. Эти проблемы масштабируемости представляют активные области исследований и разработок, критически важные для долгосрочной жизнеспособности Ethereum.
Conclusion
El protocolo de Ethereum fue concebido originalmente como una version mejorada de una criptomoneda, proporcionando caracteristicas avanzadas como depositos en garantia en la blockchain, limites de retiro y contratos financieros a traves de un lenguaje de programacion altamente generalizado. Sin embargo, el protocolo de Ethereum va mucho mas alla de solo la moneda. Los protocolos en torno al almacenamiento descentralizado de archivos, la computacion descentralizada y los mercados de prediccion descentralizados, entre docenas de otros conceptos, tienen el potencial de aumentar sustancialmente la eficiencia de la industria computacional y proporcionar un impulso masivo a otros protocolos peer-to-peer al agregar por primera vez una capa economica.
En lugar de proporcionar un conjunto limitado de operaciones disenadas para casos de uso especificos, Ethereum proporciona un lenguaje de programacion Turing-completo que permite a los desarrolladores construir cualquier aplicacion que puedan disenar. Quieres inventar tu propio derivado financiero? Crear tu propia moneda? Establecer un gobierno en la blockchain? Todo esto es trivialmente implementable con el sistema de scripting de Ethereum. El poder de la plataforma no radica en predecir que aplicaciones se construiran, sino en proporcionar la infraestructura fundacional que hace facil construirlas.
El concepto de una funcion de transicion de estado arbitraria implementada por el protocolo de Ethereum proporciona una plataforma con un potencial unico. En lugar de ser un protocolo cerrado, de proposito unico, destinado a aplicaciones especificas en almacenamiento de datos, apuestas o finanzas, Ethereum es abierto por diseno, y creemos que es extremadamente adecuado para servir como capa fundacional para un gran numero de protocolos tanto financieros como no financieros en los anos venideros. Las aplicaciones que se construiran sobre Ethereum en el futuro pueden ser aquellas que ni siquiera podemos imaginar hoy, y esa posibilidad abierta representa la verdadera promesa de la plataforma.
Conclusion
Протокол Ethereum изначально был задуман как улучшенная версия криптовалюты, предоставляющая продвинутые функции, такие как ончейн-эскроу, лимиты снятия и финансовые контракты через высокообобщённый язык программирования. Однако протокол Ethereum выходит далеко за рамки простой валюты. Протоколы децентрализованного файлового хранилища, децентрализованных вычислений и децентрализованных рынков предсказаний, среди десятков других концепций, обладают потенциалом для существенного повышения эффективности вычислительной индустрии и массового развития других одноранговых протоколов, впервые добавляя экономический слой.
Вместо предоставления ограниченного набора операций, предназначенных для конкретных сценариев использования, Ethereum предоставляет Тьюринг-полный язык программирования, позволяющий разработчикам создавать любое приложение, которое они могут спроектировать. Хотите изобрести собственный финансовый дериватив? Создать собственную валюту? Основать правительство на блокчейне? Всё это тривиально реализуемо с помощью скриптовой системы Ethereum. Мощь платформы заключается не в предсказании того, какие приложения будут построены, а в предоставлении фундаментальной инфраструктуры, делающей их создание лёгким.
Концепция произвольной функции перехода состояний, реализованная протоколом Ethereum, предоставляет платформу с уникальным потенциалом. Вместо того чтобы быть закрытым протоколом единственного назначения для конкретных приложений в хранении данных, азартных играх или финансах, Ethereum открыт по замыслу, и мы считаем, что он чрезвычайно хорошо подходит для того, чтобы служить фундаментальным слоем для большого количества как финансовых, так и нефинансовых протоколов в ближайшие годы. Приложения, которые будут построены на Ethereum в будущем, могут оказаться теми, которые мы не можем даже вообразить сегодня, и эта открытая возможность представляет собой истинное обещание платформы.
References and Further Reading
El whitepaper de Ethereum se basa en un extenso trabajo previo en investigacion de criptomonedas y sistemas distribuidos. El protocolo fundacional de Bitcoin se describe en el articulo original de 2008 de Satoshi Nakamoto "Bitcoin: A Peer-to-Peer Electronic Cash System", que introdujo el concepto de moneda digital basada en blockchain. Los primeros intentos de extender la funcionalidad de Bitcoin incluyen Namecoin, un sistema de registro de nombres descentralizado que demuestra aplicaciones de blockchain mas alla de la moneda, aunque limitado por las capacidades restringidas de scripting de Bitcoin.
El whitepaper de colored coins propuso un metodo para representar activos alternativos en la blockchain de Bitcoin "coloreando" bitcoins especificos para representar otros activos, mientras que Mastercoin intento crear una capa de protocolo sobre Bitcoin para instrumentos financieros mas complejos. Ambos resaltaron las limitaciones de construir sobre Bitcoin y motivaron la necesidad de una plataforma mas flexible. El concepto de corporaciones autonomas descentralizadas, explorado en Bitcoin Magazine, proporciono fundamentos teoricos para la gobernanza organizacional a traves de smart contracts.
Los componentes tecnicos clave incluyen la verificacion de pagos simplificada (SPV) para clientes ligeros, Merkle trees para la verificacion eficiente de datos y Patricia tries para la representacion de estado de Ethereum. El protocolo GHOST (Greedy Heaviest Observed Subtree), descrito en un articulo de criptografia de 2013, aborda problemas de seguridad que surgen de tiempos de bloque rapidos y forma la base del mecanismo de consenso de Ethereum. Estas referencias representan los fundamentos intelectuales sobre los cuales se construyo Ethereum, combinando conocimientos de criptomonedas, sistemas distribuidos, criptografia y teoria de juegos para crear una plataforma blockchain de proposito general.
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, сочетая знания из криптовалют, распределённых систем, криптографии и теории игр для создания универсальной блокчейн-платформы.