Cómo diseñar aplicaciones para servicios financieros en blockchain

Aplicaciones de servicios financieros en Ethereum

Si eres el fundador de una start-up o el líder de una empresa con planes de lanzarse a las aplicaciones de servicios financieros en Blockchain. Esta guía es para ti. Puede que te estés preguntando qué son y cómo se usan las cadenas de bloques para estas actividades.

Los expertos en el comportamiento de la industria resaltan el crecimiento sostenido del blockchain en el mercado de servicios financieros. Uno de los últimos reportes de Markets and Markets indica que el mercado de las FinTech blockchain crecerá de 0,23 mil millones de dólares en 2017 a 6.2882 mil millones en 2023. El reporte también proyecta una CAGR (tasa de crecimiento anual compuesto)  de 75,9% durante el periodo 2018-2023. Para aprovechar este escenario, te exploramos todo sobre el diseño de apps para servicios financieros en blockchain.

¿Qué clase de blockchain usaremos, pública o privada?

El primer paso es decidir el tipo de cadena de bloques a usar. Esto dependerá del modelo de tu negocio. Algunos escenarios posibles para tomar esta decisión incluyen:

Servicios financieros o productos exclusivamente a los clientes registrados

 En este modelo, tendrás que contar con un proceso KYC para registrar a los clientes y brindarle acceso a aplicaciones de servicios financieros de forma restrigida. Necesitaras una blockchain con sistemas de permisos. Las cadenas de bloques de empresas son de este tipo, pemritiendo controlar el acceso y que solamente las partes confiables observen información sensible. Las plataformas para trabajar de esta forma incluyen a: Hyperledger Fabric, R3 Corda y ConsenSys Quoruom.

Servicios financieros o productos para cualquier usuario

En este escenario incluimos a usuarios anónimos o que utilicen pseudónimos. Cualquier persona puede visualizar las transacciones y no hay un control de acceso. Si quieres lanzar una aplicación de servicios financieros descentralizados, entonces una blockchain pública es la opción para tu negocio.

Muchos emprendedores han construido sus aplicaciones DeFi, utilizando la plataforma Ethereum, y el motivo principal radica en sus características. El desarrollo de aplicaciones se puede hacer mediante EVM (Ethereum Virtual Machine), una computadora descentralizada que los desarrolladores pueden utilizar para desarrollar DApps. Utilizan el lenguaje Solidity para contratos inteligentes, piezas de código abierto con la estructura “Sí-entonces-algo”. Los contratos se ejecutan de forma autónoma y transfieren activos criptográficos basados en condiciones predefinidas. Además, sin inmutables y sus resultados de ejecución irreversibles. Otro aspecto sobresaliente son las herramientas de desarrollo blockchain de Ethereum. Un ecosistema que abarca redes de prueba, ambientes integrados de desarrollo y herramientas de despliegue para expandir el alcance de las apps.

Contrata un equipo de desarrollo de software y trabaja de manera estructurada

Para desarrollar tu aplicación debes contar con un equipo y un esquema de trabajo bien definido. Analizaremos los pasos para que este equipo funcione y tenga todos los actores necesarios para alcanzar el objetivo final.

La creación de tus aplicaciones para servicios financieros requiere un supervisor de proyecto, un arquitecto, analista de negocios, diseñador de interfaz, desarrollador web, desarrollador de Ethereum y testers.

Cada contratación tiene sus características, pero como consejos puedes tomar en cuenta las siguientes cuestiones: tu supervisor de proyecto debe tener experiencia en las cadenas de bloques y sus apps. El arquitecto debe tener conocimientos para incorporar medidas de escalabilidad y soluciones técnicas. En cuanto a los analistas de negocio, tienen que contar con un buen entendimiento del ecosistema DeFi de Ethereum.

Al trabajar de forma estructurada, irás incorporando a cada actor en momentos diferentes. Necesitas el tiempo suficiente para definir el alcance de tu proyecto y el tipo de público y funciones que abarcarán. Asimismo, los desarrolladores de apps en blockchain recién tendrán un importante cúmulo de trabajo cuando tengamos la idea ya formada, y son costosos. Lo conveniente es contratarlos más adelante, cuando tengamos en claro lo que deseamos desarrollar. Como fecha límite, el equipo tiene que estar completo antes de ingresar en la etapa de codeo.

