top of page

Blockchain, Vitalik Buterin, contratos inteligentes y Ethereum

2021

PDF:






En un documento titulado “Introduction to Smart Contracts” (“Introducción a los Contratos Inteligentes”), de Ethereum[1], se define el concepto de blockchain de la siguiente manera:


“(…) A blockchain is a globally shared, transactional database. This means that everyone can read entries in the database just by participating in the network. If you want to change something in the database, you have to create a so-called transaction which has to be accepted by all others. The word transaction implies that the change you want to make (assume you want to change two values at the same time) is either not done at all or completely applied. Furthermore, while your transaction is being applied to the database, no other transaction can alter it”.


Una traducción nuestra, con riesgo de resultar imprecisa, sería la siguiente:


“(…) Una cadena de bloques es una base de datos transaccional compartida globalmente. Esto significa que todos pueden leer las entradas en la base de datos simplemente participando en la red. Si desea cambiar algo en la base de datos, debe crear una llamada transacción que debe ser aceptada por todos los demás. La palabra transacción implica que el cambio que desea realizar (suponga que desea cambiar dos valores al mismo tiempo) no se realiza en absoluto o se aplica por completo. Además, mientras su transacción se aplica a la base de datos, ninguna otra transacción puede alterarla”.


En el White Paper de Ethereum[2], consultado por última vez en diciembre de 2021, Vitalik Buterin manifiesta que la intención de la red Ethereum es la de crear un protocolo alternativo para crear aplicaciones descentralizadas, mediante esquemas de compensación diferentes, que en su criterio son de gran utilidad en situaciones de rápido desarrollo, seguridad e interacción entre aplicaciones. En palabras de Buterin:


“Ethereum does this by building what is essentially the ultimate abstract foundational layer: a blockchain with a built-in Turing-complete programming language, allowing anyone to write smart contracts and decentralized applications where they can create their own arbitrary rules for ownership, transaction formats and state transition functions”.


Una traducción nuestra, con riesgo de resultar imprecisa, sería la siguiente:


Ethereum hace esto mediante la construcción de lo que es esencialmente la última capa fundamental abstracta: una cadena de bloques con un lenguaje de programación incorporado de Turing completo, que permite a cualquiera escribir contratos inteligentes y aplicaciones descentralizadas donde pueden crear sus propias reglas arbitrarias para la propiedad, formatos de transacción y funciones de transición de estado”.


Cuando Buterin hace referencia a sistemas de transición de estados, se refiere a los sistemas que permiten el registro de los eventos en el tiempo. Un ejemplo de este tipo de sistemas, es el sistema de la contabilidad por partida doble. La actividad de contabilizar los haberes y los deberes en una determinada cuenta bancaria, es una de las actividades en las que los bancos incurren en su operación diaria y que puede reemplazarse con los sistemas de transición de estados en los que se basan los protocolos de muchos criptoactivos como, por ejemplo, bitcoin. Dicho esto, por lo pronto téngase que Ethereum es una cadena de bloques que permite programar contratos inteligentes y que está montada en una infraestructura de varios miles de nodos que entre todos se encargan de facilitar la ejecución automatizada de varias condiciones contractuales, dentro de las que más se destacan, para efectos prácticos, las condiciones de pago. Según Buterin[3], los contratos inteligentes son “sistemas que automáticamente mueven activos digitales según reglas arbitrarias pre-especificadas”.


El hecho de que los contratos inteligentes sirvan como herramientas para crear Organizaciones Autónomas Descentralizadas (DAOs), sumado al hecho de que las DAOs permiten gestionar aspectos de gobernanza pública de modo automatizado, convierten a Ethereum en una organización única a nivel planetario. Y la razón no es que sea la primera que permita crear estructuras descentralizadas de gobernanza a partir de un sistema de Turing completo, sino además porque que ha sido la superestructura que, por fuera del poder y la órbita institucional, ha permitido crear entornos nunca antes vistos.


Así como bitcoin funciona sobre la base de un sistema de transición de estados, Ethereum también tiene su propio sistema de transición de estados. Los estados ocurren en las “cuentas” y consisten en transferencias de valor. Cada cuenta está compuesta de cuatro campos, así:


1. Nonce. Según Buterin, se trata de un sistema de contabilización diseñado para que cada transacción solo pueda procesarse una vez.

