¿Qué es un contrato inteligente?

in #blockchain6 years ago (edited)


Lo principal que diferencia a Ethereum de Bitcoin es que Ethereum tiene el concepto de contratos inteligentes. Bitcoin es dinero digital; depósito de valor. Ethereum también es dinero digital, pero mucho más.El nombre "Contrato inteligente" es un poco engañoso. En realidad, no son contratos, y tampoco son particularmente inteligentes. Son solo piezas de código, o lógica de computadora, que pueden ejecutarse en la cadena de bloques ...Lo primero que presentaré sobre los contratos inteligentes es que son un tipo especial de cuenta en la red Ethereum. Tienes cuentas de usuario y cuentas de contrato inteligentes.Una cuenta de usuario es solo

  • Una dirección (algo así como su número de cuenta bancaria; esto también existe en Bitcoin)
  • Un equilibrio (cuánto dinero tengo)

Una cuenta de contrato inteligente tiene:

  • Una dirección
  • Un equilibrio (de éter)
  • Un estado
  • Código

La dirección es lo mismo que cualquier cuenta normal. Es solo el identificador único de la cuenta.

El saldo también es lo mismo que cualquier cuenta regular. Lo único emocionante es que un saldo en un contrato inteligente significa que el código puede poseer dinero. Puede manejar dinero. Y puede manipularlo incorrectamente si está codificado incorrectamente.

El estado de una cuenta de contrato inteligente es el estado actual de todos los campos y variables declarados en el contrato inteligente. Funciona de la misma manera que las variables de campo en una clase en la mayoría de los lenguajes de programación. De hecho, un objeto instanciado de una clase es probablemente la forma más fácil de pensar en contratos inteligentes. La única diferencia es que el objeto vive para siempre (a menos que esté programado para autodestruirse).

El código del contrato inteligente se compila por código de bytes que los clientes y nodos de Ethereum pueden ejecutar. Es el código que se ejecuta en la creación del contrato inteligente y contiene funciones a las que puede llamar. Como cualquier objeto en un lenguaje de programación orientado a objetos.

Nota al pie : Lo divertido de los contratos inteligentes: pueden llamar a otros contratos inteligentes. Esto abre la posibilidad de crear agentes autónomos que puedan gastar dinero y realizar transacciones por sí mismos.

contract Counter {



   uint counter;







   function Counter() public {



       counter = 0;



   }



   function count() public {



       counter = counter + 1;



   }



}



Digamos que creo un contrato inteligente con el código anterior. El código tiene un campo único llamado "contador" de tipo uint (un número entero). El contenido de la variable de contador es el estado de este contrato. Cada vez que llamo a la función count (), el estado en la cadena de bloques para este contrato inteligente se incrementará en 1 - para que cualquiera lo vea. 



Sort:  

O.o me encanta, primera vez que veo que alguien explica esto desde la lógica de del POO y esta mucho mejor así.

excelente post!!

Congratulations @juanpabloperez! You have completed the following achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes

Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word STOP

Do you like SteemitBoard's project? Then Vote for its witness and get one more award!