¿Cada código de Solidity se llama necesariamente Smart Contract?

¿Es correcto decir que incluso un código de Solidity que no contiene transacciones financieras para intercambiar activos digitales o tokens y solo almacena información en la cadena de bloques es un contrato inteligente?

En cuanto a este hecho, el término "Contrato" generalmente se refiere a una convención mutua entre dos o más partes para determinar las misiones de cada parte. Y si este contrato es financiero, generalmente se intercambia un activo entre las partes.

¿Me equivoco?

Respuestas (1)

Como muchas otras palabras, "contrato" tiene múltiples significados.

Históricamente, un contrato ha tendido a referirse a algo como la definición en su último párrafo.

En informática, a menudo se usa para hablar sobre la promesa que hace un fragmento de código a las personas que intentan usarlo en otro código. Por ejemplo, vea esta discusión sobre "diseño por contrato": https://en.m.wikipedia.org/wiki/Design_by_contract

"Inteligente" ha asumido el significado de algo que tiene tecnología moderna o, en la práctica, algo que puede ser pirateado o explotar.

Nick Szabo acuñó el término "Contrato inteligente" para hablar de un acuerdo entre personas, ejecutado por una máquina. Propuso que una máquina expendedora era una especie de "contrato inteligente". http://firstmonday.org/ojs/index.php/fm/article/view/548/469-publisher=First

Ethereum usa el término "contrato" para referirse a un programa informático independiente implementado en su cadena de bloques, con un código fijo y un área de almacenamiento dedicada. Podría decirse que este no es un gran término, y algunas personas han sugerido que debería llamarse algo así como "agente". La gente a veces también llama a esto un " contrato inteligente ".

Un único "contrato" en Ethereum se puede utilizar para hacer cumplir una amplia gama de acuerdos entre personas. Un contrato multisig puede implicar múltiples firmas de claves que están destinadas a ser utilizadas por una sola persona. Un contrato de apuestas puede manejar una gran cantidad de apuestas diferentes, cada una de las cuales podría decirse que es un contrato de persona a persona por derecho propio.

Entonces, sí, cada fragmento de código implementado en Ethereum es blockchain, un contrato inteligente en un sentido, pero esto no necesariamente coincidirá con un contrato inteligente en otro sentido, y eso a su vez puede coincidir o no con un contrato en el sentido más tradicional. , cuasi-legal sentido de un acuerdo entre los seres humanos.

Un giro final: debido a la forma en que funciona la herencia de Solidity, a veces tendrá dos fragmentos de código, cada uno titulado "contrato", pero solo terminarán implementando un contrato (definido como una pieza de código con su propio almacenamiento) en la cadena de bloques. .