Introducción a Janus

Qtum utiliza la máquina virtual Ethereum (EVM) para permitir contratos inteligentes en nuestra blockchain. Debido a que Qtum es un fork de Bitcoin, pertenece a la familia de proyectos “Salida de transacciones no gastadas” (UTXO). El razonamiento para esto es vasto y podría ser un artículo extenso. La capacidad de aprovechar el trabajo de desarrollo ascendente permite que Qtum se adapte rápidamente. Por ejemplo, Qtum puede integrar la nueva funcionalidad Taproot de Bitcoin en lugar de diseñar una versión nativa desde cero. Esto también significa más compatibilidad con versiones anteriores, seguridad y descentralización.
Volvamos al tema de los contratos inteligentes. Los desarrolladores pueden portar sus aplicaciones descentralizadas de Ethereum (DApps) o construirlas de forma nativa en Qtum. Esto se logra a través de la “Capa de cuenta abstracta” (AAL), una capa de middleware entre EVM y Qtum. Esto está bien para copiar / pegar contratos, como un grupo de liquidez de Uniswap o un script de airdrop. Sin embargo, ¿qué sucede cuando intentas construir un ecosistema como SushiSwap que hace uso de oráculos, etc.? Entonces necesita un entorno de caja de arena completo que imite de manera efectiva Ethereum llamada por llamada.
La implementación de Qtum de Janus logrará esto, permitiendo a los desarrolladores acceder a un entorno que imita a Ethereum al tiempo que proporciona algunas peculiaridades de Qtum. La gente puede preguntarse cuál es el punto, ¿por qué no simplemente basarse en Ethereum? Las respuestas típicas sobre las altas tarifas del gas y las transacciones lentas son válidas, pero planeamos profundizar en esto. Debido a la naturaleza híbrida de Qtum, las mejores partes de Bitcoin y otras blockchains UTXO estarán disponibles en un entorno nativo. Esto significa tener acceso al Taproot de Bitcoin, junto con la nueva máquina virtual “evmone”, que combinados son muy poderosos. Ninguna otra blockchain puede ofrecer esta combinación amplificada. Incluso puede ser posible aplicar esta funcionalidad para compatibilidad con Solana, NEAR y Cosmos. Cubriremos esto en la siguiente sección.
¿Cuál era la necesidad de Janus?
Janus fue creado para adaptar la capa RPC (Llamadas a procedimientos remotos) de Qtum para ejecutar comandos de estilo Ethereum. Por el momento, Qtum había estado usando la biblioteca de comandos RPC de Bitcoin y usó un par de llamadas personalizadas que, aunque más simples, simplemente no cumplen con Ethereum, que es donde se han escrito muchas de las aplicaciones DeFi y NFT. Además, escribir en Go en lugar de C ++ también puede ser un poco más rápido para exponer varias funciones que enfatizan las fortalezas y los paralelos únicos del modelo UTXO que podrían exponerse de manera más clara a través de espacios de nombres nativos (qtum_OpSenderGasRelay, qtum_batchEthTransactions, qtum_executeEVMInParallel, etc. .).
La diferencia entre Qtum y Ethereum es el modelo de cuenta. Qtum se basa en UTXO y tiene una capa de abstracción de cuentas (AAL) para hacer el mapeo internamente. Aún así, la firma de transacciones es fundamentalmente diferente y debe tenerse en cuenta al migrar aplicaciones.
Para solucionar este problema, Qtum ha decidido crear Janus, un adaptador que mapeará varios comandos RPC directamente en un idioma que Qtum pueda traducir fácilmente. El adaptador recibe una solicitud RPC en formato ETH, transmite la solicitud correspondiente a Qtum y devuelve una respuesta traducida al usuario que interactúa con Qtum como si fuera un proveedor web3. Esto también ofrece la ventaja de crear una capa que pueda comunicar y traducir las plataformas nativas entre muchas soluciones de blockchain como Solana, NEAR y Cosmos.
¿Cómo funcionará Janus?
Janus implementa Ethereum JSON RPC y usa la misma API para consultar y extraer información de la blockchain. Dado que Qtum ya admite contratos inteligentes, los desarrolladores solo deberán implementar contratos y apuntar sus aplicaciones a los contratos implementados y a Janus.
Dado que Janus es un software de servidor, no puede contener las claves privadas de los usuarios, por lo que la firma de transacciones debe realizarse en el cliente. Está destinado a actuar como geth en ese sentido, puede importar sus claves privadas a Janus / qtumd (el nodo / billetera del deamon de Qtum) y apuntar sus aplicaciones hacia él y dejar que Janus / qtumd firme sus transacciones, y funcionará, pero es una gran barrera de entrada, razón por la cual MetaMask ha llegado para firmar en el cliente. Janus también ha implementado la firma de transacciones como un módulo ethers-js.
Janus también ha implementado la firma de transacciones como un módulo ethers-js. Por ejemplo, “qtum-ethers” es una biblioteca web3 popular que permite que cualquier aplicación que utilice la biblioteca “ethers” sea portada con relativa facilidad. Haga clic aquí para ver cómo funciona.
¿Cómo pueden los desarrolladores utilizar el módulo ethers-js en Qtum? Para eso, necesitarán usar el fork MetaMask de Qtum llamada “Qnekt”. La única diferencia entre las aplicaciones que usan Ethereum MetaMask y Qtum Qnekt será cómo la aplicación que inicializa las cosas.
Los desarrolladores deberán hacer referencia a window.qtum en lugar de window.ethereum para interactuar con nuestra extensión de navegador. La razón por la que se hace esto es para reducir la confusión con la interacción de la billetera. Solana MetaMask también hace lo mismo.
¿Cómo mejorara Janus a Qtum?
Crear una blockchain programable sin dejar de ser fiel al modelo UTXO original fue algo que Qtum planeó hacer desde el principio. Con la implementación de Janus, Qtum permitirá a los desarrolladores migrar el rico ecosistema que han creado sobre Ethereum a Qtum. Para entender por qué esto es tan valioso, revise esto.

