miércoles, mayo 24, 2023

Latch Web3: Un pestillo de seguridad para SmartContracts (Parte 2)

Visto en la primera parte de este artículo cómo funciona Latch y Latch Cloud TOTP, así como todas las posibles integraciones que se pueden hacer, llegamos a la siguiente parte, en la que nos planteamos poner Latch en la infraestructura de una DApp al igual que lo ponemos en una WebApp o una App, con el objetivo de securizar la infraestructura.

Figura 8: Latch Web3: Un pestillo de seguridad para SmartContracts (Parte 2)

Para ello, primero tenemos que tener en cuenta los elementos de una arquitectura Web3 distribuida, donde tentemos una estructura similar a esta que vamos a analizar a continuación

Arquitectura de una DApp en Web3

Esta arquitectura, que vamos a ver a continuación, es similar, por ejemplo, a la que tenemos en el Market de NFTs de Telefónica, donde contamos con una serie de elementos que van a ser similares en infraestructuras basadas en Ethereum, así que más vale que te la conozcas al dedillo. Si quieres profundizar en ella, empezando desde cero, te recomiendo los cursos de la Bit2Me Academy, donde tienes todo este tipo de formaciones.
Como veis, tenemos un almacenamiento de datos basado en una cadena Blockchain, donde no solo tendremos Tokens, sino además datos que queramos anclar en la cadena. Por supuesto, el uso de la cadena de bloques está sometido al consumo de Tokens, porque la construcción, mantenimiento y uso de cualquier cadena de BlockChain está basado en Tokenomics.

Figura 10: Arquitectura de una Dapp

La lógica de la aplicación, que se ejecuta en la máquina del ledger, está construida en forma de SmartContracts que se anclan en la cadena de bloques. Estos SmartConracts son ejecutados para realizar las acciones necesarias en la DApp que es la que coordina el flujo y ejecución de SmartContracts en función de los usuarios conectados, las acciones que estos hagan, y los datos que aporten, consuman o generen. Cada SmartContrat tiene una dirección pública dentro de la cadena de bloques, y un dueño, en forma de usuario, que es identificado por la clave pública de su Wallet.

Por supuesto, la identificación de los usuarios, se mantiene con las Wallets, que tienen una clave pública que se usa en las cadenas de bloques para identificar las acciones que este haga, y para recibir las entregas de tokens que se hagan en la Blockchain. Así, cuando un usuario genera una Wallet con su identidad - a partir de una semilla - tiene una clave privada almacenada en el dispositivo, y una clave pública, que lo representa en la cadena de bloques.

Cuando un usuario se autentica en una DApp, ésta le pide acceso a la Wallet, para poder realizar acciones de acceso a su clave pública, e incluso hacer transacciones de tokens dentro de la cadena Blockchain, lo que genera también entornos de ataque de los que hay que protegerse, como veremos. Si además, cada uno de los elementos que interfieren en una o varias DApp que forman una solución Web3 pertenecen a diferentes organizaciones, empresas o individuos, tenemos una Organización Autónoma Distribuida o DAO.

Hacking y Seguridad en Web3

Vista la arquitectura anterior, tenemos ahora que darnos cuenta de que el modo en que se atacan estas arquitecturas son diferentes a cómo se atacaban las arquitecturas de Web, donde hemos hablado muchas veces de Hacking Web Technologies, de Client-Side Attacks o de Hacking Web Aplications: SQL Injection. Ahora en el mundo Web3 y las DApp, los ataques son diferentes, y hay que conocer las técnicas de hacking, de pentesting y de auditoría. Y como vamos a ver en este artículo de Latch Web3, de fortificación.


Para aprender y conocer estas técnicas, desde el equipo de Ideas Locas hemos lanzado la plataforma de entrenamiento Level_UP!, donde tienes retos de hacking Web3, y de los que hemos ido publicando ya algunos solucionarios.
Y esto hay que aprenderlo bien, porque los atacantes ya se conocen las vulnerabilidades, e incluso las pueden encontrar utilizando herramientas como ChatGPT, que permite localizar bugs que explotar en SmartContracts creados en Solidity solo con darle el código .sol del contrato.

Figura 14: ChatGPT encuentra el bug de Reentrancy Attack

Nosotros, a lo largo del último año hemos ido enumerando muchas de estas técnicas, utilizando para ello ejemplos de incidentes que han ido pasando - y que hemos ido incorporando a nuestra plataforma de Level_UP! -, para aprender las técnicas de Hacking Web3 y buscar formas de solucionarlas. Algunos de estos ataques a SmartContracts de los que hemos hablado son:
Y también os hemos dejado algunas herramientas de auditoría usando análisis de código estático, código dinámico y dando recomendaciones de arquitecturas de seguridad.
Si quieres saber el impacto que tienen estas vulnerabilidades en términos económicos para las empresas que han sido vulneradas, puedes visitar la web https://defillama.com/hacks donde puedes ver las grandes cantidades de dinero robado, la fecha, y la técnica utilizada.

