¿Qué es una máquina de estados en cripto?
Una máquina de estados es un sistema que pasa de un estado válido a otro estado válido cuando recibe una entrada y aplica un conjunto fijo de reglas.En criptomonedas, una máquina de estados es el modelo central que explica cómo una blockchain actualiza saldos, cuentas, contratos inteligentes, UTXO, registros de validadores y otros datos on-chain.El estado es la condición actual de la blockchain.La entrada suele ser una transacción, un bloque, un mensaje o una llamada a un contrato inteligente.La función de transición es la lógica del protocolo que decide si la entrada es válida y cómo debe cambiar el estado.Si se aplica la misma entrada válida al mismo estado inicial, todos los nodos honestos deberían llegar al mismo estado final.Este comportamiento determinista permite que miles de ordenadores independientes lleguen a un acuerdo sobre una blockchain compartida sin confiar en una base de datos central.El whitepaper oficial de Ethereum describe el estado de Ethereum como un conjunto de cuentas y las transiciones de estado como transferencias de valor e información entre cuentas.
En términos sencillos, una máquina de estados blockchain es el motor de reglas que transforma datos anteriores de la blockchain y nuevas transacciones en un nuevo estado de la blockchain.Por qué importan las máquinas de estados en blockchain
Las máquinas de estados son importantes porque las blockchains son sistemas compartidos que deben producir el mismo resultado en muchos ordenadores diferentes.Una blockchain no puede depender de un servidor de una empresa para determinar cuál es el saldo o valor de contrato correcto.En su lugar, la red necesita reglas que cada nodo pueda ejecutar de forma independiente.Cuando se propone un bloque, los nodos verifican las transacciones de ese bloque y aplican las reglas del protocolo.Si las transacciones del bloque producen un nuevo estado válido, el bloque puede aceptarse.Si las transacciones incumplen las reglas, los nodos honestos rechazan el bloque.Así es como las blockchains preservan la integridad incluso cuando muchos participantes no se conocen ni confían entre sí.Una máquina de estados también ayuda a los usuarios a entender por qué el historial de la blockchain por sí solo no es suficiente.Las transacciones registran lo que los usuarios intentaron hacer, pero la máquina de estados decide qué cambiaron realmente esas transacciones.El resultado final es un nuevo estado que todos los nodos honestos pueden reproducir.Estado, entrada y función de transición
Toda máquina de estados blockchain tiene tres partes básicas: estado, entrada y función de transición.El estado es el conjunto actual de datos que la blockchain necesita para procesar nuevas acciones.En una blockchain basada en cuentas, el estado puede incluir saldos de cuentas, nonces, código de contratos y almacenamiento de contratos.En una blockchain basada en UTXO, el estado puede incluir el conjunto de salidas de transacciones no gastadas que todavía se pueden gastar.La entrada es la nueva acción enviada al sistema.En la mayoría de las redes cripto, la entrada más habitual es una transacción firmada.La función de transición es el conjunto de reglas que comprueba la entrada y actualiza el estado.Por ejemplo, una transacción puede ser válida solo si la firma es correcta, el emisor tiene saldo suficiente, el nonce es correcto y se paga la comisión.Si se cumplen todas las reglas, la máquina de estados aplica la transacción y crea un nuevo estado.Si falla cualquier regla exigida, se rechaza la transición de estado o falla la transacción según las reglas del protocolo.Blockchain como máquina de estados replicada
Una blockchain suele describirse como una máquina de estados replicada porque muchos nodos mantienen copias del mismo estado y aplican las mismas transacciones en el mismo orden.La replicación significa que muchos ordenadores conservan y actualizan el sistema, en lugar de hacerlo un único servidor central.Máquina de estados significa que esos ordenadores siguen las mismas reglas deterministas de transición.El orden de las transacciones es importante porque aplicar las mismas transacciones en un orden diferente puede producir un resultado distinto.Los mecanismos de consenso ayudan a la red a acordar el orden de los bloques y las transacciones.Una vez acordado el orden, cada nodo puede ejecutar las transacciones y calcular el nuevo estado.La documentación de CometBFT describe CometBFT como software que realiza replicación de máquinas de estados tolerante a fallos bizantinos para máquinas de estados finitas deterministas.
Esta descripción recoge la idea general que hay detrás de muchos sistemas blockchain.El consenso acuerda las entradas ordenadas, mientras que la máquina de estados aplica esas entradas para producir el siguiente estado.Una blockchain solo funciona cuando ambas partes son correctas.Determinismo en las máquinas de estados cripto
El determinismo significa que la misma entrada aplicada al mismo estado siempre produce la misma salida.Las máquinas de estados cripto deben ser deterministas porque los nodos independientes necesitan llegar al mismo resultado.Si un nodo calcula un resultado diferente del de otro nodo honesto, la red puede dividirse o rechazar bloques.Por eso los contratos inteligentes no pueden depender de números aleatorios normales de un ordenador local.También es la razón por la que las blockchains definen reglas exactas para la contabilización de gas, las firmas, la aritmética, las actualizaciones de almacenamiento y el orden de las transacciones.Incluso pequeñas diferencias de ejecución pueden ser peligrosas si modifican la raíz de estado final o el resultado del libro mayor.El determinismo es especialmente importante para las plataformas de contratos inteligentes porque el código de los contratos puede gestionar grandes cantidades de valor.Una función de contrato debe producir el mismo resultado para cada validador que la ejecute en las mismas condiciones.Esto hace que la programación blockchain sea más estricta que la programación web convencional.Una máquina de estados solo es fiable cuando sus reglas de transición son predecibles y reproducibles.Ethereum como máquina de estados
Ethereum es uno de los ejemplos más claros de máquina de estados blockchain.El whitepaper de Ethereum describe Ethereum como un sistema con un estado formado por cuentas, donde cada cuenta contiene un nonce, saldo, código de contrato y almacenamiento.Las transacciones desencadenan transiciones de estado al mover valor, crear contratos, llamar a contratos o modificar el almacenamiento de contratos.La Ethereum Virtual Machine, o EVM, es el entorno de ejecución que procesa el código de los contratos inteligentes.La documentación oficial de Ethereum sobre EVM describe la EVM como un entorno virtual descentralizado que ejecuta código de forma coherente y segura en todos los nodos de Ethereum.
Esto significa que la EVM forma parte de la maquinaria de transición de estado de Ethereum.Cuando una transacción llama a un contrato inteligente, la EVM ejecuta las instrucciones del contrato y calcula los cambios de estado resultantes.Estos cambios pueden incluir actualizaciones de saldos, escrituras de almacenamiento, logs, creación de contratos y consumo de gas.Si cada nodo ejecuta la misma transacción desde el mismo estado inicial, todos los nodos honestos deberían alcanzar el mismo estado final.Por eso Ethereum puede admitir aplicaciones programables sin depender de un servidor central de aplicaciones.El estado global de Ethereum
El estado global de Ethereum es el estado actual de todas las cuentas de Ethereum.Incluye cuentas de propiedad externa controladas por claves privadas y cuentas de contratos controladas por código.La documentación de Ethereum sobre Merkle Patricia Trie explica que Ethereum tiene un trie de estado global que se actualiza cada vez que un cliente procesa un bloque.
Este trie de estado produce una raíz de estado que se compromete con el estado global actual.La raíz de estado se almacena en la cabecera del bloque.Si cambia el saldo de una cuenta o un valor del almacenamiento de un contrato, la raíz de estado resultante debería cambiar.Esto proporciona a Ethereum una huella criptográfica compacta de todo el estado después de cada bloque.La máquina de estados actualiza el estado global y la raíz de estado permite a los nodos verificar que coinciden en el resultado.Este diseño conecta ejecución, almacenamiento y consenso.Sin un estado global compartido, los contratos inteligentes de Ethereum no tendrían un entorno común del que leer y en el que escribir.Bitcoin como máquina de estados
Bitcoin también es una máquina de estados, pero utiliza un modelo de estado diferente al de Ethereum.Bitcoin no utiliza un sistema global de cuentas como Ethereum.En su lugar, Bitcoin utiliza el modelo UTXO, en el que el estado actual disponible para gastar es el conjunto de salidas de transacciones no gastadas.La guía para desarrolladores de Bitcoin sobre transacciones explica que las transacciones gastan salidas de transacciones no gastadas y crean nuevas salidas.
Una transacción de Bitcoin solo es válida si gasta UTXO existentes que no se hayan gastado ya.Cuando se acepta una transacción válida, los UTXO consumidos se eliminan del conjunto disponible para gastar.Las nuevas salidas creadas por la transacción se convierten en nuevos UTXO.Esto significa que la función de transición de estado de Bitcoin actualiza el conjunto de UTXO.La máquina de estados de Bitcoin es menos general que el modelo de contratos inteligentes de Ethereum, pero sigue siendo un sistema determinista para actualizar el estado de propiedad.La idea clave es la misma: las transacciones válidas trasladan el sistema de un estado válido al siguiente.Modelo de cuentas frente a máquina de estados UTXO
El modelo de cuentas y el modelo UTXO son dos formas diferentes de diseñar una máquina de estados blockchain.En un modelo de cuentas, el estado contiene cuentas y saldos.Una transacción de un usuario a otro normalmente reduce el saldo del emisor y aumenta el saldo del destinatario.Las plataformas de contratos inteligentes suelen utilizar diseños basados en cuentas porque los contratos necesitan almacenamiento persistente y actualizaciones directas de estado.En un modelo UTXO, el estado contiene salidas no gastadas en lugar de saldos de cuentas.Una transacción consume salidas antiguas y crea nuevas salidas.Las carteras pueden mostrar un saldo sencillo, pero normalmente dicho saldo se calcula a partir de las salidas que el usuario puede gastar.El modelo de cuentas puede resultar más intuitivo para los desarrolladores de aplicaciones.El modelo UTXO puede hacer más natural algunas formas de validación paralela y seguimiento de monedas.Ambos modelos son máquinas de estados porque ambos definen estados válidos y transiciones de estado válidas.Contratos inteligentes y máquinas de estados
Los contratos inteligentes son programas que se ejecutan dentro de una máquina de estados blockchain.Un contrato inteligente puede almacenar datos, hacer cumplir reglas, recibir activos, enviar activos e interactuar con otros contratos.Cuando un usuario llama a un contrato inteligente, la blockchain no se limita a registrar un mensaje.La red ejecuta el código del contrato y actualiza el estado según el resultado.Por ejemplo, un contrato de transferencia de tokens puede reducir el saldo de tokens de un usuario y aumentar el saldo de tokens de otro usuario dentro del almacenamiento del contrato.Un contrato de préstamos puede actualizar saldos de garantías, saldos de deuda, índices de intereses y estados de liquidación.Un contrato de exchange descentralizado puede actualizar las reservas de un pool de liquidez y las posiciones de los usuarios.Todas estas acciones son transiciones de estado.Como los contratos inteligentes pueden custodiar valor real, su lógica de transición de estado debe ser determinista, segura y probarse cuidadosamente.Un error en las reglas de transición de estado de un contrato puede provocar la pérdida de fondos o un comportamiento defectuoso de la aplicación.Máquina de estados y consenso
Una máquina de estados no es lo mismo que un mecanismo de consenso.La máquina de estados define cómo cambia el estado cuando se aplican transacciones.El consenso define cómo la red acuerda qué transacciones y bloques deben aplicarse.Una blockchain necesita ambos.Si una red tiene una máquina de estados válida pero no tiene consenso, los nodos pueden aplicar órdenes de transacciones diferentes y llegar a estados distintos.Si una red tiene consenso pero una máquina de estados defectuosa, los nodos pueden acordar bloques que producen resultados inseguros o incorrectos.El consenso selecciona el flujo de entradas ordenado.La máquina de estados ejecuta ese flujo de entradas.El estado final solo es correcto cuando lo son tanto las reglas de ordenación como las de ejecución.Esta distinción ayuda a los usuarios a entender por qué las blockchains tienen tanto reglas para validadores como reglas de ejecución.Función de transición de estado
La función de transición de estado es la regla formal que asigna un estado anterior y una entrada a un nuevo estado.En una notación sencilla, puede describirse como un nuevo estado igual a la función de transición aplicada al estado anterior y a la transacción.En una red cripto, esta función comprueba firmas, saldos, nonces, comisiones, límites de gas, código de contratos y reglas específicas del protocolo.Si la entrada es válida, la función produce un nuevo estado válido.Si la entrada no es válida, la función la rechaza o marca la ejecución como fallida según las reglas de la red.La función de transición de estado de Ethereum puede incluir ejecución de la EVM, contabilización de gas, actualizaciones de almacenamiento y logs de eventos.La función de transición de estado de Bitcoin comprueba que las entradas gasten UTXO válidos y que las salidas cumplan las reglas de script y valor.Otras blockchains pueden definir transiciones de estado mediante módulos, pallets, objetos Move, recursos o lógica específica de la aplicación.La función de transición es el núcleo de la máquina de estados.Es la razón por la que una blockchain puede avanzar sin que operadores humanos actualicen manualmente los saldos.Replicación de máquinas de estados
La replicación de máquinas de estados es el proceso de ejecutar la misma máquina de estados determinista en muchas máquinas para que permanezcan sincronizadas.En sistemas blockchain, esto significa que muchos nodos procesan las mismas transacciones ordenadas y calculan los mismos resultados.Este modelo es útil porque proporciona tolerancia a fallos.Si un nodo se desconecta, otros nodos siguen manteniendo y actualizando el estado.Si un nodo miente, otros nodos pueden rechazar resultados no válidos.Si un usuario quiere verificar el sistema, puede ejecutar un nodo y comprobar por sí mismo las transiciones de estado.CometBFT es un ejemplo sólido de esta idea porque su documentación describe explícitamente la replicación de máquinas de estados BFT para máquinas de estados finitas deterministas.Muchos diseños de appchains y blockchains modulares separan el consenso de la lógica de aplicación utilizando esta idea.La capa de consenso ordena las transacciones, mientras que la máquina de estados de la aplicación define qué significan esas transacciones.Esta separación permite a los desarrolladores crear aplicaciones blockchain personalizadas mientras se apoyan en un motor de consenso para la replicación.Máquinas de estados específicas de aplicación
Una blockchain específica de aplicación es una blockchain creada para una aplicación o caso de uso concreto.En este diseño, la máquina de estados de la blockchain puede personalizarse en torno a las reglas de la aplicación.Una cadena de pagos puede definir saldos y transferencias sencillos.Una cadena de exchange descentralizado puede definir libros de órdenes, pools de liquidez y reglas de cruce.Una cadena de juegos puede definir jugadores, objetos, partidas y recompensas.Una cadena de gobernanza puede definir propuestas, votos, delegaciones y reglas de tesorería.Esto se diferencia de una plataforma de contratos inteligentes de propósito general, en la que muchas aplicaciones comparten un entorno de ejecución.Las máquinas de estados específicas de aplicación pueden ser más eficientes porque no necesitan admitir todos los casos de uso posibles.También pueden ser más fáciles de analizar porque sus reglas están más enfocadas.La contrapartida es que pueden tener menos componibilidad general que una plataforma compartida de contratos inteligentes.Máquina de estados y máquinas virtuales
Una máquina virtual blockchain es el entorno de ejecución que ejecuta código dentro de la máquina de estados.La EVM es el ejemplo más conocido.Otros ecosistemas blockchain utilizan máquinas virtuales o entornos de ejecución diferentes.Una máquina virtual define cómo se interpretan las instrucciones, cómo funciona la memoria, cómo se accede al almacenamiento, cómo se cobra el gas y cómo se gestionan los errores.La máquina de estados utiliza la máquina virtual para procesar transacciones programables.Por ejemplo, cuando Ethereum ejecuta una llamada a un contrato inteligente, la EVM ejecuta el bytecode y produce los cambios de estado.La máquina virtual debe ser determinista para que todos los nodos calculen el mismo resultado.Una máquina virtual no es toda la blockchain, pero es una parte clave de la capa de ejecución.La máquina de estados blockchain incluye la máquina virtual, las reglas de cuentas, las reglas de comisiones, las reglas de transacciones y las reglas de actualización de estado.Comprender esta relación ayuda a los desarrolladores a entender por qué los entornos de ejecución son críticos para el consenso.Máquina de estados y gas
El gas es el sistema de precios que utilizan muchas blockchains de contratos inteligentes para limitar y cobrar la ejecución.La documentación de Ethereum sobre gas explica que el gas se refiere a la unidad que mide la cantidad de esfuerzo computacional necesario para ejecutar operaciones en Ethereum.
El gas forma parte de la máquina de estados porque la ejecución de transacciones consume recursos.Sin límites de gas, una transacción podría ejecutarse indefinidamente o consumir demasiados recursos computacionales.El gas hace medible la computación e impide que los usuarios obliguen a cada nodo a realizar trabajo ilimitado de forma gratuita.El gas también afecta a las transiciones de estado porque una transacción puede fallar si se queda sin gas.Incluso cuando la ejecución falla, pueden seguir pagándose comisiones porque los nodos dedicaron recursos a intentar ejecutarla.Los desarrolladores de contratos inteligentes deben comprender el gas porque las transiciones de estado ineficientes pueden ser costosas para los usuarios.Los usuarios deben comprender el gas porque las comisiones de transacción forman parte del coste de modificar el estado de la blockchain.El gas demuestra que las máquinas de estados deben gestionar tanto la corrección como el uso de recursos.Máquina de estados y raíces de estado
Muchas blockchains utilizan compromisos criptográficos para resumir el estado después de cada bloque.En Ethereum, la raíz de estado se compromete con el estado global después de ejecutar las transacciones.Una raíz de estado no es el estado en sí mismo.Es un compromiso compacto basado en hashes del estado.Si los nodos procesan el mismo bloque y calculan la misma raíz de estado, tienen evidencia de que coinciden sobre el estado resultante.Si un nodo calcula una raíz de estado diferente, algo no funciona correctamente en el bloque, la ejecución o la implementación del cliente.Las raíces de estado también permiten pruebas de que existían valores específicos en un estado comprometido.Esto importa para clientes ligeros, bridges, auditores y sistemas cross-chain.Una máquina de estados actualiza datos, y la raíz de estado ayuda a demostrar cuáles son esos datos actualizados.Así conectan las blockchains los resultados de ejecución con la verificación criptográfica.Máquina de estados y nodos
Los nodos son los ordenadores reales que ejecutan software blockchain y mantienen la máquina de estados.La introducción técnica de Ethereum explica que los nodos almacenan el estado de la EVM y se comunican entre sí para propagar cambios de estado.
Un nodo completo verifica bloques ejecutando transacciones y comprobando que el estado resultante es válido.Un validador o productor de bloques puede proponer nuevos bloques, pero los demás nodos siguen necesitando verificarlos.Esta verificación independiente es una de las principales razones por las que las blockchains pueden minimizar la necesidad de confianza.Los usuarios que ejecutan sus propios nodos no necesitan confiar en un servidor de terceros para conocer el estado actual.Pueden calcular el estado por sí mismos a partir de los bloques aceptados.Sin embargo, ejecutar un nodo requiere hardware, ancho de banda, almacenamiento y mantenimiento.El crecimiento del estado puede hacer que los nodos sean más difíciles de ejecutar con el tiempo.Por eso el diseño de las máquinas de estados afecta a la descentralización además de a la ejecución.Máquina de estados y finalidad
La finalidad significa que una transición de estado se considera liquidada y muy difícil o imposible de revertir conforme a los supuestos del protocolo.Antes de la finalidad, una transacción puede incluirse en un bloque pero seguir expuesta al riesgo de reorganización.Tras la finalidad, los usuarios pueden tener una mayor confianza en que la transición de estado seguirá formando parte de la cadena canónica.Diferentes blockchains definen la finalidad de forma distinta.Algunas cadenas tienen finalidad probabilística, donde la confianza crece a medida que se añaden más bloques.Algunas cadenas tienen finalidad económica o de tipo BFT, donde los validadores se comprometen con bloques conforme a reglas de slashing o consenso.La finalidad importa porque una máquina de estados puede tener temporalmente historiales posibles en competencia durante bifurcaciones.El consenso resuelve qué historial se vuelve canónico.Los usuarios normalmente no solo se preocupan de que haya ocurrido una transición de estado, sino de que siga siendo aceptada.Una máquina de estados blockchain solo resulta útil para las finanzas cuando los usuarios pueden confiar en que los cambios de estado están liquidados.Máquina de estados y bifurcaciones
Una bifurcación puede producirse cuando diferentes nodos siguen temporal o permanentemente historiales de bloques distintos.Si dos historiales incluyen transacciones diferentes, pueden producir estados diferentes.Las reglas de consenso deciden qué cadena es canónica según el protocolo.Las bifurcaciones temporales pueden producirse naturalmente en redes descentralizadas.Las bifurcaciones permanentes pueden suceder cuando comunidades o clientes de software siguen intencionadamente reglas de protocolo diferentes.Una bifurcación de máquina de estados es grave porque puede crear dos versiones separadas de saldos, contratos e historial del libro mayor.Si dos redes comparten historial hasta un punto de bifurcación, comparten el mismo estado inicial en ese punto.Después de la bifurcación, órdenes de transacciones diferentes o reglas diferentes pueden crear estados distintos.Por eso las actualizaciones del protocolo deben coordinarse cuidadosamente.Todos los participantes honestos que quieran permanecer en la misma red deben ejecutar reglas de transición de estado compatibles.Máquina de estados y errores de contratos inteligentes
Los errores de contratos inteligentes son peligrosos porque los contratos forman parte de la máquina de estados blockchain.Un error puede definir una transición de estado no intencionada.Por ejemplo, un contrato puede permitir a un atacante retirar más fondos de los previstos.Un contrato puede actualizar saldos en el orden incorrecto.Un contrato puede no comprobar la autorización antes de modificar el estado.Un contrato puede permitir reentrancia, errores aritméticos o comportamientos de actualización inseguros.Una vez aceptada una transacción, el cambio de estado resultante puede ser difícil o imposible de revertir sin una coordinación social extraordinaria.Por eso son importantes las auditorías de contratos inteligentes, las pruebas, la verificación formal y un diseño cuidadoso.La máquina de estados blockchain ejecutará fielmente una lógica de contrato válida incluso si esa lógica es económicamente perjudicial.Por tanto, la corrección del código forma parte de la seguridad del estado.Máquina de estados y oráculos
Los oráculos proporcionan datos externos a las aplicaciones blockchain.Son importantes porque una máquina de estados blockchain no puede conocer por sí misma hechos off-chain directamente.Por ejemplo, un contrato de préstamos puede necesitar el precio de un token.Un mercado de predicciones puede necesitar el resultado de un evento.Un sistema de activos sintéticos puede necesitar un índice de referencia.El oráculo envía datos que se convierten en una entrada para la máquina de estados.Si los datos del oráculo son incorrectos, se retrasan, se manipulan o no están disponibles, la transición de estado resultante puede ser incorrecta.Esto significa que el diseño de los oráculos es crítico para las aplicaciones que dependen de información del mundo real.Una máquina de estados determinista solo puede procesar deterministamente los datos que recibe.No puede garantizar que los datos off-chain sean verdaderos salvo que el sistema de oráculos sea fiable y seguro.Máquina de estados y crecimiento excesivo del estado
El crecimiento excesivo del estado se produce cuando el estado activo de la blockchain crece demasiado.Cada cuenta, posición de almacenamiento, contrato, orden, posición y entrada de datos puede aumentar el estado que los nodos deben mantener.Un estado mayor puede incrementar los requisitos de almacenamiento de los nodos, el tiempo de sincronización, la carga de la base de datos y el coste de hardware.Si menos personas pueden ejecutar nodos, la descentralización puede verse afectada.Por eso muchas blockchains cobran comisiones o depósitos por el almacenamiento persistente.El crecimiento excesivo del estado es un problema de máquinas de estados porque cada transición de estado puede añadir, modificar o eliminar datos.Una máquina de estados bien diseñada debería desalentar el crecimiento inútil del estado y, al mismo tiempo, admitir aplicaciones útiles.Las comisiones de gas, el alquiler de almacenamiento, la expiración del estado, la poda y las mejoras de compromisos de estado están relacionados con este problema.Cuanto más potente se vuelve una máquina de estados blockchain, más cuidadosamente debe gestionar el estado a largo plazo.La escalabilidad no se limita a las transacciones por segundo, sino también al crecimiento sostenible del estado.Máquina de estados y redes Layer 2
Las redes Layer 2 también utilizan máquinas de estados.Un rollup, por ejemplo, tiene su propio estado que cambia a medida que los usuarios envían transacciones.El rollup puede publicar datos de transacciones, raíces de estado, pruebas de validez o datos de pruebas de fraude en una capa base.La capa base no ejecuta necesariamente de forma directa todas las transacciones de Layer 2.En su lugar, ayuda a liquidar o verificar el estado de Layer 2 según el diseño del rollup.Esto significa que una Layer 2 puede entenderse como otra máquina de estados conectada a una máquina de estados Layer 1.El diseño entre capas es complejo porque los usuarios necesitan confiar en que las transiciones de estado de Layer 2 sean válidas y permitan retiradas.La disponibilidad de datos, los sistemas de prueba, los bridges, los secuenciadores y las reglas de liquidación son importantes.La escalabilidad de Layer 2 no elimina las máquinas de estados.Añade máquinas de estados más especializadas que dependen de la seguridad de la capa base de distintas maneras.Máquina de estados y bridges
Los bridges conectan máquinas de estados entre cadenas o capas.Un bridge puede necesitar demostrar que un evento, mensaje o transición de estado se produjo en una cadena antes de liberar o acuñar activos en otra cadena.Esto es difícil porque cada blockchain tiene su propio consenso, reglas de finalidad, modelo de estado y sistema de pruebas.Un bridge que interpreta mal el estado puede volverse inseguro.Por ejemplo, un bridge puede aceptar un mensaje antes de que sea definitivo.Puede depender de un conjunto débil de validadores.Puede no verificar la raíz de estado o la prueba correcta.Puede contener errores de contratos inteligentes en la máquina de estados receptora.Por tanto, los bridges son uno de los puntos de mayor riesgo donde interactúan las máquinas de estados.Los usuarios no deben asumir que los activos son igual de seguros después de pasar entre máquinas de estados.Máquina de estados y gobernanza
La gobernanza puede cambiar las reglas de una máquina de estados blockchain.Una actualización del protocolo puede añadir nuevos tipos de transacción, cambiar costes de gas, modificar reglas de staking, introducir nuevos opcodes o ajustar el precio del almacenamiento.Estos cambios afectan a cómo funcionan las futuras transiciones de estado.Por tanto, las decisiones de gobernanza no son solo decisiones políticas o sociales.Son cambios en el motor de reglas que define el comportamiento blockchain válido.Si un proceso de gobernanza es débil, apresurado o capturado, puede perjudicar la seguridad de la máquina de estados.Si un proceso de gobernanza es claro y se prueba adecuadamente, puede ayudar a que la red evolucione.Las actualizaciones deben implementarse cuidadosamente en todo el software cliente.Si los clientes discrepan sobre las reglas de transición, la red puede bifurcarse.Una buena gobernanza protege la continuidad de la máquina de estados compartida.Máquina de estados y carteras
Las carteras son interfaces de usuario para interactuar con máquinas de estados blockchain.Cuando una cartera muestra un saldo, está leyendo el estado o datos indexados derivados del estado.Cuando una cartera pide a un usuario que firme una transacción, está preparando una entrada para la máquina de estados.Cuando un usuario aprueba un token, hace un swap de un activo o acuña un NFT, la cartera ayuda a enviar una acción que modifica el estado.Por eso las solicitudes de las carteras son tan importantes.Un usuario debería comprender qué cambio de estado está autorizando antes de firmar.Una transacción maliciosa puede cambiar aprobaciones, transferir activos, llamar a contratos u otorgar permisos.La blockchain ejecutará instrucciones firmadas válidas incluso si el usuario no entendió la interfaz.Por tanto, la seguridad de las carteras consiste en ayudar a los usuarios a crear entradas para la máquina de estados de forma segura.Una buena cartera hace comprensibles las transiciones de estado antes de que se produzcan.Máquina de estados y saldos de tokens
Los saldos de tokens suelen ser valores de estado dentro de contratos inteligentes.En una plataforma de contratos inteligentes basada en cuentas, un contrato de token puede almacenar una asignación de direcciones de usuarios a saldos.Cuando se produce una transferencia de tokens, el contrato actualiza esa asignación interna de saldos.El usuario puede ver el resultado como un simple cambio de saldo en una cartera.Internamente, se trata de una transición de estado a nivel de contrato.Esto significa que los saldos de tokens no siempre son el mismo tipo de estado que los saldos de monedas nativas.El saldo de una moneda nativa puede formar parte del estado de cuenta base.El saldo de un token puede formar parte del estado de almacenamiento de un contrato.Esta distinción importa para las pruebas, la indexación, la visualización en carteras y el riesgo de contratos inteligentes.Si el contrato del token tiene lógica insegura, la máquina de estados del token puede comportarse de manera inesperada.Máquina de estados y NFT
Los NFT también dependen de máquinas de estados.Un contrato de NFT almacena información de propiedad para ID de tokens únicos.Cuando se transfiere un NFT, el contrato actualiza qué dirección posee el ID del token.Cuando se acuña un NFT, el contrato crea un nuevo registro de propiedad.Cuando se quema un NFT, el contrato elimina o marca el token según sus reglas.Los metadatos pueden almacenarse on-chain o referenciarse mediante sistemas externos.La máquina de estados decide si una transferencia es válida, quién puede aprobarla y cómo cambia la propiedad.Por eso la seguridad de los NFT depende de la lógica del contrato, además de la custodia de la cartera.Un NFT no es solo una imagen o un objeto de colección.También es un registro de estado controlado por reglas de contratos inteligentes.Comprender las máquinas de estados ayuda a los usuarios a entender qué significa realmente la propiedad de un NFT on-chain.Ventajas de las máquinas de estados en cripto
La primera ventaja de una máquina de estados blockchain es la verificación compartida.Cualquier persona que ejecute software de nodo compatible puede comprobar si las transiciones de estado son válidas.La segunda ventaja es la ejecución determinista.Todos los nodos honestos pueden alcanzar el mismo resultado a partir del mismo estado inicial y entradas ordenadas.La tercera ventaja es la programabilidad.Las plataformas de contratos inteligentes permiten a los desarrolladores definir transiciones de estado a nivel de aplicación.La cuarta ventaja es la transparencia.Las blockchains públicas permiten a los usuarios inspeccionar transacciones, raíces de estado, almacenamiento de contratos y resultados de ejecución, según la cadena y las herramientas.La quinta ventaja es la tolerancia a fallos.Muchos nodos pueden replicar la máquina de estados, lo que reduce la dependencia de un único servidor.La sexta ventaja es la componibilidad.Las aplicaciones pueden interactuar con estado compartido cuando la plataforma lo admite de forma segura.Estas ventajas son la razón por la que las máquinas de estados son fundamentales para el diseño de blockchains públicas.Limitaciones de las máquinas de estados en cripto
La primera limitación es la complejidad.Los usuarios a menudo no comprenden las transiciones de estado que están firmando.La segunda limitación es el crecimiento del estado.El estado persistente puede resultar costoso de almacenar y verificar para los nodos.La tercera limitación es el coste de ejecución.En muchas blockchains, cada nodo puede necesitar procesar la misma transacción que modifica el estado.La cuarta limitación es el riesgo de actualizaciones.Cambiar las reglas de transición puede crear errores o bifurcaciones si no se gestiona cuidadosamente.La quinta limitación es el riesgo de las aplicaciones.Las máquinas de estados de contratos inteligentes pueden contener lógica defectuosa aunque la cadena base funcione correctamente.La sexta limitación es el riesgo de datos externos.Los oráculos pueden introducir información errónea en sistemas que, por lo demás, son deterministas.Estas limitaciones demuestran por qué el diseño de máquinas de estados requiere disciplina de ingeniería, revisión de seguridad e interfaces de usuario claras.Malentendidos habituales sobre las máquinas de estados
Un malentendido habitual es que una blockchain es solo una base de datos.Una blockchain también es una máquina de estados porque define reglas para cambios de estado válidos.Otro malentendido es que el consenso y la ejecución son lo mismo.El consenso ordena bloques y transacciones, mientras que la ejecución aplica reglas de transición de estado.Un tercer malentendido es que los contratos inteligentes se ejecutan en un servidor central.Los contratos inteligentes son ejecutados por nodos conforme a las reglas deterministas de la máquina de estados de la blockchain.Un cuarto malentendido es que el historial de transacciones y el estado actual son lo mismo.El historial de transacciones registra entradas, mientras que el estado registra el resultado actual después de procesar esas entradas.Un quinto malentendido es que la ejecución determinista garantiza buenos resultados.El determinismo garantiza resultados coherentes, pero el resultado puede seguir siendo perjudicial si la lógica del contrato o los datos de entrada son defectuosos.Buenas prácticas para desarrolladores
Diseña contratos inteligentes como máquinas de estados explícitas con estados, transiciones y condiciones de fallo claras.Prueba cada transición de estado en condiciones normales y hostiles.Utiliza el control de acceso cuidadosamente, ya que las transiciones de estado no autorizadas pueden ser catastróficas.Evita depender de comportamientos no deterministas dentro de la ejecución blockchain.Minimiza el almacenamiento persistente innecesario, ya que el crecimiento del estado aumenta los costes para usuarios y nodos.Utiliza eventos como señales históricas cuando no se requiera estado activo.Modela casos límite como llamadas fallidas, reentrancia, ejecución parcial, fallos de oráculos y rutas de actualización.Documenta qué modifica en el estado cada función.Revisa los costes de gas porque las transiciones de estado que escriben en almacenamiento pueden ser costosas.Considera la lógica de la máquina de estados como código crítico para la seguridad.Buenas prácticas para usuarios
Lee cuidadosamente los avisos de la cartera antes de firmar transacciones.Comprende que firmar una transacción puede cambiar permanentemente el estado de la blockchain.Comprueba qué permisos otorga a un contrato una aprobación de token.Utiliza interfaces de confianza al interactuar con contratos inteligentes.Empieza con transacciones pequeñas al probar una aplicación nueva.Verifica las direcciones de los contratos y evita firmar mensajes desconocidos.Comprende que las transacciones fallidas pueden seguir teniendo comisiones en algunas redes.Recuerda que el estado blockchain puede ser transparente, pero la transparencia no garantiza la seguridad.Ten cuidado con los bridges porque conectan máquinas de estados diferentes con supuestos distintos.Utiliza herramientas de seguridad y revoca aprobaciones innecesarias cuando corresponda.Preguntas frecuentes
¿Qué significa máquina de estados en cripto?
En cripto, una máquina de estados es el sistema de reglas que toma como entrada el estado actual de la blockchain y transacciones válidas, y produce un nuevo estado de la blockchain.¿Por qué se denomina máquina de estados a una blockchain?
Una blockchain se denomina máquina de estados porque pasa repetidamente de un estado válido al siguiente aplicando transacciones ordenadas conforme a reglas fijas de protocolo.¿Qué es el estado de una blockchain?
El estado de una blockchain es el conjunto actual de datos necesarios para procesar nuevas transacciones, como saldos, cuentas, almacenamiento de contratos, UTXO y registros de validadores.¿Qué es una transición de estado?
Una transición de estado es el cambio de un estado de la blockchain a otro después de procesar una transacción, bloque o mensaje válido.¿Ethereum es una máquina de estados?
Sí. Ethereum puede entenderse como una máquina de estados basada en transacciones, donde las transacciones y llamadas a contratos inteligentes actualizan el estado global.¿Bitcoin es una máquina de estados?
Sí. Bitcoin puede entenderse como una máquina de estados basada en UTXO, donde las transacciones válidas consumen salidas no gastadas y crean nuevas salidas no gastadas.¿Qué es la replicación de máquinas de estados?
La replicación de máquinas de estados consiste en ejecutar la misma máquina de estados determinista en muchas máquinas para que procesen las mismas entradas ordenadas y mantengan el mismo estado.¿Cuál es la diferencia entre consenso y una máquina de estados?
El consenso acuerda el orden de las transacciones, mientras que la máquina de estados aplica las transacciones ordenadas para actualizar el estado de la blockchain.¿Por qué las máquinas de estados blockchain deben ser deterministas?
Deben ser deterministas para que todos los nodos honestos puedan calcular el mismo resultado a partir del mismo estado inicial y orden de transacciones.¿Cómo se relacionan los contratos inteligentes con las máquinas de estados?
Los contratos inteligentes definen reglas a nivel de aplicación que actualizan el estado de la blockchain cuando los usuarios envían transacciones válidas o llamadas a contratos.Conclusión
Una máquina de estados es una de las ideas más importantes que sustentan las redes de criptomonedas.Explica cómo las blockchains pasan de un estado válido a otro aplicando transacciones conforme a reglas deterministas.Bitcoin utiliza una máquina de estados basada en UTXO, donde las transacciones válidas gastan salidas antiguas y crean nuevas salidas.Ethereum utiliza una máquina de estados basada en cuentas, donde las cuentas, saldos, código de contratos y almacenamiento se actualizan mediante transacciones y ejecución de la EVM.Los mecanismos de consenso y las máquinas de estados trabajan juntos, pero realizan funciones diferentes.El consenso ordena las entradas, mientras que la máquina de estados ejecuta las reglas y produce el nuevo estado.Este modelo hace verificables las blockchains públicas porque muchos nodos independientes pueden procesar los mismos datos ordenados y comprobar que llegan al mismo resultado.Las máquinas de estados también hacen posibles los contratos inteligentes porque las aplicaciones pueden definir reglas programables para modificar datos on-chain.Sin embargo, las máquinas de estados generan riesgos reales cuando la lógica de un contrato inteligente es incorrecta, las entradas de oráculos son deficientes, el estado crece demasiado o los usuarios firman transacciones que no entienden.Para los desarrolladores, una mentalidad de máquina de estados ayuda a crear contratos más seguros, reglas más claras y mejores pruebas.Para los usuarios, ayuda a explicar por qué cada transacción firmada es una instrucción que puede cambiar saldos, permisos, propiedad o el estado de una aplicación.En el contexto de un glosario cripto, State Machine significa el sistema de reglas determinista que procesa transacciones blockchain y actualiza la red de un estado válido al siguiente.La idea clave es que una blockchain no es solo un registro de transacciones pasadas, sino una máquina de estados replicada que permite a muchos nodos independientes acordar la realidad actual de una economía digital.También te puede interesar
ZK-Rollup
ZK-Rollup-as-a-Service
zk-SNARK
POPULAR
Criptomonedas de moda que están acaparando la atención del mercado
Volumen TOP
Las criptomonedas con mayor volumen de trading
Recién Añadidos
Criptomonedas recientemente listadas y disponibles para operar