2. Balance de Ether. Es el saldo de ether disponible para la cuenta. El Ether es, según las palabras de Buterin, el cripto-combustible interno de la cadena de bloques de Ethereum y hace las veces de medio de pago del valor de las transacciones que se efectúan a través de la red.

3. Código de contrato.

4. Almacenamiento de la cuenta. Según Buterin, por defecto la cuenta empieza vacía.


En la red de Ethereum, según nos explica Buterin, existen dos tipos de cuentas, así:


1. Cuentas apropiadas externamente. Estas están controladas por claves privadas. Este tipo de cuentas no tienen un código que las controle como ocurre con las cuentas de contratos. Las personas pueden enviar mensajes desde las cuentas apropiadas externamente simplemente firmando y enviando una transacción.

2. Cuentas de contratos. Estas están controladas por códigos de contrato. En Ethereum, este concepto de “contrato” tiene matices que lo distinguen del concepto tradicional. En este contexto, los contratos son agentes autónomos dentro del entorno de la red de Ethereum que ejecutan reglas establecidas con código informático de acuerdo con los mensajes y transacciones que recibe del entorno. Cada vez que una cuenta de contrato recibe un mensaje, activa su código de ejecución según el tipo de mensaje y ejecuta la tarea correspondiente, leyendo o escribiendo en su almacenamiento el mensaje del que se trate o la regla contractual de la que se trate. En palabras de Buterin, en Ethereum los contratos pueden tener relaciones con otros contratos del mismo modo que un agente externo[4].


En el entorno de Ethereum, el concepto de “mensaje” se usa para referirse a órdenes para la ejecución de tareas y solo pueden provenir de contratos, no de cuentas apropiadas externamente[5]. Según Buterin, el concepto de transacción, en cambio, está previsto en Ethereum para significar el paquete de datos o información suscrito o firmado, que almacena el mensaje que es enviado desde una cuenta apropiada externamente. De acuerdo con Buterin, cada transacción está compuesta de lo siguiente:


1. El destinatario del mensaje.

2. Una firma que identifique al remitente del mensaje.

3. La cantidad de ether que se transferirá entre el remitente y el destinatario.

4. Un campo opcional para datos adicionales.

5. Startgas. Este concepto se utiliza para calcular la cantidad de gas requerido para la transacción, esto es, el costo por emplear el entorno Ethereum para enviar el mensaje dentro de la red y activar sus funciones. En rigor, este concepto representa el número máximo de pasos computacionales que deben observarse para la ejecución de la transacción.

6. Gasprice. Este concepto está relacionado con el anterior y representa la tarifa a pagar a la red por parte del remitente por cuenta de cada paso computacional requerido para la ejecución de la transacción.


El destinatario, la firma y la cantidad de criptoactivos a transferir en cada operación, son todos conceptos que concurren en forma más o menos homogénea en las criptomonedas más conocidas. Sin embargo, el concepto asociado con el campo para datos adicionales, el concepto de Startgas y el concepto de gasprice, son todos conceptos exclusivos de Ethereum. Para entender el sistema tarifario de Etherum, Buterin explica lo que sigue:


“The intent of the fee system is to require an attacker to pay proportionately for every resource that they consume, including computation, bandwidth and storage; hence, any transaction that leads to the network consuming a greater amount of any of these resources must have a gas fee roughly proportional to the increment”[6].


Una traducción nuestra, con riesgo de resultar imprecisa, sería la siguiente:


“La intención del sistema de tarifas es exigir que un atacante pague proporcionalmente por cada recurso que consume, incluido el cómputo, el ancho de banda y el almacenamiento; por lo tanto, cualquier transacción que lleve a que la red consuma una mayor cantidad de cualquiera de estos recursos debe tener una tarifa de gas aproximadamente proporcional al incremento”.


En cuanto a lo que tiene que ver con la arquitectura de la red de Ethereum y la minería de criptoactivos, Buterin manifiesta que se trata de un diseño muy similar al de Bitcoin. Sin embargo, tiene distinciones importantes. A diferencia de lo que ocurre en Bitcoin, los bloques que se van creando en Ethereum contienen una copia tanto de la lista de transacciones como del estado de transición anterior o más reciente. Además de eso, hay un par de valores adicionales que se almacenan en la red de Ethereum: el número de bloque y la dificultad.