Figura 15: Incidentes Web3 en https://defillama.com/hacks

Así que, como podéis ver, esto es poca broma, y hay que tomarse en serio cómo auditar y fortificar las arquitecturas DApp. En la próxima entrada comenzaremos con este proceso, hasta llegar al Latch Web3.

martes, mayo 23, 2023

Cómo la Inteligencia Artificial se ha colado en nuestro día a día como músicos

La Inteligencia Artificial ha entrado en nuestras vidas y lo ha hecho para quedarse, incluso si eres como yo, alguien que se dedica a la música. Casi todas las áreas del ser humano están siendo exploradas por algoritmos de la IA. El terreno de la música también está siendo conquistado por ciertas empresas que desarrollan continuamente nuevas herramientas, que permiten a cualquier persona crear, editar e incluso componer cierta clase de música.

Figura 1: Cómo la Inteligencia Artificial se ha
colado en nuestro día a día como músicos

Hoy os cuento situaciones normales en nuestro mundo musical en las que la IA juega un rol muy relevante. No debemos olvidar que cuando escuchamos música en la mayoría de las situaciones, hoy en día, lo hacemos a través de un archivo de audio digital, así que a primera puerta de entrada de la Inteligencia Artificial en la música llegó con la transición del mundo analógico al mundo digital.

En el momento que se codificó una grabación analógica hacia un archivo digital abrimos la puerta a cualquier algoritmo, y esto ha sido un no parara continuo. Ha habido muchos avances desde que cualquier ciudadano de a pie pudiese hacer una copia exacta de una canción a través de un archivo de audio, o aplicarle filtros de velocidad, gausianos o de amplificación de sonidos.

Figura 2: ¿Tú también tuviste un Walkman Aiwa?

A partir de ahí, la industria musical se fue transformando y todo el negocio fue rotando hacia lo que hoy en día conocemos como streaming. El vinilo y el cassette fueron desapareciendo quedando reservados a los coleccionistas, e incluso las mismas copias digitales de CD disminuyeron sus ventas hasta llegar a ser superadas por las plataformas de streaming a gran velocidad. Ahora bien, esto no es nada nuevo, entonces, ¿qué podemos hacer hoy en día con ciertos algoritmos de IA aplicados a la música?

IA y Producción Musical

La producción musical es el proceso de crear y dar forma a una grabación musical desde su concepción hasta su finalización. Involucra tareas como la composición, el arreglo, la grabación, la edición, la mezcla y la masterización de las pistas de audio.

La IA en la producción musical ha revolucionado la forma en que los músicos y productores trabajan, brindando mejoras en la calidad de audio, separación de pistas, generación de secuencias musicales, análisis automático y mejoras en el flujo de trabajo. Hoy en día se pueden eliminar ruidos no deseados y corregir imperfecciones en las grabaciones para optimizar la mezcla, todo esto usando algoritmos de IA. Esto permite a los productores obtener un resultado final de mayor calidad y pulido. Además de tener al alcance un estudio de grabación a cualquier persona.


Algo muy novedoso y que todos los músicos usamos, es la separación de pistas de audio en elementos individuales, como voces, instrumentos y percusiones. Por ejemplo, es posible aislar la voz de Michael Jackson de cualquiera de sus canciones con solo un minuto de procesamiento y además este proceso es totalmente gratis.


Una de las apps más utilizadas en este sector para separar pistas es Moises.AI, y como todas, nos ofrece una versión gratuita que hace las delicias de los que nos dedicamos a la música, especialmente a aprender y enseñar como es mi caso.

La IA nos sugiere música basada en nuestros gustos.

La Inteligencia Artificial también se utiliza en el análisis de la música. Los algoritmos de IA pueden extraer información y conocimientos a partir de grandes conjuntos de datos musicales, y por eso grandes plataformas como Spotify tienen el popular servicio de Discovery Weekly donde te trae la música que te va a gustar todas las semanas.

Figura 5: Discovery Weekly de Chema Alonso en Spotify

Por ejemplo, pueden analizar las características de una canción, como el tempo, la tonalidad y el ritmo, y utilizar esa información para clasificar y categorizar la música y ofrecernos una experiencia personalizada, y a partir de eso, hacer que la experiencia de escuchar largas tandas de música, pueda ser modulada por un algoritmo de IA que te crea listas en base a tus gustos, a lo que dicen las canciones, predecir qué te va a gustar e, incluso, en qué momento del día te va a gustar más o menos. 

