Una red testnet es una herramienta imprescindible en el desarrollo de criptomonedas como Bitcoin. Gracias a este tipo de redes los equipos de desarrollo pueden hacer pruebas sin afectar el funcionamiento de la red original.
Una red testnet es una copia casi idéntica de la blockchain de una criptomoneda que tiene dos objetivos principalmente:
- Probar cambios en el protocolo de la criptomoneda sin riesgo.
- Que desarrolladores externos puedan integrar la criptomoneda / protocolo en su aplicación pudiendo hacer pruebas sin coste alguno.
Comercialmente antes de lanzar un producto al mercado es probado hasta la saciedad para certificar que funciona correctamente. Lo mismo pasa con las criptomonedas y sus protocolos. Antes de implementar nuevos cambios en la blockchain pública de cualquier criptomoneda se realizan pruebas (tests) para comprobar que todo funciona correctamente.
Características de una testnet
Las redes tipo testnet utilizan su propia criptomoneda que es una copia del activo de la cadena original. La interacción con ellas no tiene ningún reflejo en las blockchains públicas de las criptodivisas originales. Están fuera de la red blockchain natural situándose en una testnet donde se puede probar todo el código sin afectar a la blockchain principal.
Para estas blockchain de desarrollo, los equipos de programadores generan bloques génesis ligeramente diferentes. Con ello, se crea un marcador en los bloques y en las posibles monedas generadas. Esto impide que se añadan a la blockchain operativa (también conocida como mainnet). A consecuencia de esto, es imposible transferir criptomonedas desde una blockchain activa a una testnet y viceversa. De esta forma, los desarrolladores garantizan la separación de las dos blockchain evitando que alguien consiga lucrarse de forma fraudulenta.
Otra característica de las testnets es que el algoritmo que regula la dificultad de minado de sus monedas está capado para que esta no aumente. De este modo, la minería de criptomonedas de una testnet es demasiado fácil, anulando el valor de las monedas obtenidas.
Salvo estos pequeños detalles y alguno más, sin importancia a este nivel, el resto de elementos son idénticos. Esto es importante que sea así porque debe garantizarse que si algo funciona correctamente en la Testnet también lo haga en la Mainnet (el blockchain público).
Una red de pruebas (también para usuarios)
La Testnet es responsable de poder ejecutar las actualizaciones en la Mainnet sin mayores problemas. Esto es así porque primero se realiza este proceso en la Testnet a modo de simulacro. Los equipos de desarrollo cargan las actualizaciones en la red de pruebas, donde aprovecharán para efectuar sus propios análisis. Durante este proceso, buscan detectar errores en el código o ver cómo afecta la nueva programación a la blockchain de pruebas.
Como puedes observar, este entorno de pruebas o «sandbox» es necesario para contener cualquier tipo de imprevisto. Y es que con este método los equipos responsables del progreso de estos proyectos, son conscientes de las consecuencias que podría tener probar los cambios en directo. Si se actualizase una blockchain con un update que contuviese errores, podría haber millones de afectados en segundos. Y no solo eso, los usuarios perderían la confianza en el uso de esa tecnología concreta.
Tras encontrar posibles errores y depurar el código, comprobado que es seguro y que no hay consecuencias negativas en la blockchain de pruebas, se podrían implementar estas actualizaciones en la blockchain pública. Aunque justo antes que sucediese esto, deberían de ser previamente aprobadas por los nodos en forma de votación democrática.
Empieza en Bit2Me y salta al mundo de las criptomonedas con ventaja. Regístrate fácilmente y consigue 15€ GRATIS en tu primera compra con este enlace. ¡No esperes más para unirte a la revolución cripto! Registrarme
Diferencias entre una mainnet y una testnet
A Bitcoin se le asocian dos redes, aunque son redes totalmente separadas:
- Mainnet: Red principal
- Testnet (o Testnet3): Red de pruebas
Mientras que en la red Mainnet viven los bitcoins que conocemos, en la red Testnet «vive» una criptomoneda idéntica al bitcoin pero con su propio tipo de direcciones y su propio registro de contabilidad o blockchain. Ponemos la palabra vive entre comillas, pues lo único que existe es un registro de contabilidad. Para que tengas una mejor idea mira el siguiente ejemplo:
En Testnet las direcciones no empiezan por «1» o «3» como en Bitcoin, sino por «m» o «2«. Ejemplos:
mvN7z3C3GNwTkeEY2tvAQzragtDoiQZ5CF
2NEPMeQcRF7j3uZvQYqsEQxxdCqEnNgDyXd
Esta diferencia parece pequeña, pero es la que garantiza que sea imposible enviar bitcoin desde mainnet a la testnet. Esto debe ser así porque las monedas de testnet carecen de valor alguno. La razón es que minar monedas en testnet es muy sencillo, tan sencillo que cualquier computador puede hacerlo. Esto obviamente no se compara con la dificultad y la inversión que debe hacerse para lograr el mismo cometido en la red Mainnet.
Pero si deseas saber más sobre cómo toma su valor el Bitcoin te recomendamos leer este otro articulo.
Otras diferencias entre mainnet y testnet son las siguientes:
- Testnet usa un valor diferente en el parámetro ADDRESSVERSION. Este parámetro es el que acaba creando direcciones diferentes y por eso ninguna dirección de Testnet funciona en Bitcoin. Mientras que Bitcoin usa 0x00 en Testnet se usa 0x6F. Es algo clave para que se puedan identificar visualmente.
- La red Testnet utiliza un bloque Génesis diferente al de la red Bitcoin principal. El bloque Génesis es la semilla del cual empieza a crearse el libro de contabilidad, el blockchain. Solo cambiando el bloque Génesis se empieza una nueva criptomoneda, pues empiezas un nuevo libro de contabilidad.
- La comprobación IsStandard() escrita en el código de Bitcoin se desactiva en Testnet, lo que permite un escenario perfecto para experimentar con transacciones y nuevas ideas.
- En el arranque de Testnet usa diferentes semillas de DNS.
- La cabecera de los mensajes del protocolo es 0x0B110907 en vez de 0xF9BEB4D9 que se usa en Bitcoin.
- El programa de Bitcoin es un nodo de una red P2P y necesita comunicarse con otros nodos de la red. Normalmente usa el puerto 8333 del ordenador, pero en modo Testnet usa el puerto 18333 para poder operar ambos modos al mismo tiempo en un mismo ordenador. Un puerto son puntos de entrada y salida de información que todos los ordenadores tienen.
- El programa de Bitcoin también permite comunicarse con otros programas, por ejemplo los que como desarrollador puedes crear tú. Este es el puerto usado para el protocolo RPC. Testnet usa 18332 mientras que Bitcoin usa 8332.
- Si un bloque no ha sido encontrado en 20 minutos, la dificultad se reinicia automáticamente.
Testnet Bitcoin
La Testnet de Bitcoin se lanzó en septiembre de 2010 como una red de prueba para permitir a los desarrolladores experimentar y probar nuevas características sin arriesgar bitcoins reales en la red principal. Aquí hay una visión general de cómo ha evolucionado desde entonces:
1. Lanzamiento inicial: la Testnet se lanzó con el objetivo de proporcionar un entorno seguro para que los desarrolladores probaran sus aplicaciones y experimentaran con características de Bitcoin sin afectar la red principal.
2. Versiones y actualizaciones: a lo largo de los años, la Testnet ha seguido de cerca las actualizaciones y mejoras realizadas en la red principal de Bitcoin. Las versiones de la Testnet se alinean con las versiones de software principales de Bitcoin, lo que permite a los desarrolladores probar nuevas características y actualizaciones antes de que se implementen en la red principal.
3. Desarrollo de aplicaciones y herramientas: la Testnet ha sido fundamental para el desarrollo de numerosas aplicaciones, herramientas y servicios relacionados con Bitcoin. Los desarrolladores pueden crear y probar aplicaciones como billeteras, intercambios, exploradores de bloques y más en un entorno seguro antes de lanzarlas en la red principal.
4. Pruebas de seguridad y escalabilidad: la Testnet también se ha utilizado para realizar pruebas de seguridad y escalabilidad. Los desarrolladores pueden simular diferentes escenarios de ataque y evaluar la resistencia del sistema antes de implementar cambios en la red principal.
5. Comunidad y colaboración: la Testnet ha fomentado la colaboración y el intercambio de ideas dentro de la comunidad de Bitcoin. Los desarrolladores pueden compartir sus experiencias, problemas y soluciones mientras trabajan en el desarrollo de nuevas aplicaciones y características.
En resumen, la Testnet de Bitcoin ha sido una herramienta invaluable para el desarrollo y la experimentación en el ecosistema de Bitcoin, proporcionando un entorno seguro para probar nuevas características y mejorar la red principal.