Estoy confundido acerca de cómo funcionan internamente los contratos inteligentes.
He leído esto:
https://blog.zeppelin.solutions/the-hitchhikers-guide-to-smart-contracts-in-ethereum-848f08001f05
TLTR: hay un ejemplo de un contrato inteligente "Prueba de existencia" que guarda el hash de alguna cadena en una matriz
contract ProofOfExistence3 {
mapping (bytes32 => bool) private proofs;
// store a proof of existence in the contract state
function storeProof(bytes32 proof) {
proofs[proof] = true;
}
// calculate and store the proof for a document
function notarize(string document) {
var proof = proofFor(document);
storeProof(proof);
}
// helper function to get a document's sha256
function proofFor(string document) constant returns (bytes32) {
return sha256(document);
}
// check if a document has been notarized
function checkDocument(string document) constant returns (bool) {
var proof = proofFor(document);
return hasProof(proof);
}
// returns true if proof is stored
function hasProof(bytes32 proof) constant returns(bool) {
return proofs[proof];
}
}
Mis preguntas:
1) ¿Qué sucede cuando implemento ese contrato? en términos de la cadena de bloques Ethereum. ¿El código se guarda en un nuevo bloque en la red Ethereum? Quiero decir, en Bitcoin enviamos algunos BTC de una dirección a otra, y esa información se guarda en un nuevo bloque. ¿Hay alguna analogía con esto para Ethereum y Smart Contracts?
2) ¿Hay algún costo para implementar el contrato inteligente?
3) ¿Cómo puedo usar ese contrato? Digamos que quiero verificar si existe alguna cadena allí, ¿cómo puedo hacer eso? lo mismo si quiero guardar una nueva cadena. ¿Cuál es el flujo de trabajo para ejecutar alguna función del contrato inteligente (y obtener el resultado)?
4) ¿Necesitamos ETH para ejecutar alguna función en el contrato inteligente? ¿por qué? ¿Qué sucede en la cadena de bloques cuando se ejecuta (no se implementa)?
Sé que esto podría ser un poco largo para responder, pero estoy bastante seguro de que será una buena referencia para muchos novatos como yo :)
El papel blanco y amarillo de ethereum es un muy buen lugar para comenzar. También: https://medium.com/@preethikasireddy/how-does-ethereum-work-anyway-22d1df506369
Enrique
Nico Vergauwen