• Estás a tan solo un e-mail de conocer Bitcoin y operar con él como si tú mismo/a lo hubieras creado.

    Puedes anular tu suscripción cuando quieras.

  • Testnet, la red de pruebas para Bitcoin

    Tiempo de lectura7 minutos

    Bienvenidos a este nuevo capítulo de la Guía Bitcoin Bit2Me. Como ya hemos explicado en Qué es Bitcoin, Bitcoin es un software abierto y “vivo” que está en constante mejora.

    No obstante los programadores no son dioses perfectos, cometen errores. Es por ello que, como todos los programas informáticos, Bitcoin necesita probar sus cambios en entornos de prueba, donde un posible fallo no perjudique el dinero de los millones de personas que utilizan diariamente Bitcoin.

    En este capítulo hablaremos de la red Testnet, para muchos desconocida. La red de los “bitcoins” que no valen nada.

    Testnet Bitcoin

    ¿Qué es Testnet?

    La palabra “Testnet” la verás ocasionalmente a lo largo de tu uso de Bitcoin. Esto es así porque tiene una relación muy directa con Bitcoin, pues es una red idéntica pero usada para pruebas de muchos tipos.

    Y la verás porque, por ejemplo, hay monederos que a la hora de crear una nueva dirección te dan la opción de marcar “Testnet” como red, lo cual hace preguntarse a muchas personas: WTF! ¿Qué es esto?.

    Veamos más en detalle.

    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, en la red Testnet “vive” una criptomoneda idéntica al bitcoin pero con su propio tipo de direcciones y su propio registro de contabilidad, blockchain. Ponemos la palabra vive entre comillas, pues lo único que existe es una contabilidad. Te recomendamos el capítulo dedicado a Qué es Blockchain, si aún no conoces en detalle qué es y cómo funciona.

    En Testnet las direcciones no empiezan por “1” o “3” como en Bitcoin, sino por “m” o “2“. Ejemplos:
    mvN7z3C3GNwTkeEY2tvAQzragtDoiQZ5CF
    2NEPMeQcRF7j3uZvQYqsEQxxdCqEnNgDyXd

    Hay que entender que en Bitcoin, al ser un software de código abierto (open source), cualquier persona puede hacer un simple copia-y-pega de su código fuente, hacerle cuatro cambios y tener su propio clon de Bitcoin: con su propia moneda, el mismo paradigma de minería, … Así de simple.

    Estos clones, a veces absurdos pues no traen ninguna innovación y la gente no se une, pueden llegar a ser interesantes, como en el caso de Testnet.

    Pero Testnet, a diferencia de otros clones de Bitcoin, puede ser arrancado desde Bitcoin Core (el programa oficial de Bitcoin). Es decir, Bitcoin te permite arrancar con los parámetros necesarios para funcionar en Testnet únicamente añadiendo “-testnet” en la llamada para ejecutar el programa de Bitcoin usando una terminal (la línea de comando).

    ¿Por qué se ha creado y está tan integrado?

    Seguro que el  nombre de “Testnet” te da pistas de por qué se ha creado, si no a continuación te dejamos las dos claves para entenderlo:

    • Para mejorar Bitcoin: Es el escenario perfecto donde analizar el funcionamiento de nuevas mejoras. Ofrece una red muy similar a Bitcoin, con las mismas reglas y misma forma de operar. Antes de desplegar un cambio en la versión Mainet se implementa en esta red y se observa el resultado sin grandes consecuencias.
    • Para integrar Bitcoin: Si quieres crear cualquier herramienta que use Bitcoin necesitas poder hacer pruebas de sus transacciones y capacidades trabajando con tu código, pero ese código debe ser totalmente funcional a la hora de trabajar con bitcoins.

    Y es que la diferencia principal de Testnet con Bitcoin es debido a que sus monedas no tienen valor, puesto que minarlas no conlleva ningún coste considerable.

    Imaginemos que alguien propone una mejora para Bitcoin. Una vez se desarrolla esta mejora debe probarse, pues podría romper Bitcoin, pero no puede probarse en un sitio que funcione bajo otra lógica diferente. Esta mejora puede ejecutarse en la red Testnet o incluso en una nueva “Testnet”.

    Este es el caso de la propuesta SegWith, la cual hemos tratado en el capítulo de la Escalabilidad de Bitcoin, y que lleva implementada y analizándose en una red similar a Testnet pero diferente, llamada SegNet, desde el 21 de Diciembre de 2015.

    Actualmente la red Testnet es la tercera “versión” de la red, de hecho se la conoce también como Testnet3.

    • En la primera Testnet, al comienzo de Bitcoin, pasó algo curioso: sus monedas empezaron a tomar valor y a cotizar, se empezó a cambiar por dinero real, por bitcoins.
    • Fue entonces cuando se decidió crear un nuevo bloque génesis y nació Testnet2, la cual tenía otro problema: empezó a aumentar la complejidad de minado a niveles que suponía un coste minarla.
    • Así nació Testnet3, la cual lleva operando desde 2012, que tiene la capacidad de reiniciar la complejidad del minado de forma automática si es necesario.

    Diferencias entre Bitcoin (Mainnet) y Testnet

    Para que Testnet tenga su propia blockchain y direcciones necesita hacerse algunos cambios en el código de Bitcoin. Estas son las 8 diferencias clave:

    • 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. Enlaces al bloque génesis: aquí o aquí. 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 tu. 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.

    Las monedas de Testnet no tienen valor

    Pese a ser una criptomoneda casi idéntica a Bitcoin, como te hemos explicado arriba (tiene 21 millones, se mina el bloque cada 10 minutos,…), esta moneda no tiene valor. No importa que tengas miles.

    Monedas de Testnet no valen nada

    Esto es así porque esta moneda es muy fácil de conseguir, se ha creado para que desarrolladores tengan un entorno donde probar cosas sin perjuicios económicos.

    Consejo: ¡Cuidado con las estafas! Podrían intentar venderte monedas de la red de Testnet. Deberías estar muy despistado y ser muy novato para caer en algo así, pero puede ocurrir. Recuerda cómo empiezan las direcciones de la red Testnet. Ahí no se pueden recibir nunca bitcoins.

    Testnet para aprender a usar Bitcoin

    Testnet es el Bitcoin de los novatos.

    ¿Por qué?

    En ella se mueve una criptomoneda que no cuesta nada de dinero y que la dan gratis pero que funciona con las mismas reglas de Bitcoin, así que es perfecta para el novato que quiere probar cómo funciona Bitcoin sin necesidad de comprar bitcoins: los monederos, mandar y recibir transacciones,… toda la operativa es la misma.

    Visualmente solo verás que cambia la dirección.

    Muchos monederos Bitcoin pueden operar con esta red simplemente apretando un botón y existen webs (llamadas comúnmente faucets) que regalan las monedas.

    Imagina que eres profesor y quieres que tus alumnos experimenten o que quieres hacer tu primera experiencia. Aunque podrías tirarte al barro y hacerlo con dinero real, también puedes hacerlo en Testnet.

    Solo deberías seguir los siguientes pasos:

    1. Descarga el monedero de Bitcoin llamado Copay, el cual tiene soporte para Testnet (está disponible para todo tipo de dispositivos).
    2. Una vez abierto pulsa en el botón del menú “Agregar nuevo monedero”.
    3. En la nueva pantalla pulsa en “Crear monedero nuevo”.
    4. En la nueva pantalla desplega las opciones avanzadas y pulsar la opción testnet para activarlo.
    5. Aprieta en el botón de crear.
    6. Una vez creada puedes pulsar en el botón de “Recibir” y copiar la dirección que te muestra.
    7. Accedes a algún faucet Testnet, por ejemplo este, e introduces la dirección copiada (Al final del post tienes unos cuantos faucets más).
    8. En unos segundos o minutos recibirás tus monedas de Testnet en tu monedero.
    9. Una vez las tengas ya puedes mandarlas a otras direcciones Testnet.

    Esta puede ser una experiencia genial, que no lleva más de 15 minutos, para tener un contacto directo y sin necesidad de bitcoins con la tecnología y el potencial de Bitcoin.

    bitcoin novato

    Minería

    Como hemos dicho, las monedas de la red Testnet se regalan, es decir: la complejidad de minar en Testnet es ridícula. Con un ordenador viejo puedes minar por CPU sin parar, con un coste extra de luz casi cero.

    Testnet está pensada para tener una complejidad muy baja no obstante, en cada bloque y como ocurre en Bitcoin, esta va aumentando.

    Esto quiere decir que la complejidad podría elevarse tanto que nadie minase, pues son monedas que no tienen valor. Para resolver esto, y es una diferencia de Bitcoin que con Testnet3 se añadió, Testnet está diseñada para que cuando no pueda minarse un bloque debido a su complejidad, esta pase automáticamente a niveles muy bajos: se “reinicia” la complejidad.

    Tamaño del Blockchain

    Como hemos indicado, Testnet tiene su propio registro de contabilidad, blockchain. Pero este registro no tiene la actividad frenética del de Bitcoin. Mientras el Blockchain de Bitcoin roza ya los 100 GB, el de Testnet apenas supera a los 8GB.

    Tamaño del Blockchain de Testnet
    Tamaño del Blockchain de Testnet – Ver en tiempo real aquí

    Y que pasa cuando la cadena ocupa mucho? Pues una cadena de bloques de muchos gigas también podría hacer inmantenible su mantenimiento si no hay incentivos. Lo curioso es que antes de tomar un tamaño relevante se terminan las monedas a emitir.

    Monedas en circulación en Testnet
    Monedas en circulación en Testnet – Ver en tiempo real aquí

    Como puedes observar ya están a punto de emitirse los 21 millones límite, algo que en Bitcoin se espera para el año 2140.

    ¿Casi 21 millones de monedas emitidas en solo 4 o 5 años?

    Parece algo extraño, pues si a cada bloque se liberan una cantidad de monedas bajo las mismas reglas de Bitcoin y decíamos que Testnet tiene la misma lógica de minado que Bitcoin, deberían tardar también unos 120 años, 10 minutos de media por bloque.

    El motivo de esto es debido a la funcionalidad comentada anteriormente de Testnet3: cuando la complejidad aumenta se reinicia, y permite que muchos bloques puedan minarse en menos tiempo, reduciendo la media de tiempo por bloque en mucho.

    Es decir, mientras que en Bitcoin se puede tardar alrededor de 1000 minutos para minar 100 bloques, Testnet tarda mucho menos, tal vez entre 100 y 200 minutos (es solo una estimación viendo los gráficos)

    ¿Y qué pasa si se emiten los 21 millones? Posiblemente se acuerde una nueva Testnet. la 4, pues el objetivo es no tener valor para que constantemente estén generándose monedas que permitan hacer pruebas que mejoren Bitcoin y su ecosistema.

    RegTest

    El software Bitcoin Core cuenta también con la configuración predeterminada de una red aún más desconocida (pese a estar definida en su documentación), la llamada RegTest (test de regresión), que también puede arrancarse con un parámetro en la línea de comando.

    > bitcoind -regtest -daemon
     Bitcoin server starting

    Fue añadida a la versión Bitcoin Core 0.9.0, que se lanzó en marzo 2014, y se creó como un modo de pruebas alternativo.

    Esta red puede ser utilizada para crear Blockchains con las mismas características que Testnet pero solo entre nodos que nosotros deseemos. Es decir, con este modo podemos crear blockchains privadas que operan bajo nuestro control.

    Algunos desarrolladores opinan que es una de las vías perfectas para empezar a crear nuevas funcionalidades y hacer investigaciones con la tecnología Blockchain, todo ello bajo un entorno 100% controlado.

    Recursos

    Finalmente os queremos compartir una colección privada de los recursos que, desde Bit2Me, consideramos más importantes y que necesitarás sea cual sea tu objetivo.

    Faucets Testnet (Monedas gratis)

    Explorador Blockchain Testnet

    Monederos compatibles con Testnet

    Servicios API compatibles con Testnet

    Conclusión

    Como has podido ver, Testnet permite que Bitcoin mejore, permite que personas se acerquen al mundo de las criptomonedas sin miedo y te deja la puerta abierta a entender cómo crear tu propia cripotomoneda y empezar a buscar la forma de personalizarla.

    ¡No te quedes aquí! Te animamos a seguir leyendo los capítulos de la Guía Bitcoin para comprender en profundidad una de las revoluciones más importantes que está ocurriendo hoy mismo.

    Y si tienes curiosidad de ver como se pone en funcionamiento una red Testnet en un ordenador con Linux, te dejamos este vídeo (en inglés) que nos muestra en vivo su preparación:

     

  • Compra Bitcoin () VENDE Bitcoin ()

    Estás a tan solo un e-mail de conocer Bitcoin y operar con él como si tú mismo/a lo hubieras creado.

    Puedes anular tu suscripción cuando quieras.