Pregunta básica sobre contrato inteligente distribuido. Supongamos que estoy escribiendo un contrato inteligente y desplegándolo en una red pública.
My Contract Specification
• My contract would allow anyone to register.
• Fund 10 Ether to the contract
• Contract will in turn return 12 Ether on Dec 31st 2017
El propietario del contrato por error en lugar de limitarlo al 31 de diciembre, mencionó el 31 de enero en el contrato.
Escenario:
• Owner A sits in USA, deploys the contract in public chain
• User B from Australia funds 10 ether to the contract on August 31st, 2017
• User B now expects 12 Ether on Dec 31st but he never receives it .
Pregunta
Even though the contract is distributed among all the nodes,
1. How would user B come to know what is written in the contract ( assuming B has zero coding knowledge) ?
2. If only User B is interested in this contract, who will verify this smart contract
El contrato inteligente una vez implementado en Ethereum es público y se puede ver. Uno tendría que saber a qué se está suscribiendo revisando el contrato inteligente (no hay otra salida).
Si soy el usuario B, solicitaría al usuario A el código fuente del contrato y todas las instrucciones necesarias para verificar que el bytecode generado coincida con el código fuente. Si no sé nada sobre contratos inteligentes, debería solicitar ayuda a alguien que los conozca.
Como pasa en la vida real, si quieres firmar un contrato haces que alguien en quien confíes los revise. Evidentemente depende del contrato, para un contrato más serio quizás prefieras a un profesional, para un contrato más sencillo puedes preguntar por internet.
Puede verificar y publicar el código en etherscan.io. Después de eso, cualquiera que vaya a esa dirección de contrato sabrá cuál es el código.
sol
reynalnaruto
thomas jay prisa