Define el enfoque del proyecto y planifica

Tu equipo de desarrollo debe conocer los objetivos de los servicios financieros que quieres construir. Pensando en las aplicaciones DeFi actuales, puedes encontrar diferentes tipos:

Aplicaciones de pago global; stablecoins; aplicaciones descentralizadas de préstamos; Exchanges descentralizados. Cada una de estas apps, y existen otras, ofrece una solución distinta y un método de trabajo diferenciado.

Los analistas de mercado de tu equipo hablarán con accionistas e inversores para entender qué buscan y en qué les gustaría invertir. Posteriormente, se trata de trabajar en las herramientas de desarrollo, las soluciones de escalabilidad, la carga de recursos y las tareas y agenda del proyecto para llegar a las fechas establecidas.

MetaMask como herramienta para servicios financieros en blockchain.

Instala herramientas de desarrollo y testeo para tus apps de servicios financieros

Con el resto del equipo de desarrollo ya trabajando, tendrán que instalar MetaMask, la cripto billetera que permite conectar apps basadas en blockchain y así conectar a Ethereum, por ejemplo. Está disponible como aplicación móvil o como extensión para navegadores web. Puedes comprar y almacenar ETH en tu billetera MetaMask. Para el testeo de tu aplicación Ethereum, necesitaras Ether de prueba, se consigue desde MetaMask.

Ganache es otra app que tus desarrolladores deben instalar. Se trata de un cliente blockchain que se puede utilizar para desarrollar DApps en Ethereum. Los programadores pueden usarla para hacer pruebas y ejecutar comandos.

La API JavaScript para Ethereum, Web3.js, es una colección de librerías que se usa para interactuar con nodos de la red. Además, deben utilizar la colección de herramientas Truffle Suite que incluye un marco para testear apps. Incluso permite desplegar contratos inteligentes.

Configura las herramientas

Para configurar MetaMask, crea tu cuenta y asegura las claves. Conecta a la red Ethereum en “modo desarrollador” y activa una conexión a la red de testeo Ropsten. Para Ganache, Web3.js y Truffle, simplemente debes seguir los pasos tal cual lo indica la interfaz de usuario. Es un proceso relativamente sencillo, e incluso se incluye la documentación de configuración inicial entre los documentos de cada una de ellas.

Diseño y desarrollo de interfaz para DApps de servicios financieros

Si ya tenemos instaladas y configuradas las herramientas, podemos comenzar el proceso de codeo. Diseñar y desarrollar  la interfaz es un paso clave para lograr un estilo de app amigable. Para desarrollar la interfaz puedes utilizar JavaScript, HTML y CSS. Incluso puedes optar por marcos de desarrollo como Angular o React.js.

Contratos inteligentes para los servicios financieros en Ethereum.

Encodea contratos inteligentes

Encodear tus conratos inteligentes es una etapa fundamental para el correcto funcionamiento de las aplicaciones de servicios financieros. Las DApps de Ethereum son de código abierto, y los ingenieros pueden revisar los contratos de otros proyectos para inspirarse y utilizar ideas interesantes y prácticas.

También puedes revisar contratos inteligentes de proyectos relevantes. Como recomendación, conviene revisar DApps que tengan un funcionamiento similar o acorde a lo que estás tratando de diseñar.

Para el encodeo de tus contratos puedes usar Remix IDE. Siempre se recomienda que el código sea lo más simple posible. Esto responde a dos razones: mientras más compleja es la lógica del contrato, más costoso será en gas (por la energía computacional requerida); y porque el mantenimiento y corrección de los contratos es más sencillo si la lógica se mantiene simple. Mantén la información de tus contratos bien organizada, con herramientas como Truffle para que acceder a la documentación sea rápido.

Implementa un proceso de auditoría estructurado para contratos inteligentes

Auditar de manera exhaustiva tus contratos inteligentes es muy importante para la transparencia de los procesos financieros. Los contratos inteligentes no se pueden modificar una vez desplegados, por eso testear y reisar el código es doblemente importante. Los testers no pueden detectar todos los bugs, por eso el análisis a fondo del código te ayudará a sortear dificultades. Si implementas un trabajo de auditoría estructurado, con pasos claros y tareas bien repartidas, encontrarás cualquier bug mucho más temprano.

