Técnicas para desarrollar aplicaciones web a través de Blockchain
Techniques to develop web applications through Blockchain
Revista de Investigación en Tecnologías de la Información
Universitat Politècnica de Catalunya, España
ISSN-e: 2387-0893
Periodicidad: Bianual
vol. 10, núm. 20, 2022
Recepción: Abril 11, 2022
Aprobación: Junio 02, 2022
Resumen: Esta investigación propone identificar técnicas, herramientas, modelos y lenguajes de programación apropiados para el diseño y desarrollo de una aplicación segura utilizando Blockchain, ya que esta tecnología, no solamente es para criptomonedas, también se puede desarrollar aplicaciones para diferentes sectores como: salud, seguros, bolsa de valores, inmobiliario, cadenas de valor, financiero, entre otros. Dentro de su aplicabilidad están los contratos inteligentes, que se convirtieron en un tema con mucha relevancia al momento de implementar tecnologías disruptivas, sin embargo; en la actualidad aún se encuentra en una fase precursora que inicia con algunas ideas, lo que previsualiza muchos retos para investigadores, ingenieros, personal técnico y administrativo de las organizaciones. La metodología de desarrollo toma como referencia UWE, ingeniería orientada a la web, plataformas para entornos Blockchain, lenguajes de programación, herramientas para desarrollo de contratos inteligentes, los resultados obtenidos determinan la existencia de varias plataformas, lenguajes de programación y demás herramientas que permitan establecer la arquitectura de sistemas de información que adapten esta tecnología disruptiva, que brinda muchas ventajas al usuario siempre y cuando se dé el uso adecuado, ya que permite su aplicabilidad a diferentes ámbitos para beneficio de la sociedad en general.
Palabras clave: Etéreo, Contrato Inteligente, Libro de Publicidad, Solidez, Cadena de Bloques.
Abstract: This research proposes to identify techniques, tools, models and programming languages appropriate for the design and development of a secure application using Blockchain, since this technology is not only for cryptocurrencies, it can also develop applications for different sectors such as: health, insurance, stock exchange, real estate, value chains, financial, among others. Within its applicability are smart contracts, which became a very relevant topic when implementing disruptive technologies, however, currently it is still in a precursor phase that starts with some ideas, which foresees many challenges for researchers, engineers, technical and administrative staff of organizations. The development methodology takes as a reference UWE, web-oriented engineering, platforms for Blockchain environments, programming languages, tools for the development of smart contracts, the results obtained determine the existence of several platforms, programming languages and other tools that allow establishing the architecture of information systems that adapt this disruptive technology that provides many advantages to the user as long as the proper use is given, since it allows its applicability to different areas for the benefit of society in general.
Keywords: Ethereum, Smart Contract, Hypedledger, Solidity, Blockchain.
1.Introducción
Blockchain es una tecnología conocida como cadena de bloques, presenta un comportamiento similar a un libro que no se puede editar, únicamente admite la escritura en un costado y una anotación, se relaciona específicamente con el antecesor y el siguiente se convierte en el presente [1]. Blockchain es mucho más que una tecnología, es una herramienta de gobernanza de información [2]. Su nacimiento se da con la aparición del bitcoin en octubre del 2008 y para enero de 2009 la Blockchain de bitcoin lanza su primera criptomoneda siendo ésta la pionera en introducir el concepto de un libro distribuido, algo que conocemos como Blockchain. [3].
Esta tecnología es creada por Satoshi Nakamoto (en realidad, su identidad aún se desconoce), responsable de la creación y el desarrollo inicial de bitcoin, quien publicó una guía técnica llamada “Bitcoin: A Peer-to-Peer Electronic Cash System”, en 2008. El documento fue titulado, “Bitcoin: un sistema de efectivo electrónico punto a punto”. Bitcoin fue el primer Criptoactivo digital descentralizado que usó Blockchain y, después de comprobar el historial de éxito y practicidad, ha ganado aceptación por comerciantes y consumidores [3].
Blockchain también es considerado como un almacén de datos dirigido como libro público, participativo al implicar varios usuarios que ingresan todo tipo de información, estos registros van a la Base de Datos contenidos en cada nodo de la red, resguardados por sistemas criptográficos que permiten que el acceso a los datos se dé únicamente a través de clave encriptada, y se genere y guarde una copia igual en la secuencia, esto garantiza la protección y disponibilidad de datos continuamente, lo que brinda seguridad al admitir crear, modificar, asignar y almacenar los datos, ya que Blockchain se encuentra establecido por algoritmos matemáticos que garantizan seguridad y confiabilidad al usuario [4]. Esta tecnología disruptiva es versátil, se puede utilizar en diferentes áreas como: el arqueo de costes [5], aseguradoras y servicios bancarios [6]. Trámites de registros e inversiones [7], [8].
Esta investigación se enfoca en estudiar mecanismos, técnicas, metodologías, herramientas y lenguajes de desarrollo para establecer una arquitectura adecuada fundamentándonos en estándares internacionales, que permitan desarrollar un software seguro, adaptando tecnología Blockchain e identificando la forma de articular tanto la cadena de bloques con el software, con el objetivo de contrarestar los ataques de los ciberdelincuentes, por lo tanto; se trata de establecer la forma cómo se articulan estas tecnologias y cómo se puede establecer una arquitectura adecuada para el desarrollo de un sistema seguro a través de Blockchain.
2. Materiales y métodos
Para realizar la investigación, se utilizó una metodología de análisis documental que inició con el reconocimiento de bibliografías referente al tema objeto de estudio, juicio crítico, resultado de la indagación bibliográfica, condensación y análisis del fruto de investigaciones previas, inferencias y conclusiones, donde se establecieron 6 fases que se representan en la Figura 1.
Fase 1: Búsqueda y clasificación bibliográfica.
Fase 2: Exploración metodologías de desarrollo UWE, XP, SCRUM.
Fase 3: Reconocimiento de entornos Blockchain, Hypedledger, Alastria, Ethereum, Solidity, Smart Contract.
Fase 4: Lenguajes de programación con orientación para creación de cadenas de bloques y contratos inteligentes Phyton, JavaScript, Solidity.
Fase 5: Herramientas para el desarrollo de aplicaciones web HTML, CSS3, PHP, MySQL.
Fase 6: Diseño de arquitectura para el desarrollo de una aplicación web que adapta tecnología Blockchain.
3. Aplicabilidad y uso de Blockchain
Blockchain inicia como recurso para prescindir de mediadores en los intercambios económicos [6] y se reconoce como ciencia que rompe modelos habituales y proporciona la capacidad de gestionar transacciones a pequeños costos [7]. En este entorno, se determina como una invención que proporciona una renovación radical con un abanico de aplicaciones capaces de refinar los procesos en las organizaciones, el estado y la humanidad [8], Blockchain se lanza como alternativa para potenciar los servicios de la industria energética [9].
Esta tecnología tiene gran aceptación por la industria, el comercio, la salud, grupos manufactureros, sector finanzas, editoriales, entes estatales y diferentes contextos de conocimiento [10]. Blockchain puede emplear para instaurar otras estimaciones de representación llamados Tokens que serán DOI empleados para distintos servicios ya que funcionan como activos digitales y se pueden utilizar en casas de apuestas, restaurantes y máquinas electrónicas [10]. Por ejemplo, la industria pesquera de EE. UU, pretende desarrollar un sistema para monitoreo, ya que gran cantidad de mariscos actualmente se obtienen de manera ilegal, alrededor del 20 y 30%, esto ayudaría a verificar el cumplimiento jurídico de la cadena de suministro, incluyendo vendedores de accesorios de pesca, empresas pesqueras, pescaderías y clientes [11].
En 2018, UNIC recibió un reconocimiento otorgado por The Blocks Awards por colaborar en el acercamiento a Blockchain, ya que la UNIC identifica esta tecnología como prioritaria dando gran relevancia para el manejo de finanzas y factores comunitarios para aplicarlas en las diferentes áreas de la institución [12].
3.1. Contratos inteligentes (Smart Contracts)
Nos encontramos en la revolución 4.0, donde la tecnología ha sido partícipe en varios campos de acción y dentro de esos se encuentra el sistema jurídico específicamente los Smart Contracts. Si se desglosa esta expresión (Smart Contracts), el término “contrato”, hace referencia a ese acuerdo que se hace de manera voluntaria entre dos o más personas ya sea de manera verbal o por escrito, siendo este último la forma más común de establecer aquellos compromisos que se deben cumplir entre ambas partes, en síntesis, podemos decir que, un Smart Contract, es un pequeño software que realiza transacciones según los eventos programados entre las partes implicadas [13]. Estos contratos inteligentes están compuestos por un código máquina registrado en la Blockchain, que permite la automatización de procedimientos y acuerdo entre diferentes nodos del sistema, ofreciendo además un mecanismo de confianza en las relaciones, esto significa que los contratos inteligentes sin duda son una pieza clave para tener en cuenta cuando hablamos de tecnología Blockchain[14].
3.2. Plataformas que soportan Blockchain
Ethereum: es una idea que consiste en la construcción de ciencia universal para construir conocimiento sobre máquinas de dominio, fundamentado en procedimientos para brindar a desarrolladores métodos prácticos e integrados, para crear aplicaciones en una plataforma digital que aún no se ha explorado en su característica dominante un patrón de transacciones confiables [15]. También, tolera el uso de Smart contract en lenguajes de programación como solidity6, javascript para transacciones complicadas y hacer la trazabilidad [16].
Alastria: es una sociedad no lucrativa que se encarga de investigar para promover técnicas y procedimientos, enfocados a la aplicabilidad de la tecnología Blockchain impulsando la economía digital [17].
Hypedledger Fabric: es un proyecto específicamente para crear una red e implementar Blockchain, donde pueden participar entidades de todo tipo para impulsar la innovación masiva a través de código abierto, también permite a una comunidad mundial de desarrolladores, trabajar juntos, compartir ideas, infraestructura y código [18]. Considerado como sistema operativo para Blockchain autorizadas, que permite la ejecución de aplicaciones distribuidas escritas en lenguajes de programación estándar y que admite la ejecución consistente en muchos nodos, dando la impresión de procesamiento en una única cadena, donde se han creado varios prototipos para: resolución de disputas, logística comercial, redes de divisas, seguridad alimentaria, gestión de contratos, procedencia de diamantes, negociación y liquidación de valores de baja liquidez, gestión de identidades y liquidación con moneda digital, con el objetivo de brindar resistencia, flexibilidad, escalabilidad y confidencialidad [18, 19].
3.3. Tipos de tecnologías Blockchain (privada, pública, híbrida)
Actualmente existen diferentes tipos de cadenas de bloques, las cuales se encuentran determinadas de la siguiente forma:
Blockchain Públicas: Este tipo de Blockchain no requiere permiso para acceder a las mismas. Cualquier persona puede poner un nodo dentro de la Blockchain y automáticamente integrarse a ella, puede registrar información y descargar las aplicaciones requeridas para crear un punto que participe en el consenso de la red y puede almacenar una reproducción del registro, permitiendo verificación o aceptación de transacciones, los datos que van surgiendo guardan una copia en la bases de datos, para la determinación de las normas de consenso de una Blockchain pública, los rangos internos de la empresa no se tendrán en cuenta, sino que preponderarán otros criterios (número de tokens o capacidad computacional acumulada [20].
Blockchain privadas: Este tipo de cadena es centralizada y requiere estricta autorización, cuenta con virtudes tales como agilidad en la ejecución de transacciones por su ambiente controlado, ya que limita los nodos y permite el acceso a cierta cantidad de socios para que realicen transacciones y hagan parte del consenso. Este tipo de Blockchain se utiliza para ejecutar procedimientos administrativos, generalmente para realizar auditorías [20]. Su funcionamiento es para un determinado conjunto de corporaciones o asociaciones, donde el intercambio de bienes puede darse de forma combinada o híbrida (pública/privada) [21].
Blockchain Híbridas: Surgen como una mezcla entre las Blockchain privadas y las públicas, es decir, se aprovecha tanto de algunas características de las Blockchain privadas como de otras de las Blockchain públicas para crear las circunstancias que más se adapten. En esta variante, los nodos han de ser invitados para unirse a la red, pero las transacciones son públicas, es decir; pueden visualizarse por cualquiera, aunque no pertenezca a la cadena [22].
Como regla general, suele tratarse de una Blockchain que es accesible a todo el mundo, pero con un número limitado de nodos validadores, a diferencia de las Blockchain privadas, las Blockchain híbridas suelen permitir acceso a la información e incluso el registro de ésta a un colectivo mucho mayor al de los validadores de las transacciones [22].
4. Metodologías para el desarrollo de software
Para el desarrollo de software o aplicaciones, se requiere la aplicabilidad de buenas prácticas, donde el uso de metodologías para el desarrollo suele ser clave para establecer la culminación exitosa del producto software, ya que ejerce la maleabilidad y asistencia en la variabilidad y en la gestión de herramientas, que ayudan a este en todo el proceso de desarrollo [23]. El entorno del software se emplean metodologías ágiles que admiten un mejor manejo en cuanto a requerimientos y rendimiento, esto se da por la flexibilidad de sus componentes, lo que permite un acople con las necesidades de la organización [24].
A continuación, se presenta un cuadro comparativo, ver Tabla 1, con las características de las metodologías propuestas: UWE, XP, SCRUM. Estas metodologías son algunas de las más utilizadas en desarrollo de software, lo que, se pretende es mostrar similitudes y diferencias entre cada una de ellas y conocer las fortalezas que las definen. En este ejercicio se establecieron unas dimensiones de manera general para las metodologías planteadas, así como un puntaje descrito en la escala de valoración. La evaluación de cada metodología, representa la percepción de utilidad en un contexto de mejor compatibilidad para utilizarlos en desarrollo de aplicaciones web. Una vez realizado el ejercicio de evaluación y conocer el resultado, es decisión del desarrollador utilizar el método que considere pertinente.
Metodología UWE | DIMENSIÓN | PUNTAJE (0-100) | |
Su objetivo es establecer un estándar para modelos de análisis y diseño de aplicaciones web basados en el método de diseño hipermedia orientado a objetos. Es más flexibilidad que otras metodologías ante entornos dinámicos durante el proceso de desarrollo web. Es poco conocida y se aplica muy poco por falta de divulgación [22]. Gran apoyo de modelos gráficos por herramientas CASE a través de extensiones UML [26] utiliza un arquetipo de estructura autónoma aplicando métodos de la arquitectura de software web, complementado con otro modelo como el de actividad [31]. | Flexibilidad | 98 | |
Diseño, documentación | 98 | ||
Usabilidad | 95 | ||
Adaptabilidad | 95 | ||
Reconocimiento | 70 | ||
Seguridad | 95 | ||
TOTAL | 91.8 | ||
Metodología XP | DIMENSIÓN | PUNTAJE (0-100) | |
Programación extrema | |||
Prioriza la adaptabilidad y se adapta a los postulados del manifiesto ágil. Está más alineado con la ingeniería de seguridad [16]. Adaptar XP para el desarrollo de software seguro, sin eliminar la agilidad que es la marca registrada de los métodos ágiles. [23]. Se fundamenta en cinco valores: sencillez, comunicación, obediencia e ímpetu para obtener retroalimentación ágil, facilidad de adaptación. Las fases son la exploración, la planificación, las iteraciones, el producto y el mantenimiento [25]. | Flexibilidad | 80 | |
Diseño, documentación | 85 | ||
Usabilidad | 90 | ||
Adaptabilidad | 95 | ||
Reconocimiento | 90 | ||
Seguridad | 90 | ||
TOTAL | 88.3 | ||
Metodología SCRUM | DIMENSIÓN | PUNTAJE (0-100) | |
Goza de mucha popularidad en el desarrollo ágil de software porque hace énfasis en la gestión de proyectos [16]. El desarrollo de software se lleva a cabo en intervalos de tiempo constantes y específicos (menos de un mes), conocidos como Sprint, para que lo pruebe y realice observaciones [23]. SCRUM permite la gestión del proceso de desarrollo y del equipo de trabajo de forma ágil y colaborativa [24]. Acelerar los procesos para satisfacer al cliente porque aplica retroalimentación rápida [25]. | Flexibilidad | 91 | |
Diseño, documentación | 92 | ||
Usabilidad | 90 | ||
Adaptabilidad | 91 | ||
Reconocimiento | 90 | ||
Seguridad | 92 | ||
TOTAL | 91 |
Para el desarrollo de la aplicación se implementan buenas prácticas, por lo tanto, se utiliza una metodología de desarrollo, una vez seleccionada se debe crear la base de datos, para ello se debe tener claridad sobre los beneficios y características del SGBD, se recomienda el uso de MySQL u ORACLE ya que este tipo de aplicaciones soportan BD organizacionales, sin embargo; Blockchain resulta ser más económico frente a RRHH (recurso humano) y arquitectura [25]. Para la conexión de la BD, para el desarrollo del Frontend o interfaz se utilizará Phyton, PHP, HTML, CCS3 y JavaScript, lo que permitirá un ambiente agradable. Para la construcción de la cadena de bloques, contamos con varias opciones en las plataformas pertinentes para la integración del software con Blockchain, éstas son Ethereum, Alastria o Hypedledger Fabric.
En el desarrollo de los contratos inteligentes cabe la posibilidad de usar Solidity, Phyton o JavaScript, importante tener presente que, para dar cumplimiento a los requerimientos establecidos, debemos recurrir a una metodología de desarrollo como UWE, XP o Scrum, ya que estas contienen actividades que permiten hacer el diseño de la aplicación según las solicitudes de los interesados en el proyecto utilizando diagramas UML. Por último, queda pendiente determinar la criptomoneda que se utilizará para el pago de los servicios establecidos en el sistema.
Para la estructura de la aplicación es necesario explorar lenguajes de programación para creación e interacción de los contratos inteligentes y la construcción de la cadena de bloques donde se cuenta con la posibilidad de recurrir a algunos de los lenguajes de programación con mayor afinidad para esta funcionalidad en el software, entre ellos se encuentran:
Solidity: Lenguaje de programación compilado para la creación, e implementación de contratos inteligentes [26] y se ejecutan en la red Ethereum [27]. El contrato inteligente es una lógica utilizada para desarrollar aplicaciones Blockchain, y se pueden escribir usando Lenguajes Solidity, Serpent y Viper y LLL[28], este lenguaje permite el acceso al registro de transacciones de dichos eventos teniendo en cuenta una serie de parámetros como firma y nombre del evento [29, 30].
Phyton web3. Py: Librería de Phyton que trabaja coordinadamente con Ethereum[31]. Permite la creación e interacción de contratos inteligentes y utiliza la API de matraz para guardar registros [32].
JavaScript: Lenguaje de programación interpretado que permite crear cadena de bloques (Blockchain), además encontramos que, para lograr generar la cadena de bloques se requiere de un contexto y unos requerimientos como lo son JavaScript, Babel, yard / npm y algunos otros como Nodemon, Jest y Eslint[33]. La tecnología Blockchain, a través del código Javascript evita manipulación del estado del código, haciéndolo más seguro, ya que el código descargado está vinculado a un valor hash que está codificado en la cadena de bloques [34]. Con Blockchain se puede usar un simple prototipo de cadena de bloques de JavaScript que puede expandir para usar Hyperledger para explorar un uso emergente para seguimiento de aviación general y pequeños sistemas aéreos no tripulados [35].
4.1. Herramientas para desarrollar Aplicaciones Web
Para la creación de aplicaciones web se requiere de las APIS (Interfaz de Programación de Aplicaciones), consideradas como un conglomerado de normas y conceptos útiles en el diseño y la fusión del software para su funcionamiento, donde se determinan los requerimientos del cliente. [36]. También es necesario el uso de varias herramientas y lenguajes de programación tales como:
HTML: permite realizar la conectividad de elementos entre sí, con el cual se pueden realizan diversas actividades como, crear tablas, listas y dar orden al texto y los objetos de la página web. Distintos lenguajes proceden de HTML como lo son XML, XHTML O DHTML, estos tipos de lenguaje se integran con él, para permitir flexibilidad y conceder interactividad a las páginas creadas con este lenguaje [37].
CSS3: Una vez se cuenta con información fundamental en el sitio se requiere de una presentación adecuada, por lo tanto, las hojas de estilo en cascada dan paso a una nueva gama de probabilidades para los desarrolladores de páginas web. Los CSS sirven para cambiar la configuración inicial de un documento de su aspecto, es decir; definen el estilo de los elementos, minimizando tiempo tanto en diseño como en mantenimiento [38].
Para la creación de funciones o procedimientos en la aplicación web recurrimos a: PHP (Hypertext Preprocessor). Se conoce como lenguaje dirigido para desarrollo web, que puede fijarse dentro de código HTML. Por lo general se ejecuta en un servidor web y admite conexión a distintos tipos de servidores de BD, como: MySQL, PostgreSQL, Oracle, Microsoft SQL Server, SQLite. Este lenguaje puede ejecutarse en la mayoría de los sistemas operativos y plataformas [39]. Las aplicaciones para brindar servicios adecuados a sus usuarios, debe contar con un almacén de datos, para construirlo necesariamente se debe recurrir a un (SGBD) sistema gestor de bases de datos que es una herramienta de acceso libre, es una de las más conocidas, la cual permite la construcción y gestión de la BD, ya que proporciona un mecanismo de comunicación entre la aplicación, el usuario y el sistema operativo, concediendo de manera eficaz el acceso a los datos, siendo más seguro. En el caso de MySQL se integra con PHP, para la creación de páginas Web [40].
La Figura 2 nos muestra cómo se podría crear un software seguro denominado Sistinseg (sistema de información seguro), el cual implementará Blockchain, es decir, representa la arquitectura. En primera instancia se podría utilizar alguna de las metodologías ágiles que se han tratado, sin embargo, la más recomendada es UWE, por las características del proceso.
A continuación, se describe la arquitectura de la Aplicación web que aplica tecnología Blockchain, representada en la figura anterior.
Sin embargo, cabe aclarar que Blockchain al ser una tecnología reciente también presenta problemas de seguridad que deben resolverse, Mcfee en 2018 en su informe sobre Blockchain, afirma que esta tecnología no brinda protección a las aplicaciones ni a los usuarios. Se han registrado varios casos en que se logró el robo de criptomonedas, a través de Pishing (técnica de ingeniería social para cometer estafas) [41, 42].
También se deben abordar temas como el elevado nivel de desgaste energético de Blockchain, bajo prescripción de prueba de trabajo, ya que el marco legal y sus políticas de privacidad son inciertas, el valor en las transacciones y la volatilidad de los costos varían de una arquitectura a otra creando limites en temas de escalabilidad y usabilidad, además trabajar en temas de desigualdad social para que todos los usuarios puedan tener acceso [43, 44].
5. Conclusiones
Blockchain se visualiza como una promesa para la sociedad en general, ya que se puede aplicar en diferentes contextos para ofrecer soluciones, uno de los aspectos más relevantes radica en que no solamente brinda seguridad a la información, sino que se cuenta con diferentes alternativas, plataformas, técnicas, lenguajes y herramientas que facilitan la adaptación de esta tecnología. Ha alcanzado protagonismo en el momento actual y esto se debe a que la tecnología ha venido avanzando a pasos agigantados, y en la medida en que nos introducimos en este mundo interconectado donde no hay límites de espacio y tiempo, se hace necesario incrementar los niveles de seguridad que permitan asegurar esos procesos de validación de información, permitiendo una mayor confiabilidad en su implementación al hacer uso de ella.
Para un futuro más prometedor y lograr avances en la aplicabilidad de estas tecnologías, se requiere que el gobierno promueva el uso y cree estrategias para divulgar conocimiento técnico y tecnológico, además debe mejorar la infraestructura tecnológica del país, para optimizar el uso de estos recursos. Por otro lado, se tendrá que direccionar la legislación para minimizar falencias. Este tipo de regulación deberá incluir la variedad de cadenas de bloques y reconocer los fallos que éstas presentan.
Los emprendedores de plataformas Blockchain como Alastria, Hypeledger, Ethereum, entre otras, tienen como reto, trabajar en estrategias que conlleven a minimizar el alto consumo de energía y con esto aportar al cuidado del medio ambiente
6. Referencias
[1] Corredor Higuera, J. A., Díaz Guzmán, D. (2018). Blockchain y mercados financieros: aspectos generales del impacto regulatorio de la aplicación de la tecnología Blockchain en los mercados de crédito de América Latina. Derecho PUCP, (81), 405-439. doi: https://doi.org/10.18800/derechopucp.201802.013
[2] Knirsch, F., Unterweger, A., Engel, D. (2019) Implementación de una cadena de bloques desde cero: por qué, cómo y qué aprendimos. EURASIP Journal on Information Security, 2. doi: https://doi.org/10.1186/s13635-019-0085-3
[3] Corrons Giménez, A., Gil Ibáñez, M. (2019) ¿Es la tecnología Blockchain compatible con la Economía Social y Solidaria? Hacia un nuevo paradigma. CIRIEC-España, Revista de Economía Pública, Social y Cooperativa, (95), 191-215. doi: https://doi.org/10.7203/CIRIEC-E.95.12984
[4] Hou, H. (2017). The application of Blockchain technology in E-government in China. Trabajo presentado en 26th International Conference on Computer Communications and Networks (ICCCN), Vancouver, BC, Canada. doi: https://doi.org/10.1109/ICCCN.2017.8038519
[5] Ripple, (2017). Ripple. Recuperado de: https://ripple.com
[6] Schneider, J., Blostein, A., Lee, B., Kent, S., Groer, S., Beardsley, E. (2016). Blockchain: Putting Theory into Practice. Recuperado de: https://docplayer.net/19864954-Putting-theory-into-practice.html
[7] Morgan, J. P., Wyman, O. (2016). Unlocking economic advantage with Blockchain. a guide for asset managers. Recuperado de: https://www.oliverwyman.com/content/dam/oliver-wyman/v2/publications/2016/jul/joint-report-by-jp-morgan-and-oliver-wyman-unlocking-economic-advantage-with-blockchain-A-Guide-for-Asset-Managers.pdf
[8] Melonport. (2017). Blockchain software for asset management. Recuperado de: http://melonport.com
[9] Knezevic, D. (2018). Impact of Blockchain Technology Platform in Changing the Financial Sector and Other Industries. Montenegrin Journal of Economics, 14 (1), 109-120. doi: https://doi.org/10.14254/1800-5845/2018.14-1.8
[10] Gómez Guerra, A., Lopera Roldan, D. F. (2018). Método de contratación Inteligente para licitaciones públicas en Colombia usando la tecnología Blockchain (Trabajo de pregrado). Tecnológico de Antiquia. Institución Universitaria, Medellín, Colombia. Recuperado de: https://dspace.tdea.edu.co/handle/tda/431
[11] Menon, S., Jain, K. (2021). Blockchain Technology for Transparency in Agri-Food Supply Chain: Use Cases, Limitations, and Future Directions. IEEE Transactions on Engineering Management. doi: https://doi.org/10.1109/TEM.2021.3110903
[12] Gilot, B. J. (2013). UNIC Blockchain Programs – Leading Blockchain Education and Research Since 2013. Recuperado de: https://www.unic.ac.cy/Blockchain
[13] Monti, M., Rasmussen, S. (2017). RAIN: A Bio-Inspired Communication and Data Storage Infrastructure. Artificial Life, 23 (4), 552–557. doi: https://doi.org/10.1162/ARTL_a_00247
[14] Instituto Cuatrecasas. (2019). Economía de plataformas, Blockchain y su impacto en los recursos humanos y en el marco regulatorio de las relaciones laborales. Madrid: La Ley. Recuperado de: https://labordoc.ilo.org/permalink/41ILO_INST/8s7mv9/alma995024393502676
[15] van Hilten, M., Ongena, G., Ravesteyn, P. (2020). Blockchain for Organic Food Traceability: Case Studies on Drivers and Challenges. Frontiers in Blockchain, 3, 1-13. doi: https://doi.org/10.3389/fbloc.2020.567175
[16] Wood, G. (2014). Ethereum: A Secure Decentralised Generalised Transaction Ledger. BERLIN VERSION b2d0dbf. Recuperado de: https://ethereum.github.io/yellowpaper/paper.pdf
[17] Alastria. (2019). La Asociación. Recuperado de: https://alastria.io/asociacion/
[18] Androulaki, E., Barger, A., Bortnikov, V., Cachin, C., Christidis, K., De Caro, A., Enyeart, D., Ferris, C., Laventman, G., Manevich, Y., Muralidharan, S., Murthy, C., Nguyen, B., Sethi, M., Singh, G., Smith, K., Sorniotti, A., Stathakopoulou, C., Vukolić, M., Weed Cocco, S., Yellick, J. (2018). Hyperledger Fabric: A Distributed Operating System for Permissioned Blockchains.Trabajo presentado en 13th EuroSys Conference, Porto, Portugal. doi: https://doi.org/10.1145/3190508.3190538
[19] Hyperledger Foundation. (2022). Open Source Blockchain Technologies. Recuperado de: https://www.hyperledger.org/
[20] Leonard, T. (2017). Blockchain for Transportation: Where the Future Starts. Recuperado de: http://logisticsandfintech.com/wp-content/uploads/2017/11/TMW-Whitepaper-Blockchain-for-transportation-LaF-Nov-2017.pdf
[21] Gendal Brown, R. (2016). Introducing R3 CordaTM: A Distributed Ledger Designed for Financial Services. Recuperado de: https://gendal.me/2016/04/05/introducing-r3-corda-a-distributed-ledger-designed-for-financial-services/
[22] Molina-Ríos, J., Pedreira-Souto, N. (2020) Comparison of development methodologies in web applications. Information and Software Technology, 119, 1-21. doi: https://doi.org/10.1016/j.infsof.2019.106238
[23] Raba González, J. L. (2018). Knowledge awareness como apoyo para el desarrollo de software en equipos Scrum. TIA Tecnología, investigación y academia, 6 (2), 11-17. Recuperado de: https://revistas.udistrital.edu.co/index.php/tia/article/view/9695/14688
[24] Julian, B., Noble, J., Anslow, C. (2019). Agile Practices in Practice: Towards a Theory of Agile Adoption and Process Evolution. En P. Kruchten, S. Fraser, F. Coallier (Eds.) Agile Processes in Software Engineering and Extreme Programming. Cham: Springer. doi: https://doi.org/10.1007/978-3-030-19034-7_1
[25]Salazar, J. C., Tovar, Á., Linares, J. C., Lozano, A., Valbuena, L. (2018). Scrum versus XP: similitudes y diferencias. TIA Tecnología, investigación y academia, 6 (2), 1-29. Recuperado de: https://link.gale.com/apps/doc/A592663911/IFME?u=fuaa&sid=bookmark-IFME&xid=ba32ae82
[26] Valencia Ramírez, J. P. (2019). Contratos inteligentes. Revista de Investigación en Tecnologías de la Información, 7 (14), 1-10. doi: https://doi.org/10.36825/RITI.07.14.001
[27] Dannen, C. (2017). Introducing Ethereum and Solidity: Foundations of Cryptocurrency and Blockchain Programming for Beginners (1st Ed.). California: Apress.
[28] Parameswari, C. D., Mandadi, V. (2020). Healthcare Data Protection Based on Blockchain using Solidity. Trabajo presentado en Fourth World Conference on Smart Trends in Systems, Security and Sustainability (WorldS4), London, UK. doi: https://doi.org/10.1109/WorldS450073.2020.9210296
[29] Padilla Sánchez, J. A. (2020). Blockchain y contratos inteligentes: aproximación a sus problemáticas y retos jurídicos. Revista de Derecho Privado, 39, 175–201. doi: https://doi.org/10.18601/01234366.n39.08
[30] Solidity. (2016). Introducción a los contratos inteligentes. Recuperado de: https://solidity-es.readthedocs.io/es/latest/introduction-to-smart-contracts.html#fundamentos-de-blockchain
[31] Web3.py. (2018). Introduction. Recuperado de: https://web3py.readthedocs.io/en/stable/
[32] Ghogale, N. (2018). How to develop Ethereum contract using Python Flask? Recuperado de: https://medium.com/coinmonks/how-to-develop-ethereum-contract-using-python-flask-9758fe65976e
[33] Lopes Barata, S., Rupino da Cunha, P. (2019). Legal and Smart! An Exploratory Case Study on Understandability of Smart Contracts (2019). Trabajo presentado en 19ª Conferência da Associação Portuguesa de Sistemas de Informação (CAPSI), Lisboa, Portugal. Recuperado de: https://aisel.aisnet.org/cgi/viewcontent.cgi?article=1038&context=capsi2019
[34] Álvarez, M. (2020). Introducción a BlockChain: Crea tus propios bloques con javascript. Recuperado de: https://www.bbvanexttechnologies.com/blogs/introduccion-a-blockchain-crea-tus-propios-bloques-con-javascript/
[35] Siewert, S. (2018). Why software engineers and developers should care about Blockchain technology. Recuperado de: http://mercury.pr.erau.edu/~siewerts/extra/papers/SSiewert_Why_Blockchain.pdf
[36] Castillo Estrada, C. M., Cancino Villatoro, K., Benavides García, V., de la Cruz Vázquez, A. (2022), Diseño de un Sistema web para el control de Curriculum Vitae Electrónico de personal docente basado en una arquitectura orientada a servicios (API REST). Revista de Investigación en Tecnologías de la Información (RITI), 10 (20), 28-42. doi: https://doi.org/10.36825/RITI.10.20.003
[37] Orós Cabello, J. C. (2014). Diseño de páginas Web con XHTML, JavaScript y CSS. Madrid: RA-MA Editorial.
[38] Cutiño Durañona, S., Roche, M. C., Sarría Pérez, C. A. (2014). Base de datos para la automatización de un registro de usuarios. Revista Cubana de Tecnología de La Salud, 5 (2), 1-5. Recuperado de: http://www.revtecnologia.sld.cu/index.php/tec/article/view/172
[39] Morejón Rivera, R., Cámara Félix, A., Jiménez, D. E., Díaz, S. H. (2016). Sisdam: Aplicación Web Para El Procesamiento De Datos Según Un Diseño Aumentado Modificado. Cultivos Tropicales, 37 (3), 153–164. doi: http://dx.doi.org/10.13140/RG.2.1.4550.4243
[40] MCfee. (2018). Informe sobre amenazas contra Blockchain. Recuperado de: https://www.mcafee.com/enterprise/es-es/assets/reports/rp-blockchain-security-risks.pdf
[41] Universität München. (2016). UWE – UML-based Web Engineering. Recuperado de: http://uwe.pst.ifi.lmu.de/
[42] Atzori, M. (2017). Blockchain technology and decentralized governance: Is the state still necessary? Journal of Governance and Regulation, 6 (1), 45–62. doi: https://doi.org/10.22495/jgr_v6_i1_p5
[43] Knirsch, F., Unterweger, A., Engel, D. (2019). Implementing a Blockchain from scratch: why, how, and what we learned. EURASIP Journal on Information Security, 2 1-14. doi: https://doi.org/10.1186/s13635-019-0085-3
[44] BID INTAL. (2020). Blockchain y comercio-internacional, Nuevas tecnologías para una mayor y mejor inserción internacional de America-Latina. Recuperado de: https://publications.iadb.org/publications/spanish/document/Revista-Integracion--Comercio-Ano-24-No.-46-Octubre-2020-Blockchain-y-comercio-internacional-Nuevas-tecnologias-para-una-mayor-y-mejor-insercion-internacional-de-America-Latina.pdf