Buterin afirma que, contrario a lo que ocurre en Bitcoin, Ethereum puede administrar de mejor modo el problema de escalabilidad que resulta del hecho de que el tamaño de la cadena de bloques sea cada vez mayor y que el volumen transaccional y de usuarios también sea cada vez mayor. Explica que, por ejemplo, el procesamiento de una transacción en Bitcoin depende de que los nodos almacenen y procesen toda la cadena de bloques y su historia, mientras que en Ethereum los nodos se limitan al procesamiento de la información asociada con el estado que va a ser objeto de transición. Si la cadena de bloques es muy larga, Buterin sospecha que existe un riesgo de centralización en la actividad de minería, pues solo ciertos nodos con alto poder de procesamiento podrán participar en el proceso de minería de criptoactivos, y los que no tengan dicho poder serán relegados de dicha actividad.


En palabras de Buterin:


“The concept of an arbitrary state transition function as implemented by the Ethereum protocol provides for a platform with unique potential; rather than being a closed-ended, single-purpose protocol intended for a specific array of applications in data storage, gambling or finance, Ethereum is open-ended by design, and we believe that it is extremely well-suited to serving as a foundational layer for a very large number of both financial and non-financial protocols in the years to come” [7].


Una traducción nuestra, con riesgo de resultar imprecisa, sería la siguiente:


El concepto de una función de transición de estado arbitraria implementada por el protocolo Ethereum proporciona una plataforma con un potencial único; en lugar de ser un protocolo cerrado de un solo propósito destinado a una gama específica de aplicaciones en almacenamiento de datos, juegos de azar o finanzas, Ethereum tiene un diseño abierto y creemos que es extremadamente adecuado para servir como capa base para una gran cantidad de protocolos financieros y no financieros en los próximos años”.


De acuerdo con Buterin, el algoritmo de Bitcoin se presta para dos formas peligrosas de centralización en la actividad de minado de bitcoines. Esto supone un riesgo para el entorno si llegare a producirse un ataque del 51%. Según Buterin, a la hora de escribir el White Paper de Ethereum, únicamente tres nodos concentran cerca del 50% del poder de procesamiento de la red de Bitcoin. Para mitigar este riesgo la red depende de una eventual reconfiguración porcentual, con la emigración de los mineros que hacen parte de la coalición de ataque hacia otros grupos de minería con interés en la continuidad de la red. La red de Ethereum, en cambio, está diseñada de modo diferente, y pretende, con su diseño, prevenir los riesgos de una minería centralizada.


Más allá de las anteriores consideraciones, lo cierto es que en la actualidad Ethereum está trabajando permanentemente en el perfeccionamiento de su infraestructura, y para el efecto está incorporando otros protocolos de consenso y otros avances en materia de tecnologías de registro distribuido. Estamos seguros que los científicos de la computación darán con la formación de una nueva área del conocimiento dirigida a la gobernabilidad y el relacionamiento social mediante la computación distribuida.

[1] “Introduction to Smart Contracts”, Ethereum, 2016-2018, https://solidity.readthedocs.io/en/develop/introduction-to-smart-contracts.html

[2] Buterin Vitalik; “Ethereum White Paper; A next generation Smart contract & descentralized application platform”; 2013; https://ethereum.org/en/whitepaper/. Versión actualizada al 10-12-2021. [3] Buterin, V., Ethereum White Paper: A Next Generation Smart Contract and Decentralized Application Platform, 2015.

[4](…) contracts can have relationships with other contracts in exactly the same way that external actors can”. Buterin Vitalik; “Ethereum White Paper; A next generation Smart contract & descentralized application platform. ”; 2013; https://ethereum.org/en/whitepaper/. Versión actualizada al 10-12-2021. [5] En palabras de Buterin: “Contracts have the ability to send "messages" to other contracts. Messages are virtual objects that are never serialized and exist only in the Ethereum execution environment. (…) a message is like a transaction, except it is produced by a contract and not an external actor”. [6] Buterin Vitalik; “Ethereum White Paper; A next generation Smart contract & descentralized application platform. ”; 2013; https://ethereum.org/en/whitepaper/. Versión actualizada al 10-12-2021.

[7] Buterin Vitalik; “Ethereum White Paper; A next generation Smart contract & descentralized application platform. ”; 2013; https://ethereum.org/en/whitepaper/. Versión actualizada al 10-12-2021.

Comentarios


bottom of page