Los revisores de código son un grupo difícil de encontrar, más aún en el desarrollo de aplicaciones para servicios financieros y apps descentralizadas de Ethereum. Planea un buen presupuesto con este concepto en mente, te ahorrará dolores de cabeza.

Entre las tareas que realizarán los auditores estará: la revisión de los contratos y el significado de cada uno de ellos; la revisión preliminar del código; detectar oportunidades para optimización del código; y búsqueda de posibles vulnerabilidades. Entre las vulnerabilidades más comunes de los contratos inteligentes podemos hallar control de acceso, reentrancia, denegación de servicios o bugs aritméticos. Los auditores y revisores de códigos serán los encargados de detectar y modificar estos parámetros para reducir los riesgos que se vayan detectando.

Prueba de contratos inteligentes para servicios financieros

La prueba del funcionamiento de tus contratos inteligentes es el paso previo al lanzamiento al público. Debes diseñar un plan de testeo coherente y preciso, permitiendo a los encargados de la prueba tomar nota y trabajar con atención en la detección de fallas. Con los siguientes pasos podrás armar un plan a tu medida para testear diferentes situaciones.

Compra Ethers dummy en MetaMask y conecta MetaMask a Ropsten. Navega hasta Remix IDE y utiliza las opciones del menú para desplegar tu contrato inteligente. Confirma la acción desde MetaMask y prueba el funcionamiento del contrato siguiendo el plan que hayas diseñado con casos testigo y posibles problemas.

Despliegue de contratos inteligentes

Una vez probados y revisados los códigos del contrato inteligente, llega el momento de desplegarlos de forma pública. El proceso es similar al de las pruebas, pero utilizando ETH real. Puedes comprar el Ether en un Exchange, como Binance, y guardarlo en tu billetera MetaMask. Para desplegar los contratos inteligentes en la red principal de Ethereum deberas contar con ETH.

Revisa que Ganache esté funcionando y navega a través del directorio Truffle en donde tienes organizados los contratos. El comando “desplegar” de Truffle te permitirá que tus contratos inteligentes sean desplegados en la red, luego solamente tienes que chequear la dirección del contrato para asegurarte cual le fue asignada y compartirla.

Conecta los contratos inteligentes a la interfaz web de la aplicación

Ya tenemos encodeada la interfaz de tu aplicación web de servicios financieros, y ahora tienes que conectar los contratos inteligentes a ella. Abriremos el proyecto de app web y crearemos un archivo en blanco con el nombre de web3.min.js. Esto lo necesitarás para conectar los contratos a la interfaz. Copia el “web3 min code” en el repositorio Web3.js ChainSafe en GitHub y pega el código entero en el archivo web3.min.js que creaste. Cuando importes el archivo HTML principal a tu web app, los contratos quedarán vinculados.

Inicia los contratos inteligentes

Aquellos contratos que desplegaste, resta iniciarlos. Los pasos para hacerlo comienzan entendiendo los esquemas ABI, que comunican con los contratos inteligentes. Para conseguir estos esquemas, navegaremos en Remix IDE hasta la sección ABI y copiaremos la información del archivo de texto. Útilia el formato JSON asi que con JSON minify removeremos los espacios, copiando allí los datos del archivo original. Una vez conseguida la versión de JSON minify del archivo, la pegaremos en la variable “const contractABI” de nuestro código.

Ahora conseguimos la dirección del contrato, presionando en la opción Ejecutar de Remix IDE. La dirección del contrato la pegaremos en la variable llamada “const contractAdress” de tu código.

Actualizar las distintas funciones de la app web para usar contratos inteligentes

Ahora que están encodeados los contratos inteligentes para incorporar distintas funciones en tus DApps, puedes encodear la interfaz en JavaScript, y actualizar el funcionamiento con los contratos inteligentes. Esto ayudará a que tu app de servicios financieros tenga un mayor atractivo para los potenciales usuarios. Para cada contrato inteligente, es más fácil crear una instancia separada con su ABI y dirección propia.

Conclusiones para la creación de apps de servicios financieros

En esta guía básica exploramos distintas herramientas para construir aplicaciones de servicios financieros en redes blockchain. Las apps descentralizadas en Ethereum son las que más exploramos, porque mediante la inclusión de contratos inteligentes permiten un trabajo muy organizado y versátil para lograr llegar a un público más variado.

Total
0
Shares
Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Artículos relacionados