Y si eres un músico, las plataformas van a decidir si viralizan o no tus canciones por medio de sus algoritmos de IA, así que hay un trabajo de crear, codificar y publicar las canciones pensando en cómo y cuándo para que el tema llegue lo más lejos posible en las plataformas de streaming, pues la IA tiene mucho que decir hoy en el éxito o no de una composición musical.

IA y Composición Musical

Estamos ante la puerta de entrada hacia nuevas músicas hechas con GenerativeAI que pueden llegar a surgir. Además, actualmente, como en muchas áreas, la IA puede ser de gran ayuda en ciertos aspectos, o permitir copiar el estilo de un determinado artista como explicó Javier del Pino Díaz en su artículo sobre "¿Utilizar IA para convertirnos en mejores músicos?", dónde modificaba con IA una canción para hacerla al estilo de Bach.
Teniendo en cuenta que estamos entrando, gracias a la GenerativeAI, en habilidades artísticas que tenemos como seres humanos vamos a intentar poner algún ejemplo. Lo primero que puede hacer la IA es ayudarnos a componer textos para canciones. 

Para divertirnos un rato, os he preparado un experimento con ChatGPT para que me componga una letra basada en la canción “Devuélveme a mi chica” de David Summers de Hombres GPor supuesto, con todos mis respetos a David Summers, al que entrevisté hace no mucho en mi canal y para el que tengo una admiración total.


Como veis, ChatGPT nos devuelve resultados y aunque se alejan mucho de la canción original pueden ser de gran ayuda para autores no tan buenos como David Summers. Y mi pregunta es, ¿podrá una letra de una canción que ha sido generada por IA llegar a conseguir lo que ha conseguido “Devuelveme a mi chica”?

Figura 8: ChatGPT intenta crear algo como "Devuélveme a mi chica"

Una cosa podemos tener clara y es que David compuso esta letra en base a su experiencia de vida y además antes de ChatGPT. Tal vez debería darse crédito a los artistas con una leyenda que dijera: Letra compuesta sin IA

Sigo este experimento y le pido a ChatGPT que me sugiera unos acordes para acompañar esta letra, y,  ¡efectivamente! Estos acordes son válidos, pero valdrían para cualquier canción, de hecho han sido usados en muchas canciones ya compuestas.

Figura 9: Acordes para la canción que acaba de componer

Entonces, ¿es tan fácil hacer música original? pues.. la respuesta es.. No... por ahora. Aunque ChatGPT nos sugiere una letra basada en unos parámetros y conseguimos unos acordes, todavía nos quedan dos aspectos muy importantes en una composición musical, estos son, la melodía y el ritmo.

Bromas y experimentos aparte, creo que podemos hacer la reflexión de que aunque la Inteligencia Artificial puede ser una herramienta poderosa en el ámbito musical, todavía hay aspectos que son exclusivos de la creatividad humana.

Conclusión   

La música es una forma de expresión artística profundamente emocional y subjetiva, y aunque la IA puede imitar ciertos aspectos de la música, todavía es difícil replicar completamente la esencia y la originalidad de la creatividad humana en este campo. De momento no hay una IA que pueda mezclar una letra, como ésta que hemos generado, con una melodía original y que incluya un ritmo para acoplarse en los cambios armónicos de forma efectiva.

Figura 10: Clonar voces para hacer música con MyVocal.AI

Aunque hay algunas apps que nos permiten analizar y clonar voces humanas, como MyVocal.AI, todavía no ha sido desarrollada de una forma efectiva para sumar melodías a esto, con diferentes tempos y con unos cambios armónicos sorprendentes. Seguramente lleguemos a esto y más allá, posiblemente surja una nueva rama artística de música generada por IA que nos consiga emocionar y transportar a lugares como lo hace la música de nuestros días.

Aún así, para los nostálgicos siempre nos quedarán esas canciones que tienen parte de los sentimientos que los compositores que las crearon, porque por ahora, salvo que alguien diga lo contrario, a la Inteligencia Artificial no se le puede romper el corazón por un desamor.

Saludos,

Autor: Ernesto Martín, músico compositor y CEO en DebajoElectrico y Pulso Música



Entrada destacada

Hacking IA: Jailbreak, Prompt Injection, Hallucinations & Unalignment. Nuestro nuevo libro en 0xWord

Pocas veces me ha hecho tanta ilusión que saliera un nuevo libro en 0xWord como con este libro de " Hacking IA: Jailbreak, Prompt Inje...

Entradas populares