Preparación para la implementación en mainnet
Antes de realizar la implementación en la red principal de Ethereum, debe probar y auditar completamente el código. Para trabajar en la red principal se necesita ether real, que cuesta dinero de verdad y puede aumentar rápidamente.
Después de desarrollar, probar y auditar el código, ejecute el proyecto en al menos una testnet y resuelva los problemas. La mayoría de los proyectos siguen un proceso completo antes de que se implementen en la red principal. El proceso incluye auditoría, pruebas, seguridad y gobernanza. Este proceso minimiza los riesgos y los costos de los problemas en la red principal.
El proceso de preparación e implementación en la red principal de Ethereum implica una serie de pasos:
- Auditar contratos inteligentes.
- Comprobar el código fuente.
- Administrar las claves.
- Controlar la gobernanza del proyecto.
En las secciones siguientes se describen los pasos de este flujo.
Auditoría de contratos inteligentes
Es fundamental auditar y evaluar la seguridad de los contratos inteligentes antes de realizar la implementación en una red pública. Una vez que se ha implementado un contrato inteligente, cualquier usuario de la red puede enviar una transacción directamente a sus contratos mediante cualquier carga útil. Todo el código fuente del contrato y el estado del contrato están disponibles de forma pública.
Como las transacciones en las cadenas de bloques son inmutables, después de confirmarlas son permanentes. Las transacciones pueden dar lugar al robo de fondos y otras actividades malintencionadas. Por tanto, audite los contratos inteligentes antes de la implementación.
Comprobación del código fuente
Justo después de implementar su contrato en mainnet, compruebe el código fuente del contrato inteligente mediante el envío del código de Solidity a un tercero. Los servicios públicos como Etherscan compilan el código del contrato y lo comprueban con el ensamblado implementado. Este proceso permite a los usuarios que ven el código del contrato en un explorador de bloques confirmar que el contrato corresponde al ensamblado que se ejecuta en esa dirección.
Para comprobar y publicar el código fuente de Solidity, escriba primero el código fuente del contrato. Si el código de bytes generado coincide con el código de bytes de la dirección de creación existente, el contrato se verifica. Después, se publica el código fuente del contrato y cualquiera puede comprobarlo públicamente.
Administración de claves de forma segura
Es fundamental administrar de forma segura las claves privadas cuando se realiza la implementación en mainnet. En este paso se deben tomar muchas precauciones para evitar que las claves privadas se vean en peligro, se pierdan o se roben.
Las claves administradas de forma incorrecta han dado lugar a robos y pérdidas importantes. Las cuentas que usará para implementar e interactuar con los contratos inteligentes contienen ether real. Son el objetivo de los hackers. Las formas comunes de almacenar claves privadas de forma segura incluyen las carteras de hardware y el almacenamiento en reposo, que son equipos que nunca se conectan a ninguna red.
Control de la gobernanza del proyecto
Los proyectos descentralizados se administran de maneras diferentes, en función de la comunidad y de la base de usuarios. A menudo, se crean organizaciones para determinar cómo administrar las actualizaciones y otros aspectos del sistema descentralizado en ejecución.
La gobernanza del proyecto se puede administrar de varias maneras. Un pequeño grupo de administradores de confianza puede realizar la gestión, o bien con un voto público de todas las partes interesadas del proyecto. No hay una sola respuesta correcta. La decisión dependerá de la solución que se va a crear y de la comunidad y los usuarios de destino.