El snapshot de arriba muestra el valor total bloqueado (TVL) en el ecosistema de finanzas descentralizadas (DeFi) de Ethereum. Sí, leíste bien: ¡169.000 millones de dólares! Más importante aún, tenga en cuenta que este número es menos de mil millones de dólares antes de 2020. Esto se debe a que DeFi se ha disparado exponencialmente en los últimos dos años.
La envoltura de Janus permitirá a los desarrolladores migrar fácilmente estas aplicaciones a Qtum y beneficiarse significativamente de las tarifas reducidas del gas.
Hay otra cosa interesante que necesitamos que mires. Según DappRadar, estas son las 10 principales aplicaciones basadas en Ethereum, por usuarios durante 24 horas.

Las 10 aplicaciones principales han tenido más de 85.000 usuarios activos en 24 horas (finales de noviembre). En otras palabras, Janus no solo permitirá a los desarrolladores migrar sus aplicaciones, sino que inevitablemente migrarán una parte significativa de su base de usuarios existente. Esto será muy valioso para el potencial de crecimiento a largo plazo de Qtum.
¿Por qué? Considere la ley de Metcalfe. La ley establece que “el valor de una red de telecomunicaciones es proporcional al cuadrado del número de usuarios conectados del sistema”. Para visualizar esto, considere el siguiente diagrama.

- Dos teléfonos pueden hacer una sola conexión.
- Cinco pueden hacer 10 conexiones.
- Doce pueden hacer 66 conexiones.
Como puede ver, la correlación entre los usuarios y la utilidad real es directa y exponencial. Por lo tanto, creemos que Janus ayudará a impulsar la utilidad de la red Qtum de manera exponencial según la Ley de Metcalfe.
Conclusión
El futuro del ecosistema criptográfico radica en establecer una interoperabilidad adecuada. Janus permitirá que Qtum se sincronice fácilmente con el ecosistema de Ethereum y permitirá a los desarrolladores crear aplicaciones de múltiples cadenas.
Referencia
GitHub Qtumproject Janus https://github.com/qtumproject/janus