Según mi lectura actual, entiendo el contrato inteligente como un código visible y ejecutable en toda la cadena de bloques. El autor puede publicar el código del contrato inteligente y todos pueden verificar el código con el código de operación en la dirección del contrato.
Pero, ¿qué pasa si alguien quiere tener privacidad sobre su contrato inteligente? ¿Cómo si quieren ocultar su implementación detallada (para evitar ataques de piratas informáticos, etc.) mientras quieren que todos accedan y usen su contrato al mismo tiempo?
¿Cómo lograr un contrato inteligente privado entonces?
Los piratas informáticos no pueden manipular su código. Solo pueden ejecutarlo como todas las demás personas. Los contratos inteligentes son resistentes a los piratas informáticos. Si deja un agujero en su sistema para que cualquiera pueda ingresar y ejecutar el código que ven a través de ese agujero. The_Dao no era exactamente un hack, era un exploit, el código estaba escrito de forma incorrecta.
Cualquiera puede ver su código compilado en la cadena de bloques, pero para comprender cómo funciona, generalmente necesitan un código legible por humanos. Si no publica la "versión humana", solo verán el código compilado. Por el momento, no existe ninguna herramienta que permita obtener el código humano a partir del compilado.
Si codificas es MUY fácil (?!?) Entonces tal vez uno pueda entender algo de la versión compilada. Nunca podría reconocer un código escrito por mí si me muestran la versión compilada.
revisa este
https://etherscan.io/address/0x2f593f1809876bf76d0992e0527a19d56b44754c
hay una TAB: código de contrato
haga clic y vea el enlace VERIFICAR Y PUBLICAR, si conoce el código "humano" original, puede publicarlo, el sistema lo compilará y lo comparará con el código compilado existente en línea, si coinciden, se acepta y se muestra, y la gente puede auditar el compilado leyendo la versión humana.
Así es como funciona. Si uso un dapp, puedo encontrar fácilmente en js la dirección del contrato. No se puede ocultar un contrato. Podría llenar el contrato con mucho código basura, por lo que la versión compilada será más compleja, si quiere sentirse más cómodo. Pero hasta ahora nunca he conocido a nadie que se sienta cómodo leyendo el código compilado.
Puede hacer una prueba, escribir un código y ofrecer una recompensa para ver si alguien puede leerlo.
Existen múltiples proyectos y técnicas para hacer que las transacciones sean lo más "privadas" posibles. Por nombrar algunos: Hawk Project, zk-SNARKS, Coinjoin y Ring Signatures. Estos son diferentes en su enfoque y el problema que resuelven.
Hay una excelente publicación de blog de Vitalkik Buterin sobre la privacidad de blockchain y contratos inteligentes, donde se explican con más detalle: https://blog.ethereum.org/2016/01/15/privacy-on-the-blockchain/
Lin
máx.