EVM - ¿Cómo se conecta a la Blockchain? [duplicar]

Tengo algunos problemas para entender la arquitectura de software de Blockchain. Para mí Blockchain es la base de datos donde se almacenan todas las transacciones, recibos, saldos, etc. Pero, ¿cómo es la conexión a la EVM? ¿Es el EVM responsable de cambiar la base de datos de Blockchain? Cuando un nodo completo recibe una transacción o un nuevo bloque. Procesa las transacciones con la EVM. ¿El almacenamiento interno de la EVM es Blockchain o cuál es el almacenamiento interno de la EVM? Cuando no es la cadena de bloques, ¿el EVM solo es responsable de procesar la transacción y enviar un recibo a la cadena de bloques para que pueda hacer una actualización? ¿Hay dos instancias: la cadena de bloques (base de datos) y el evm (procesador) o una instancia, el evm, que incluye la base de datos de la cadena de bloques? Espero que sepas lo que estoy tratando de decir aquí.

Respuestas (3)

Una cadena de bloques es un ejemplo de un concepto más general, llamado máquina de estado distribuida.

Una máquina de estado es un sistema que tiene un conjunto de estados y una función que realiza la transición entre esos estados.

En un Ethereum, el estado es el árbol de estados de cuenta, y la función de transición toma un bloque como entrada, ejecuta todas las transacciones en el bloque en el EVM y realiza la transición al nuevo estado resultante de la ejecución del EVM.

Entonces puedes pensar en el EVM como parte de la función de transición entre bloques.

La respuesta de Thomas es muy útil.

En caso de que ayude, podría ser útil pensar en la cadena de bloques como algo similar a un registro de reproducción de la base de datos en el que todos los nodos están de acuerdo gracias al consenso. El EVM es el protocolo que rige la interpretación de las transacciones contenidas en el registro.

El protocolo tiene un alcance suficiente para permitir la incorporación de contratos en transacciones especialmente diseñadas. Los contratos están escritos en un código de máquina simple (bytecode) y el protocolo cubre cómo interpretarlos. Entonces, el historial de transacciones registra la implementación del código ejecutable.

El lenguaje de los contratos incluye almacenamiento interno, por lo que algunas entradas pueden activar funciones que cambian valores persistentes.

Dado un protocolo suficientemente descriptivo, y dado un conjunto de transacciones que se cree que son verdaderas (el consenso es otro tema), cada nodo que funcione correctamente puede llegar a sus propias conclusiones sobre el estado en el que debe estar el caso.

Creo que es razonable resumir diciendo que los datos "viven" en las entradas. La cadena de bloques en sí es un sistema que convence a todos los nodos de que tienen un historial verdadero y válido de las entradas, y eso es todo lo que necesitan saber.

Espero eso ayude.

¿Es el EVM responsable de cambiar la base de datos de Blockchain?

Antes de una transacción, la "cadena de bloques" representa un estado determinado. Durante la transacción, el estado cambia de pre-transacción a post-transacción (a menos que haya una reversión). Ese 'cambio de un estado a otro' lo logra la EVM. Algunos cambios simplemente envían Wei de una cuenta a otra. Otros son más complicados y ejecutan un contrato inteligente para cambiar los valores de almacenamiento. (Aunque algunos pueden objetar que un envío simple no requiere el EVM, el efecto es el mismo).

Cuando un nodo completo recibe una transacción o un bloque nuevo, procesa las transacciones con el EVM. ¿El almacenamiento interno de la EVM es Blockchain o cuál es el almacenamiento interno de la EVM?

Distinga entre el EVM (que logra el cambio de estado) y el estado en sí mismo, que es el valor actual de todos los datos en la base de datos (o como la mayoría de la gente lo llamaría, los valores actuales de todos los datos en la cadena ).

Cuando no es la cadena de bloques, ¿el EVM solo es responsable de procesar la transacción y enviar un recibo a la cadena de bloques para que pueda hacer una actualización?

Creo que te estás obsesionando con la palabra. Se blockchainpuede considerar como una estructura de datos donde blocksestán chainedjuntos al incluir una referencia (el hash principal) en el bloque actual. Pienso en esa estructura de datos como la cadena de bloques, pero también (al mismo tiempo) pienso en todo como la cadena de bloques. Entonces, es una palabra con muchas facetas. Quizás sea mejor pensar en ello como la estructura de datos. El EVM procesa los cambios de estado y almacena los cambios de estado en una lista de bloques encadenados.

¿Hay dos instancias: la cadena de bloques (base de datos) y el evm (procesador) o una instancia, el evm, que incluye la base de datos de la cadena de bloques?

Ver la respuesta anterior.