Soy nuevo en los contratos inteligentes. Cuando vi algún ejemplo de Smart Contracts, me di cuenta de que son solo una pieza de código, no exactamente contratos.
Por ejemplo function sendCoin(address receiver, uint amount)
, hay un método definido en un contrato inteligente que toma la dirección del receptor y la cantidad para enviar monedas al receptor.
Pero el contrato no se trata de cómo enviar monedas, sino de cuánto enviar. Por ejemplo, si el material se entrega a tiempo, realice el pago total; de lo contrario, cobrará una multa del 10 % por cada semana de retraso.
Según tengo entendido, la invocación, donde se escriben estas reglas si-entonces (contrato que representa), está fuera del contrato inteligente.
¿Es correcto mi entendimiento? ¿Es engañoso el término 'contrato inteligente'?
¿Los contratos reales todavía están codificados fuera de la cadena de bloques en la aplicación que activa estas funciones? En caso afirmativo, ¿por qué los contratos inteligentes no se pueden manipular? Las aplicaciones aún pueden comprometer el contrato, por ejemplo. al no pagar según los términos del contrato.
Creo que la palabra contrato viene de la programación del contrato . Es una forma de diseñar software que cumple con los requisitos de este paradigma. De hecho, Solidity admite la programación por contrato de forma nativa.
pragma solidity ^0.4.0;
contract Sharer {
function sendHalf(address addr) public payable returns (uint balance) {
require(msg.value % 2 == 0); // Only allow even numbers
uint balanceBeforeTransfer = this.balance;
addr.transfer(msg.value / 2);
// Since transfer throws an exception on failure and
// cannot call back here, there should be no way for us to
// still have half of the money.
assert(this.balance == balanceBeforeTransfer - msg.value / 2);
return this.balance;
}
}
Dado este ejemplo, como puede ver requires
, son las condiciones previas y las condiciones assets
posteriores. Los efectos secundarios son excepciones que revertirán el estado en el EVM.
Su comprensión es exactamente correcta. Los contratos inteligentes no son ni inteligentes ni contratos. Es una palabra engañosa.
Es solo un software que se ejecuta en el EVM. No hay nada que haga cumplir lo que hacen, aparte del hecho de que el código en sí nunca se puede cambiar.
Creo que es la inmutabilidad del código y el hecho de que el código es de código abierto (y, por lo tanto, aceptado por todas las partes) lo que hace que la gente los considere contratos. No puede cambiarlos una vez implementados.
usuario38075
Kumar