Pregunta básica sobre contrato inteligente distribuido

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 

Respuestas (3)

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).

Gracias, ¿no estamos implementando el código Byte? ¿Cómo se puede ver el contrato? ¿Puede señalarme algún contrato que esté abierto a todos?
Sí, se implementa como código de bytes. Pero en el navegador blockchain como etherscan.io, incluso puede navegar por el código. Un ejemplo está aquí: etherscan.io/address/…
El 'código fuente' solo está disponible si alguien lo publica en Etherscan y lo verifica. Esto es opcional por parte del editor por contrato. Lo requiero de cada contrato inteligente con el que interactúo, o simplemente no interactúo con ese contrato.

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.